Skip to content

Fix what the review of Continue / Try again found - #70

Merged
danielehrhardt merged 1 commit into
mainfrom
fix/retry-review
Oct 4, 2026
Merged

danielehrhardt merged 1 commit into
mainfrom
fix/retry-review

Conversation

@danielehrhardt

Copy link
Copy Markdown
Contributor

Follow-up to #66, fixing every finding of its review.

Major

  • Runner chats couldn't be picked up. /retry wasn't in the runner routing table, so the local handler refused with "This chat works on a runner". It is forwarded now, with prepareRemoteMessage first, as for messages. New case in remote-e2e.test.ts: a failed runner turn is tried again from here (201, again).

Minor

  • Automation runs are refused (automation). The desktop offers the automation's own Run now and Open automation instead, so its busy check, condition baseline and "Needs you" follow the new run, and the work can't happen twice.
  • Queued messages: a retry is refused while messages wait (queued), because they would go along unasked. The phone strip hides then, like the desktop bar.
  • Ticket chats are recognised by origin === "task", so archived tickets and still-loading boards no longer flash a Continue that the core refuses.
  • VM errors: "can't be used" now says the VM couldn't start and links to the VMs page. "Turned off" keeps its settings link (RunEnd.off). The dead per-run budget pattern is gone.
  • Phone strip:
    • It now hides in the same cases as the desktop bar: switched-off agent, waiting messages, automation chats.
    • It sends one request at a time, with a busy state.
    • A stale answer refreshes the chat quietly instead of alerting.
  • Phone step labels use toolActivity again ("Running a command", not "Using Bash"). The old-core detection is now "no trailing …".
  • Phone live state: a run already seen ending isn't brought back as live by a late HTTP answer.
  • Prompt hygiene:
    • stripNoteTags repeats until nothing changes, so <</godmode-x>/godmode-continue> no longer leaves a tag behind.
    • Quoted error text has its angle brackets replaced.
  • One stop sentence: RUN_STOPPED_BY_USER replaces the remaining literals.
  • Accessibility: the bar is aria-live="polite", and its buttons and the phone's expose a busy state.

Not changed (review's open question): a child chat stopped because its parent paused still offers Continue. The human may want just that work, and the answer goes to them in that chat.

Checks:

  • Core: full suite 1416 pass, 0 fail.
  • Typecheck: desktop and mobile.
  • New tests: VM split, nested-tag stripping, automation and queued refusals, the runner retry end to end.

- A chat on a runner can be picked up: retry is forwarded to the runner (which gets what it needs first).
- An automation's run is run again by the automation (Run now), so its busy check, events and Needs you follow.
- Messages waiting in a chat are sent or removed before a retry (they'd go along unasked).
- A ticket's chat is recognised by its origin, also when the ticket is archived.
- A VM that couldn't start gets its own advice; VMs that are off keep theirs.
- Phone: the strip hides where the desktop does, one request at a time, a stale answer refreshes quietly;
  live step labels are plain words again; a run that already ended doesn't come back as working.
- Quoted error text can't close Godmode's notes: tags are stripped until none is left, angle brackets neutralised.
- The stop sentence comes from one place; the bar is announced to screen readers and shows when it is busy.
@danielehrhardt
danielehrhardt merged commit 7d8ea0c into main Oct 4, 2026
5 of 8 checks passed
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