review: validate refresh_token, path-agnostic recovery log, map author email
Addresses PR review feedback:
- Validate refresh_token (not only access_token) before persisting the
re-imported Codex token, so a half-token payload can't silently break the
next refresh cycle.
- Make the recovery log path-agnostic ("Codex CLI auth.json") since
_import_codex_cli_tokens can read $CODEX_HOME, not only ~/.codex.
- Add regression test: relogin-required + imported token missing refresh_token
-> re-raise and persist nothing.
- Map kenmege@yahoo.com -> Kenmege in scripts/release.py AUTHOR_MAP
(fixes the check-attribution job).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
committed by
Teknium
co-authored by
Claude Opus 4.8
parent
bd66e7e3fb
commit
311ff967de
@@ -118,3 +118,27 @@ def test_happy_path_unchanged(monkeypatch):
|
||||
assert out["refresh_token"] == "rotated-r"
|
||||
assert saved["access_token"] == "rotated"
|
||||
assert import_calls["n"] == 0 # happy path must not consult ~/.codex
|
||||
|
||||
|
||||
def test_reraises_when_imported_token_lacks_refresh_token(monkeypatch):
|
||||
"""relogin-required, but ~/.codex returns an access_token with NO refresh_token →
|
||||
re-raise rather than persist a half-token that would break the next refresh."""
|
||||
saved = {}
|
||||
|
||||
def _rejected(*_a, **_k):
|
||||
raise AuthError(
|
||||
"refresh token rejected",
|
||||
provider="openai-codex",
|
||||
code="invalid_grant",
|
||||
relogin_required=True,
|
||||
)
|
||||
|
||||
monkeypatch.setattr(auth, "refresh_codex_oauth_pure", _rejected)
|
||||
monkeypatch.setattr(auth, "_import_codex_cli_tokens", lambda: {"access_token": "fresh-only"})
|
||||
monkeypatch.setattr(auth, "_save_codex_tokens", lambda t, *a, **k: saved.update(t))
|
||||
|
||||
with pytest.raises(AuthError) as ei:
|
||||
_refresh_codex_auth_tokens(STALE, 20.0)
|
||||
|
||||
assert ei.value.code == "invalid_grant"
|
||||
assert saved == {} # nothing was persisted
|
||||
|
||||
Reference in New Issue
Block a user