[PR #3964] [MERGED] fix(jeb): isolate invalid timeout from shared startup #5967

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

📋 Pull Request Information

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

Base: main ← Head: codex/fix-jeb-timeout-isolation


📝 Commits (2)

  • 84664cd fix(jeb): isolate invalid timeout from shared startup
  • 1a211fa test(jeb): verify configuration isolation through public adapters

📊 Changes

3 files changed (+124 additions, -11 deletions)

View changed files

📝 src/config/parseConfig.ts (+6 -1)
➕ tests/acceptance/providers/jebConfigurationIsolation.test.ts (+96 -0)
📝 tests/boundary/cli/jebCli.test.ts (+22 -10)

📄 Description

Summary

An invalid JEB-only timeout such as REA_JEB_MCP_TIMEOUT_MS=1.5 must disable JEB operations without aborting unrelated CLI discovery or production MCP startup. Preserve capabilities/providers output and MCP peer requests while JEB itself returns a typed configuration refusal.

Change and scope

Exclude the JEB-only setting at the shared AppConfig projection boundary. JEB composition continues to validate the original environment with its existing parser. Strict client-registration validation still rejects malformed deadlines before setup writes.

Retain the existing CLI boundary controls and add permanent acceptance tests against the built CLI and actual production stdio MCP. The CLI test requires the unrelated artifact-provider inventory to survive; the MCP test initializes, discovers the JEB tool, verifies its typed refusal, and pings successfully before and after it. Fixtures own their isolated HOME/USERPROFILE/config directories and close their processes/transports.

Three files. No protocol/schema, dependency, package, analysis-engine behavior, transport timeout or target-authority change. Routine fix within existing contribution scope; no separate capability decision applies. No separate issue was opened because this focused defect is reproduced here.

Evidence and validation

Windows x64, Node 24.18.0 / npm 11.16.0. Head 1a211faff745a952144a4a924cd0f0314ad9978e, original correction 84664cd on main 22ec8bd.

  • Original CLI boundary regression before the production fix: 1 failed / 3 passed.
  • New built CLI/production stdio MCP acceptance cases with only parseConfig restored to unmodified base production: 2/2 failed. CLI discovery exited 1; the MCP initialization connection closed. Fixed production was restored byte-for-byte afterward.
  • Final JEB adapter, CLI boundary and acceptance selection: 24 passed. Final strengthened public acceptance assertions: 2/2 passed.
  • Targeted existing setup acceptance: 1 passed / 9 intentionally filtered out; malformed JEB timeout was rejected before config/backup creation.
  • npm run check: 6/6 tasks plus architecture guards passed, zero lint errors.
  • npm run verify:test-discovery: all 1,318 test files discovered exactly once.
  • git diff --check passed; tracked worktree clean after commit.

The public cases use syntax-invalid JEB configuration, so no JEB endpoint connection, analysis engine or target execution is requested. No real JEB engine qualification is claimed. Invalid shared settings and valid budget propagation were also covered by the earlier public probes and registration tests.

CI and verification limits

The original 84664cd CI run 38692939328 passed all five shards, source/static/build/portable and native package baselines, but failed the unchanged Windows native verifier's PowerShell ACL query at its 15,000 ms timeout. A transient runner delay remains a hypothesis. An attempted failed-job rerun returned 403 (repository admin required).

Using that run's native-controls/fixture archives, both GitHub archive digests and repository manifest/ABI/PE/artifact checks passed. The original full Windows native conformance command then passed locally, including ACL and process controls. No timeout or assertion was relaxed. Current-head CI run 38721961368 completed successfully on 1a211faff745a952144a4a924cd0f0314ad9978e (19 successful checks, 16 configured skips); its required merge gate passes. The local Windows evidence above is retained with its stated scope.

An earlier expanded configuration/setup run had 93 passed / 3 failed; all three failures also reproduced against unmodified base production (Windows Hopper path expectations and the OpenCode layered no-op assertion). That full selection is not claimed green or rerun on this test-only follow-up.

Author readiness

Human owner: @ShuaixinHuang

  • 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

  • Focused reproduced defect and existing optional-provider isolation contract.
  • Regression coverage, direct CLI/MCP observations, and baseline failures recorded.
  • Current-head required CI passes.
  • Human initial-readiness declaration is complete.

🔄 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/3964 **Author:** [@ShuaixinHuang](https://github.com/ShuaixinHuang) **Created:** 10/15/2026 **Status:** ✅ Merged **Merged:** 10/15/2026 **Merged by:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Base:** `main` ← **Head:** `codex/fix-jeb-timeout-isolation` --- ### 📝 Commits (2) - [`84664cd`](https://github.com/morluto/rea/commit/84664cd9b91e38af43eca194b043785d7d4438d8) fix(jeb): isolate invalid timeout from shared startup - [`1a211fa`](https://github.com/morluto/rea/commit/1a211faff745a952144a4a924cd0f0314ad9978e) test(jeb): verify configuration isolation through public adapters ### 📊 Changes **3 files changed** (+124 additions, -11 deletions) <details> <summary>View changed files</summary> 📝 `src/config/parseConfig.ts` (+6 -1) ➕ `tests/acceptance/providers/jebConfigurationIsolation.test.ts` (+96 -0) 📝 `tests/boundary/cli/jebCli.test.ts` (+22 -10) </details> ### 📄 Description ## Summary An invalid JEB-only timeout such as `REA_JEB_MCP_TIMEOUT_MS=1.5` must disable JEB operations without aborting unrelated CLI discovery or production MCP startup. Preserve `capabilities`/`providers` output and MCP peer requests while JEB itself returns a typed configuration refusal. ## Change and scope Exclude the JEB-only setting at the shared AppConfig projection boundary. JEB composition continues to validate the original environment with its existing parser. Strict client-registration validation still rejects malformed deadlines before setup writes. Retain the existing CLI boundary controls and add permanent acceptance tests against the built CLI and actual production stdio MCP. The CLI test requires the unrelated artifact-provider inventory to survive; the MCP test initializes, discovers the JEB tool, verifies its typed refusal, and pings successfully before and after it. Fixtures own their isolated HOME/USERPROFILE/config directories and close their processes/transports. Three files. No protocol/schema, dependency, package, analysis-engine behavior, transport timeout or target-authority change. Routine fix within existing contribution scope; no separate capability decision applies. No separate issue was opened because this focused defect is reproduced here. ## Evidence and validation Windows x64, Node 24.18.0 / npm 11.16.0. Head `1a211faff745a952144a4a924cd0f0314ad9978e`, original correction `84664cd` on main `22ec8bd`. - Original CLI boundary regression before the production fix: **1 failed / 3 passed**. - New built CLI/production stdio MCP acceptance cases with only parseConfig restored to unmodified base production: **2/2 failed**. CLI discovery exited 1; the MCP initialization connection closed. Fixed production was restored byte-for-byte afterward. - Final JEB adapter, CLI boundary and acceptance selection: **24 passed**. Final strengthened public acceptance assertions: **2/2 passed**. - Targeted existing setup acceptance: **1 passed / 9 intentionally filtered out**; malformed JEB timeout was rejected before config/backup creation. - `npm run check`: **6/6 tasks plus architecture guards passed**, zero lint errors. - `npm run verify:test-discovery`: **all 1,318 test files discovered exactly once**. - `git diff --check` passed; tracked worktree clean after commit. The public cases use syntax-invalid JEB configuration, so no JEB endpoint connection, analysis engine or target execution is requested. No real JEB engine qualification is claimed. Invalid shared settings and valid budget propagation were also covered by the earlier public probes and registration tests. ## CI and verification limits The original `84664cd` CI run [38692939328](https://github.com/morluto/rea/actions/runs/38692939328) passed all five shards, source/static/build/portable and native package baselines, but failed the unchanged Windows native verifier's PowerShell ACL query at its 15,000 ms timeout. A transient runner delay remains a hypothesis. An attempted failed-job rerun returned 403 (repository admin required). Using that run's native-controls/fixture archives, both GitHub archive digests and repository manifest/ABI/PE/artifact checks passed. The original full Windows native conformance command then passed locally, including ACL and process controls. No timeout or assertion was relaxed. Current-head [CI run 38721961368](https://github.com/morluto/rea/actions/runs/38721961368) completed successfully on `1a211faff745a952144a4a924cd0f0314ad9978e` (19 successful checks, 16 configured skips); its required merge gate passes. The local Windows evidence above is retained with its stated scope. An earlier expanded configuration/setup run had **93 passed / 3 failed**; all three failures also reproduced against unmodified base production (Windows Hopper path expectations and the OpenCode layered no-op assertion). That full selection is not claimed green or rerun on this test-only follow-up. ## Author readiness Human owner: @ShuaixinHuang - [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] Focused reproduced defect and existing optional-provider isolation contract. - [x] Regression coverage, direct CLI/MCP observations, and baseline failures recorded. - [ ] Current-head required CI passes. - [x] Human initial-readiness declaration is complete. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:10:48 +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#5967
No description provided.