xbbg 1.4.9
Fixed
xbbg-mcpno longer stops silently when stdin misbehaves, and the Windows MCPB launcher stays out of the byte stream (#348). On one Windows host the v1.4.6 server answeredinitializeand exited a moment later with status 0 and nothing on stderr:tokio::io::stdin()reports any zero-byte read as end-of-input and turns read errors into a bare "connection closed", and no log subscriber was installed, so nothing recorded why. The server now reads stdin on its own thread -- a zero-byte read on a pipe whose writer is still connected (PeekNamedPipe) is retried instead of ending the session, a failed read is reported on stderr, and the process states why it stops (xbbg-mcp: stdin closed; shutting down, or the abnormal quit reason). It also installs the workspace stderr logger, soRUST_LOGworks andrmcp/engine warnings reach the host's server log. The Windows launcher (xbbg-mcp.ps1) ranxbbg-mcp.exeas a PowerShell native command, which lets Windows PowerShell 5.1 sit between the MCP host and the server -- re-encoding stdout through the console code page and, under the script's$ErrorActionPreference = "Stop", terminating the child on its first stderr line. It now starts the binary with inherited standard handles and propagates its exit status, the Windows equivalent of the POSIX launcher'sexec. The reported machine state did not reproduce on Windows 11 through Claude Desktop's own client library, a Node parent, a console, or a bare pipe, with either the shipped v1.4.6 binary or this build; the fix therefore closes every path by which stdin could end the process without a message rather than a single guessed cause.- The Windows MCPB launcher checks the Bloomberg runtime it picks (#348). It accepted any directory holding
blpapi3_64.dllorblpapi3_32.dll, so pointingXBBG_MCP_LIB_DIRat a Terminal'sC:\blp\DAPIpassed and the 64-bit binary then died in the loader withSTATUS_ENTRYPOINT_NOT_FOUNDand no output. It now requiresblpapi3_64.dll, compares its file version with the Bloomberg API version the release was built against (scripts/package_xbbg_mcpb.py --blpapi-sdk-version, supplied by the release workflow), skips older runtimes with a message naming the version found, searchesPATHas well (the Windows convention; a Terminal install putsC:\blp\DAPIthere) before falling back to the Pythonblpapipackage, and translates the loader statusesSTATUS_DLL_NOT_FOUND,STATUS_ENTRYPOINT_NOT_FOUND, andSTATUS_INVALID_IMAGE_FORMATinto one-line explanations. - The MCPB
manifest.jsonlists all nine tools (#348).check_entitlementswas missing from the manifest'stoolsarray and fromscripts/xbbg_mcp_smoke.py's expected set even though the server advertised it. - v1.4.7 and v1.4.8 shipped no PyPI, npm, or MCP assets. Both tags were cut, and their Rust crates published, without the PyPI and npm publish workflows being dispatched, so v1.4.6 stayed the newest installable release everywhere but crates.io. This release publishes every surface.
Full Changelog: v1.4.8...v1.4.9