Run the deferred live provider checks on dev

Task 10116 · Done · Coder · created · updated

Epic 9930 ("Close the gap between Claude, Codex, Antigravity and Pi") merged all 9 build PRs (#6883 #6884 #6885 #6899 #6906 #6908 #6910 #6925 #6927). The catalogue on develop matches the expected AC1 output exactly, and the 285 closing/provider tests pass. But several operator-visible acceptance checks were never observed live on dev. They were deferred because an account was not signed in, and the Finish stage could not run them. (a) What I observed (Finish 9950, 2026-10-26, https://app.dev.jaah.ai/accounts, org Gmind): agy1 is now available (Google AI Ultra, 0%), and cod1 is now signed in (roman@gmind.tech, explicit only). gem2 (Antigravity API key) shows as enabled, but task 5284 in Task 9949 failed on "Your prepayment credits are depleted". The operator chose to settle 9949 with that remainder named. (b) Code homes under test: Antigravity terminal question capture is in apps/jaahd/agents/antigravity_runner.py (ComposerTui picker literals) with tools/capture_askuserquestion.py + apps/jaahd/answer_delivery.py. Agy terminal lifecycle derivations are in tools/antigravity_hook_bridge.py. Self-heal is in apps/jaahd/hooks/break_cause.py::classify_vendor_error and apps/jaahd/acp/host.py::Host._on_prompt_failed. The ACP lifecycle is in apps/jaahd/acp/lifecycle.py::HostLifecycle. (c) Run each check live on dev. Fix in place only what is broken (smallest change, with a test pinning it). Anything larger goes to a draft task per the project directive. (d) Per-criterion acceptance (oracle = observed on dev, with a screenshot or timeline/transcript excerpt cited in the report): - AC7 (Antigravity terminal, agy1): in a console agy session, re-reading a file twice fires the re-read guard; typing into an idle chat reopens it (prompt-submit); quitting at the prompt completes the session. - AC10 (Antigravity terminal, agy1): a Task with Autonomous OFF asks through the structured question card (question with options in the console), and answering returns it to the same session. - AC8 (Codex live, cod1): a vendor API error on a Codex run posts the break with request_replace at once (not via the reclaim sweep), and the replaced runner shows in the task timeline. If a real vendor error cannot be induced safely, cite the closing replay test output plus a normal cod1 Codex ACP task completing with fleet hooks firing (memory SessionStart row visible in the transcript). - AC6/AC7/AC10 (Antigravity ACP, gem2): run these only if gem2 has credits. Otherwise skip them, name "gem2 credits depleted" as the remainder, and do not ask again (the operator already decided). Out of scope: catalogue degradations in apps/jaahd/agent_providers.py (settled by 9949); the items already drafted in Task 10115 (Gemini credit classification, Anthropic invalid key latency, Pi update nag, Providers phone label, Claude ACP MCP tools) and Task 10027 (console terminal resize); login/sign-in flows; adding or retiring providers. Done means: - The report cites live dev evidence for AC7 and AC10 on agy1, and for AC8 on cod1 (or the stated fallback). - Any defect found is fixed with a pinning test (quick gate green, PR merged, Jaah Deploy green) or drafted as its own task. - The gem2 ACP checks are either evidenced or named as blocked on depleted credits.

Outcome

Live dev checks found 2 agy1 defects: fixed with pinning tests in #6936 (credential link EACCES) and #6937 (answers refused, pane read as bash). Both merged; quick gate green; Jaah Deploy green. AC7 and AC10 now pass live on agy1. AC8: cod1 fallback. gem2 checks blocked: credits depleted. Drafted #10123. Memory: none applied; proposed 2 gotchas.

Pull request Pull request

Artifacts

Activity

  • Ready
  • Runner started
  • Runner ended (done)