fix(subagent): keep Codex OAuth fanout actionable#3974
Conversation
|
Claude finished @Hmbown's task in 5m 3s —— View job Review:
|
Treat structured Codex rate-limit failures as transient sub-agent provider interruptions so exhausted retries preserve a continuation checkpoint instead of recording an opaque terminal failure. Also align auth list with auth status for the OpenAI Codex OAuth file, so release/setup diagnostics do not claim the provider is missing while the detailed status sees the Codex login. Refs #3884 Signed-off-by: Hunter B <hmbown@gmail.com>
422a597 to
f2c1fb5
Compare
|
Claude finished @Hmbown's task in 1m 52s —— View job Reviewing updated PR #3974
SummaryThis diff is the same single commit reviewed earlier, but this run's diff also includes 1. 2. Responses API tool-name encoding (
3. Provider/model-route safety (EPIC #2608): N/A — no model/provider inference from prefixes or prompt text. 4. CHANGELOG entries: Accurate, reference #3884, correctly placed under 5. Security: No secret-handling concerns. No blocking issues found. Safe to land. |
Treat an explicit CODEWHALE_HOME as a fresh-launch isolation boundary for config, settings, TUI theme prefs, and doctor legacy-state diagnostics. Normal HOME-based legacy migration still falls back to ~/.deepseek for existing users, but release smoke tests and scripted first-run launches no longer inherit unrelated ambient legacy files. Tests: cargo fmt --check; git diff --check; cargo test -p codewhale-config --locked; cargo test -p codewhale-tui --bin codewhale-tui --locked setup_ -- --nocapture; cargo test -p codewhale-tui --bin codewhale-tui --locked responses_ -- --nocapture; cargo test -p codewhale-tui --bin codewhale-tui --locked transient_provider_classifier -- --nocapture Signed-off-by: Hunter B <hmbown@gmail.com>
|
Claude finished @Hmbown's task in 2m 8s —— View job Reviewing updated PR #3974 (new commit:
|
The explicit-home regression test in config_persistence set CODEWHALE_HOME but the local EnvGuard only restored HOME, USERPROFILE, CODEWHALE_CONFIG_PATH, and DEEPSEEK_CONFIG_PATH. Under full-suite parallelism that leaked the explicit home into neighboring path tests on macOS/Windows. Track CODEWHALE_HOME in the guard so the isolation regression remains hermetic. Tests: cargo fmt --check; cargo test -p codewhale-tui --bin codewhale-tui --locked config_toml_path_ -- --nocapture; cargo test -p codewhale-tui --bin codewhale-tui --locked persist_hotbar_bindings_writes_primary_config_path_for_fresh_installs -- --nocapture; cargo test -p codewhale-tui --bin codewhale-tui --locked Signed-off-by: Hunter B <hmbown@gmail.com>
|
Claude finished @Hmbown's task in 1m 36s —— View job Reviewing updated PR #3974 (new commit:
|
Signed-off-by: Hmbown <101357273+Hmbown@users.noreply.github.com>
|
Claude finished @Hmbown's task in 1m 5s —— View job Reviewing updated PR #3974 (new commit:
|
Summary
codewhale auth listreport an active OpenAI Codex OAuth file instead of markingopenai-codexmissing whenauth statuscan see the logintools[n].namepattern violationsLlmError::RateLimited/ 429-style Codex child failures as transient sub-agent provider interruptions so exhausted retries preserve a continuation checkpoint instead of becoming opaque terminal failuresCODEWHALE_HOMEas a first-run isolation boundary for config, settings, TUI theme prefs, and doctor legacy-state diagnostics, while preserving normalHOME-based.deepseekmigration for existing usersRefs #3884.
Verification
cargo fmt --checkgit diff --checkcargo test -p codewhale-config --lockedcargo test -p codewhale-cli auth_ --lockedcargo test -p codewhale-tui --bin codewhale-tui --locked responses_ -- --nocapturecargo test -p codewhale-tui --bin codewhale-tui --locked transient_provider_classifier -- --nocapturecargo test -p codewhale-tui --bin codewhale-tui --locked subagent_failure_message_preserves_error_chain -- --nocapturecargo test -p codewhale-tui --bin codewhale-tui --locked setup_ -- --nocapturecargo test -p codewhale-tui --bin codewhale-tui --locked settings_load_migrates_legacy_deepseek_home_into_codewhale_home_without_explicit_home -- --nocapturecargo test -p codewhale-tui --bin codewhale-tui --locked settings_load_migrates_platform_legacy_fallback_into_codewhale_home_without_explicit_home -- --nocapturecargo test -p codewhale-tui --bin codewhale-tui --locked settings_load_ignores_legacy_files_when_codewhale_home_is_explicit -- --nocapturecargo test -p codewhale-tui --bin codewhale-tui --locked doctor_state_roots_ignore_ambient_legacy_home_when_codewhale_home_is_explicit -- --nocaptureManual smoke
The locally installed 0.8.67 candidate initially reproduced the real child failure after the opaque-message fix:
[invalid_request] Responses API request failed: Invalid request (400): Invalid 'tools[83].name': string does not match pattern...That points to Responses tool-name encoding, not missing Codex OAuth. This PR patches that bridge.
After patching the bridge, an installed 0.8.67 smoke launched a Codex OAuth child agent and the child completed with
PONGinstead of failing withResponses API failed.