You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Derive PUBLIC_COMMANDS, INTERNAL_COMMANDS, local CLI names, and platform dispatch command coverage from CommandDescriptor facets.
This removes the live hand-maintained command catalog tables and the manual DispatchCommand union. Dispatch-only aliases such as read and swipe-preset are now explicit descriptor aliases, command-family metadata is coherence-guarded against the descriptor CLI catalog, and ADR 0008/CONTEXT now record the completed registry state.
Follow-up: public Node-client typed-result narrowing is tracked in #1153 because several remaining methods need public contract moves before they can safely stop returning CommandRequestResult.
Validation
pnpm format
pnpm check:quick
pnpm check:layering
pnpm exec vitest run src/core/command-descriptor/tests/parity.test.ts src/core/command-descriptor/tests/timeout-policy.test.ts src/core/command-descriptor/tests/post-action-observation.test.ts src/commands/tests/command-surface-metadata.test.ts src/cli/commands/tests/client-backed.test.ts src/utils/tests/command-schema-guards.test.ts
Reviewed PR #1151 against ADR 0003/0008 and the command surface -> CLI router -> client invocation path. The change removes the catalog-owned client-backed predicate, derives routing from the command-family executable metadata used by runCommand, and leaves daemon registry ownership/predicates untouched. CI is green across 21/21 reported checks. No actionable blockers found.\n\nNote: the monitor guidance referenced plans/perfect-shape.md, but that file is absent from both origin/main and the PR ref, so this review used the PR body plus ADR 0003/0008 as source context.
The previous ready-for-human signal is stale after the new 1245094 commit. This PR is currently DIRTY against the base and only partial checks are reported, so I removed ready-for-human. I’ll re-review once the branch is clean and checks have completed.
Re-reviewed updated head 7158fc36 after the descriptor-rooted command identity change. The PR now derives public/internal/local CLI catalog names and the platform dispatch command set from descriptor facets, keeps daemon policy behind the existing daemon registry/predicate interface, and explicitly models dispatch-only aliases like read / swipe-preset without exposing them as CLI commands. Targeted parity/coherence tests cover catalog projections, dispatch handler registration, command-family metadata, schema-only local commands, and CI is green across 21/21 checks. No actionable blockers found.
New head c59054d is still running checks, so I removed the stale label for now. I’ll re-review/relabel once the new run is clean and the updated diff is ready for maintainer judgment.
Correction to the prior status comment: new head c59054d is still running checks, so I removed the stale ready-for-human label for now. I will re-review/relabel once the new run is clean and the updated diff is ready for maintainer judgment.
Re-reviewed updated head c59054d after checks completed. The latest delta keeps command identity descriptor-owned by deriving catalog records from descriptor catalog entries and by modeling dispatch-only aliases as named non-public descriptors. The dispatch handler map remains exhaustively typed from descriptor dispatch facets, and new parity tests guard descriptor-only commands from falling into the public catalog plus generic-route commands from missing dispatch coverage. CI is green across 21/21 checks. No actionable blockers found.
Note: monitor guidance still references plans/perfect-shape.md, but that file is absent from origin/main and this PR ref, so this review used the PR body plus ADR 0003/0008 context.
New head 0beb726 is still running iOS smoke, so I removed the stale ready-for-human label for now. I will re-review/relabel once the current run is fully clean.
Re-checked current head 0beb726 after the delayed iOS smoke completed. The only delta since the prior ready review is ADR wording plus a comment update in src/core/command-descriptor/derive.ts; descriptor/runtime behavior is unchanged, and CI is green across 21/21 checks. No actionable blockers found.
Re-checked current head 83b3646. The new delta makes catalog.group explicit on every descriptor, removes the implicit public fallback, and tightens the descriptor-only parity test accordingly. That moves the command identity model in the intended direction: new descriptors now have to declare public/internal/local/dispatch identity instead of becoming public by omission. CI is green across 21/21 checks. No actionable blockers found.
Preview removed because the pull request was closed.
2026-07-08 15:55 UTC
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
ready-for-humanValid work that needs human implementation, judgment, or maintainer merge
1 participant
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.
Summary
Derive PUBLIC_COMMANDS, INTERNAL_COMMANDS, local CLI names, and platform dispatch command coverage from CommandDescriptor facets.
This removes the live hand-maintained command catalog tables and the manual DispatchCommand union. Dispatch-only aliases such as read and swipe-preset are now explicit descriptor aliases, command-family metadata is coherence-guarded against the descriptor CLI catalog, and ADR 0008/CONTEXT now record the completed registry state.
Follow-up: public Node-client typed-result narrowing is tracked in #1153 because several remaining methods need public contract moves before they can safely stop returning CommandRequestResult.
Validation