[PR #1562] [MERGED] fix(setup): reject invalid OMP profiles before fallback writes #2973

Closed
opened 2026-10-17 21:12:24 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

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

Base: main ← Head: fix/omp-invalid-profile-20261010


📝 Commits (1)

  • 4379faf fix(setup): reject invalid OMP profiles before fallback writes

📊 Changes

6 files changed (+638 additions, -30 deletions)

View changed files

📝 docs/testing.md (+17 -0)
📝 package.json (+1 -0)
➕ scripts/verify-omp-client.mjs (+441 -0)
📝 src/application/SupportedClients.ts (+66 -29)
➕ tests/acceptance/setup/ompClientSetup.test.ts (+112 -0)
📝 tests/boundary/filesystem/ompClientConfiguration.test.ts (+1 -1)

📄 Description

OMP refuses to start with an invalid active profile, but REA previously planned writes to the default agent configuration. Setup now blocks that selection before planning or writing files, and doctor reports the profile constraint instead of inspecting a fallback location.

Preserve OMP_PROFILE precedence over PI_PROFILE, including empty/default selections. Match OMP's lowercase/length/trailing-dot rules and Windows reserved names, which OMP rejects on POSIX too. Return expected path failures through the existing invalid-registration pipeline; unrelated clients remain configurable.

Add an optional native OMP verification lane using the default xd:// device interface. It checks guarded setup, preserved registrations/backups, idempotence, complete catalog mounting, full skill loading and named-schema JavaScript Evidence delivered to the next model turn. This interface advertises device metadata/documentation rather than forwarding every JSON schema as a model function.

Validation:

  • Focused public CLI/configuration regressions: 73 OMP/Pi/registration tests, 15 existing Hermes tests and 4 OMP filesystem tests passed.
  • npm run check:fast passed.
  • Official OMP 18.8.7 Linux x64: source ordinary chat and actual skill/tool/analysis flows passed against a loopback OpenAI completions/SSE fixture; no residual descendants in the captured receipts.
  • Production-only package: ordinary chat and actual skill/tool/analysis flows also passed. All four source/package receipts show an empty descendant list, and a Linux run-token scan found no remaining client/server processes.

The model fixture declares a one-million-token context with synthetic inference/usage. Live model APIs, native Windows, native named-profile execution and default OS-home skill discovery remain unverified. No Hopper/Ghidra verification was performed; their providers are unchanged.

Closes #1561.


🔄 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/1562 **Author:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Created:** 10/10/2026 **Status:** ✅ Merged **Merged:** 10/10/2026 **Merged by:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Base:** `main` ← **Head:** `fix/omp-invalid-profile-20261010` --- ### 📝 Commits (1) - [`4379faf`](https://github.com/morluto/rea/commit/4379faf8f8596b0c4e8edc9f954188b4c31f525d) fix(setup): reject invalid OMP profiles before fallback writes ### 📊 Changes **6 files changed** (+638 additions, -30 deletions) <details> <summary>View changed files</summary> 📝 `docs/testing.md` (+17 -0) 📝 `package.json` (+1 -0) ➕ `scripts/verify-omp-client.mjs` (+441 -0) 📝 `src/application/SupportedClients.ts` (+66 -29) ➕ `tests/acceptance/setup/ompClientSetup.test.ts` (+112 -0) 📝 `tests/boundary/filesystem/ompClientConfiguration.test.ts` (+1 -1) </details> ### 📄 Description OMP refuses to start with an invalid active profile, but REA previously planned writes to the default agent configuration. Setup now blocks that selection before planning or writing files, and doctor reports the profile constraint instead of inspecting a fallback location. Preserve `OMP_PROFILE` precedence over `PI_PROFILE`, including empty/default selections. Match OMP's lowercase/length/trailing-dot rules and Windows reserved names, which OMP rejects on POSIX too. Return expected path failures through the existing invalid-registration pipeline; unrelated clients remain configurable. Add an optional native OMP verification lane using the default `xd://` device interface. It checks guarded setup, preserved registrations/backups, idempotence, complete catalog mounting, full skill loading and named-schema JavaScript Evidence delivered to the next model turn. This interface advertises device metadata/documentation rather than forwarding every JSON schema as a model function. Validation: - Focused public CLI/configuration regressions: 73 OMP/Pi/registration tests, 15 existing Hermes tests and 4 OMP filesystem tests passed. - `npm run check:fast` passed. - Official OMP 18.8.7 Linux x64: source ordinary chat and actual skill/tool/analysis flows passed against a loopback OpenAI completions/SSE fixture; no residual descendants in the captured receipts. - Production-only package: ordinary chat and actual skill/tool/analysis flows also passed. All four source/package receipts show an empty descendant list, and a Linux run-token scan found no remaining client/server processes. The model fixture declares a one-million-token context with synthetic inference/usage. Live model APIs, native Windows, native named-profile execution and default OS-home skill discovery remain unverified. No Hopper/Ghidra verification was performed; their providers are unchanged. Closes #1561. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-17 21:12:24 +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#2973
No description provided.