fix(eve): degrade missing attachment bytes on resume instead of failing the turn#325
Open
serhiizghama wants to merge 2 commits into
Open
fix(eve): degrade missing attachment bytes on resume instead of failing the turn#325serhiizghama wants to merge 2 commits into
serhiizghama wants to merge 2 commits into
Conversation
…ng the turn Signed-off-by: serhiizghama <zmrser@gmail.com>
…esume Signed-off-by: serhiizghama <zmrser@gmail.com>
|
@serhiizghama is attempting to deploy a commit to the Vercel Team on Vercel. A member of the Team first needs to authorize it. |
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.
Fixes #276. Resuming a durable session whose history contains an inbound file attachment fatally fails when the staging sandbox has been torn down between turns — an ephemeral backend means the bytes behind a historical
eve-sandbox:ref are gone, andhydrateMessageContentthrew on the missing read, so the turn ended insession.failedand the bot never replied.Hydration now degrades a missing ref to a text part (
"Attached file <path> (<type>) is no longer available in this session.") and logs a warning, instead of throwing. The run continues, and the model is told the attachment is unreachable rather than chasing a path that no longer resolves. I gave it a distinct message from the normal non-inlinable text reference on purpose — on resume the path really is gone, so pointing the model at it would just invite a failed read.This only affects the resume case where the bytes are already missing; a freshly staged attachment in the current turn still hydrates as before.
Tests: rewrote the existing "missing file" case to assert the degrade (the leading text survives, the file ref becomes the unavailability notice, no file part reaches the model) and added a regression that stages an image into one sandbox and hydrates the resulting ref against a fresh one — the same shape as a resume after teardown — and asserts the turn survives. Reverting the fix fails both. Full attachment-staging integration + unit suites green, typecheck/oxlint/oxfmt/guard:invariants clean, changeset (patch).