skip to content
Replays

CLI Alias Updates

Compatibility Alias Surface

Resume and print spellings were added around Gantry's existing command model, with TUI naming work split out afterward.

Gantry milestones

2 milestones 9 tasks 23 agents

4 plan 9 execute 11 review 1 fix

174k peak context

113k median execute

Resume and print spellings were added around Gantry's existing command model, with TUI naming work split out afterward.

1h 14m total 5m 15s per task

2m 34s plan 39m 44s execute 13m 39s review

75 edits 532 commands

codex harness

This run made Gantry friendlier to users arriving from neighboring agent CLIs without replacing its subcommand-first run-management model. It added print-mode aliases, resume flag aliases, unnamed resume selection, a TTY picker, help text, and then a second milestone for the live monitor's recent-run and stage-log language.

The current tree shows an uneven survival pattern that matters to the story. The CLI alias path and stage-log wording still stand, while the broader live-menu recent-runs browser was later removed by a menu-coherence pass; the replay should be read as both a compatibility build and a case where later product cleanup narrowed part of the shipped TUI surface.

How this walkthrough is structured

Feature

What did the run build and ship?

Gantry still accepts the resume and print aliases through the canonical command path, while the former live recent-runs menu has been superseded by later menu cleanup.

Build

How did Gantry structure the work?

The run cut CLI compatibility first, then replanned the all-runs inspection work into a TUI milestone after review found the resume picker had stayed deliberately narrower.

Milestone 1

Resume Aliases

5 tasks 13 agents 37m 58s wall time 172k peak context

The current CLI still exposes the compatibility surface built here. Headless mode accepts the print spellings, resume aliases normalize into the canonical resume verb, and most-recent resume flags are documented from the shared command specification. The current docs also preserve the distinction between scriptable unnamed resume and the TTY picker, so the compatibility layer remains additive rather than a replacement command family.

This milestone carried the command-line compatibility work while preserving the existing run-management model. The sprint order started with the lowest-risk print spelling, then layered explicit resume aliases, deterministic unnamed selection, an interactive picker, and help text. Most child sprints stayed green, but the milestone review recorded a scope note: the picker did not become a shared all-runs model. That note is the important boundary, because it kept the next milestone from assuming the CLI picker already represented finished or merged jobs.

Print Headless Aliases

2 agents 2m 46s wall time 96k peak context

The headless flag row in the current CLI specification still lists the print aliases as spellings of the same entry-point flag. The usage text and JSON requirement both treat those aliases as satisfying headless mode, and the entry-point flag parser reads them through the same specification row. This sprint's feature is still a single mode with more accepted spellings, not a parallel print implementation.

This first sprint was intentionally narrow: add print-mode spellings to the existing headless boolean rather than create a second execution mode. That made it a good opener because every downstream caller already knew how to consume headless mode. The gate and review stayed green, which fits a compatibility alias whose main risk was flag collision and routing drift. Later resume work could reuse the same short-flag collision testing posture.

Explicit Resume Aliases

2 agents 5m 10s wall time 100k peak context

Current main-entry code still normalizes the resume aliases into the canonical resume argument shape before ordinary verb dispatch. The command specification documents the aliases through the resume row rather than exposing a separate command. The downstream plan source is still resolved through the same resume path, so these spellings remain compatibility input to the existing model.

This sprint translated flag-first resume muscle memory into Gantry's existing bare resume verb. Its boundary was early argv normalization: after the alias was stripped, normal build flags and engine dispatch could stay untouched. The run facts show a clean pass, so named resume aliasing did not force a repair or a broader command refactor. No-name resume was left to the next sprint, keeping this worker scoped to explicit targets.

Deterministic Resume Choice

2 agents 11m 13s wall time 124k peak context

The current resume path still computes interactivity from terminal state and headless mode before calling the resume resolver. The most-recent flag family is carried as a boolean into that resolver and bypasses picker selection. Help text still says scripted unnamed resume either resolves the lone resumable run or reports candidates, keeping the deterministic branch visible to users.

This sprint put the decision core for unnamed resume ahead of any interactive UI. The brief separated interactivity and most-recent intent into explicit inputs, so a fresh worker could test the TTY matrix without needing a terminal. The recorded gate ran cleanly more than once for this unit, which points to extra verification rather than a failed repair loop. It established the scriptable behavior that the picker had to respect later.

Interactive Resume Picker

2 agents 7m 31s wall time 131k peak context

The current command layer still has a pure resume-row presentation helper with name, progress, state, and relative activity fields. The resolver path still receives an interactive flag and most-recent intent rather than probing those conditions inside the picker itself. What no longer stands as a shared all-runs model is explicitly called out by the run's own review note and by the later TUI milestone brief.

This sprint added the TTY-only picker after deterministic selection had already defined when a picker was allowed. That cut kept script safety out of the UI layer: the picker appears only after the resolver has decided interaction is appropriate. The unit stayed green in the run record, so the row formatting, selection plumbing, and cancel behavior fit inside one sprint. Its milestone review later clarified that this picker remained resumable-run scoped, not a repo-wide history browser.

CLI Help Updates

2 agents 5m 42s wall time 172k peak context

The command specification now owns the usage text for print aliases, resume aliases, most-recent flags, and unnamed resume behavior. The agent CLI documentation still describes those aliases as additive spellings that rewrite to canonical resume or headless behavior. It also preserves the non-goals around verb renames and extra command families, matching the guardrails from the brief.

This sprint closed the CLI milestone by making the new spellings discoverable while keeping canonical commands primary. It was a documentation and usage-output pass, placed after behavior so help could describe what the binary actually did. The run stayed green, but the milestone review still found a scope boundary around recent-run breadth. That made the docs handoff important: later TUI work had to share terms without overstating the CLI picker.

Milestone 2

Recent Runs Menu

4 tasks 12 agents 31m 33s wall time 174k peak context

The current tree still carries the clearer stage-log wording and the documentation history of the recent-runs split, but the live Run recent-runs browser from this milestone is no longer present in the current menu. Later menu-coherence work removed that surface and left shell commands and current-run inspection as the supported paths. This milestone's lasting contribution is therefore partly direct UI language and partly the recorded separation between CLI resume selection and read-only run inspection.

This milestone was created after the first milestone's review found that the CLI picker had not delivered an all-runs candidate model. Its brief re-scoped recent-run browsing as a read-only TUI concern, separate from resumable CLI selection. One child sprint hit a red gate and needed a fix in the recent-job presentation layer, locating the real stress in filtering and row semantics rather than menu naming. The rest of the milestone stayed green and closed the distinction in docs and fixtures.

Stage Log Rename

2 agents 4m 45s wall time 79k peak context

The current menu model and TUI code still expose Stage logs as the label for recent stage log files. The dynamic submenu remains under Inspect in today's menu, which reflects later menu reshaping, but the user-facing wording from this sprint survived. The old session-history language is no longer the visible label for opening current-run stage logs.

This sprint removed a naming collision before adding a real recent-runs affordance. Its brief was low-risk and behavior-preserving: rename the misleading Agents menu wording so it described current-run stage logs. The run facts show a clean pass apart from an extra green gate, so the change was verified without repair. That gave the following recent-job work clearer terminology to build around.

Recent Job Model

3 agents 11m 18s wall time 174k peak context 1 fix

The specific TUI recent-job browser this model fed has not survived in the current menu. What remains visible is the documentation and analysis trail saying that the CLI picker and a read-only all-runs view were different surfaces. Because later menu cleanup removed the browser, this sprint's direct UI model can no longer be isolated as a standing feature in today's tree.

This was the milestone's stress point. The sprint had to define a read-only recent-job presentation model that could include historical runs without broadening the CLI resume resolver. Its first gate went red and a fix pass ran before the unit passed, which locates the hard part in getting filtering, ordering, bounds, row tags, and empty state correct. The repair kept the model distinction explicit instead of collapsing back onto the resumable-only picker.

Recent Run Inspection

2 agents 5m 15s wall time 113k peak context

The live-menu inspection surface from this sprint is no longer present in the current TUI. Current code still has status, logs, run journal, stage-log, and copy-command conveniences for the active run, but not the old repo-wide Recent runs submenu. The sprint's contribution is therefore best described as a shipped surface that later product cleanup intentionally narrowed away.

This sprint wired the recent-job rows into the Run menu as an inspection affordance, not a live monitor switch. The brief held the boundary tightly: selecting another run should open read-only status and offer a copyable resume command, while the current monitored run stayed unchanged. The recorded unit stayed green, suggesting the model from the prior repaired sprint was stable enough for UI wiring. It left engine hot-swap explicitly out of scope.

Docs and Fixtures

2 agents 5m 4s wall time 91k peak context

Current documentation still contains the alias and resume-selection guidance, and archived plan material preserves the reason for separating CLI resume from all-runs inspection. Some live docs still mention the former Recent runs menu, while current menu code no longer contains that surface. That drift is a later product-history artifact, not evidence that the CLI alias work disappeared.

This final sprint reconciled docs and fixture-backed menu references after the TUI changes. Its job was to explain the difference between the read-only recent-job menu and the CLI picker, refresh menu wording, and avoid claiming that CLI resume listed every historical run. The run stayed green, so the closeout was not another implementation repair. It made the milestone's distinction explicit before the top-level merge.