feat(sessions): long-lived session pods with manual lifecycle#30
Merged
Conversation
evan-onyx
approved these changes
May 5, 2026
Adds two new routes:
* POST /v1/sessions creates a long-lived executor pod/container,
optionally pre-staging files from /v1/files.
* DELETE /v1/sessions/{id} tears the session down.
Both Docker and Kubernetes backends are supported. Sessions are labeled
``app=code-interpreter,component=session`` so they can be enumerated for
debugging, and named ``code-session-<uuid>`` so the delete path can
sanity-check that callers aren't accidentally targeting other resources.
Known limitation: this PR has no automatic cleanup. A session that the
caller forgets to DELETE will live for the configured idle window
(``SESSION_MAX_LIFETIME_SECONDS`` = 24h). The follow-up PR adds per-session
TTL enforcement plus a reaper for crash recovery.
Tests cover both backends and the route layer (success, 404 mapping,
501 mapping, file resolution, prefix-based safety check on delete).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
9de943a to
e7b077a
Compare
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.
Adds two new routes:
optionally pre-staging files from /v1/files.
Both Docker and Kubernetes backends are supported. Sessions are labeled
app=code-interpreter,component=sessionso they can be enumerated for debugging, and namedcode-session-<uuid>so the delete path can sanity-check that callers aren't accidentally targeting other resources.Known limitation: this PR has no automatic cleanup. A session that the caller forgets to DELETE will live for the configured idle window (
SESSION_MAX_LIFETIME_SECONDS= 24h). The follow-up PR adds per-session TTL enforcement plus a reaper for crash recovery.Tests cover both backends and the route layer (success, 404 mapping, 501 mapping, file resolution, prefix-based safety check on delete).