[PR #5152] [MERGED] fix(hermes): preserve external YAML anchor consumers #6786

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

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/5152
Author: @xu91102
Created: 10/19/2026
Status: ✅ Merged
Merged: 10/27/2026
Merged by: @morluto

Base: main ← Head: codex/hermes-anchor-consumers


📝 Commits (10+)

  • 79eb0d8 fix(hermes): preserve consumers of anchored registrations
  • 30e8770 fix(hermes): integrate anchor preservation with current configuration owners
  • 96a100c test(hermes): assert retained alias object identity
  • 9468c1d fix(hermes): preserve removed keys and surviving alias owners
  • baea656 Merge branch 'main' into codex/hermes-anchor-consumers
  • c146112 Merge main and preserve Hermes anchor consumers
  • d0f5714 test(cli): restore retained-view cancellation phase coverage
  • 8c5edbf fix(setup): retain copied Hermes anchor comments
  • a880580 fix(hermes): preserve shared owner through main integration
  • c556ffa chore(hermes): reverse incidental merge hook changes

📊 Changes

7 files changed (+673 additions, -49 deletions)

View changed files

📝 docs/client-configuration.md (+6 -4)
➕ src/application/HermesConfigurationAliases.ts (+192 -0)
📝 src/application/HermesConfigurationYaml.test.ts (+248 -0)
📝 src/application/HermesConfigurationYaml.ts (+11 -30)
➕ tests/acceptance/setup/hermesAnchoredEntrySetup.test.ts (+156 -0)
📝 tests/boundary/cli/nativePlistCli.test.ts (+1 -0)
📝 tests/process-global/commandFinalizationCancellation.test.ts (+59 -15)

📄 Description

Summary

Fixes #3325. Preserve external Hermes YAML aliases when setup replaces or uninstall removes REA definitions. One shared planner preserves key/value and nested anchors, original/live bindings, shared copies, reused-name isolation and definition/consumer comments. Identity, transaction, lock and backup ownership remain unchanged.

Current integration

Normally merged main bb17e90f27dc8908c1c91c05055679678768c266 after the PR became genuinely conflicting. Keep main's #7022 prepared projection owner and its shared admission budget, including the five Cutter finalization controls. Preserve the cancellation test's independent uninterrupted full-Evidence reference, complete partial equality, real resolver calls,130/143 exits, typed primary errors and actual descriptor/file/listener cleanup. Semantic reference/assertion helpers meet the repository function-size rule without removing assertions or changing production cancellation, timeouts, retries or skips.

Main's other owners, OpenCode/dialects and prior canonical fixture fixes remain authoritative. No parallel production owner, schema, dependency or workflow change relative to main; no source-adoption credit is claimed.

Validation

  • 269 PASS / 12 distinct files / 2 existing Windows skips: eleven focused files passed 260 tests, then the final cancellation file's 25 replace the overlapping 25; the other ten files' 235 have unchanged inputs. Nine README tests ran fresh. The final state was not a fresh rerun of all eleven files; older results and runtime calls are not accumulated.
  • Full check passes, including type/format/lint, production reachability and typed lint; documentation checks pass and all 2467 test files are discovered once. Both earlier function-size failures are retained in the local evidence.
  • New installed-package verification: 227 tools / 6 prompts, exact update, verified process lineage and awaited cleanup; explicit pack dry-run passes.
  • Fresh tarball 3d4d00a09c50b021ea49cd17b36a6d1db33aec61a89062e6bae5e1c84de34d47: all 2383 installed/current/archive product files match. Eight YAML 1.1/1.2 layouts complete 40 installed CLI lifecycle calls; 24 snapshots pass 48 fixed official Hermes reader/pure-fallback reads, with exact backups, repeat stability, notes once and shared identity. These executions bind this integrated source, not the prior d87 package.
  • Independent frozen Standards and Spec: PASS / PASS. Normal hooks and full source/index/gitlink/evidence/package gates pass before push and after push. Current head 902fa53e27290f3941817d84e02efb62b2765008.

Verification limits

New-head upstream CI and Codex are tracked separately; local acceptance does not establish remote approval. Configuration readers and REA MCP do not establish full Hermes agent/model/stdio-client behavior. External peers/providers, full native engines/real applications, other-host local workflows and performance remain NOT RUN. Prior bounded native MCP results are not transferred to this integrated main.

Author readiness

Human owner: @xu91102

  • 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/5152 **Author:** [@xu91102](https://github.com/xu91102) **Created:** 10/19/2026 **Status:** ✅ Merged **Merged:** 10/27/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `codex/hermes-anchor-consumers` --- ### 📝 Commits (10+) - [`79eb0d8`](https://github.com/morluto/rea/commit/79eb0d82b07ae2655bbf72a41c75cf7edece7aee) fix(hermes): preserve consumers of anchored registrations - [`30e8770`](https://github.com/morluto/rea/commit/30e8770c3810c7bb7ee3f7b3db5bb605f7377184) fix(hermes): integrate anchor preservation with current configuration owners - [`96a100c`](https://github.com/morluto/rea/commit/96a100c305ebb0a4059cfcca037e104edffa8e33) test(hermes): assert retained alias object identity - [`9468c1d`](https://github.com/morluto/rea/commit/9468c1db7d50bfebfbb855f824596bd1c8411b6f) fix(hermes): preserve removed keys and surviving alias owners - [`baea656`](https://github.com/morluto/rea/commit/baea65630bcccb0052fb380bee896576ff21e682) Merge branch 'main' into codex/hermes-anchor-consumers - [`c146112`](https://github.com/morluto/rea/commit/c14611252786b4fa7a40b12eb45ce40db3c2819a) Merge main and preserve Hermes anchor consumers - [`d0f5714`](https://github.com/morluto/rea/commit/d0f57143a9bd5fdd00f8e87565ffcb91124f569a) test(cli): restore retained-view cancellation phase coverage - [`8c5edbf`](https://github.com/morluto/rea/commit/8c5edbff1de9b2d01db77e7d89dc26e79c5dbbae) fix(setup): retain copied Hermes anchor comments - [`a880580`](https://github.com/morluto/rea/commit/a880580c2f94aaf0abeb5003876b781401449682) fix(hermes): preserve shared owner through main integration - [`c556ffa`](https://github.com/morluto/rea/commit/c556ffabe9683e7e1c75d2c97117632bc4ebb134) chore(hermes): reverse incidental merge hook changes ### 📊 Changes **7 files changed** (+673 additions, -49 deletions) <details> <summary>View changed files</summary> 📝 `docs/client-configuration.md` (+6 -4) ➕ `src/application/HermesConfigurationAliases.ts` (+192 -0) 📝 `src/application/HermesConfigurationYaml.test.ts` (+248 -0) 📝 `src/application/HermesConfigurationYaml.ts` (+11 -30) ➕ `tests/acceptance/setup/hermesAnchoredEntrySetup.test.ts` (+156 -0) 📝 `tests/boundary/cli/nativePlistCli.test.ts` (+1 -0) 📝 `tests/process-global/commandFinalizationCancellation.test.ts` (+59 -15) </details> ### 📄 Description ## Summary Fixes #3325. Preserve external Hermes YAML aliases when setup replaces or uninstall removes REA definitions. One shared planner preserves key/value and nested anchors, original/live bindings, shared copies, reused-name isolation and definition/consumer comments. Identity, transaction, lock and backup ownership remain unchanged. ## Current integration Normally merged main `bb17e90f27dc8908c1c91c05055679678768c266` after the PR became genuinely conflicting. Keep main's #7022 prepared projection owner and its shared admission budget, including the five Cutter finalization controls. Preserve the cancellation test's independent uninterrupted full-Evidence reference, complete partial equality, real resolver calls,130/143 exits, typed primary errors and actual descriptor/file/listener cleanup. Semantic reference/assertion helpers meet the repository function-size rule without removing assertions or changing production cancellation, timeouts, retries or skips. Main's other owners, OpenCode/dialects and prior canonical fixture fixes remain authoritative. No parallel production owner, schema, dependency or workflow change relative to main; no source-adoption credit is claimed. ## Validation - **269 PASS / 12 distinct files / 2 existing Windows skips**: eleven focused files passed 260 tests, then the final cancellation file's 25 replace the overlapping 25; the other ten files' 235 have unchanged inputs. Nine README tests ran fresh. The final state was not a fresh rerun of all eleven files; older results and runtime calls are not accumulated. - Full check passes, including type/format/lint, production reachability and typed lint; documentation checks pass and all 2467 test files are discovered once. Both earlier function-size failures are retained in the local evidence. - New installed-package verification: **227 tools / 6 prompts**, exact update, verified process lineage and awaited cleanup; explicit pack dry-run passes. - Fresh tarball `3d4d00a09c50b021ea49cd17b36a6d1db33aec61a89062e6bae5e1c84de34d47`: all **2383 installed/current/archive product files** match. Eight YAML 1.1/1.2 layouts complete 40 installed CLI lifecycle calls; 24 snapshots pass 48 fixed official Hermes reader/pure-fallback reads, with exact backups, repeat stability, notes once and shared identity. These executions bind this integrated source, not the prior d87 package. - Independent frozen Standards and Spec: **PASS / PASS**. Normal hooks and full source/index/gitlink/evidence/package gates pass before push and after push. Current head `902fa53e27290f3941817d84e02efb62b2765008`. ## Verification limits New-head upstream CI and Codex are tracked separately; local acceptance does not establish remote approval. Configuration readers and REA MCP do not establish full Hermes agent/model/stdio-client behavior. External peers/providers, full native engines/real applications, other-host local workflows and performance remain NOT RUN. Prior bounded native MCP results are not transferred to this integrated main. ## Author readiness Human owner: @xu91102 - [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 - [ ] 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. - [x] Tests cover changed observable behavior and meaningful failure paths. - [ ] 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:43:02 +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#6786
No description provided.