[2593 by GPT-5.6 Sol] MCP: introduce a structured error envelope (code, message, stage, retryable) with secret redaction for every tool call - #2610
Conversation
…lope (code, Implemented by ProPR AI using gpt-5.6-sol model. Implementation completed successfully.
|
/ultrafix |
|
🔄 Ultrafix loop started (goal: 8/10, max cycles: 10) First action:
|
|
✅ AI Code Review Complete requested by @propr-ultrafix Posted 1 review: |
🔍 AI Code Review — codex:gpt-6-astraOverall EvaluationThe PR centralizes MCP error classification and adds durable structured error details, but needs changes before merge. Mutation uncertainty handling regresses for workflow failures, and access logging can misclassify uncertain mutations. ✅ Shared error representation — Protocol errors expose matching JSON text and ✅ Durable diagnostic causes — Non-domain mutation failures retain their underlying classification while disabling automatic retry. ✅ Focused regression coverage — Added tests cover persistence, classification, and several credential formats. The supplied current-head checks report 18 passed and no failures. Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F1: 🔴 Preserve uncertainty for server-side McpErrors
F2: 🔴 Log uncertain mutations as errors
SuggestionsThese are optional follow-ups and are not sent to S1: 🟢 Cover the deployed MCP token prefixThe new redactor recognizes S2: 🟢 Exercise envelopes through protocol dispatchThe added transport assertion calls ScoreThe implementation has useful centralization and passing current-head checks, but two verified classification regressions remain. This review used static tracing only; no commands were run. Score: 6/10 🤖 Review Details
🤖 Review by ProPR |
|
✅ Applied the requested follow-up changes in commit a8e349a
Summary of ChangesImplemented F1 and F2.
Validation passed:
No independent findings or visual changes; no preview was needed. 🤖 Implementation Details
💡 ProPR Slash Commands
🤖 Generated by ProPR |
Implemented F1 and F2. - Server-side `McpError`s with status ≥500 now preserve mutation uncertainty as `OUTCOME_UNKNOWN`, retaining the original error as the cause. - Access logs now classify `OUTCOME_UNKNOWN` as `error` regardless of HTTP status. - Added regressions for workflow HTTP 500 persistence and GitHub HTTP 422 first-attempt/replay logging consistency. Validation passed: - `npm run test:mcp` — 111 tests - API typecheck - API lint - `git diff --check` No independent findings or visual changes; no preview was needed. PR: #2610 Comment by: @propr-ultrafix (ID: 0) Model: gpt-5.6-sol
|
✅ AI Code Review Complete requested by @propr-ultrafix Posted 1 review: |
🔍 AI Code Review — codex:gpt-6-astraOverall EvaluationThe PR centralizes MCP error classification and adds useful durable diagnostics, but needs a localized redaction correction before merge. ✅ Mutation uncertainty preserved — Failed mutations retain ✅ Consistent error representations — ✅ Passing current checks — The supplied authoritative status reports 18 passed checks and no failures or pending checks. This review is based on static inspection; no commands were run. Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F3: 🔴 Redact the actual MCP token prefix
SuggestionsThese are optional follow-ups and are not sent to S3: 🟢 Exercise envelopes through the protocolThe new transport assertion calls S4: 🟢 Preserve status on receipt replay
ScoreThe implementation is focused and current checks pass, but the newly exposed diagnostic path misses the application's actual MCP credential prefix. A small correction and targeted regression coverage should resolve the blocker. Score: 6/10 🤖 Review Details
🤖 Review by ProPR |
|
✅ Applied the requested follow-up changes in commit b984c3e
Summary of ChangesImplemented F3.
Validation:
No independent findings or visual changes. 🤖 Implementation Details
💡 ProPR Slash Commands
🤖 Generated by ProPR |
Implemented F3. - Extended MCP credential redaction to cover `propr_mcp_…` tokens in [errorEnvelope.ts](/tmp/git-processor/worktrees/integry/propr/pr-2610-followup-2026-09-29T00-38-47/packages/api/mcp/errorEnvelope.ts:20). - Added regressions for both protocol representations in [mcpErrorEnvelope.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2610-followup-2026-09-29T00-38-47/packages/api/test/mcpErrorEnvelope.test.ts:29). - Verified mutation uncertainty causes are redacted before persistence and replay in [mcpAccessLogDispatch.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2610-followup-2026-09-29T00-38-47/packages/api/test/mcpAccessLogDispatch.test.ts:155). Validation: - `npm run test:mcp` — 111 passed - API typecheck — passed - API lint — passed - `git diff --check` — passed No independent findings or visual changes. PR: #2610 Comment by: @propr-ultrafix (ID: 0) Model: gpt-5.6-sol
|
✅ AI Code Review Complete requested by @propr-ultrafix Posted 1 review: |
🔍 AI Code Review — codex:gpt-6-astraOverall EvaluationThe PR centralizes MCP error classification, adds structured error envelopes, and persists useful causes for uncertain mutations. It is ready to merge within the reviewed scope. ✅ Mutation uncertainty preserved — Failed mutations retain durable operation handles and expose ✅ Consistent error serialization — ✅ Persistence coverage — Added tests check stored envelopes, replay behavior, and credential removal before database persistence. This review used static analysis of the supplied diff and context; no commands were run. Authoritative current-head checks report 18 passed and no failures or pending checks. Merge blockersNo merge blockers. SuggestionsThese are optional follow-ups and are not sent to S5: 🟢 Cover validation over the transportThe supplied dispatch test demonstrates that SDK input validation happens before the callback in ScoreThe implementation provides coherent classification, conservative mutation handling, and focused persistence and redaction tests. Current checks pass; verification here was limited to static review. Score: 8/10 🤖 Review Details
🤖 Review by ProPR |
53e9bec
into
2593-epic-mcp-observability-cf6
AI Implementation Summary
Closes #2593
Branch:
2593/gpt-5.6-sol-mcp-introduce-a-structure-20260928-2357-n39Commits: ✅ Changes committed (85850e1)
AI Processing Completed
Execution Details:
Summary:
Implemented GitHub issue #2593.
Key changes:
McpErrorwith optional stage, retryability, details, andtoEnvelope().structuredContent.test:mcp.Validation completed:
npm run test:mcp— 111 tests passed.npm run typecheck -w @propr/api— passed.npm run lint -w @propr/api— passed.No visual preview was generated because the change is backend-only.
Detailed Logs:
nullLog files stored at:
/tmp/claude-logs/issue-2593-2026-09-29T00-08-06-871Z-conversation.json/tmp/claude-logs/issue-2593-2026-09-29T00-08-06-871Z-output.txtLatest Conversation Messages
This PR was created automatically by ProPR after processing issue #2593.
💡 Need changes?
Comment on this PR to request refinements — the AI agent monitors comments and will update the implementation based on your feedback. Keep iterating until you're satisfied!