[PR #5379] [MERGED] test(capture): split protobuf MCP acceptance scenarios #6910

Closed
opened 2026-11-01 21:44:00 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/5379
Author: @gensokyo-dev
Created: 10/20/2026
Status: ✅ Merged
Merged: 10/20/2026
Merged by: @gensokyo-dev

Base: main ← Head: audit/ci-tests-20261020-round3


📝 Commits (1)

  • 2f7d737 test(capture): split protobuf MCP acceptance scenarios

📊 Changes

2 files changed (+344 additions, -315 deletions)

View changed files

📝 tests/acceptance/tools/protobufCapture.test.ts (+342 -314)
📝 tests/fixtures/localToolsMcp.ts (+2 -1)

📄 Description

Summary

Split independent Protobuf MCP acceptance scenarios so exclusions, partial failures, credential preflight and descriptor read failures do not accumulate under one test's 30-second deadline. Retain all 51 original assertion sites and the CLI/MCP parity, sensitivity isolation and retained-Evidence workflows.

A worker fixture owns one real stdio MCP connection and awaits teardown. The test client accepts an explicit cleanup registrar; existing callers retain test-scoped cleanup. No production contracts, provider authority, retries, deadlines or discovery rules change. This is an existing-test maintenance fix; a separate issue and maintainer capability decision are not applicable.

Evidence and validation

Baseline: main 0134732f. With Node 24.18.0/npm 11.16.0, two CPUs and two Vitest workers, the 11-file audit run failed the combined MCP case at 30,194 ms (143 passed, 1 failed, 1 existing conditional skip). The same case passed alone in 15,708 ms: the evidence supports a contention-sensitive oversized case, not a product deadlock.

Executed on the final diff:

  • npm run test:focused -- <11 exact files>: 148 passed, 1 existing conditional skip. Includes Protobuf wire/view/service tests, public Protobuf and SAZ CLI/MCP workflows, report failure/inventory gates, selection, discovery and development runner tests. Six Protobuf cases completed individually in 2.5–13.3 s during this run.
  • Independent final Protobuf file: 6 passed, longest case 6.98 s.
  • npm run check: passed all six static tasks and architecture/module boundaries.
  • npm run verify:test-discovery: 1,718 files exactly once.

Single completed-file observations, warm runtime build with fresh test processes and compile-cache directories:

Revision Wall s Family CPU s Sampled family RSS MiB
Original, 2 cases / same assertions 24.94 28.92 1,451
Final, 6 cases / same assertions 26.01 29.13 1,750

A discarded variant opened one MCP server per case and took 39.42 s; the final fixture shares preparation. This change improves deadline isolation, not a claimed suite speedup. One observation per variant, uncontrolled host/OS cache and changed case order limit comparisons. Summed descendant RSS sampled every 100 ms can double-count shared pages or miss short-lived/reparented children. Final mixed checks used 140.98 s wall/236.13 s CPU/2,501 MiB; static checks peaked at 4,802 MiB. Local heavy commands were serialized on two CPUs; no observed OOM. Agent token usage and CI-wide savings were not measured.

Baseline main CI 39384852577 failed the unchanged Hermes named-home doctor scenario because a Java cleanup scan could not read /proc/5647/environ (EACCES); the remaining 35 jobs passed. This is separate from the reproduced Protobuf timeout and is not claimed fixed here. Actual vendor-engine behavior is outside this test-only change; these tests exercise production local CLI/MCP, synthetic captures, and a real stdio server. LeanToken retrieval failed internally; source inspection used the local pinned checkout.

Head 2f7d73794: CI 39387622142 completed successfully: 11 selected jobs passed, 21 optional jobs skipped, including all five shards, Portable tests and CI required. CI executed merge preview e69301f78 with main 4eaf3a117 (the upstream MCP error-framing fix). The six Protobuf cases passed in the hosted shard (21.95 s file total). All 15 unchanged Hermes cases also passed in this run; that does not establish a fix for the earlier EACCES failure.

Codex review completed with no findings; Greptile scored 5/5, with no inline findings or review threads.

Author readiness

Human owner: @gensokyo-dev

The owner explicitly delegated these declarations and authorized opening ready, following CI/review and normal merge in this session. Codex reviewed the final diff and evidence; independent human review was not observed.

  • 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.

Before merge

  • This PR addresses a concrete problem or an agreed enhancement.
  • Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff.
  • The PR has one focused outcome and the title follows type(scope): outcome.
  • Related issue is linked, or the reason for not linking one is stated above.
  • Tests cover changed observable behavior and meaningful failure paths.
  • Owning docs, contracts, and generated metadata are updated where needed.
  • User-visible CLI/MCP changes include representative output.
  • I checked the final diff for secrets, unrelated cleanup, and unsupported claims.

🔄 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/5379 **Author:** [@gensokyo-dev](https://github.com/gensokyo-dev) **Created:** 10/20/2026 **Status:** ✅ Merged **Merged:** 10/20/2026 **Merged by:** [@gensokyo-dev](https://github.com/gensokyo-dev) **Base:** `main` ← **Head:** `audit/ci-tests-20261020-round3` --- ### 📝 Commits (1) - [`2f7d737`](https://github.com/morluto/rea/commit/2f7d737941e26d32d3e73b4de3c6cd69f924a796) test(capture): split protobuf MCP acceptance scenarios ### 📊 Changes **2 files changed** (+344 additions, -315 deletions) <details> <summary>View changed files</summary> 📝 `tests/acceptance/tools/protobufCapture.test.ts` (+342 -314) 📝 `tests/fixtures/localToolsMcp.ts` (+2 -1) </details> ### 📄 Description ## Summary Split independent Protobuf MCP acceptance scenarios so exclusions, partial failures, credential preflight and descriptor read failures do not accumulate under one test's 30-second deadline. Retain all 51 original assertion sites and the CLI/MCP parity, sensitivity isolation and retained-Evidence workflows. A worker fixture owns one real stdio MCP connection and awaits teardown. The test client accepts an explicit cleanup registrar; existing callers retain test-scoped cleanup. No production contracts, provider authority, retries, deadlines or discovery rules change. This is an existing-test maintenance fix; a separate issue and maintainer capability decision are not applicable. ## Evidence and validation Baseline: main `0134732f`. With Node 24.18.0/npm 11.16.0, two CPUs and two Vitest workers, the 11-file audit run failed the combined MCP case at **30,194 ms** (143 passed, 1 failed, 1 existing conditional skip). The same case passed alone in **15,708 ms**: the evidence supports a contention-sensitive oversized case, not a product deadlock. Executed on the final diff: - `npm run test:focused -- <11 exact files>`: **148 passed, 1 existing conditional skip**. Includes Protobuf wire/view/service tests, public Protobuf and SAZ CLI/MCP workflows, report failure/inventory gates, selection, discovery and development runner tests. Six Protobuf cases completed individually in **2.5–13.3 s** during this run. - Independent final Protobuf file: **6 passed**, longest case **6.98 s**. - `npm run check`: passed all six static tasks and architecture/module boundaries. - `npm run verify:test-discovery`: **1,718 files exactly once**. Single completed-file observations, warm runtime build with fresh test processes and compile-cache directories: | Revision | Wall s | Family CPU s | Sampled family RSS MiB | | --- | ---: | ---: | ---: | | Original, 2 cases / same assertions | 24.94 | 28.92 | 1,451 | | Final, 6 cases / same assertions | 26.01 | 29.13 | 1,750 | A discarded variant opened one MCP server per case and took 39.42 s; the final fixture shares preparation. This change improves deadline isolation, **not a claimed suite speedup**. One observation per variant, uncontrolled host/OS cache and changed case order limit comparisons. Summed descendant RSS sampled every 100 ms can double-count shared pages or miss short-lived/reparented children. Final mixed checks used 140.98 s wall/236.13 s CPU/2,501 MiB; static checks peaked at 4,802 MiB. Local heavy commands were serialized on two CPUs; no observed OOM. Agent token usage and CI-wide savings were not measured. Baseline main CI [39384852577](https://github.com/morluto/rea/actions/runs/39384852577) failed the unchanged Hermes named-home doctor scenario because a Java cleanup scan could not read `/proc/5647/environ` (EACCES); the remaining 35 jobs passed. This is separate from the reproduced Protobuf timeout and is not claimed fixed here. Actual vendor-engine behavior is outside this test-only change; these tests exercise production local CLI/MCP, synthetic captures, and a real stdio server. LeanToken retrieval failed internally; source inspection used the local pinned checkout. Head `2f7d73794`: [CI 39387622142](https://github.com/morluto/rea/actions/runs/39387622142) completed successfully: **11 selected jobs passed, 21 optional jobs skipped**, including all five shards, `Portable tests` and `CI required`. CI executed merge preview `e69301f78` with main `4eaf3a117` (the upstream MCP error-framing fix). The six Protobuf cases passed in the hosted shard (21.95 s file total). All 15 unchanged Hermes cases also passed in this run; that does not establish a fix for the earlier EACCES failure. [Codex review](https://github.com/morluto/rea/pull/5379#issuecomment-6285881658) completed with no findings; [Greptile](https://github.com/morluto/rea/pull/5379#issuecomment-6285923444) scored **5/5**, with no inline findings or review threads. ## Author readiness Human owner: @gensokyo-dev The owner explicitly delegated these declarations and authorized opening ready, following CI/review and normal merge in this session. Codex reviewed the final diff and evidence; independent human review was not observed. - [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. ## Before merge - [x] This PR addresses a concrete problem or an agreed enhancement. - [x] Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff. - [x] The PR has one focused outcome and the title follows `type(scope): outcome`. - [x] Related issue is linked, or the reason for not linking one is stated above. - [x] Tests cover changed observable behavior and meaningful failure paths. - [x] Owning docs, contracts, and generated metadata are updated where needed. - [x] User-visible CLI/MCP changes include representative output. - [x] I checked the final diff for secrets, unrelated cleanup, and unsupported claims. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-11-01 21:44:00 +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#6910
No description provided.