[ChatGPT Work] Conversation-length limit blocks recoverable closeout and handoff
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Summary
When a long-running ChatGPT Work conversation reaches its maximum length, the conversation becomes unusable before it can produce a reliable closeout or handoff. The replacement conversation may not know which final instruction was processed, which was not, or whether an external side effect completed.
This is distinct from ordinary context compaction or CLI token-window rollover: the UI hard-blocks further work in the conversation.
Environment
- ChatGPT Work on the web
- Long-running, tool-heavy project conversation
- Connected GitHub, email, and scheduled-task actions
- Multiple external side effects and approval gates
- Observed 2026-08-29
Steps to reproduce
- Use a ChatGPT Work conversation for a long-running project with connected-service actions.
- Complete multiple repository and deployment operations over many turns.
- Send a final instruction that creates or updates an external automation.
- Reach the conversation-length limit immediately afterward.
- Start a replacement conversation using the available history/summary.
- Try to determine whether that final instruction ran.
- Reconcile live GitHub, email, and automation state manually.
Actual behavior
- The capacity warning appears only after the conversation is no longer usable.
- No reserved closeout mode remains available.
- The handoff does not reliably identify the last processed instruction and the first unprocessed instruction.
- The replacement lacks an authoritative action receipt for the final connected-service mutation.
- Exact roles, ordering, links, unresolved approvals, and pending inputs are not preserved as a structured handoff.
- Manual provider-by-provider reconciliation is required.
In the observed case, the final automation-creation instruction actually completed, but the exhausted conversation never returned a visible completion response. The replacement reasonably treated it as potentially unhandled and created an equivalent duplicate before later live-state reconciliation found the original.
Expected behavior
Before hard exhaustion, ChatGPT Work should:
- Warn proactively that the conversation is approaching its maximum length.
- Preserve a small reserved closeout mode that can still inspect state and produce a handoff.
- Generate a structured export containing:
- last confirmed processed instruction;
- first unprocessed or ambiguous instruction;
- connected-service action receipts and canonical object links;
- exact task ordering, roles, gates, and unresolved inputs;
- explicit distinction between observed live state and summarized checkpoint state.
- Let a replacement conversation import that handoff while treating newer live state as authoritative.
- Distinguish a hard conversation maximum from normal compaction/context rollover.
Why this matters
Without an explicit processed/unprocessed boundary, recovery can either omit a requested action or repeat an action that already happened. For connected services, that can create duplicate automations, comments, emails, deployments, or other external side effects.
Related issues
- #36584 proposes drift warnings and one-click handoff for repeated compaction; this report concerns the hard, blocking ChatGPT Work conversation-length boundary.
- #33310 proposes atomic handoff for CLI token-budget rollover.
- #29356 concerns operational continuity lost during compaction.
- #24810 proposes a durable session bridge.
- #41529 covers durable receipts when an external action result is not visibly returned; the maximum-length boundary here is one way that ambiguity can arise.
Suggested acceptance criteria
- A warning is shown with enough remaining capacity to finish or hand off safely.
- The hard limit reserves a minimal read/closeout path.
- The exported handoff identifies the exact final processed, ambiguous, and unprocessed turns.
- Connected-service mutations include durable receipts that survive the conversation boundary.
- Importing the handoff does not imply that checkpoint data overrides newer live provider state.
Privacy
This report is sanitized. It contains no private repository names, account addresses, credentials, customer data, or sensitive logs.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The report names no repository files, tests, or entry points; start by locating the conversation-length handling and handoff or import paths. Done means the system warns before exhaustion, preserves a minimal closeout path, exports the processed and ambiguous boundary with action receipts, and imports the handoff without overriding newer live state.
Written by the indexing model from the issue text.
Assessment
- Domain
- developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100