Skip to content

refactor: split the CLI command table into CLI/Commands (INC-494) - #545

Merged
arzafran merged 1 commit into
mainfrom
franco/inc-494-cli-table
Nov 4, 2026
Merged

arzafran merged 1 commit into
mainfrom
franco/inc-494-cli-table

Conversation

@arzafran

@arzafran arzafran commented Nov 4, 2026

Copy link
Copy Markdown
Member

The CLI behaves the same as before, with one exception: clear-notifications --help now says it clears the current workspace unless --window is given.

commandDescriptors() was a single 2,722-line function. It is now a short assembler, and the descriptors live in nine files under CLI/Commands. Codex config handling moved out of CLI+Hooks.swift into CLI+CodexConfig.swift.

29 legacy validation arms moved onto descriptor grammars. 10 remain (their descriptors are in CLI+Tree, CLI+HookCommands and CLI+TmuxCompat); that is tracked as a follow-up. The command table is now built once per process instead of up to three times.

Before rebasing onto main, a 288-case help and error diff against main matched except for clear-notifications. After the rebase the build succeeds and the help text from #542 (--password-stdin, "without focusing") is still present. Structural caps for CLI/programa.swift (3200) and CLI/CLI+Hooks.swift (2600) are lowered to match.

Linear: INC-494

@arzafran
arzafran merged commit 02a0094 into main Nov 4, 2026
12 checks passed
@arzafran
arzafran deleted the franco/inc-494-cli-table branch November 4, 2026 22:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant