[PR #1760] [MERGED] fix(process): align capture Evidence provider admission #4800

Closed
opened 2026-10-31 00:55:10 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/1760
Author: @N0zoM1z0
Created: 10/11/2026
Status: ✅ Merged
Merged: 10/11/2026
Merged by: @N0zoM1z0

Base: main ← Head: fix/process-capture-provider-1757


📝 Commits (1)

  • 82a3df7 fix(process): align capture Evidence provider admission

📊 Changes

3 files changed (+149 additions, -10 deletions)

View changed files

📝 src/application/process/ProcessCli.ts (+16 -7)
📝 src/server/registerProcessComparisonTool.ts (+14 -1)
📝 tests/boundary/mcp/processComparisonDiagnosticsMcp.test.ts (+119 -2)

📄 Description

MCP currently derives comparison Evidence from process captures with an unrelated provider ID/version, while the CLI rejects them. Both adapters also accept arbitrary provider names despite the established current/legacy domain rule. Authenticate Evidence first, retain operation/predicate checks, then use isProcessEvidenceProvider at both admission boundaries.

Rejected providers now return a typed input issue at [left|right, "provider"] with the actual provider identity. Current rea-process v3 and its explicitly supported legacy name keep the exact successful Evidence, locations and links. No capture execution or provider authority is added.

Closes #1757. Related identity matcher: #706.

Validation:

  • Freshly compiled latest main 6ff4d4a0 in a separate worktree; actual public CLI and SDK stdio MCP reproduce wrong-ID/version admission differences and wrong-name admission. All inputs have correctly recomputed Evidence IDs.
  • Six independent wrong-provider left/right regressions fail on main. After correction, 24 tests pass across the diagnostic MCP suite, trace adapter parity and process CLI suite. Controls cover both supported names, complete authenticated Evidence/text parity, operation/result failures and digest tampering before provider checks. The process CLI suite also performs a small real Node process capture/comparison.
  • Actual CLI + SDK stdio MCP matrix after the fix rejects wrong ID/version/name consistently, preserves complete current/legacy results byte-for-byte as parsed Evidence, and answers subsequent ping. Repeated after independent Luna review with no blocking finding.
  • Full single-threaded typecheck, lint/module boundaries, changed-file format, architecture guards and diff check pass, all within the 2 GiB process-family budget.

No installed native provider, browser, Notion or Obsidian verification is claimed. Public comparison probes use authenticated static process-capture fixtures; the separate existing CLI test supplies the live Node capture coverage. Schemas and successful output contracts are unchanged; unsupported provider admission is intentionally corrected.


🔄 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/1760 **Author:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Created:** 10/11/2026 **Status:** ✅ Merged **Merged:** 10/11/2026 **Merged by:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Base:** `main` ← **Head:** `fix/process-capture-provider-1757` --- ### 📝 Commits (1) - [`82a3df7`](https://github.com/morluto/rea/commit/82a3df77783f9bb5e109af36e76d62a6a4ab2135) fix(process): align capture Evidence provider admission ### 📊 Changes **3 files changed** (+149 additions, -10 deletions) <details> <summary>View changed files</summary> 📝 `src/application/process/ProcessCli.ts` (+16 -7) 📝 `src/server/registerProcessComparisonTool.ts` (+14 -1) 📝 `tests/boundary/mcp/processComparisonDiagnosticsMcp.test.ts` (+119 -2) </details> ### 📄 Description MCP currently derives comparison Evidence from process captures with an unrelated provider ID/version, while the CLI rejects them. Both adapters also accept arbitrary provider names despite the established current/legacy domain rule. Authenticate Evidence first, retain operation/predicate checks, then use `isProcessEvidenceProvider` at both admission boundaries. Rejected providers now return a typed input issue at `[left|right, "provider"]` with the actual provider identity. Current `rea-process` v3 and its explicitly supported legacy name keep the exact successful Evidence, locations and links. No capture execution or provider authority is added. Closes #1757. Related identity matcher: #706. Validation: - Freshly compiled latest main `6ff4d4a0` in a separate worktree; actual public CLI and SDK stdio MCP reproduce wrong-ID/version admission differences and wrong-name admission. All inputs have correctly recomputed Evidence IDs. - Six independent wrong-provider left/right regressions fail on main. After correction, 24 tests pass across the diagnostic MCP suite, trace adapter parity and process CLI suite. Controls cover both supported names, complete authenticated Evidence/text parity, operation/result failures and digest tampering before provider checks. The process CLI suite also performs a small real Node process capture/comparison. - Actual CLI + SDK stdio MCP matrix after the fix rejects wrong ID/version/name consistently, preserves complete current/legacy results byte-for-byte as parsed Evidence, and answers subsequent ping. Repeated after independent Luna review with no blocking finding. - Full single-threaded typecheck, lint/module boundaries, changed-file format, architecture guards and diff check pass, all within the 2 GiB process-family budget. No installed native provider, browser, Notion or Obsidian verification is claimed. Public comparison probes use authenticated static process-capture fixtures; the separate existing CLI test supplies the live Node capture coverage. Schemas and successful output contracts are unchanged; unsupported provider admission is intentionally corrected. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 00:55:10 +00:00
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#4800
No description provided.