fix(mcp): preserve tool failure status and patch ExcelJS UUID - #619
Draft
HomenShum wants to merge 2 commits into
Draft
fix(mcp): preserve tool failure status and patch ExcelJS UUID#619HomenShum wants to merge 2 commits into
HomenShum wants to merge 2 commits into
Conversation
Return explicit error objects from eight raw tools and preserve successful content. Use one outcome for MCP status, analytics and audit metadata; omit success guidance on failures. Bound audit batches and contain failed writes. Local candidate:19 new scenarios pass; normal suite389 pass/1 XLSX timeout/1 skip. Selected20-case timing diagnostic passes without changing the20s deadline; full-suite cause remains open. Final build and78-call native protocol/storage outage/recovery/restart proof pass. Independent final review and release/consumer adoption remain pending. No published package or production deployment.
Keep ExcelJS4.4 while overriding its UUID dependency to11.1.1, the patched CommonJS-compatible release. Existing MCP runtime and other dependency versions are unchanged. Verified frozen Windows install and full audit0,390 package tests with one skip, and24 before/24 after conditional-format workbook exports with120 rows read back in each lane. The prior20s XLSX timeout remains historical with unassigned cause; no deadline change. Local candidate only: independent final review, shared checks and versioned package release/consumer proof remain pending.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A coding agent can currently receive
isError: falsewhen a screenshot or image tool returns an explicit failure. The failure is hidden inside a successful content array, so status tracking also records success. This change returns the existing error object from those failure paths and uses the dispatcher's classified result for the MCP reply and execution records. Successful text and image blocks retain their order and bytes, including literal text that contains the worderror.The security audit now records raw tool calls before the early return, distinguishes authorization from execution outcome, and bounds buffered writes to 256 entries. Database statement/transaction failures stay inside the audit error boundary. Failed tool results no longer receive a success-only quick reference.
A separate commit scopes UUID11.1.1 to the ExcelJS development dependency. ExcelJS's actual CommonJS caller uses zero-argument
v4()for workbook conditional-format IDs. The patched dependency preserves that contract and removes the two local moderate audit entries. This is not evidence that the advisory's affected buffer APIs were reachable through ExcelJS.Two commits, nine existing files. Package version and declared Node support remain unchanged. This draft is awaiting independent final review; it is not a package release.
Validation
npm run buildinpackages/mcp-local).npm test): 390 passed, one skipped, eight files on Windows/Node22.22.2; unchanged test deadlines and worker configuration.The first ordinary package run had 389 passes, one XLSX timeout at 20 seconds and one skip. A selected observer passed; the current ordinary run after the dependency installation also passes. The timeout's cause remains unassigned. No claim is made that UUID repaired that timeout, and the failed run is retained.
The accepted image/protocol proof predates the UUID-only commit. Its eight source owners, 582 compiled files and seven selected native/protocol dependency files were verified unchanged; that successful proof was not replayed to change the dependency audit.
Release Notes
Typecheck,Runtime smoke,Build,Tier B vs preview URL, plus the existing MCP Delta gate and repository style checks. Missing or skipped checks are not treated as passes.fix/review branch follows this repository's enforced branch policy; it points to the exact commits retained locally oncodex/mcp-error-status-20260908.