Skip to content

fix(codex): show attention for visible async questions - #672

Merged
DerekMarshall merged 1 commit into
mainfrom
feat/codex-async-question-attention
Oct 14, 2026
Merged

DerekMarshall merged 1 commit into
mainfrom
feat/codex-async-question-attention

Conversation

@DerekMarshall

Copy link
Copy Markdown
Member

Codex can post async questions and keep working, but those questions did not earn needs-answer attention in spyc. Complete default question editors and collapsed question summaries now show the red attention dot, with awaiting async question answer in :why-status and :activity dump.

The current visible view supplies this fallback. The latest semantic activity remains stored and resumes when the view clears; independent semantic blocks retain precedence, expired reports stay expired, and panes remain isolated. Keep the visible wait cached through semantic-report transitions that do not repaint the child.

The matcher uses verified Codex 0.162.1 default UI shapes and rejects incomplete, customized, or quoted forms above the composer. This is visible attention rather than semantic proof of an answer. It adds no hook, question-content store, or idle polling. Update the harness, orchestration reference, architecture notes, and delivery plan with that scope and the remaining acceptance cases.

Validation:

  • Ten new pure-scanner and real-PTY App regressions; six deliberate mutations detected failures before restoration.
  • make check: 3,192 library tests passed, one existing ignored test; workspace, integration, and VT tests passed.
  • make lint-linux passed.
  • Controlled replay in real spyc/Ghostty failed against the previous binary and passed with this change, covering both native view shapes, semantic transitions without repaint, two-pane isolation, and zero idle draws. Fixtures come from versioned upstream snapshots.
  • Native Codex acceptance remains pending: its filesystem sandbox helper failed during startup in the test runner before questions could be shown. The documented native test is separate from the controlled replay.

@DerekMarshall
DerekMarshall merged commit a3a3781 into main Oct 14, 2026
4 checks passed
@DerekMarshall
DerekMarshall deleted the feat/codex-async-question-attention branch October 14, 2026 09:30
DerekMarshall added a commit that referenced this pull request Oct 15, 2026
Sets the version to `2.2.0-rc.3`, made with `make release-prep
VERSION=2.2.0-rc.3`. Only `Cargo.toml` and `Cargo.lock` change. As with
the earlier rcs, an rc gets no CHANGELOG section, because the 2.2.0
section covers the whole cycle.

## Why another rc

Five changes merged after the rc.2 release run (`v2.2.0-rc.2` was
published 2026-10-14 07:40 UTC). Cutting 2.2.0 from `main` now would
ship them without a soak:

| PR | Change | Why it should soak |
|---|---|---|
| #670 / #671 | fix(agent-status): a `waiting` reported mid-turn is held
until the turn ends | Changes how the activity dot ranks its sources
against each other |
| #672 | fix(codex): a visible async question earns the red attention
dot | Matches what codex draws on screen, verified against codex
0.162.1's default UI |
| #673 | feat(agent): the working dot breathes in 16 eased steps at 10
Hz | Visual. A working agent's dot now redraws at 10 Hz instead of 4 Hz.
Idle is unchanged. |
| #674 | feat(agent-hud): native strip for Antigravity (agy) tabs | A
new reader over agy's transcript format |

Every open bug issue predates July and none is a regression, so rc.3 is
`main` as it stands.

`main` stays at `2.2.0-rc.3` through the soak, which runs into next
week.

**After merge, on `main`:**
1. `make release-tag VERSION=2.2.0-rc.3`
2. Push the tag. `release.yml` verifies the archives reproduce,
publishes a GitHub pre-release, and dispatches the Homebrew tap and apt.
The crates job publishes `spyc 2.2.0-rc.3` and skips `spyc-vt-sys
0.1.0`, which is unchanged.

**Checks:** `make check` passes (the pre-commit gate), and the binary
reports `spyc 2.2.0-rc.3 (<sha>)`.

Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
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