Skip to content

v4.0.0

Choose a tag to compare

@github-actions github-actions released this 10 Nov 15:22
20f9d62

4.0.0 (2026-11-10)

� BREAKING CHANGES

  • hub chats run on the hub and use the agent chat UI; the device-side Cloud code, the node session transport, the session lists and the sessions panel are removed, as is the account server choice. The chat journal format is version 8. workspace::SwapSides is replaced by the Window � Layouts � Swapped sides layout, and Ctrl+E / Cmd+E reach the terminal instead of swapping the side panels.

Features

  • agent access connects with saved credentials; profiles have one space (8135943)
  • agent-chat: refuse file transfer calls until execution is wired (8135943)
  • agent-chat: run agent file transfers with paired approvals (8135943)
  • agent-engine: install runner-bound provider credentials (8135943)
  • agent-engine: offer the model only an allowed set of tools (8135943)
  • agent-engine: renew provider leases and add the broker endpoint (8135943)
  • agent-runtime: supply transfer requests to chats (8135943)
  • agent-tools: publish admitted initial sessions (8135943)
  • agent-tools: reuse connected terminals for allowlisted servers (8135943)
  • agent-tools: run file transfers for headless runs (8135943)
  • agent: a Servers control for Cloud chats and bound servers in history rows (8135943)
  • agent: add the Cloud tab to the new-agent menu (8135943)
  • agent: attach a hub chat's servers from the attach menu (8135943)
  • agent: attach files of any kind with the paperclip (8135943)
  • agent: describe file transfer approvals and tool inputs (8135943)
  • agent: draw one composer and footer for Local and Cloud chats (8135943)
  • agent: every window lists every chat; a resting chat moves to the window that opens it (8135943)
  • agent: file tools for attached terminals that run no programs (8135943)
  • agent: list a hub's Cloud chats in the history column (8135943)
  • agent: open Cloud chats from the Cloud menu (8135943)
  • agent: open the chat of an online-only agent on the own runner (8135943)
  • agent: present captured conversations in the shared panel (8135943)
  • agent: separate local and server chats in a hub window's history (8135943)
  • agent: stop and remove a seat from its agent row (8135943)
  • ai: add file transfer tools to the terminal catalog (8135943)
  • app: add Layouts and Panels submenus and the plugins reference (8135943)
  • app: add Noct brand mark and default themes (8135943)
  • app: add nocterm plugin dev (8135943)
  • app: add the Servers page and Hub commands (8135943)
  • app: compose the Cloud chat launcher (8135943)
  • app: compose the layout editor into Appearance (8135943)
  • app: compose the Plugins page and plugin settings (8135943)
  • app: compose the wasm runtime for user plugins and plugin check (8135943)
  • app: compose user plugins into windows, menus and check command (8135943)
  • app: dial hub routes through the hub links (8135943)
  • app: follow the hub account for the vault and profiles (8135943)
  • app: give a hub window the account's connections and vault (8135943)
  • app: hold user plugins in safe mode and until the user allows them (8135943)
  • app: inject the system clock (8135943)
  • app: list plugin settings in the plugins reference (8135943)
  • app: open and switch hub windows (8135943)
  • app: open windows in a local or hub environment (8135943)
  • app: reattach hub sessions of restored windows (8135943)
  • app: remove the swap-sides shortcut (8135943)
  • app: restore window environments after restart (8135943)
  • app: share the transfer runtime with agents (8135943)
  • app: show the account's spaces and announce a refused change (8135943)
  • app: store plugin records and data (8135943)
  • app: wire the agent hosts observer and agent access ports (8135943)
  • cloud-agents-model: add the Cloud chat launcher port (8135943)
  • cloud-agents: add the Cloud agents model and catalog service (8135943)
  • cloud-agents: answer bound Cloud chats' certificate requests while unlocked (8135943)
  • cloud-agents: route offline-off personal agents to the own runner (8135943)
  • cloud-agents: stop and remove seats, state the web panel url (8135943)
  • cloud-chat: allow a queued run to use the model (8135943)
  • cloud-chat: handle captured tool approval answers (8135943)
  • cloud-chat: show a Cloud tool row with the core's title and typed outcome (8135943)
  • cloud-chat: show sent prompts as pending until the runner accepts them (8135943)
  • cloud-conversation-model: add the neutral Cloud conversation model and port (8135943)
  • cloud-conversation-model: bind a Cloud chat to servers and run prompts on one (8135943)
  • cloud-conversation-model: say a chat is Opening before its first round (8135943)
  • cloud-model: admit chat SSH bindings and certificates (8135943)
  • cloud-model: derive runner chat summaries from journaled facts (8135943)
  • cloud-model: grant transfers through the execution bit (8135943)
  • cloud-model: open a chat when its key is admitted (8135943)
  • cloud-runner: announce deleted chats to the hub for retirement (8135943)
  • cloud-runner: broker original-run sessions on the native runner (8135943)
  • cloud-runner: claim a chat's writer on key admission (8135943)
  • cloud-runner: journal v7 summary rows and coordinator summary publication (8135943)
  • cloud-runner: keep chat SSH keys in journal v8 and run their transitions (8135943)
  • cloud-runner: let the runner relax approval for contained targets (8135943)
  • cloud-runner: list a bound chat's servers in its summary (8135943)
  • cloud-runner: persist the outbox retry horizon (journal v6) (8135943)
  • cloud-runner: seal the chat SSH row under its own journal class (journal v9) (8135943)
  • cloud-runner: supply native timer and captured identity IDs (8135943)
  • cloud-runner: wake runs parked for provider access (8135943)
  • cloud: persist captured account conversations (8135943)
  • connections-io: keep the replica state in a private file (8135943)
  • connections-model: place profiles in a space and move them (8135943)
  • connections-model: reconcile profiles with a replica (8135943)
  • connections-model: report a locked replica (8135943)
  • connections-store: move a profile's secrets with it between spaces (8135943)
  • connections-store: place profiles in a space, roll back a refusal (8135943)
  • connections-store: replicate profiles (8135943)
  • connections-store: show a locked account (8135943)
  • connections: a group's button opens every connection of the group (8135943)
  • connections: announce connected sessions to an observer (8135943)
  • connections: choose, create and import vault keys in the editor (8135943)
  • connections: install connections kept only in memory (8135943)
  • connections: keep a typed password in the window's vault and drop the unsaved agent servers (8135943)
  • connections: offer the agent servers this window has not saved (8135943)
  • connections: show organization sections and choose a space (8135943)
  • connections: show the account state above the list (8135943)
  • core: add a one-line error cause chain for log records (8135943)
  • core: define the wall-clock contract (8135943)
  • core: read bounded regular files without following links (8135943)
  • design: let the sidebar widen as far as the agent panel (8135943)
  • files: offer transfer counts to plugins (8135943)
  • files: show relayed copies in transfer activity (8135943)
  • hub chats run on the hub and use the agent chat UI (8135943)
  • hub chats, managed agents and user plugin toolbars (8135943)
  • hub-agents: follow agent and server changes of a hub (8135943)
  • hub-io: adapt the Cloud agents ports over the hub contract (8135943)
  • hub-io: admit persistent runner inbox commands (8135943)
  • hub-io: answer fresh runner head probes (8135943)
  • hub-io: attach terminal tabs to hub sessions (8135943)
  • hub-io: confirm administrator keys before opening groups (8135943)
  • hub-io: confirm administrator keys through a narrow port (8135943)
  • hub-io: create and list Cloud chats (8135943)
  • hub-io: give each trusted server its own CA principal with the contract CA (8135943)
  • hub-io: import bounded public runner setup documents (8135943)
  • hub-io: journal file transfer tool calls (8135943)
  • hub-io: keep own-runner agent keys and carry provider grants (8135943)
  • hub-io: keep the account keyset and an encrypted cache (8135943)
  • hub-io: lease a personal agent's key to the own runner (8135943)
  • hub-io: list and revoke account devices (8135943)
  • hub-io: map chat SSH grants, events and certificates for the runner (8135943)
  • hub-io: move credentials between the personal vault and a group (8135943)
  • hub-io: offer a new recovery key while one is unconfirmed (8135943)
  • hub-io: open relay streams (8135943)
  • hub-io: open the account keys at sign-in and recovery (8135943)
  • hub-io: persist and republish chat key grants (8135943)
  • hub-io: reach hubs through the contract with device credentials (8135943)
  • hub-io: read failure codes and provider kinds from the contract (8135943)
  • hub-io: report closed account keys as locked (8135943)
  • hub-io: restore account Cloud trust and runner catalogs (8135943)
  • hub-io: resume a Cloud command kept across a restart (8135943)
  • hub-io: retain runner authority across token rotation (8135943)
  • hub-io: run Cloud chats on the contract device core (8135943)
  • hub-io: seal a provider lease to a verified runner boot (8135943)
  • hub-io: send a provider lease to a chat without a window (8135943)
  • hub-io: send publication retry horizons and retire deleted chats (8135943)
  • hub-io: serve group profiles and credentials of organizations (8135943)
  • hub-io: show the organization name the hub sends in Cloud (8135943)
  • hub-io: sign, seal and publish runner chat summaries (8135943)
  • hub-io: store the agent SSH CA and trust registry as E2E data (8135943)
  • hub-io: wake a chat's seat with the core's WakeSeat (8135943)
  • hubs-model: add an optional colour to a known server (8135943)
  • hubs-model: add hub addresses, trust rules and access ports (8135943)
  • hubs-model: add the account devices port and its fake (8135943)
  • hubs-model: add the account server and the account key states (8135943)
  • hubs-model: add the agent host trust and chat grant ports (8135943)
  • hubs-model: name the environment a window shows (8135943)
  • hubs-model: remember the organization and sessions of a hub window (8135943)
  • hubs-model: report the id of a session that a terminal starts (8135943)
  • hubs-ui: add environment menu, sign-in dialog and sessions panel (8135943)
  • hubs-ui: add the agent access tab to the Servers page (8135943)
  • hubs-ui: add the Cloud agents tab to the Servers page (8135943)
  • hubs-ui: ask for the instructions of a personal agent again (8135943)
  • hubs-ui: confirm administrator keys on the Servers page (8135943)
  • hubs-ui: keep the recovery key step open until it is saved (8135943)
  • hubs-ui: list and forget pinned pool keys (8135943)
  • hubs-ui: lock and unlock the account keys in Agent access (8135943)
  • hubs-ui: manage known servers in settings (8135943)
  • hubs-ui: open the selected session with Enter (8135943)
  • hubs-ui: remember and reattach the sessions of a hub window (8135943)
  • hubs-ui: show per-model usage in the Cloud agents tab (8135943)
  • hubs-ui: sign in again to a known server from its window (8135943)
  • hubs-ui: sign-in steps for account keys and the account server (8135943)
  • hubs-ui: split the Servers page into a list and tabs (8135943)
  • hubs-ui: switch a window between this computer and a hub (8135943)
  • hubs: add the hub registry, connection status and sign-in service (8135943)
  • hubs: choose the server that keeps the account (8135943)
  • hubs: list and confirm the pending administrator keys of a hub (8135943)
  • hubs: offer account devices through the registry (8135943)
  • hubs: prefer a remembered organization in a hub window (8135943)
  • hubs: reach the agent SSH CA through the hub service (8135943)
  • hubs: redraw the Servers page when account keys open or close (8135943)
  • hubs: rename, recolour and safely remove known servers (8135943)
  • integrate cloud chat execution and desktop foundations (8135943)
  • layout-ui: edit the bar in its preview by drag and menus (8135943)
  • layout-ui: edit the status bar and panels in Appearance (8135943)
  • layout-ui: show the host's facts for user plugin items (8135943)
  • local: contain cloud tool child processes on Linux (8135943)
  • local: integrate contained interactive shell sessions (8135943)
  • local: read the local wall clock (8135943)
  • monitor-ui: anchor the host monitor popover to its zone (8135943)
  • monitor-ui: declare the status bar metrics as plugin settings (8135943)
  • monitor-ui: offer the monitor reading to plugins (8135943)
  • plugin-abi: add the guest call ABI and its wire types (8135943)
  • plugin-api: add the user plugin contract and declarative runtime (8135943)
  • plugin-api: declare the wasm runtime and the code package format (8135943)
  • plugin-api: type the manifest keys of the surface (8135943)
  • plugin-enablement: add the plugins settings section (8135943)
  • plugin-enablement: add the user plugins switch to [plugins] (8135943)
  • plugin-enablement: keep user plugin ids out of the plugins section (8135943)
  • plugin-host: add session-only records and data (8135943)
  • plugin-host: add the plugin host, broker and per-plugin data (8135943)
  • plugin-host: count code runtime faults toward the disable limit (8135943)
  • plugin-host: expose installed plugins to the shell (8135943)
  • plugin-host: remove a plugin's data on its own (8135943)
  • plugin-model: add the plugin set of both tiers (8135943)
  • plugin-model: add user plugin tiers, ids and the clamp (8135943)
  • plugin-model: declare plugin settings schemas (8135943)
  • plugin-model: mark a plugin set as held or as a developer's (8135943)
  • plugin-packages: add the session package store (8135943)
  • plugin-packages: read a package directory for the check command (8135943)
  • plugin-packages: read, hash, store and remove user plugin packages (8135943)
  • plugin-packages: read, store and check wasm packages (8135943)
  • plugin-ports: add observation and effect ports for user plugins (8135943)
  • plugin-ports: say which capabilities a provider record provides (8135943)
  • plugin-sdk: add testing::Host over the real ABI (8135943)
  • plugin-sdk: add the example code plugin, its guest test and guide (8135943)
  • plugin-sdk: add the guest SDK, view builder and export macro (8135943)
  • plugin-sdk: re-export Effect, so a plugin's tests can read its effects (8135943)
  • plugin-sdk: re-export what guests need for requests and views (8135943)
  • plugin-view: draw validated plugin views in a host frame (8135943)
  • plugin-view: mark developer plugin frames (8135943)
  • plugin-wasm: run code plugins on wasmi within resource limits (8135943)
  • plugins-ui: a compact plugin detail with folded lists and removal in a dialog (8135943)
  • plugins-ui: add the Plugins settings page (8135943)
  • plugins-ui: add the User section behind the user feature (8135943)
  • plugins-ui: confirm before removing a plugin or its data (8135943)
  • plugins-ui: install plugins from a button or the plugins folder (8135943)
  • plugins-ui: link a plugin to the status bar editor (8135943)
  • plugins-ui: list external plugins with the built-in ones, with one switch (8135943)
  • plugins-ui: offer the development plugin with a DEV consent (8135943)
  • plugins-ui: show the allow switch and why user plugins are held (8135943)
  • plugins: a plugin's terminal tab can serve files to the explorer and AI chats (8135943)
  • plugins: a plugin's terminal tab carries the plugin's bar along one edge (8135943)
  • plugins: a plugin's toolbar keeps to its own tabs and the user places it (8135943)
  • plugins: arrow-left and chevron-left glyphs (8135943)
  • plugins: build plugin views from the application's own components (8135943)
  • plugins: charts in plugin views, toolbars that know their axis, and toolbar moves that apply (8135943)
  • projects: add folder workspaces with scoped chat history (8135943)
  • projects: support container-backed workspaces (8135943)
  • runner: add the managed mode with a bounded stdin boot document (8135943)
  • runner: approval never trusts the runner's contained targets (8135943)
  • runner: bind chats to reachable servers and sign in with their certificates (8135943)
  • runner: compose the execution runtime for the daemon (8135943)
  • runner: narrow tools, limits and spend by the boot policy (8135943)
  • runner: publish chat summaries from the delivery sweep (8135943)
  • runner: read chat access frames from the host (8135943)
  • runner: read the agent policy from boot v2 (8135943)
  • runner: relay agent transfers through a remote-only runtime (8135943)
  • runner: run managed tools through the host broker (8135943)
  • runner: run prompts on bound servers and read boot v3 with the contract (8135943)
  • runner: send the agent's instructions as the managed system prompt (8135943)
  • runner: supervise persistent Cloud control-plane sessions (8135943)
  • session: add Event::Restore for the screen of an attached session (8135943)
  • session: add pipelined remote read batches (8135943)
  • session: route the first hop through a hub relay (8135943)
  • session: sign in with a key kept in the vault (8135943)
  • settings-ui: open a settings page at an anchor (8135943)
  • settings-ui: scroll to a section of a settings page (8135943)
  • ssh-keys: derive the raw Ed25519 public key of a seed (8135943)
  • ssh-keys: issue agent certificates from a personal user CA (8135943)
  • ssh-keys: parse, normalize and fingerprint SSH keys (8135943)
  • ssh: authenticate with a key kept in the vault (8135943)
  • ssh: dial the first hop through a relay stream (8135943)
  • ssh: edit authorized_keys through the user's session (8135943)
  • ssh: sign a runner in with a chat's in-memory key and certificate (8135943)
  • ssh: sign in with a vault key and its user certificate (8135943)
  • terminal: answer vault key requests from the vault only (8135943)
  • terminal: derive an installation with other credentials (8135943)
  • terminal: expose the connection filesystem to consumers (8135943)
  • terminal: open tabs on an attached session (8135943)
  • terminal: restore the screen of an attached session (8135943)
  • toolbars for plugins, and requests, timers and terminals for user plugins (8135943)
  • transfer-runtime: relay between remote hosts and run remote only (8135943)
  • transfers: add relay requests, endpoints and owned transfer books (8135943)
  • ui: anchor status bar popovers to a zone (8135943)
  • ui: compose settings pages from owner sections (8135943)
  • ui: find the settings of user plugins through the directory (8135943)
  • ui: let plugins post and read their own notices (8135943)
  • ui: let settings pages reveal an anchor (8135943)
  • ui: offer a Nocterm hub as a proxy (8135943)
  • ui: render plugin settings forms from schemas (8135943)
  • vault-ui, connections: search saved passwords and add one in a dialog (8135943)
  • vault-ui: answer vault key requests and list keys by fingerprint (8135943)
  • vault-ui: install a vault for the windows that use it (8135943)
  • vault: bind a credential to an SSH public key (8135943)
  • vault: mark group credentials and refuse writes to read-only ones (8135943)
  • vault: report offline and unsupported operations (8135943)
  • vault: saved passwords sign in to the servers they list and are managed by name (8135943)
  • vendor: expose native input document revisions (2cbede6)
  • vt: reset an emulator in place and keep its generation counting (8135943)
  • window-layout: edit layout presets on the current settings (8135943)
  • window-layout: keep disabled plugins out of resolved layouts (8135943)
  • window-layout: let panels stand alone and users make groups (8135943)
  • window-layout: read layout presets from settings (8135943)
  • window-set: remember the environments of open windows (8135943)
  • window-set: save what a hub window keeps of its server (8135943)
  • workspace-ports: add the terminal files port (8135943)
  • workspace: add a title-bar slot for the environment menu (8135943)
  • workspace: add the clock plugin (8135943)
  • workspace: add the status bar context menu (8135943)
  • workspace: anchor widget popovers to their zone (8135943)
  • workspace: apply plugin enablement live in every window (8135943)
  • workspace: centre the status bar and order shrinking (8135943)
  • workspace: collapse overflowing status bar items into a menu (8135943)
  • workspace: give the title bar an environment slot (8135943)
  • workspace: lay out panel columns in the order of the bar (8135943)
  • workspace: list the placed panels for the window menu (8135943)
  • workspace: name a developer session's panels with DEV (8135943)
  • workspace: offer the workspace kind to plugins (8135943)
  • workspace: read plugins through a source of both tiers (8135943)
  • workspace: replace the swap-sides action with a layout (8135943)
  • workspace: switch layout presets from the window menu (8135943)
  • xtask: ban the wasmi auto-dispatch feature in every member (8135943)
  • xtask: check plugin crate isolation (8135943)
  • xtask: check the plugin ABI golden file and document the ABI (8135943)
  • xtask: generate the manifest schema and check the plugin guide (8135943)
  • xtask: generate the plugin API reference for authors (8135943)
  • xtask: generate the plugin API surface (8135943)
  • xtask: keep guest-only crates out of the app closure (8135943)
  • xtask: let the plugin host notify its observers (8135943)
  • xtask: limit the hub contract and protocol SDK to hub-io (8135943)

Bug Fixes

  • agent-chat: approve a transfer card for its terminal pair (8135943)
  • agent-chat: box the rejected transfer call (8135943)
  • agent-chat: count snapshot capacity like the retained snapshot (8135943)
  • agent-runtime: gate the test-only work bytes export (8135943)
  • agent-runtime: read provider usage only through ACP (8135943)
  • agent: enforce bounded conversation work (8135943)
  • agent: make the Cloud tab a plain list of agents (8135943)
  • agent: offer Cloud agents only in the window of their hub (8135943)
  • agent: show a locked hub account as an actionable notice (8135943)
  • ai: grant transfers per terminal pair (8135943)
  • ai: refuse control characters in transfer paths (8135943)
  • app: fence background SSH host preparation by source (8135943)
  • app: keep remembered servers that are unavailable for one run (8135943)
  • apply plugin effects after the host's update and refresh after the workspace's (8135943)
  • app: publish held and developer sets and test a safe-mode edit (8135943)
  • app: report the current revision when the vault is switched (8135943)
  • app: retain asynchronous plugin publication workflows (8135943)
  • app: satisfy clippy after merging the hub branches (8135943)
  • app: show the sessions panel first in a hub window (8135943)
  • app: stop polling user widgets the bar does not draw (8135943)
  • app: word a personal refusal as the event docs describe it (8135943)
  • cloud-agents: one start per agent, retry a failed start (8135943)
  • cloud-chat: keep a chat live when its runner does not answer (8135943)
  • cloud-model: name the kind of record a projection refusal rejected (8135943)
  • connections-io: isolate DNS work and reuse HTTP connections (8135943)
  • connections-model: read a move between scopes as a move (8135943)
  • connections-store: copy a secret other profiles still use (8135943)
  • connections-store: keep a requested move through interruptions (8135943)
  • connections-store: keep every profile when an account is stopped (8135943)
  • connections-store: keep the cursor behind a refused remote change (8135943)
  • connections-store: reject unbounded replica feeds (8135943)
  • connections-store: retry transient flag acquisition failures (8135943)
  • connections-store: share secrets with a group only on request (8135943)
  • connections-store: take an account's profiles off on detach (8135943)
  • connections: act on a folder only within the clicked scope (8135943)
  • connections: apply the chosen space as part of the save (8135943)
  • connections: keep the debt ratchets and the actions reference green (8135943)
  • connections: keep vault key state in its owner and Import in view (8135943)
  • connections: list a lost organization's connections read-only (8135943)
  • connections: move a saved connection only after its save (8135943)
  • connections: offer unsaved agent servers once the account's list arrived (8135943)
  • connections: say a saved secret is shared with an organization (8135943)
  • connections: share a secret when saved with the note shown (8135943)
  • connections: warn beside the save before sharing a secret (8135943)
  • containers-service: subscribe before acquiring snapshots (8135943)
  • core: reject serialization before publication side effects (8135943)
  • core: reject stale settings and profile publications (8135943)
  • deps: take the security fixes of rustls, tokio and webpki-roots (8135943)
  • hub-agents: list a hub's agents and servers again after a failure (8135943)
  • hub-io: bound account publication and retire removed sources (8135943)
  • hub-io: coalesce lossy agent catalog hints (8135943)
  • hub-io: copy a shared secret under a new id (8135943)
  • hub-io: decode transfer arguments in their own function (8135943)
  • hub-io: erase the account cache and keys of a revoked device (8135943)
  • hub-io: fit the inference grant in the prompt's window (8135943)
  • hub-io: hub chats no longer freeze the app and start on their first message (8135943)
  • hub-io: keep one client per hub and lock off the worker (8135943)
  • hub-io: keep one retry horizon per publication (8135943)
  • hub-io: never provision a seat when opening a chat (8135943)
  • hub-io: preserve bounded monotonic vault snapshots (8135943)
  • hub-io: refuse a too short password as wrong credentials (8135943)
  • hub-io: retry a start while the seat is still being deleted (8135943)
  • hub-io: serialize source clock observations (8135943)
  • hub-io: sign in through the derived login value (8135943)
  • hub-io: skip a deleted record when reading a group's secret (8135943)
  • hub-io: wake a managed chat's seat before it delivers a prompt (8135943)
  • hubs-model: forget the account server when the server is removed (8135943)
  • hubs-model: read window records one by one and keep unopened ones (8135943)
  • hubs-ui: ask to update an outdated server, not Nocterm (8135943)
  • hubs-ui: build the test workspace with the hub's change feed (8135943)
  • hubs-ui: keep the window ports private behind a constructor (8135943)
  • hubs-ui: make the Servers page findable by the tests of the app (8135943)
  • hubs-ui: read the workspace after it created the sessions panel (8135943)
  • hubs-ui: reattach remembered sessions in their own organization (8135943)
  • hubs-ui: report a server that cannot be removed (8135943)
  • hubs-ui: save a server name through the shared settings field (8135943)
  • hubs: keep the organization chosen while a read runs (8135943)
  • hubs: refuse a sign-in to a server that is listed already (8135943)
  • keep the plugins folder apart from the plugin host's files (8135943)
  • keymap: offer the hub commands in the palette (8135943)
  • keymap: publish bindings through retained persistence (8135943)
  • layout-ui: drops land where the pointer aims and never freeze the editor (8135943)
  • let a window's plugin terminals go with the window (8135943)
  • local: build local commands on Windows and macOS again (#52) (11b5265)
  • local: finish PTY sessions when the leader exits (8135943)
  • local: prepare workspace shells on bounded native workers (8135943)
  • make agent workflows portable and proportional (8135943)
  • plugin-enablement: keep a switched-off plugin when the list is full (8135943)
  • plugin-host: retain prepared instances through publication (8135943)
  • plugin-packages: retain immutable consented versions (8135943)
  • plugins-ui: await admitted management operations (8135943)
  • plugins-ui: keep the detail's fold state private and its tests under the line limit (8135943)
  • plugins: a plugin terminal reports a clean prompt to AI chats (8135943)
  • preserve virtual list height estimates across layout changes (2cbede6)
  • projects: remove flex_1 from server label (8135943)
  • resolve clippy findings in cloud-chat crates (8135943)
  • runner: an unknown session target stays unsupported with or without consent (8135943)
  • runner: create the inbox cursor when a runner is initialized (8135943)
  • runner: create the tool workspace on first start (8135943)
  • runner: drain transfers and sessions under one deadline (8135943)
  • runner: read the control channel without the stdin buffer (8135943)
  • runner: renew expired access before the boot announcement (8135943)
  • runner: report the cause chain of a failed start (8135943)
  • runner: size the ingress pool for one inbox read (8135943)
  • satisfy test-support policy and view-field ratchets (8135943)
  • snippets-ui: every snippet row reaches the panel's right edge (8135943)
  • ssh: preserve terminal admission and retry SFTP setup (8135943)
  • ssh: serialize cooperating authorized keys edits (8135943)
  • tell user plugin panels and toolbars when they are shown (8135943)
  • themes-registry: bound scans and recover interrupted installs (8135943)
  • themes-registry: open discovered files without following links (8135943)
  • transfer-runtime: finish a pending write before cancelling (8135943)
  • transfer-runtime: name the failing side of a relay (8135943)
  • transfer-runtime: share capacity across independent batches (8135943)
  • transfers: refuse empty remote path components (8135943)
  • transfers: refuse relative local transfer paths (8135943)
  • ui: coalesce theme browser background requests (8135943)
  • ui: publish plugin availability transitions (8135943)
  • vault-ui: sign in again when a hub's keys are not on this device (8135943)
  • vendor: draw the window content uncached again (2cbede6)
  • window-layout: keep the user entries a held run cannot show (8135943)
  • window-set: keep unopened windows and a newer document (8135943)
  • workspace: keep focus when hiding a group that does not hold it (8135943)

Performance

  • agent-storage: read catalog metadata from transcripts (8135943)
  • agent: cache the chat footer to its content (8135943)
  • agent: draw the transcript and history as cached regions (8135943)
  • agent: keep each message's parsed markdown per row (8135943)
  • agent: show queued messages on the first frame (8135943)
  • agent: skip redundant notifies and resolve agents once per render (8135943)
  • connections-model: index profiles during reconciliation (8135943)
  • connections: prepare visible rows on semantic changes (8135943)
  • containers: share host watches and filter listing refreshes (8135943)
  • files: publish transfer projections on native changes (8135943)
  • layout-ui: bound retained layout edit history (8135943)
  • monitor-service: share collection by captured executor (8135943)
  • project-container-fs: batch acknowledged upload writes (8135943)
  • project-model: validate decoded catalogs once (8135943)
  • projects: redraw panels on search text changes only (8135943)
  • ssh: pipeline SFTP download reads (8135943)
  • store: notify once for an optimistic write (8135943)
  • terminal: pause inactive cursor timers (8135943)
  • terminal: reuse bounded search navigation work (8135943)
  • vendor: cache gpui views and keep list estimates (2cbede6)
  • vendor: cache views to their content and cache dock tab groups (2cbede6)
  • vendor: draw the window content as a cached view (2cbede6)
  • vendor: reuse cached views nested in a redrawn cached view (2cbede6)
  • workspace: cache status bar widgets and keep tab groups current (8135943)
  • workspace: cache the tab surface so sidebar redraws reuse it (8135943)
  • xtask: reuse parsed architecture inventories (8135943)

Documentation

  • add the hubs user guide and link it from the README (8135943)
  • adr: keep SSH keys in the vault and record the boundary (8135943)
  • adr: lease a personal agent's key to the own runner (8135943)
  • adr: record agent file transfer through the shared runtime (8135943)
  • adr: record Cloud chat creation protocol (8135943)
  • adr: record desktop binding, answering and bound-server prompts as ADR 0139 (8135943)
  • adr: record profile replication (8135943)
  • adr: record the hub as a route step (8135943)
  • adr: record the hub client's device transport and resumable commands as ADR 0138 (8135943)
  • adr: record the managed runner agent policy (8135943)
  • adr: show one environment in a window (8135943)
  • adr: supersede window environments with ADR 0099 (8135943)
  • architecture: regenerate the dependency reference (8135943)
  • centralize integrated verification policy (8135943)
  • correct ADR 0098 on skipped entries and the Booted field count (8135943)
  • deps: regenerate third-party notices (8135943)
  • describe agent file transfers (8135943)
  • describe bounded publication and work ownership (8135943)
  • describe Cloud agents and managed pools (ADR 0120, 0121) (8135943)
  • describe container filesystem ownership (8135943)
  • describe hub environments in the layer notes and the overview (8135943)
  • describe hub windows (8135943)
  • describe managing servers (8135943)
  • describe the status bar and panels editor (8135943)
  • describe the status bar overflow menu and zone anchors (8135943)
  • fix ADR 0097 references (8135943)
  • fix the links that failed rustdoc in CI (8135943)
  • hubs: describe account keys, recovery and the account server (8135943)
  • hubs: describe confirming administrator keys (8135943)
  • hubs: describe group connections and passwords (8135943)
  • hubs: describe remembered hub windows and their reattach (8135943)
  • hubs: describe sessions remembered with their organization (8135943)
  • hubs: say where unsent connections go when switching accounts (8135943)
  • match the hub docs to the labels of the interface (8135943)
  • plugins: add example declarative plugins (8135943)
  • plugins: add the preview plugin guide and feature DoD lines (8135943)
  • plugins: record the code runtime decision (ADR 0091) (8135943)
  • plugins: record the start gate and the compatibility promise (8135943)
  • project-providers: clarify adapter contract invariants (8135943)
  • record attached sessions in ADR 0095 and the layer notes (8135943)
  • record built-in panels and widgets as system plugins (8135943)
  • record layout presets as app-wide settings (8135943)
  • record one plugin model with separate trust tiers (8135943)
  • record panel groups as the owner of side panels (8135943)
  • record per-server CA principals and runner certificate sessions in ADR 0137 (8135943)
  • record plugin enablement and the Plugins page (8135943)
  • record project adapter ownership (8135943)
  • record project terminal contract ownership (8135943)
  • record runner chat summaries and journal v7 in ADR 0135 (8135943)
  • record shared bounded contract ownership (8135943)
  • record standalone panels and the preview editor in ADR 0094 (8135943)
  • record the device side on the contract core in ADR 0136 (8135943)
  • record the gated hub test in AGENTS.md and the README (8135943)
  • record the hub contract boundary in ADR 0096 (8135943)
  • record the plugin host (8135943)
  • record the plugin SDK and developer sessions (8135943)
  • record the user plugin contract (8135943)
  • record the wall-clock contract (8135943)
  • record the zoned status bar (8135943)
  • record window environments in ADR 0097 (8135943)
  • record window restore in ADR 0098 (8135943)
  • reference: regenerate the plugins reference (8135943)
  • regenerate the action and dependency references for hubs (8135943)
  • regenerate the plugins reference for the sessions panel (8135943)
  • toolbars, and requests, timers and terminals for user plugins (8135943)
  • workspace: drop the environment menu slot from the UI note (8135943)