Skip to content

Make Pro empty-response recovery reliable by default - #2

Closed
cinnabarhorse wants to merge 1 commit into
ratacat:mainfrom
cinnabarhorse:codex/reconcile-pro-empty-response
Closed

Make Pro empty-response recovery reliable by default#2
cinnabarhorse wants to merge 1 commit into
ratacat:mainfrom
cinnabarhorse:codex/reconcile-pro-empty-response

Conversation

@cinnabarhorse

Copy link
Copy Markdown

Summary

Fix intermittent false EMPTY_RESPONSE results from long Pro turns whose initial SSE stream completes before the final assistant message is available.

  • Default fresh Pro text turns now use a saved conversation internally, poll it when the initial stream has no text, and delete it after a successful result.
  • Explicit --temporary, --save, --keep-conversation, and continued-conversation behavior stays opt-in and unchanged.
  • Recovery ignores hidden/tool/intermediate assistant messages and only reconciles fresh conversations, avoiding stale answers from continued chats.
  • A polling failure reports the saved conversation ID and never resubmits the original quota-bearing prompt, even when --retries is enabled.

This builds on #1, extending reconciliation to the default call path where the reported failures occur while retaining clean ChatGPT history.

Verification

  • bun run check
  • 390 tests passed
  • TypeScript tsc --noEmit passed

@cinnabarhorse

Copy link
Copy Markdown
Author

Closing while the local empty-response recovery is validated against a real Pro turn. The branch is intentionally retained for reopening if validation passes.

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