You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(core): retire context_budget_exhausted at the decode boundary
Nothing has produced this outcome since the runtime stopped issuing local
termination verdicts: whether a request fits is the provider's answer, and a
rejection is recovered from by compacting and retrying. What remained was a
read-only chain nine files long — a `CompleteEvent.stopReason` member no backend
can emit, a six-value detail enum with no writer, its predicate, the mapper's
stateDelta pass-through, the Host protocol allowlist and decoder, the canonical
snapshot field, the session projector's `details`, and two desktop presentation
branches with their locale copy.
Old sessions still carry the name, so the durable ledger's own read boundary
folds it to `context_overflow` — the outcome every downstream consumer already
treated it as. That is the only place that now knows two names for it.
The summarizer's malformed-summary taxonomy, which derived its type from the
retired enum, was already moved into the history-compaction domain.
The host fixture's provider stub now reports input tokens that grow with the
request. Its flat 11 made the anchored turn-start estimate meaningless, which is
exactly the number that test's compaction assertions depend on.
actions: {stopFailedTitle: 'Failed to stop',stopFailedFallback: 'The task action failed. Try again later.',refreshSessionsFailedTitle: 'Failed to refresh tasks',refreshSessionsFailedFallback: 'The task list could not be refreshed. Try again later.',conversationErrorTitle: 'Task error',conversationErrorFallback: 'The task run failed. Try again later.',regenerateStartedTitle: 'Regeneration started',regenerateStartedDescription: 'Generating a new response',branchCreatedTitle: 'Branch created',branchCreatedDescription: (name)=>`New task: ${name}`,revisionStartedTitle: 'Edit draft ready',revisionStartedDescription: 'The original task is kept; sending creates a new version',revisionReadyTitle: 'Ready to edit and resend',revisionReadyDescription: 'Rewound to before that message; edit and send when ready',revisionUnavailableTitle: 'This message cannot be edited yet',revisionAttachmentsUnsupported: 'Edit & resend does not yet support historical attachments. Copy the text into a new message instead.',revisionTransformedTextUnsupported: 'Edit & resend does not yet support messages sent with an explicit skill. Copy the text and select the skill again instead.',revisionDraftAttachmentConflict: 'The composer already has pending attachments. Send or remove them before editing a sent message.',revisionCommandUnsupported: 'You cannot run /compact, /side, or orchestration commands while editing a sent message. Cancel the edit first.',revisionAlreadyActive: 'Another message is already being edited. Send or cancel that edit first.',revisionCancelLabel: 'Cancel',revisionBannerTitle: 'Editing sent message',revisionBannerDetail: '· New version on send',revisionUnchanged: 'Nothing changed. Use Regenerate if you only want a new answer.',operationFailedTitle: 'Action failed',operationFailedFallback: 'The task action failed. Try again later.',attachmentFailedTitle: 'Failed to add attachment',imageAttachmentNotDirectTitle: 'Image added as an attachment',imageAttachmentNotDirectDescription: 'The current model does not receive images directly. The image has been provided as an attachment.',tryAgain: 'Try again later.',modelReboundTitle: 'Switched to an available model',modelReboundDescription: (modelId)=>`The previous connection is unavailable${modelId ? ` · ${modelId}` : ''}`,messageReadFailedTitle: 'Failed to load task',partialHistoryTitle: 'Viewing earlier messages',returnLatest: 'Return to latest',scrollMainToBottom: 'Scroll main conversation to bottom'},
@@ -894,7 +892,7 @@ const COPY = {
894
892
reauth: {label: 'Last connection test failed authentication',tooltip: 'The latest test returned 401 / 403. Sending is not blocked, but sign in again under Settings · Models if it fails.'},
895
893
testError: {label: 'Last connection test failed',tooltip: 'The latest test failed because of a network, timeout, or 5xx error. Sending is not blocked; check Base URL or proxy settings if it persists.'},
896
894
},
897
-
turnError: {unknown: 'Something went wrong, cause unknown. Send a message to retry.',contextOverflow: 'Context exceeded the model window. Reduce attachments or start a new task.',contextBudgetExhausted: 'The context limit was reached and this task cannot continue. Switch models or start a new task.',malformedSummary: 'Context compaction could not produce a valid summary. Check the model context-window setting, switch models, or start a new task.',timeout: 'The model request timed out. Send a message to retry.',auth: 'Model authentication failed. Reconnect or sign in again from Settings.',providerBilling: 'Model billing is restricted. Check the account balance or subscription.',providerCapacity: 'The model service is temporarily at capacity. Wait a few minutes, or switch models.',rateLimit: 'Requests were rate-limited. Wait a moment, then send a message to retry.',network: 'The network connection failed. Check the network, then send a message again.',provider: 'The model service returned an error. Retry later, or switch models.',stepCap: 'The tool-step limit was reached, so the task may be incomplete. Send a message to continue.',tool: 'A tool call failed. Check the tool result above before deciding whether to retry.',permission: 'This turn ended while waiting for permission. Send a message and it will ask again.',restarted: 'The app restarted before the previous turn completed',sandboxBoundaryClosed: 'The app restarted, so the pending request to reach outside the workspace was closed as denied. Send a message to decide again.',executionState: {erroredTool: 'A tool errored during this turn. Read its result before deciding whether to send another message.',toolRan: 'Tools already ran during this turn and may have made real changes. Read their results before sending another message.',partialOutput: 'This turn produced part of an answer. Worth reading before you send another message.'}},
895
+
turnError: {unknown: 'Something went wrong, cause unknown. Send a message to retry.',contextOverflow: 'Context exceeded the model window. Reduce attachments or start a new task.',timeout: 'The model request timed out. Send a message to retry.',auth: 'Model authentication failed. Reconnect or sign in again from Settings.',providerBilling: 'Model billing is restricted. Check the account balance or subscription.',providerCapacity: 'The model service is temporarily at capacity. Wait a few minutes, or switch models.',rateLimit: 'Requests were rate-limited. Wait a moment, then send a message to retry.',network: 'The network connection failed. Check the network, then send a message again.',provider: 'The model service returned an error. Retry later, or switch models.',stepCap: 'The tool-step limit was reached, so the task may be incomplete. Send a message to continue.',tool: 'A tool call failed. Check the tool result above before deciding whether to retry.',permission: 'This turn ended while waiting for permission. Send a message and it will ask again.',restarted: 'The app restarted before the previous turn completed',sandboxBoundaryClosed: 'The app restarted, so the pending request to reach outside the workspace was closed as denied. Send a message to decide again.',executionState: {erroredTool: 'A tool errored during this turn. Read its result before deciding whether to send another message.',toolRan: 'Tools already ran during this turn and may have made real changes. Read their results before sending another message.',partialOutput: 'This turn produced part of an answer. Worth reading before you send another message.'}},
0 commit comments