v0.7.1
Two new lightweight CLI commands surfaced by the v0.7.0
fresh-install UX test: when e2er run's tailer times out (or
the user ^C's it), there was no scripted way to re-attach,
inspect the current state, or cancel a runaway paper without
opening the dashboard.
Cross-lane
e2er status <paper_id>— one-shot snapshot of a paper:
status, mode/methodology, cost meter (with the
cost_is_estimatemarker on CLI backends), specialist call
count, token total, workspace path, dashboard URL. Shows
last_errorverbatim when present so the user can diagnose
REJECTED / PAUSED / FAILED without parsing the events log.
With--tail, re-uses the same polling loope2er runuses
so the user can re-attach after ^C. Short-circuits on already-
terminal status (no wasted polls). Hits the local API by
default; respectsE2ER_API_URLfor remote inspection.e2er cancel <paper_id>— POSTs the/cancelendpoint
with a confirmation prompt (skippable via--yes). Surfaces
the title + current status + spend-so-far before the user
confirms so they don't cancel by accident. Terminal-status
short-circuit. Treats post-cancel 404 as success (the paper
finished while we were asking; that's what the user wanted).
Brief post-cancel poll so the user sees the CANCELLED
transition land before the shell returns.- Cost output now formats with two decimals. Pre-fix
e2er statusshowed$8.462921999999999; now$8.46. Float
noise was reaching the user-facing string when the API
returned high-precision cost totals. _poll_statusnow treatsrejectedas terminal. Pre-fix
thee2er runtailer kept polling forever on REJECTED papers
(a v0.5+ status it didn't know about). Observed during fresh-
install testing on paper 2ca473aa.
Test counts
- Mocked suite: 581 passed (was 554 in v0.7.0; +27 cli_status).
- 27 new tests in
tests/test_cli_status.pycovering
formatters, exit codes, the unreachable-API branch, the
confirmation prompt, and the post-cancel-404 race handling.
Known follow-up (v0.7.2 candidate)
e2er resume <paper_id>— natural complement tocancel.
PAUSED papers can be resumed viacurl POST /resumetoday;
a CLI command would close the same UX gap thatstatusand
cancelclose. Out of scope for v0.7.1.