feat: extend-TTL, image pre-pull, and session UX#3
Conversation
Features & UX batch: - PATCH /api/sessions/:id extends a running session's TTL (in-memory override, since labels are immutable and there's no database — best-effort, reverts on API restart); dashboard "+15m" control - createSession now pulls the image if missing (fixing first-launch on a fresh host) and POST /api/images/pull warms all configured images; the dashboard exposes a "Pre-pull browser images" action - dashboard: per-session copy-link button, a "Reload stream" reconnect button in the viewer, and a note that clipboard/file transfer live in the Kasm control bar; the per-session VNC password is shown under the frame Docs (api.md, openapi.yaml, web.md) and tests updated; 80 api + 17 web tests.
|
Warning Review limit reached
More reviews will be available in 30 minutes and 45 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (16)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Second of the two follow-up PRs — the Features & UX batch (#7–#10). (Quality & DX follows in the next PR.)
Extend TTL (#7)
PATCH /api/sessions/:idpushes a running session's expiry tonow + ttlSeconds(clamped 60–86400); the dashboard adds a +15m control. Because Docker labels are immutable and Airlock keeps no database, the extension is an in-memory override applied on read/prune — best-effort, single-node, reverts on API restart (documented inapi.md/OpenAPI).Image pre-pull (#9)
createSessionnow ensures the image is present (pulls if missing), fixing a latent first-launch-on-a-fresh-host failure (createContainerdoesn't auto-pull).POST /api/images/pullwarms all configured images; the dashboard exposes a Pre-pull browser images action.Clipboard / file bridge (#8) + share / reconnect (#10)
clipboard-read/writeperms set), documented inweb.md.Verification
make checkgreen: format, lint, typecheck, 97 tests (80 api + 17 web), build. New tests coverextendSession(incl. override-aware prune),pullBrowserImages, thePATCH/pullroutes, and the web client methods.api.md,docs/openapi.yaml(validated),web.mdupdated.Follow-up (final PR)
Quality & DX: tests for
App/SessionList/SessionViewer, an opt-in real-container e2e, and OpenAPI drift protection.Need help on this PR? Tag
/codesmithwith what you need. Autofix is disabled.