v1.17.2 — stuck-detector: codex MCP approval + agy trust folder + fixture harness#55
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
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)codex_pickerregex with/Select Model and Effort/— the previous/Switch to (gpt|claude|gemini)-/only matched a transient confirm screen, not the actual/modelpickertest/face-app/fixtures/stuck_detector/{codex,agy}/— 13 verbatim ANSI-stripped pane snapshots from real helpers (codex × 7, agy × 6), wired intoFIXTURE_CASESwith 14 positive + negative assertionsminimum-headroom-opsskill coverage table regenerated; points operators at the fixture directory for future extensionsTest plan
node --test test/face-app/helper_stuck_detector.test.mjs→ 23/23 pass (14 new fixture cases)npm test→ 372/372 passAllow 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🤖 Generated with Claude Code