Skip to content

feat(tool): add a waiting status for a call held on other work - #168

Closed
TheGreatAxios wants to merge 1 commit into
mainfrom
cl-12173-no-dead-approval-card
Closed

TheGreatAxios wants to merge 1 commit into
mainfrom
cl-12173-no-dead-approval-card

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

What changed

A step can now be waiting: held on something outside it, without being the question itself. Until now the only waiting status was approval-requested, which means "this step is asking the person" and draws an approval card. A step that was only held, like a hand-off whose started work is paused on its own approval, had to pretend to be running or pretend to be asking.

  • New waiting status: a normal row with a pause icon and the label "Waiting", which apps can rename. No card, no buttons, and it folds into activity runs like any other step.
  • A grouped card with waiting calls reads as held, not running. "N waiting for approval" still counts only calls that are asking.
Shown as running (today) Shown as waiting (this PR)
Working with a spinner Paused with a pause icon

The real question stays the "Install zod" card. Approving it still continues the work (screenshot).

Adds a status but removes or renames nothing. An app that switches over every status will need a waiting case.

Verification

  • In Builder, 2 runs with the hand-off mapped to waiting: one card each time, the step reads "Paused", and approving continues. 2 runs with it shown as running read "Working" with a spinner, for comparison.
  • New tests for the status label and icon, and for the grouped card's header. The header test fails on main.
  • format:check, lint, typecheck, test (899), build, dep-guard and contrast-test pass. test:e2e: one different unrelated test failed in each of two full runs, and both passed on rerun.

@corbits-triage

corbits-triage Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Triage: Pass

No changes needed from you. A maintainer will review this pull request.

Notes:

  • added code matches a code pattern: src/ui/tool-group.tsx:237-241 nested-ternary: Nested ternary; use if statements or a lookup.

Triage will approve, label.

A call can be held on something outside it, such as a hand-off whose run is paused on its own approval. The only waiting status, approval-requested, means the call itself is the question, so a host had to mark such a call as asking and got an approval card with no decision behind it.

waiting draws as a plain row with a pause icon and the word "Waiting", overridable through statusLabels. It folds into activity runs like any step that is not asking. A tool group counts it as neither done nor running and reads as held, as it does for a call waiting on a person.
@TheGreatAxios
TheGreatAxios force-pushed the cl-12173-no-dead-approval-card branch from 10d8a49 to 2bd011a Compare November 6, 2026 01:46
@TheGreatAxios TheGreatAxios changed the title fix(message-parts): stop drawing a dead approval card for a call nothing can decide feat(tool): add a waiting status for a call held on other work Nov 6, 2026
@TheGreatAxios

Copy link
Copy Markdown
Contributor Author

Closing: Builder no longer needs this. The step it was for will be redesigned instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant