feat(commands): add versioned semantic catalog contract - #97143
Open
andrexibiza wants to merge 1 commit into
Open
andrexibiza wants to merge 1 commit into
andrexibiza wants to merge 1 commit into
Conversation
andrexibiza
force-pushed
the
commands/pr1-versioned-catalog
branch
from
August 28, 2026 12:30
de43063 to
b9642e0
Compare
Project the canonical COMMAND_REGISTRY into one immutable, JSON-safe command schema with canonical IDs, alias-preserving resolution, deterministic revision fingerprints, and fail-closed collision validation for later dynamic contributors. Preserve OutThisLife's merged NousResearch#96791 ownership by deriving Desktop metadata through command_desktop_meta(), so the catalog carries the shipped effective argument-mode contract instead of forcing clients to repeat its inference. Refs NousResearch#96692
andrexibiza
force-pushed
the
commands/pr1-versioned-catalog
branch
from
August 28, 2026 17:46
b9642e0 to
51e9e86
Compare
Author
|
Exact-object completion receipt after the branch rewrite and hosted rerun:
I also repaired the PR body so the superseded |
This was referenced Aug 28, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Implements PR 1 — the versioned semantic catalog contract under #96692 without creating a second executable slash-command registry.
hermes_cli.commands.COMMAND_REGISTRYremains the canonical owner of core names, aliases, descriptions, availability, busy policy, execution keys, and Desktop projection metadata. This slice projects that owner into one immutable, JSON-safe semantic object with canonical command identity, alias-preserving resolution, deterministic catalog revision, and fail-closed collision validation. It changes no production dispatch path and grants no new execution authority.Invariant
Related Issue
Part of #96692 — Unified slash-command registry and execution contract across every Hermes surface.
This PR does not close #96692; it is the first production-code primitive in that ordered migration.
Prior work / provenance
command_desktop_meta().Exact submitted object
00bbfc690060d1323ddb2f065297c7425cb71c2651e9e866d42723870613b22c3c443f2569b0a8943d08d4acf6b8aa308805423412676d0cef51d6efCurrent-main reconciliation
Live
mainat this reconciliation is3f36c87e1ebdfbf7d14a88229dc9be222c12ea89, 169 commits beyond the construction parent. The complete main-only interval remains path-disjoint from both submitted paths (hermes_cli/command_catalog.py,tests/hermes_cli/test_command_catalog.py). GitHub's live PR object reportsmergeable=true,rebaseable=true,mergeable_state=clean; no churn-only restack is required by the current landing edge.Changes Made
hermes_cli/command_catalog.py(206 lines): immutableCommandSpec/CommandCatalog, schema version 2, deterministic SHA-256 revision, canonical core IDs, alias-preserving resolution, explicit future-contribution normalization, and fail-closed duplicate-ID/token collision validation.tests/hermes_cli/test_command_catalog.py(111 lines): deterministic serialization/revision, alias identity, one projection per canonical registry entry, JSON safety, preservation of busy/execution/argument-mode/Desktop metadata, revision change on valid contribution, and refusal of missing identity / duplicate IDs / name-alias collisions.Deliberate scope boundary
This PR does not replace
commands.catalog, add a new transport, add normalized invocation/result types, perform context-scoped runtime discovery, define override authority, migrate any client/platform surface, or delete compatibility paths. Those are later slices after this identity/generation boundary is accepted.Verification
Current exact-head hosted acceptance for
51e9e866d42723870613b22c3c443f2569b0a894:33196230005— SUCCESS33196229237— SUCCESS33196229259— SUCCESSThere is exactly one surviving submitted commit, so the every-commit execution gate is satisfied for the current object. No producer-authored review or independent acceptance is claimed.
Checklist
Code
Documentation & Housekeeping
Acceptance state
The old
b9642e…failed-CI state is superseded by the current one-commit object above and must not be used as the acceptance state for this PR.