Skip to content

feat: spill oversized tool results to tape - #278

Draft
PsiACE wants to merge 5 commits into
mainfrom
feat/tool-result-spill
Draft

feat: spill oversized tool results to tape#278
PsiACE wants to merge 5 commits into
mainfrom
feat/tool-result-spill

Conversation

@PsiACE

@PsiACE PsiACE commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

Store oversized string tool results in a sibling spill tape and keep only a bounded preview in the session tape. Models retrieve stored content in bounded pages with spill.read, so large payloads remain available without expanding later model contexts.

Tape sidecars are mounted through the new provide_tape_sidecars hook. The builtin SpillStore is the first provider and reuses the active TapeStore, so SQLite and other storage plugins need no changes. The main tape handles fork, merge, archive, and reset for every mounted sidecar; sidecar failures do not block it.

Spill configuration belongs to its plugin through spill.threshold or BUB_SPILL_THRESHOLD. Setting the threshold to 0 stops new spills while leaving existing handles readable.

Checks

  • uv run ruff check .
  • uv run ruff format --check .
  • uv run mypy src
  • make test (293 passed)
  • Astro website build

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 12, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
bub 10bca59 Commit Preview URL

Branch Preview URL
Aug 12 2026, 08:37 PM

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