Skip to content

v1.17.2 — stuck-detector: codex MCP approval + agy trust folder + fixture harness#55

Merged
amariichi merged 2 commits into
mainfrom
release/v1.17.2
May 23, 2026
Merged

v1.17.2 — stuck-detector: codex MCP approval + agy trust folder + fixture harness#55
amariichi merged 2 commits into
mainfrom
release/v1.17.2

Conversation

@amariichi
Copy link
Copy Markdown
Owner

Summary

  • Add two new stuck-detector patterns surfaced by real-helper fixture collection:
    • codex_mcp_approval/Allow the .+ MCP server to run tool/ (Codex's MCP tool-call modal, distinct from the existing shell-command modal)
    • agy_trust_folder/Do you trust the contents of this project\?/ (Antigravity's first-run workspace trust prompt)
  • Replace codex_picker regex with /Select Model and Effort/ — the previous /Switch to (gpt|claude|gemini)-/ only matched a transient confirm screen, not the actual /model picker
  • New fixture-driven test harness under test/face-app/fixtures/stuck_detector/{codex,agy}/ — 13 verbatim ANSI-stripped pane snapshots from real helpers (codex × 7, agy × 6), wired into FIXTURE_CASES with 14 positive + negative assertions
  • Documentation: minimum-headroom-ops skill coverage table regenerated; points operators at the fixture directory for future extensions

Test plan

  • node --test test/face-app/helper_stuck_detector.test.mjs → 23/23 pass (14 new fixture cases)
  • npm test → 372/372 pass
  • Reviewer: confirm new regexes (Allow the .+ MCP server to run tool, Do you trust the contents of this project?, Select Model and Effort) are unlikely to false-positive on helper LLM conversational output
  • Reviewer: spot-check one fixture file to confirm it matches the verbatim pane content as documented

🤖 Generated with Claude Code

amariichi and others added 2 commits May 23, 2026 21:08
…picker

Spawning real codex and agy helpers and capturing their tmux panes
through known states surfaced three concrete gaps in the detector:

- Codex's MCP tool-call approval modal ("Allow the <server> MCP server
  to run tool \"<name>\"?") is a separate code path from the
  shell-command modal that `codex_approval` already catches. Add
  `codex_mcp_approval` so the helper does not stall silently the first
  time it calls an MCP tool.
- Antigravity's first-run workspace trust prompt ("Do you trust the
  contents of this project?") blocks before any mission is injected.
  Add `agy_trust_folder` so the operator inbox surfaces it.
- The existing `codex_picker` regex (/Switch to (gpt|claude|gemini)-/)
  only matched a transient confirmation screen, not the primary
  /model picker. Replace with /Select Model and Effort/, which is
  the actual header on the picker that operators see.

Test harness: real ANSI-stripped pane snapshots collected from live
helpers are committed under test/face-app/fixtures/stuck_detector/
(codex × 7, agy × 6). A new FIXTURE_CASES loop in
helper_stuck_detector.test.mjs asserts that each positive fixture
fires exactly one expected pattern and that each negative fixture
(idle, running, slash-command completion, conversational interrupt
recovery) fires nothing. Adds 14 fixture-driven tests on top of the
existing inline-literal coverage. New modal wording can now be
verified by dropping a capture into the fixtures dir and adding one
row to FIXTURE_CASES — no test scaffolding to write.

Documentation: minimum-headroom-ops skill coverage table is regenerated
to reflect the two new patterns and the codex_picker regex change, and
points operators at the fixture directory for future extensions.

Tests: node --test → 372/372 pass (helper_stuck_detector subset:
23/23 with 14 new fixture cases).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Patch release for the stuck-detector pattern additions. Six sites move
together: package.json, mcp-server/dist/index.js SERVER_VERSION,
tts-worker/pyproject.toml, asr-worker/pyproject.toml, and both uv.lock
files (refreshed via `uv lock`).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@amariichi amariichi merged commit 8a1f40d into main May 23, 2026
1 check passed
@amariichi amariichi deleted the release/v1.17.2 branch May 23, 2026 12:13
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