Skip to content

v0.1.15

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Oct 00:33
· 70 commits to main since this release
7417aa2

Highlights

  • Memory as one row per fact — semantic recall across authorized notebooks, plus a nightly tidy (#2229, #1129, #2323, #2232).
  • Goals that handle getting stuck — a governor steps back, then pauses; people can resume or cancel (#2132, #2116, #2271).
  • Reply to Slack conversations from the web UI, with unread dots for new agent replies (#2383, #2250).
  • Smoother app connections — missing connections offered inline and continued after consent; per-user OAuth for admin-configured MCP servers (#2043, #1812).
  • Admin decision rules that run on every turn and can be enforced from chat (#2192, #2334, #2336).
  • Deploy resilience — retry-safe tool calls re-run after a deploy interrupt; people's turns run before background work (#2055, #2356).
  • New options — DigitalOcean Managed Agents and E2B computer backends, Browser Use Cloud for browsing, Claude Haiku 5.5, GPT-6.1 Sol Ultrafast (#2128, #2370, #2367, #2109, #2143).
  • Breaking: Codex and OpenCode harnesses removed; session_tape dropped after migrating its data (#2277, #2273, #2281).

What's Changed

  • Tighten webhook registration checks by @16francej in #1922
  • Tighten Slack account policy handling by @16francej in #1923
  • Show the newest suggested-activities run, not the oldest by @ReganBell in #1993
  • Share source-auth signing and HTML/config helpers from chassis (LAB-161) by @ReganBell in #1995
  • Prompt: keep working notes in Files so any sandbox can reach them by @ReganBell in #1994
  • Delete unused functions from the admin inline script by @ReganBell in #1996
  • Share the tool-descriptor parser between core and the CLI by @ReganBell in #1997
  • Add app annotations as native chat attachments behind a per-user flag by @ReganBell in #2006
  • Clarify Inbox filtering with a custom dropdown by @evebouf in #1814
  • Let listed first-party origins call the web chat API by @tdfirth in #2004
  • Remove dead rules from web UI shell.css by @ReganBell in #1999
  • Tighten spacing below the Inbox email filter by @evebouf in #2008
  • Use session visibility for agent transcript reads by @ReganBell in #2009
  • Preview Markdown, tables and text attachments in app by @ReganBell in #2010
  • Ignore git http-backend stdin EPIPE instead of crashing core by @ReganBell in #1893
  • Record redacted cause when Composio authorization fails by @ReganBell in #2014
  • docs: add master spec by @ReganBell in #2015
  • Add a per-user option to open the web UI on a new chat by @16francej in #2012
  • Retire legacy sandbox provider routing by @ReganBell in #2019
  • Reuse an existing trusted-provider session on trusted launch by @16francej in #2025
  • Stop discarding error information at the shared error paths by @ReganBell in #2018
  • Fork from the clicked message inside forked conversations by @time-attack in #2005
  • Stop sending a cron tick job every second by @time-attack in #2007
  • Send inbox loop-item changes only to the users who can see the loop by @time-attack in #2002
  • Give the inbox viewers test response a getHeader by @16francej in #2037
  • Fix web-ui dependency audit findings by @16francej in #2029
  • Point Slack sessions at Slack history for missing context by @16francej in #2032
  • Let qm up replace a relinquished core cohort while its members finish admitted work by @ReganBell in #2047
  • Abort inline turns before shutdown hands back their leases by @ReganBell in #2051
  • Drop ECS task protection and the linger-until-drained deploy wait by @ReganBell in #2052
  • Re-run retry-safe tool calls transparently when a deploy interrupts a turn by @ReganBell in #2055
  • Replace background membership with a single owner record by @ReganBell in #2057
  • Continue the Pi assistant turn on resume instead of prompting a note by @ReganBell in #2058
  • Verify Slack state before repeating cut deliveries and sweep silent terminal runs by @ReganBell in #2053
  • Drop unused busy() probes and accept retired INACTIVE deployments in rollout waits by @ReganBell in #2059
  • Drop the Slack state pre-check before repeating cut reaction, pin and delete deliveries by @ReganBell in #2061
  • Mark tool results recorded after shutdown as interrupted by @ReganBell in #2060
  • Skip the stopped assistant entry when shutdown aborts a turn by @ReganBell in #2062
  • Keep org runtime settings from overwriting each other across servers by @ReganBell in #1918
  • Keep spend_usage_json from raising on invalid usage text on Postgres 18 by @ReganBell in #1919
  • Install each seed skill once when several servers boot together by @ReganBell in #1920
  • Record the latest granter on re-grant in the in-memory ACL store, as Postgres does by @ReganBell in #1921
  • Round fractional paging parameters instead of failing with a 500 on Postgres by @ReganBell in #1924
  • Keep query-string tokens out of server 500 logs by @ReganBell in #1925
  • Match % and _ literally when filtering the audit log by resource by @ReganBell in #1926
  • Explain an unconfigured keychain instead of answering not_found by @ReganBell in #1927
  • Start retention cohort weeks on Monday instead of Thursday by @ReganBell in #1928
  • Accept epoch timestamps sent as strings in expiresAt by @ReganBell in #1929
  • Stop goal rounds after a model call fails at the provider by @16francej in #2041
  • Make conversation forks responsive and batch history copies by @ReganBell in #2070
  • Notify deployments when main goes green by @ReganBell in #2049
  • Batch inbox ingestion, sidebar reads, and Slack catchup writes by @ReganBell in #2073
  • Bump fastify and hono for new advisories by @ReganBell in #1805
  • Contain background database failures instead of crashing core by @ReganBell in #2074
  • Make the admin session listing cheap and bounded by @ReganBell in #2076
  • Make pip usable in the default Modal sandbox image by @16francej in #2034
  • connectors: let Linear OAuth tokens refresh by @ReganBell in #2048
  • Typed provider errors: stop regex-matching error text in core by @ReganBell in #2068
  • Require readable descriptions for background jobs by @ReganBell in #2084
  • Fix tool-call summary spacing by @ReganBell in #2079
  • Offer missing app connections inline and continue after consent by @16francej in #2043
  • Add Claude Haiku 5.5 by @ReganBell in #2109
  • Upgrade the dependencies behind new npm advisories so the core image builds by @ReganBell in #2111
  • Run the core image's production npm audit in CI by @ReganBell in #2114
  • sandbox: keep provider instance names within 63 chars by @ReganBell in #2115
  • Let a person resume a paused goal by @ReganBell in #2116
  • Keep publishing private; share separately by @16francej in #2026
  • Send session-affinity headers to the model gateway by @16francej in #2118
  • Record app page views by @16francej in #2027
  • Post command approval cards in the requesting DM thread by @16francej in #2110
  • Send session-affinity headers for gateway-mapped models by @16francej in #2122
  • chore(pricing): sync model price table with provider pricing pages by @ReganBell in #2123
  • Explain wall of shame categories and require each in review by @ReganBell in #2131
  • Use the user timezone for Claude limit notices by @ReganBell in #2144
  • Remove deprecated audience param from apps publish schema by @16francej in #2130
  • Check Wall of shame review reports in CI by @ReganBell in #2151
  • Show a subagent's delegated task in its transcript by @ReganBell in #2150
  • Allow 16 multiview panes and Chrome tab shortcuts in the desktop app by @ReganBell in #2153
  • docs: add Legacy preservation to the wall of shame by @ReganBell in #2154
  • Add Slack-style emoji shortcode completion to web chat by @ReganBell in #2158
  • Take the shared computer lock when the computer is already running by @ReganBell in #2161
  • Assign session titles before turn setup by @ReganBell in #2162
  • Remove artificial swarm setting maximums by @16francej in #2141
  • Fix flaky Codex OAuth startup cancel test by @16francej in #2165
  • Add a goal governor that steps back, then pauses, when a goal is stuck by @16francej in #2132
  • Repair device login capture and explicit credential writeback by @ReganBell in #2146
  • Trim per-turn context: grouped memory deltas, recent-only deliveries, no onboarding block by @ReganBell in #2163
  • Fix sessions tool; subagents inherit their parent's capabilities by @ReganBell in #2155
  • Ship AWS CLI v2 in the E2B and Modal default images by @ReganBell in #2168
  • Raise subagent tree run cap from 10 to 50 by @ReganBell in #2169
  • Wake an idle parent when its subagent finishes by @ReganBell in #2170
  • Wall of shame: Provider drift lens + agent-side lens triage by @ReganBell in #2171
  • Wall of shame: move sandbox-contract example under Provider drift by @ReganBell in #2176
  • docs: add Token performance to the wall of shame by @ReganBell in #2160
  • Add web UI canvas and UI state skills behind ui_canvas by @16francej in #2178
  • Pause a shared computer only after the last turn using it releases it by @ReganBell in #2179
  • Avoid full-history scans when listing participant sessions by @16francej in #2166
  • Revert web UI canvas and UI state skills by @16francej in #2188
  • Add DigitalOcean Managed Agents as a sandbox backend by @16francej in #2128
  • Show Slack profile photos throughout Inbox by @evebouf in #2193
  • Add team scopes behind a feature flag by @16francej in #1987
  • Pass the team store to the admin API by @16francej in #2197
  • Hand off Slack work to other people by plain DM through a skill by @16francej in #2167
  • Show Slack sender avatars with a source badge in Inbox by @evebouf in #2194
  • Fix saved-instructions reads to exclude inherited policy by @ReganBell in #2201
  • Keep gateway document requests below HTTP body limits by @16francej in #2200
  • Share new channel apps with their channel by default by @ReganBell in #2202
  • Always review the core Wall of shame lenses by @ReganBell in #2207
  • Consolidate credential context into one owner-grouped inventory by @ReganBell in #2206
  • Expose native admin actions through existing authenticated handlers by @ReganBell in #2208
  • Add a custom date range to the admin spend view by @ebakan in #1797
  • Add a token-authenticated spend export by @ebakan in #1798
  • Make execute the sole command launcher by @ReganBell in #2205
  • Send environment inventories once, then only changes by @ReganBell in #2209
  • Expose indexed conversation search through sessions by @ReganBell in #2204
  • Rank skill shortlists and add source-safe native discovery by @ReganBell in #2210
  • Consolidate prompt orientation and policy composition by @ReganBell in #2203
  • Apply custom spend windows explicitly and bound them by @ebakan in #2213
  • Harden the spend export token and row order by @ebakan in #2211
  • Count team members as members of their team scope by @16francej in #2215
  • Let webhook owners edit a webhook's task in place by @16francej in #2212
  • Suggested activities: lead with urgent owed work by @ReganBell in #2219
  • Restart published apps that crash instead of serving 502s by @ReganBell in #2220
  • Report published app crashes, failed starts and restarts to the admin error log by @ReganBell in #2222
  • Select explicit sandboxes across file, app, and skill operations by @ReganBell in #2199
  • Tie background jobs to their computer and keep refused credential drops usable by @ReganBell in #2227
  • Report app start failures, restarts and outages on every deploy provider by @ReganBell in #2226
  • Add Prod-like QA to the Wall of shame by @ReganBell in #2233
  • Normalize delivery text before PostgreSQL persistence by @16francej in #2236
  • Per-user OAuth sign-in for admin-configured MCP servers by @16francej in #1812
  • request-access skill: drop one-time grant guidance by @ReganBell in #2234
  • Store memory as one row per fact; agents add, edit and delete by id by @ReganBell in #2229
  • Work a loop fire's batch through a bounded pool (maxConcurrentItems) by @pcapriolo-yc in #2091
  • Fix app readiness and liveness probes found broken by live Fly and AWS QA by @ReganBell in #2238
  • Add semantic recall across authorized memory notebooks by @16francej in #1129
  • Send portal identity when starting self-connect by @16francej in #2244
  • AGENTS.md: testing rule by @ReganBell in #2240
  • Delete web-ui tests that only read source text by @ReganBell in #2242
  • Make the Files upload helper work through HTTPS proxies by @ReganBell in #2246
  • Delete core tests that read src/ text by @ReganBell in #2241
  • Drop source-text assertions from mixed web-ui tests by @ReganBell in #2245
  • Fix Copy link in the desktop app by @ReganBell in #2080
  • Web UI: unread dots for new agent replies by @ReganBell in #2250
  • Drop the unused session adopt route and run kept web-ui tests against real modules by @ReganBell in #2255
  • Add authenticated dictation and live voice endpoints by @ReganBell in #2252
  • Wall of shame: credential handle prefix band-aid by @ReganBell in #2257
  • Keep long live turn streams updating with bounded tails by @ReganBell in #2260
  • Let core decide which web chats a viewer can continue by @ReganBell in #2267
  • Apply Devbar toggles synchronously by @ReganBell in #2268
  • Admin Runtimes card: composer model picker rows and memory recall by @ReganBell in #2239
  • Quiet multiview chrome with hover and keyboard controls by @ReganBell in #2264
  • Use OpenAI limits for voice instead of our own caps by @ReganBell in #2259
  • Nightly memory tidy; drop cron run modes so crons run as their owner by @ReganBell in #2232
  • Automatically install and restart desktop updates by @ReganBell in #2263
  • AWS apps: suspend instead of delete, rotate in the background, faster cold start by @ReganBell in #2261
  • Let users cancel a goal by @ReganBell in #2271
  • Show all conversations by default with quieter sidebar rows by @ReganBell in #2275
  • Prompt: prefer platform tools over the browser by @ReganBell in #2276
  • Remove the run task list by @ReganBell in #2274
  • Keep memory vectors across gateway moves and bound index writes by @ReganBell in #2278
  • Honor linked identities in room membership checks by @16francej in #2039
  • Stop writing and reading session_tape by @ReganBell in #2273
  • Remove Codex and OpenCode harnesses by @ReganBell in #2277
  • Copy legacy tape step metadata into side tables before the tape is dropped by @ReganBell in #2280
  • Add decision hooks with pluggable decision model providers by @16francej in #2192
  • Plan durable-map scoped selects through their indexes by @ReganBell in #2282
  • Skip legacy tape payloads too large to parse during step preparation by @ReganBell in #2299
  • fix(mcp): call the configured MCP endpoint; list linked per-user MCP sign-ins by @16francej in #2290
  • Stop stripping the bot mention from Slack messages by @16francej in #2256
  • Drop session_tape once its step metadata has been copied out by @ReganBell in #2281
  • Rank semantic memory in Postgres with pgvector by @ReganBell in #2323
  • Drain full memory index batches within one tick by @ReganBell in #2326
  • Speed up the app: serve web UI assets gzipped through the portal by @16francej in #2331
  • Run turn_start decision rules when a model is already selected by @16francej in #2329
  • Run turn_start decision rules on every turn, with turn context by @16francej in #2334
  • Let admins enforce decision rules from chat by @16francej in #2336
  • Remove decision question length limit by @16francej in #2338
  • Hide automation runs from the sidebar and classify sessions by stored surface by @ReganBell in #2340
  • Always review Historylessness in the Wall of shame by @ReganBell in #2337
  • Store execute output once in tool results by @ReganBell in #2339
  • Remove the turn-wall-clock admin resource by @ReganBell in #2341
  • Check sandbox execution against the stored result by @ReganBell in #2345
  • Remove per-entry security taint plumbing by @ReganBell in #2342
  • Copy legacy tape steps automatically before the tape drop by @ReganBell in #2349
  • Add GPT-6.1 Sol Ultrafast by @ReganBell in #2143
  • Show Slack avatars for project members by @ReganBell in #2321
  • Take Inbox Slack photos from the org directory by @ReganBell in #2325
  • Keep goal state in session_goals, not the session log by @ReganBell in #2343
  • Drop the unused turn_wall_clock_configs table by @ReganBell in #2350
  • Set up a connector source before onboarding asks about work by @16francej in #2214
  • Prefer hand-off over admin reads; no invented consent in subagent tasks by @16francej in #2230
  • Let the server own a chat's model and show routed turns in the picker by @16francej in #2354
  • Detect connector sources from existing signals by @16francej in #2359
  • Install layer tools outside /workspace on DigitalOcean computers by @16francej in #2195
  • Fix /sessions/ session links and make sessions searchable by title/id by @ReganBell in #2357
  • Include a canonical web URL with each session search hit by @ReganBell in #2365
  • Make subagent briefs peer-to-peer by @ReganBell in #2364
  • Add per-user settings to unpin the latest prompt and steer mid-run sends by @16francej in #2333
  • Keep admin-archived catalog skills archived across restarts by @16francej in #2330
  • Tell resumed turns the recorded reason the last attempt stopped by @ReganBell in #2361
  • Record a stopped turn as a system note, not a fake assistant reply by @ReganBell in #2363
  • Stage Managed Agents scratch files inside the workspace by @16francej in #2335
  • Resume/stop fast follows: one cause table, flag-based resume notes, Claude stop parity by @ReganBell in #2371
  • Add E2B as a selectable agent-computer backend by @16francej in #2370
  • Add Browser Use Cloud provider to the browse skill by @16francej in #2367
  • Preserve human origins through delegated session turns by @ReganBell in #2375
  • Tighten author headers in labeled chats by @ReganBell in #2376
  • Resume from recorded context without a no-op prompt by @ReganBell in #2373
  • Add local computer access to human desktop turns by @ReganBell in #2262
  • Show a reply the model finished mid-run as a reply, not folded work by @ReganBell in #2381
  • browse/kernel: profile names are secrets; no listing; verify account identity by @16francej in #2378
  • Swarms: choose a model per worker at spawn by @16francej in #2377
  • browse/kernel: use the shared Kernel credential through the broker by @16francej in #2384
  • Let the deployment supply broker credentials from its environment, with an optional daily cap by @16francej in #2385
  • browse: run first-time setup silently by @16francej in #2387
  • Add per-scope pinned skills to the skills shortlist by @16francej in #2386
  • Run people's turns first and park background work for them by @ReganBell in #2356
  • Flush the Postgres error log before runtime stop resolves by @ReganBell in #2390
  • Composio execute: report failure cause, longer tool timeout, bulk-read guidance by @16francej in #2389
  • Keep the composer visible on every multiview pane by @ReganBell in #2391
  • Hide finish_silently from silent wake turns in the web transcript by @ReganBell in #2395
  • Canvas: always-on canvas and sharing by copy by @16francej in #2366
  • Poll for the schema lock so concurrent migrations do not deadlock by @anurag in #2401
  • Let notebooks without a records column migrate into fact rows by @anurag in #2400
  • Keep the mobile session-tools sheet above the composer and align its rows by @16francej in #2402
  • Restore secret-drop instructions agents can find by @16francej in #2403
  • Make swarm message, notification, spawn and lifetime budgets opt-in by @16francej in #2406
  • Keep older Slack backscroll when QM is tagged after a quiet gap by @ReganBell in #2409
  • Mark calendar days in the model's replayed context by @ReganBell in #2411
  • Tell the model how it reaches the person's Mac/PC by @ReganBell in #2412
  • Reply to Slack conversations from the web UI by @ReganBell in #2383
  • Audit Composio connection completions by @ReganBell in #2414
  • Read only the current session's approvals by @ReganBell in #2419
  • Name org credentials by slug everywhere by @ReganBell in #2413
  • Draw a chat's transcript without waiting for its approvals by @ReganBell in #2421

New Contributors

Full Changelog: v0.1.14...v0.1.15