[PR #5773] [MERGED] fix(ida): preserve registration recovery facts in readiness #7051

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

📋 Pull Request Information

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

Base: main ← Head: fix/5771-ida-registration-recovery


📝 Commits (1)

  • a0fd7a8 fix(ida): preserve registration recovery facts in readiness

📊 Changes

3 files changed (+126 additions, -26 deletions)

View changed files

📝 docs/ida-provider.md (+9 -0)
📝 src/ida/IdaProvider.test.ts (+77 -1)
📝 src/ida/IdaProvider.ts (+40 -25)

📄 Description

Fixes #5771. Started from latest main after #5768 merged.

Problem and expected behavior

An unreadable IDA registration already has a typed configuration error identifying REA_IDA_MCP_CONFIG, but provider readiness kept only its plain message and marked every failure configured: false. A real Codex trial queried status twice and still explicitly could not identify the setting. Preserve the owner's parsed recovery facts and distinguish selection from validity/readiness.

Change and scope

  • Project the existing typed configuration error once; retain its message, setting/constraint details and remediation in readiness diagnostics.
  • Preserve the caller-selected registration path. configured now consistently means a path is selected, matching doctor; it does not imply valid registration or a live connection.
  • Share common registration diagnostics across failure, available and private-workspace-refusal paths. No registration parsing, caching, connection, cleanup or target-authority changes.
  • Updated owning guide. Five new regression scenarios failed on the base and pass after the fix.

Contract and boundary impact

Semantic owner: IDA provider readiness consuming the configuration owner's canonical error projection. Existing unavailable statuses/codes remain; diagnostics are additive except correcting the misleading configured flag. CLI/MCP share the same selection/readiness path. No advertised input/output schema, generated metadata, package/install or Evidence change. Maintainer capability-scope decision: not applicable; ordinary diagnostics fix, no new execution/mutation authority.

Validation performed

  • npm run test:local -- src/ida/IdaProvider.test.ts src/ida/IdaConfiguration.test.ts src/ida/IdaDoctor.test.ts src/ida/IdaContainment.test.ts — 57 passed, including configuration/containment and no connection during readiness.
  • npm run test:focused -- src/ida/IdaNativeProtocol.test.ts src/ida/IdaStartupFailures.test.ts — 27 passed; 84 relevant tests total.
  • npm run check, npm run docs:check, pinned-toolchain build — passed; docs includes five readme consistency tests.
  • Actual production CLI and stdio MCP selected-IDA diagnostics parity — verified for an unreadable registration, without opening IDA.
  • Two real Codex CLI negative-recovery runs — both named REA_IDA_MCP_CONFIG, the caller-selected path and MCP launch-environment/restart action; two REA calls each (baseline four). This is a scoped observation, not a general success-rate/speed claim.
  • Independent Codex source review — no actionable bugs/regressions found. Real IDA engine/GUI analysis unavailable and not claimed. Test connection factories assert no connection during readiness.

Compatibility and safety

No target execution, GUI save/close, installation or config mutation. Registration selection, validity, provider availability and live connection remain separate. Only caller-selected path and existing safe typed configuration facts are retained; raw registration contents, headers and inherited environment are not added.

Author readiness

Human owner: @gensokyo-dev

The user explicitly directed ready-for-review submission and authorized continued work/merge; no separate human final-diff review is asserted.

  • 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/5773 **Author:** [@gensokyo-dev](https://github.com/gensokyo-dev) **Created:** 10/21/2026 **Status:** ✅ Merged **Merged:** 10/21/2026 **Merged by:** [@gensokyo-dev](https://github.com/gensokyo-dev) **Base:** `main` ← **Head:** `fix/5771-ida-registration-recovery` --- ### 📝 Commits (1) - [`a0fd7a8`](https://github.com/morluto/rea/commit/a0fd7a81c33c96a99fc8fed7b8a268ccf75960e9) fix(ida): preserve registration recovery facts in readiness ### 📊 Changes **3 files changed** (+126 additions, -26 deletions) <details> <summary>View changed files</summary> 📝 `docs/ida-provider.md` (+9 -0) 📝 `src/ida/IdaProvider.test.ts` (+77 -1) 📝 `src/ida/IdaProvider.ts` (+40 -25) </details> ### 📄 Description Fixes #5771. Started from latest main after #5768 merged. ## Problem and expected behavior An unreadable IDA registration already has a typed configuration error identifying `REA_IDA_MCP_CONFIG`, but provider readiness kept only its plain message and marked every failure `configured: false`. A real Codex trial queried status twice and still explicitly could not identify the setting. Preserve the owner's parsed recovery facts and distinguish selection from validity/readiness. ## Change and scope - Project the existing typed configuration error once; retain its message, setting/constraint details and remediation in readiness diagnostics. - Preserve the caller-selected registration path. `configured` now consistently means a path is selected, matching doctor; it does not imply valid registration or a live connection. - Share common registration diagnostics across failure, available and private-workspace-refusal paths. No registration parsing, caching, connection, cleanup or target-authority changes. - Updated owning guide. Five new regression scenarios failed on the base and pass after the fix. ## Contract and boundary impact Semantic owner: IDA provider readiness consuming the configuration owner's canonical error projection. Existing unavailable statuses/codes remain; diagnostics are additive except correcting the misleading configured flag. CLI/MCP share the same selection/readiness path. No advertised input/output schema, generated metadata, package/install or Evidence change. Maintainer capability-scope decision: not applicable; ordinary diagnostics fix, no new execution/mutation authority. ## Validation performed - `npm run test:local -- src/ida/IdaProvider.test.ts src/ida/IdaConfiguration.test.ts src/ida/IdaDoctor.test.ts src/ida/IdaContainment.test.ts` — **57 passed**, including configuration/containment and no connection during readiness. - `npm run test:focused -- src/ida/IdaNativeProtocol.test.ts src/ida/IdaStartupFailures.test.ts` — **27 passed**; 84 relevant tests total. - `npm run check`, `npm run docs:check`, pinned-toolchain build — passed; docs includes five readme consistency tests. - Actual production CLI and stdio MCP selected-IDA diagnostics parity — verified for an unreadable registration, without opening IDA. - Two real Codex CLI negative-recovery runs — both named `REA_IDA_MCP_CONFIG`, the caller-selected path and MCP launch-environment/restart action; two REA calls each (baseline four). This is a scoped observation, not a general success-rate/speed claim. - Independent Codex source review — no actionable bugs/regressions found. Real IDA engine/GUI analysis unavailable and not claimed. Test connection factories assert no connection during readiness. ## Compatibility and safety No target execution, GUI save/close, installation or config mutation. Registration selection, validity, provider availability and live connection remain separate. Only caller-selected path and existing safe typed configuration facts are retained; raw registration contents, headers and inherited environment are not added. ## Author readiness Human owner: @gensokyo-dev The user explicitly directed ready-for-review submission and authorized continued work/merge; no separate human final-diff review is asserted. - [ ] 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. - [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>
bsakaguchi 2026-11-01 21:44:59 +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#7051
No description provided.