fix: report paused PTY delivery accurately - #120
swaynehales wants to merge 9 commits into
Conversation
Antigravity 1.1.17 renders
> Accept-edits mode: file edits auto-approved (shift+tab to cycle)
on the prompt row in normal intensity, indistinguishable from a user draft
by the dim check alone. get_antigravity_input_text reports it as pending
input, so require_prompt_empty fails permanently on an idle screen: launch
is classified blocked with screen_settled_not_ready, and idle delivery
never fires until a turn is submitted by hand.
Recognize the banner as placeholder text, but only while the ready footer
is visible. require_prompt_empty stays enabled globally -- relaxing it
would let delivery overwrite or submit over a real draft.
Recognition is a prefix relation in both directions: the text must open
with the banner's stable marker, and the full banner must in turn start
with the text. That accepts the banner whole and truncated by a narrow
terminal, while rejecting anything continuing past its end, so a draft
quoting or extending the banner stays user input. A terminal narrow enough
to cut inside the marker fails closed to current behavior.
Regression coverage: standard banner, narrow-terminal wrapping, banner in
scrollback followed by a real draft, the observed out-of-credits footer
where the ready pattern is absent and the banner must still block, banner
text with a trailing draft, and a terminal cut inside the marker.
Classify the shared tui status family as queued delivery, synchronize first-send feedback within one bounded collective deadline, and retain healthy-first mixed output. Publish durable gates promptly while debouncing transient gates, and make delivery-loop status ownership atomic, instance-bound, and retryable without clobbering hook or tool writers.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5be0c368dc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if is_delivery_paused_status_context(&data.status_context) { | ||
| paused.push(recipient); | ||
| } else { | ||
| healthy.push(recipient); |
There was a problem hiding this comment.
Include PTY approval blocks in paused feedback
When an approval dialog is visible, publish_approval_status records status = "blocked" with status_context = "pty:approval" (src/pty/shared.rs:216-225). The delivery gate then returns not_idle, and set_gate_status_if_listening cannot publish a tui:* context because the row is not listening. This condition therefore classifies the recipient as healthy after the synchronization timeout and prints Sent to even though the message remains queued behind the approval; treat the blocked approval context as paused as well.
Useful? React with 👍 / 👎.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Summary
Verification
cargo fmt -- --checkcargo clippy --all-targets --all-features -- -D warningscargo test --all-targets --all-features -- --test-threads=1Queued; delivery paused