releases/v2026.824.0.md
Released: 2026-08-24
Paperclip v2026.824.0 is a fast follow to 2026.817.0 — and the first stable to walk the full canary → nightly → beta → stable happy path end to end, soaking as 2026.818.0-beta.1 before promotion. It carries 172 commits: chat-style tasks graduate from experiment to the default experience, managed runtime previews become reachable over Tailscale HTTPS, sandbox execution gains a verified provider capability contract, you can sign in to Claude and Codex from inside the product, large company imports survive dropped connections, and a large batch of long-standing community fixes lands.
None of these require action for a typical install, but read through before upgrading:
enableClassicTaskInterface, replacing enableTaskChatRedesign in instance settings) restores the pre-chat page — page-level header, plain comment thread, fixed Properties sidebar — but chat-only features are unavailable there. (#11101)streamAgentSessionOutput setting and the Daytona plugin's useSessions and useLogStream keys no longer exist; the verified provider capability snapshot is the only streaming decision, with an automatic poll fallback. Saved configurations that still carry the removed keys load fine — the keys are simply inert. (#11463, #11557)tailscale_https instead of loopback HTTP. Set PAPERCLIP_MANAGED_RUNTIME_HTTPS=off to keep the old behavior, or force to fail closed when the broker is missing. Managed runtime control routes also gained two new 409 responses (workspace_runtime_control_in_progress, workspace_runtime_lease_conflict) — callers that assumed a control always starts must handle a conflict. (#11524, #11525)anyone for new interactions. Every interaction kind now goes through one resolver-policy evaluator with recorded provenance, instead of per-route rules that blocked valid agents. Migration 0218 deliberately does not widen anything already pending: existing rows keep their old restrictions under new names (board_or_agents → not_creator, board_only → human_only). (#11376)claude setup-token through a sandbox pseudo-terminal with owner-bound sessions and one-time token delivery, and the Codex adapter gets an equivalent sandbox device-login that promotes the credential only after readiness checks and then deletes the temporary sandbox. Deployments behind a TLS-terminating platform edge (Railway, Render, Fly, …) can declare CLAUDE_LOGIN_EDGE_TLS_TERMINATED=true so the transport guard stops warning about a connection that is HTTPS to the user, and a promoted device-login credential now survives managed-home re-seeding. (#11347, #11286, #11237, #11579, #11578)DAYTONA_API_KEY) now reach their plugin workers, and the synthetic "Local" default option respects the mode. (#11200, #11244)/secrets/catalog endpoint maps secret names to ids for agents wiring env bindings — no values, no provider config. Issue-document annotations are also included in agent review context, so feedback left on a document reaches the agent that acts on it. (#9530, #11332)updatedSince filter. (#11334, #9050)stage.sync steps are instrumented and the agent process span is homed correctly, continuing last release's sandbox-startup tracing work. (#11301)paperclipai channels — the new command shows every release lane (stable, beta, nightly, canary), the version each currently resolves to, and which one your install follows. (#11210)Response instead of a blank page, the web app manifest is fetched with credentials, and the UI survives first load against a cold backend. The archived-company selection ping-pong that could trap a session in a redirect loop is gone. (#11290, #11292, #11245, #11246, #11300)npx form. (#9589, #9994, #9818, #10894, #10790, #11090, #10143, #11343, #11400)syncOut accepts bsdtar tarball listings. (#11235, #11406, #11341, #10017, #8978, #10212, #11408, #11289)pathToFileURL before dynamic import). (#9500, #9463, #10003, #9225, #10294, #10433, #8546, #10256, #4287)DELETE /api/issues/:id succeeds for issues with dependents (comments and read-state cascade; cost and finance records are kept with their issue reference cleared), non-UUID company refs return 404 instead of 500, cross-package Zod errors are recognized, wiring blockers in a PATCH no longer implicitly reopens a blocked issue, unsigned ask-first requests stay out of the review queue without being cancelled, the terminal workspace reaper stops starving on its oldest candidates, the agent run JWT default TTL is aligned to the documented 48h so suspended-laptop runs stop waking with an expired credential, an explicit PAPERCLIP_API_URL overrides the derived runtime URL in run env, base-URL ports are only rewritten for loopback hosts, and silent nonzero exits in the Hermes flow surface as failures. (#11331, #9959, #10168, #10269, #11338, #11238, #10176, #10339, #10258, #10107)git status processes and starved health checks), and the browser only starts scans when the file panel is open and visible. (#11572)0212 through 0222), covering the one-per-company onboarding first task (0212), resumable company transfer runs (0213), adapter device-login sessions (0214, 0215), Cloud onboarding seeds (0216), issue-deletion foreign-key policies (0217), interaction resolver-policy defaults and provenance (0218), runtime exposure state (0219), execution-workspace runtime leases (0220), Claude setup-token sessions (0221), and environment-lease references that survive environment deletion (0222). Migrations run automatically on startup — no manual action required. Nothing drops a table or deletes data; note that 0218 rewrites resolver-policy values on existing pending interactions (conservatively — see Breaking Changes) and 0217/0222 change what happens to dependent rows on delete.PAPERCLIP_MANAGED_RUNTIME_HTTPS — auto (default), off, or force; controls the Tailscale HTTPS default for managed runtime previews (see Breaking Changes). PAPERCLIP_TAILSCALE_BROKER_SOCKET and PAPERCLIP_TAILSCALE_DNS_NAME override the broker socket path and the tailnet DNS name; PAPERCLIP_VITE_HMR_PROTOCOL (ws/wss) pins the dev-preview HMR protocol. (#11524, #11525)CLAUDE_LOGIN_TRUSTED_PROXIES — allowlisted proxy peers for the Claude login transport guard; CLAUDE_LOGIN_EDGE_TLS_TERMINATED=true — declare platform-edge TLS termination on managed platforms where the proxy addresses aren't knowable. (#11286, #11579)PAPERCLIP_ONBOARDING_SEED_ADAPTER_TYPE — adapter type for the agent created by a Cloud onboarding seed. (#11098)SANDBOX_ORPHAN_CLEANUP_SPOOL_DIR — where durable sandbox cleanup records are spooled; PAPERCLIP_PROCESS_SESSION_STDIN_MAX_RETRIES — retry ceiling for the sandbox stdin poller. (#11347, #11235)streamAgentSessionOutput (server) and useSessions / useLogStream (Daytona plugin) no longer do anything — remove them from saved configs at your leisure; they load but are inert. (#11557)PAPERCLIP_AGENT_JWT_TTL_SECONDS=172800). If you relied on the old implicit 1h expiry, set the variable explicitly. (#10176)@paperclipai/tailscale-https-broker README); to opt out, set PAPERCLIP_MANAGED_RUNTIME_HTTPS=off. Nothing else changes for unmanaged or custom services.This release has 172 commits from 32 contributors. Thank you to everyone who contributed to this release!
@0xopaque, @adamteale, @ApolinarioRatio, @austinpilz, @christianlappin, @cucurigoo, @dmndbrp-oss, @dylanroy, @edgardfrz, @fronc, @futhgar, @panbanda, @raviy06, @samrusani, @santastabber, @sauerdaniel, @seb-veto, @Sergio-LPA, @stubbi, @ulisavo, @vmarchaud, @webdevdot