Repository navigation
fix(service): an inbox post with a picture marks the sandbox opened - #3484
Merged
Merged
Conversation
post_to_inbox reads an image block's picture from the sandbox, so opensSandbox now counts a post whose blocks include an image, with the same check a chat post with a picture gets. A turn whose only sandbox use is such a post now records its branch and stops its sandbox at its end, instead of leaving the sandbox running until it times out. Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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.
Summary
post_to_inboxcarries an image block, count that call as opening the sandbox, so the turn's end records the branch and stops the sandbox.opensSandbox(coder-host/tool-set.ts) never countedpost_to_inbox.openedAt. The turn-end hook (apps/dev/hooks/store.ts) then skipped recording the branch and stopping the sandbox, so the sandbox kept running until it timed out.opensSandboxnow counts apost_to_inboxcall whoseblocksinclude an image block, using the same block-type check a chat post with a picture already gets. A post with words alone, or with no blocks, still opens nothing.reply_inboxtool in feat(features,service,dev): the agent reads and replies on its Inbox threads #3482, which had the same gap and fixes it there; this PR is thepost_to_inboxhalf, on its own as the orchestrator asked.Evidence
vitest run packages/service/src/agents/coder-host/chat-sandbox.test.ts: 2 passed. Withtool-set.tsreverted, the new test fails (1 failed, 1 passed).biome checkonpackages/service/src/agents/coder-host: clean.tsc -p packages/service: clean.Invariants
./scripts/check.shgreen. (CI)LUKE_UPDATE_FIXTURESnot run, or diff explained line by line). (CI)AGENTS.md"Testing") The new test inchat-sandbox.test.tscovers a post with an image block, one with words alone, and one with no blocks.astype assertion outside the allowlisted files. (CI via anti-slop)Effect.runPromise/runSync/runForkoutside the runtime edges and the shimstools/anti-slop/effect-edges.jsonrecords. (CI viaanti-slop/no-run-promise-outside-edges)setTimeout/setInterval/new Promise/AbortController/fs.watchoutside the filestools/anti-slop/effect-edges.jsonrecords. (CI viaanti-slop/no-raw-async-primitives)pnpm discarded-effect)vitest run --reporter=json) +1.AGENTS.md's "The permanent adaptors" with the reason it stays. Nothing is replaced.CLAUDE.md/AGENTS.mdsentence naming a changed part is edited; root pair stays byte-identical. None names this part.PRIVACY.mdunchanged, or the change is a product decision called out in the PR body.package.jsondeps match what the sources import by bare specifier;effectviacatalog:. (CI)@luke/featuresis already a dependency of@luke/service.@effect/platform-node,effect/sql) behind a barrel the renderer or a web function opens. (CI: existing renderernode:grep plus a new grep for those specifiers in renderer bundles)Notes
reply_inbox, in the same function; whichever lands second rebases.Made with Luke
Summary by cubic
opensSandboxnow counts apost_to_inboxcall that carries an image block, so a turn whose only sandbox use is posting a picture to the inbox records its branch and stops its sandbox at turn end, instead of leaving it running until timeout.Written for commit 345e928. Summary will update on new commits.