Merged
Conversation
- validate OAuth callback state and trusted backend URL before fetch - preserve host-provided stream/store semantics for runtime parity - enforce owner-only file permissions for account, session, and log data - expand tests for security hardening and request/response parity
Owner
|
I was trying to solve this too. Amazing, will check it out |
dkraemerwork
approved these changes
Feb 12, 2026
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.
Hi, it seems that the switching of account sometimes leading to the session got interrupted in middle of the session as well as there are gibberish characters responded.
I tried to solve the issue by replicate (vibed the way out) what openai oauth is done now by default in opencode and this seems to fix. Please feel free to check if this makes sense.
What this fixes
prompt_cache_keycould hop accounts on retries/rate limits, causing inconsistent context/account state. Sessions are now pinned to one account and persisted across restarts.prompt_cache_keyis absent, host-providedsession_id/originatorare preserved instead of being overwritten/cleared.base64url, root/nested/org claims), which could produce401due to missingchatgpt-account-id.state.https://chatgpt.com/backend-api/codex/responses.store/streamand passing SSE responses through unchanged.Security improvements