[PR #7465] fix(mcp): explain skipped doctor identity probes #7854

Open
opened 2026-11-05 01:48:09 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/7465
Author: @BrownieCoder
Created: 10/27/2026
Status: 🔄 Open

Base: main ← Head: fix/mcp-doctor-skipped-identity


📝 Commits (1)

  • 137fddd fix(mcp): explain skipped doctor identity probes

📊 Changes

2 files changed (+47 additions, -23 deletions)

View changed files

📝 src/mcpDoctor.ts (+6 -2)
📝 tests/boundary/mcp/mcpDoctor.test.ts (+41 -21)

📄 Description

Summary

Fixes #7438. With REA_MCP_TOOL_FAMILIES=native or browser, MCP doctor skips binary_session but previously reported package=missing; catalog=missing. It now explains that identity was not observed because the selected scope excludes the session family.

Change and scope

Reuse the existing expected-tool scope decision for both the request and its identity diagnostic. Identity fields remain null, the health check remains unsuccessful, and CLI exit status remains 1 for these scopes. Scopes containing session retain their existing identity validation and failure behavior.

This is a diagnostic correction within the existing workflow. No tool schemas, provider behavior, target authority, cleanup, package metadata, or stored Evidence formats change; a separate maintainer scope decision is not applicable.

Evidence and regression coverage

  • Production stdio regressions cover both browser and native scopes. Both new assertions failed against the unchanged production source before the fix.
  • The existing real-response capture and schema-invalid replay now also assert the identity check, preserving success and genuine probe-failure diagnostics.
  • Built CLI checks confirmed native and browser report Identity not observed: binary_session is outside the selected tool families; include the session family for request-flow and identity checks, with exit 1. The session control is healthy and exits 0.

Validation performed

On macOS arm64 with Node.js 24.22.1 and npm 11.16.0:

  • npm run test:focused -- tests/boundary/mcp/mcpDoctor.test.ts — 33 passed.
  • npm run check:fast — passed; repository formatting check also passed.
  • npm run verify:architecture-guards and npm run verify:test-discovery — passed.
  • npm run knip:production — completed with advisory candidates.
  • npm run lint:typed — passed with 0 errors; repository warnings remain.
  • npm run check — blocked by three Knip findings also reproduced with unmodified source at 03f17cf41d3c844f9383d7792d9b1a14330d0bb2: staticFileUrlPath, AndroidManifestComponentInventory, and ObjcClassImportBindingCoverage.

The focused suite passed with normal host permissions. Its initial sandbox run could not write the Swift/Clang module cache, causing unrelated existing tests to fail. Other operating systems and external analysis engines were not tested; this change does not modify provider integration.

Author readiness

Human owner: @BrownieCoder

This is a human-directed contribution. An LLM assisted with investigation, implementation, testing, and review. I directed the scope, approve this submission, and take responsibility for the final change.

  • I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work.
  • I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps.
  • I declare this PR ready for initial maintainer review.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/7465 **Author:** [@BrownieCoder](https://github.com/BrownieCoder) **Created:** 10/27/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `fix/mcp-doctor-skipped-identity` --- ### 📝 Commits (1) - [`137fddd`](https://github.com/morluto/rea/commit/137fddd58df969fe40042305cbbc1b1ffe3b9a87) fix(mcp): explain skipped doctor identity probes ### 📊 Changes **2 files changed** (+47 additions, -23 deletions) <details> <summary>View changed files</summary> 📝 `src/mcpDoctor.ts` (+6 -2) 📝 `tests/boundary/mcp/mcpDoctor.test.ts` (+41 -21) </details> ### 📄 Description ## Summary Fixes #7438. With `REA_MCP_TOOL_FAMILIES=native` or `browser`, MCP doctor skips `binary_session` but previously reported `package=missing; catalog=missing`. It now explains that identity was not observed because the selected scope excludes the session family. ## Change and scope Reuse the existing expected-tool scope decision for both the request and its identity diagnostic. Identity fields remain `null`, the health check remains unsuccessful, and CLI exit status remains 1 for these scopes. Scopes containing `session` retain their existing identity validation and failure behavior. This is a diagnostic correction within the existing workflow. No tool schemas, provider behavior, target authority, cleanup, package metadata, or stored Evidence formats change; a separate maintainer scope decision is not applicable. ## Evidence and regression coverage - Production stdio regressions cover both `browser` and `native` scopes. Both new assertions failed against the unchanged production source before the fix. - The existing real-response capture and schema-invalid replay now also assert the identity check, preserving success and genuine probe-failure diagnostics. - Built CLI checks confirmed `native` and `browser` report `Identity not observed: binary_session is outside the selected tool families; include the session family for request-flow and identity checks`, with exit 1. The `session` control is healthy and exits 0. ## Validation performed On macOS arm64 with Node.js 24.22.1 and npm 11.16.0: - `npm run test:focused -- tests/boundary/mcp/mcpDoctor.test.ts` — 33 passed. - `npm run check:fast` — passed; repository formatting check also passed. - `npm run verify:architecture-guards` and `npm run verify:test-discovery` — passed. - `npm run knip:production` — completed with advisory candidates. - `npm run lint:typed` — passed with 0 errors; repository warnings remain. - `npm run check` — blocked by three Knip findings also reproduced with unmodified source at `03f17cf41d3c844f9383d7792d9b1a14330d0bb2`: `staticFileUrlPath`, `AndroidManifestComponentInventory`, and `ObjcClassImportBindingCoverage`. The focused suite passed with normal host permissions. Its initial sandbox run could not write the Swift/Clang module cache, causing unrelated existing tests to fail. Other operating systems and external analysis engines were not tested; this change does not modify provider integration. ## Author readiness Human owner: @BrownieCoder This is a human-directed contribution. An LLM assisted with investigation, implementation, testing, and review. I directed the scope, approve this submission, and take responsibility for the final change. - [x] I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work. - [x] I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps. - [x] I declare this PR ready for initial maintainer review. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#7854
No description provided.