feat(cli): restructure CLI around session/checkpoint/agent/auth/doctor#1062
feat(cli): restructure CLI around session/checkpoint/agent/auth/doctor#1062gtrrz-victor merged 12 commits intomainfrom
Conversation
Reorganize the flat top-level command surface around four noun groups
(session, checkpoint, agent, doctor) so users can discover and reason
about commands the way they think about the work — by domain noun,
not verb.
Phase 1 is purely additive:
- 4 new noun groups with sub-commands
- 8 new sub-commands: session current, agent {list,add,remove},
checkpoint {list,show,diff}, doctor {logs,bundle}
- All previous top-level verbs (rewind, resume, attach, explain,
trace, search) remain registered as silent permanent aliases
- configure prints a one-time deprecation warning pointing to agent
- sessions stays as a Cobra alias of session
No prior invocation breaks. Full implementation tracked in #1061.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: da43eccbd366
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit c410989. Configure here.
There was a problem hiding this comment.
Pull request overview
Phase 1 of the CLI noun-group restructure for Entire, reorganizing the command surface around domain nouns (session, checkpoint, agent, doctor) while keeping backwards-compatible top-level entrypoints.
Changes:
- Introduces new noun-group parent commands (
session,checkpoint,agent,doctor) and wires them intoroot.go. - Adds new subcommands/features:
session current,checkpoint diff,doctor logs,doctor bundle, plus anagentCRUD group. - Adds one-time deprecation warning plumbing for deprecated aliases (e.g.
configure→agent) and updates docs/help text.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 16 comments.
Show a summary per file
| File | Description |
|---|---|
| cmd/entire/cli/setup.go | Emits one-time deprecation warning when using configure. |
| cmd/entire/cli/sessions.go | Renames command to session (keeps sessions alias) and registers new children. |
| cmd/entire/cli/session_current.go | Adds entire session current command. |
| cmd/entire/cli/root.go | Wires noun groups, keeps top-level compatibility commands, updates Getting Started text. |
| cmd/entire/cli/doctor_logs.go | Adds entire doctor logs (tail/follow operational log). |
| cmd/entire/cli/doctor_bundle.go | Adds entire doctor bundle (zip diagnostic bundle). |
| cmd/entire/cli/doctor.go | Registers trace/logs/bundle as doctor subcommands. |
| cmd/entire/cli/checkpoint_group.go | Adds entire checkpoint group with list/show/rewind/search/diff. |
| cmd/entire/cli/checkpoint_diff.go | Implements entire checkpoint diff. |
| cmd/entire/cli/aliascmd.go | Adds one-time deprecation warning helper. |
| cmd/entire/cli/agent_group.go | Adds entire agent group with list/add/remove. |
| CLAUDE.md | Documents the new command layout. |
#1061) Phase 2 of the noun-group restructure: - Hide 'configure' from --help (still functional, prints one-time deprecation pointing at 'entire agent'). 'reset' was already hidden by Cobra's Deprecated field. - Refresh user-facing hints across attach, summary-provider picker, enabled-status, and the manage-agents non-interactive error to point at 'entire agent ...' instead of 'entire configure --agent ...'. - Add tests for the Phase 1 surface: - aliascmd warnDeprecatedAliasOnce (prints exactly once per pair) - computeCheckpointDiff (file delta, token delta, identical, nil tokens) - readLastNLines + printTail (tail behavior, n=0 copies all) - writeDoctorBundle (zip contents, omits absent logs/) - runAgentList (lists registered agents, marks installed) - session current (no-session hint, not-a-repo error) - Update one existing setup test that asserted the old hint text. No prior invocation breaks. Configure and reset remain callable. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Entire-Checkpoint: 55878d5f1d9c
|
Phase 2 added (still draft, additive):
Lint + unit + integration + Vogon canary all green. Zero prior-invocation breakage. |
Entire-Checkpoint: b66144f4f8aa
Entire-Checkpoint: e150dedd9c09
Entire-Checkpoint: 45f8833a1843
Configure stays as the home for telemetry, git-hook installation mode, strategy options, and summary provider — bare invocation now prints help and points at `entire agent` for agent CRUD. Drops `--agent`, `--remove`, and `--yes` from configure since those belong on `entire agent` / `entire enable`. Adds `updateGlobalSettings` so telemetry / hook mode / --force can persist (and reinstall the git hook when relevant) without running the agent picker. Top-level `rewind`, `resume`, `attach`, `explain`, `trace` are now hidden shortcuts that emit a one-line cobra deprecation hint pointing at the canonical group command. Replaces `checkpoint show` with the full `checkpoint explain` command. Test/e2e helpers (`testenv.go`, `e2e/entire/entire.go`, explain/attach tests) now invoke canonical commands so output is hint-free. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Entire-Checkpoint: b1309907bec7
Previously `entire configure --telemetry=false` on an un-enabled repo fell through to LoadFromFile and surfaced a raw "failed to load settings" error. Now it exits early with a hint to run `entire enable` first. Adds a regression test. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Entire-Checkpoint: 0ec01fa3de40
|
Follow-up commits on
Verification: |
Out of scope for the noun-group restructure. Removes the command, its test, and references in CLAUDE.md / README.md / checkpoint group help. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Entire-Checkpoint: cd2c819b91b0
Hidden subcommand of `entire enable` had no callers — no scripts, tests, hooks, or docs invoked it. Functionality is fully covered by `entire configure --force` / `--absolute-git-hook-path`. Drops the constructor, its RunE helper, and the CLAUDE.md mention. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
aee3b75 to
bb486ec
Compare
Bundle previously zipped raw logs and settings.local.json — credentials
in agent logs or checkpoint_remote URLs ended up in the file users send
to support. Only the git command outputs were scrubbed.
Now every text entry routes through the redact package before zipping:
JSON / JSONL via redact.JSONLContent (preserves structure, skips IDs),
everything else via redact.Bytes. --raw opts out for support cases that
need the full payload.
Help text and a stderr banner ("Bundle written (redacted): <path>" /
"... (RAW — contains unredacted contents): ...") make the active mode
unmissable. Bundle path stays on stdout so script consumers keep working.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Entire-Checkpoint: 6561e7636817
|
Addresses Soph's bundle review: redacted by default;
Verification: |

https://entire.io/gh/entireio/cli/trails/250
Summary
Reorganizes the flat top-level CLI around noun groups. The command layout now has five domain groups:
session,checkpoint,agent,auth, anddoctor, plusconfigurefor non-agent settings.Compatibility policy:
sessions,cp,checkpoints).rewind,resume,attach,explain,trace) stay registered but are hidden and emit a one-line cobra deprecation hint pointing at the canonical group command. They cannot be Cobra aliases because Cobra aliases must share a parent.entire configureis the home for non-agent settings (telemetry, git-hook mode, strategy options, summary provider). Agent CRUD lives underentire agent. Bareentire configureprints help and a hint toentire agent.Closes #1061 once shipped.
Final Command Layout
What Changed
cmd/entire/cli/root.go, group roots in<noun>_group.go).entire configurekeeps non-agent settings (--telemetry,--absolute-git-hook-path,--force,--checkpoint-remote,--skip-push-sessions,--summarize-provider,--summarize-model,--local-dev). Drops--agent,--remove,--yes(those move toentire agent/entire enable).entire configureprints help + a hint pointing atentire agent. On a fresh, un-enabled repo it exits early withRun 'entire enable' first.instead of failing inside settings load.updateGlobalSettingshelper persists telemetry / hook-mode flags and reinstalls the Entire git hook when--force/--absolute-git-hook-path/--local-devis set.hideAsAlias(cmd, canonical)helper centralises the Hidden + cobraDeprecatedwiring used by the top-level shortcuts.checkpoint showis replaced bycheckpoint explain(the full explain command).sessions,cp,checkpoints) keep working with no hint; regression test prevents accidental duplicate-root registration.aliascmd_test.gocovershideAsAlias;setup_test.gocovers bare-configure help + hint, removed-flag guards, telemetry persistence, conditional hook reinstall, and fresh-repo guard.integration_test/testenv.go,e2e/entire/entire.go, explain/attach/resume tests) now invoke canonical commands so output stays hint-free.CLAUDE.mdandREADME.md.Verification
mise run check(fmt + lint + unit + integration + Vogon/Roger canary E2E)go test ./cmd/entire/cli/ -count=1go test -tags integration ./cmd/entire/cli/integration_test/ -count=1mise run test:e2e:canary(58 vogon + 4 roger-roger, all green)Notes:
rewind/resume/attach/explain/traceremain functional; cobra emits a deprecation message on stderr each invocation. Update scripts to the canonicalentire <group> <verb>form to silence the hint.