Replace the old StdioServer-based stdio JSON-RPC flow with an in-process HTTP forwarder. Program.cs now reads raw stdin, posts payloads to the configured ResourceServerPrefix + "jsonrpc2" using HttpClient (configurable timeout), writes HTTP response bytes back to stdout, and includes improved logging and SafePreviewUtf8 for safe payload previews. StdioServer.cs and its project entry were removed, and Resources.resx HttpClientTimeout was increased to 300 (Designer version updated). This centralizes stdio handling and HTTP forwarding with better error handling and diagnostics.
Insert file header comments in JsonRpc2Dispatcher.cs to declare licensing and attribution: SPDX-License-Identifier: GPL-3.0-or-later, copyright notice for Catswords OSS and WelsonJS Contributors, and project URL. This clarifies file license and provenance.
Rename the global store identifier from __WJ_STORE to __WJS__ throughout JsSerializer.cs (store access in load/unload/set/get and EnsureStore initialization). Also change value retrieval to only JSON.stringify objects and use String(v) for primitives to avoid wrapping non-objects in JSON. Preserve the Object.create(null) store initialization to prevent prototype pollution.
Clean up Program.cs by removing unused using directives (System.Net.Http, System.Runtime.Remoting.Contexts, System.Threading.Tasks and the static VisualStyleElement.Tab import). This reduces clutter and compiler warnings and keeps imports focused on required namespaces.
Introduce JSON-RPC 2.0 handling and a minimal stdio framing server. Adds ApiEndpoints/JsonRpc2 and JsonRpc2Dispatcher to parse and dispatch JSON-RPC requests, and StdioServer to handle Content-Length framed stdio messages. Adds McpToolsList.json (tools list resource) and wires JsonRpc2 into ResourceServer.
Program.cs: add --stdio-jsonrpc2 mode to run the stdio server, and integrate dispatcher usage (with timeout and TODO placeholders for tools/call). ResourceServer: register JsonRpc2 endpoint, change fallback handling to 404 via ServeResource(), and make several resource helper methods static/public for reuse. Update csproj to include new source files and embed the McpToolsList.json resource.
Contains basic implementation and scaffolding; tool-call handling is left as TODO.
Refactored all API endpoint classes from the ResourceTools namespace to the ApiEndpoints namespace for improved clarity and organization. Updated all references in ResourceServer to use the new namespace.
Added null checks for the 'path' parameter in CanHandle methods across all API endpoint classes to prevent potential NullReferenceExceptions. Also made the _apis list in ResourceServer readonly and updated a comment for clarity.
Updated the IApiEndpoint interface and all implementing endpoints to change the CanHandle method signature to accept both HttpListenerContext and path. This enables more advanced routing decisions based on the full HTTP request context. ResourceServer and all endpoint usages have been updated accordingly.
Expanded the IApiEndpoint interface to support advanced routing with a new CanHandle overload and improved documentation. Renamed internal variables in ResourceServer from _tools to _apis to better reflect their purpose and updated all related logic accordingly.
Corrects the logger assignment in ResourceServer to use the provided logger parameter instead of the uninitialized field. Also adds a commented-out log4net configuration line in AssemblyInfo.cs.
Added conditional compilation to initialize the logger with 'dev' in DEBUG builds and 'prod' otherwise. This ensures appropriate logging configuration based on the build environment.
Replaces the custom ICompatibleLogger and TraceLogger with log4net for logging, introducing LoggingBootstrap for environment-aware log4net initialization. Refactors all resource tools to use IApiEndpoint and moves them to the ApiEndpoints namespace. Updates project references, configuration, and adds a log4net.config for consistent logging setup.
Modularized the deployment of base files, optional data files, and entrypoint in HandleTargetFilePath. Improved error handling and validation for file paths and extensions. Replaced the previous CopyDirectoryRecursive implementation with a new version supporting required/optional directories and simplified file copying logic.
Replaced the Catswords.Phantomizer.dll.gz resource with a new version. This may include bug fixes, new features, or other improvements in the Phantomizer component.
Replaces the existing Catswords.Phantomizer.dll.gz in the launcher resources with a new version. This may include bug fixes, new features, or other improvements in the updated binary.
Eliminated an unnecessary check for HttpStatusCode.NotFound in AssemblyLoader.cs, as EnsureSuccessStatusCode already throws for non-success responses. Updated Catswords.Phantomizer.dll.gz to reflect the latest changes.
Updated AssemblyLoader to pass HttpClient explicitly to GetStreamFromUrl for improved flexibility and testability. Simplified GZip download logic to use the new method signature. Updated binary resource Catswords.Phantomizer.dll.gz.
Replaced the Catswords.Phantomizer.dll.gz resource with a new version. This may include bug fixes, new features, or other improvements in the Phantomizer component.
Removed all telemetry-related code and configuration from WelsonJS.Launcher, including source files, resource strings, and app.config keys. Enhanced AssemblyLoader to support fallback to curl.exe for downloads on legacy Windows, with integrity hash verification. Updated documentation and resource files to reflect the new curl fallback mechanism and added the required integrity hash for curl.exe.