Skip to content

Audit auth reliability across supported CLIs - #46

Merged
burakdede merged 3 commits into
mainfrom
0.3.8-reliability-audit
Jul 17, 2026
Merged

Audit auth reliability across supported CLIs#46
burakdede merged 3 commits into
mainfrom
0.3.8-reliability-audit

Conversation

@burakdede

Copy link
Copy Markdown
Owner

Summary

This PR is a reliability and security audit pass across the supported coding-agent CLIs for the 0.3.8 line: Codex, Claude Code, Gemini CLI, and Antigravity.

The main outcome is tighter behavior around account switching where upstream auth models are durable, and clearer guardrails where they are not.

What changed

  • Codex
    • Keeps ChatGPT-managed auth durable only in isolated per-profile CODEX_HOME.
    • Continues to hard-block shared-mode switching for ChatGPT refresh-token profiles.
    • Separates personal access token imports from ChatGPT-managed auth so shared-mode restrictions do not apply to PAT-backed profiles.
  • Claude
    • Fixes isolated scoped-keychain refresh sync so live OAuth changes are written back to the managed profile before switching away.
    • Keeps legacy shared-keychain installs on the explicit shared-mode path instead of pretending they are durable isolated containers.
  • Gemini
    • Restores and verifies the full regular-file state tree under ~/.gemini, including nested files.
    • Removes stale live Gemini files from the previously active profile during switching.
    • Updates docs and messaging to match current upstream guidance again: Google login is supported interactively, while some account types still require GOOGLE_CLOUD_PROJECT and headless automation should prefer API key or Vertex AI.
  • Antigravity
    • Fixes interactive OAuth add so a failed profile save restores the prior live keyring/config state instead of leaving live auth partially mutated.
  • CI / release hygiene
    • Adds CI concurrency cancellation and job timeouts to avoid duplicate long-running jobs.
    • Aligns release/site metadata to 0.3.8.

Intentional behavior change

The only intentional breaking behavior here is Codex shared-mode switching for ChatGPT-managed refresh-token auth. That path is now treated as explicitly unsupported rather than best-effort. API key and personal access token Codex profiles are unaffected.

Why this matters

The goal of this pass was not just to make tests pass. It was to make aisw stricter about what it can reliably own across macOS, Linux, and Windows, and to stop overstating durability where upstream auth models do not actually support it.

Verification

  • cargo fmt --check
  • cargo clippy --all-targets -- -D warnings
  • exact local coverage gate command from CI
  • JSON contract tests
  • GUI contract tests
  • full repo pre-commit / pre-push test hooks

@burakdede
burakdede merged commit e79ccbb into main Jul 17, 2026
5 checks passed
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