Repository navigation
plugin: v0.1.0
Pre-release
Pre-release
Immutable
release. Only release title and notes can be modified.
0.1.0 (2026-09-18)
� BREAKING CHANGES
- broker: canonical .beads must deny other-user access; ConfinementPlan requires the optional beads_replica field.
- broker: replace comment grants with typed mutation grants; require explicit request intent and a Beads operator handler.
- workspace: OperatorServer::serve_once requires a retention handler.
- launcher: require source snapshot/base digests in manifests. Record approved cleanup design; expiry and pins remain open.
- broker: canonical Session status uses schema /6 and requires conformance_admission.
- config: optional editor and service capabilities default off. Explicit choices preserve core chat and retained Run obligations.
- launcher: require launcher config/3 and authorization/3.
- broker: ReceiptStore::append takes optional report bytes.
- ui: Overview helpers take the owning Chat; global and list-based overview entry points are removed.
- broker: SessionStatus uses schema /5 with required recovery; RecoveryReadiness lives in launch_protocol with typed unavailable reasons.
- broker: Session status /4 returns dimension details. Broker status APIs no longer accept caller posture arguments.
- runtime: runtime registration rejects both removed fields.
- cache: Session manifests require cache_base_digest. Installed launch wiring and retention remain louiselm-d6fv.5.5.
- broker: receipt schemas advance to /4; remove the post-launch enable_commands API.
- launch: capability bindings name Run and Agent PID, not reaper.
- skills: sign per-Agent view membership
- session: prompt() returns a durable turn ID and dispatches only after asynchronous SQLite admission; sqlite3 is required.
- session: every Agent definition requires provider configuration.
- sandbox: development backends need a built louiselm-launch bootstrap selected with with_bootstrap.
- rust: Rust capture request APIs now borrow their inputs.
- lua: Session.new() returns Registry directly; drop Api.registry and the session.api module.
- config: drop removed skills.full_content key
- commands: replace the old session and inbox command names with the new prefixed forms.
- agents: chat commands no longer infer an Agent from LOUISELM_AGENT_COMMAND or DeepSeek defaults.
- capture: pairing QR v1, serve --bind, pair --url, and capture.receiver_url are removed. Configure one private receiver profile before pairing.
- skills: Local skill discovery now requires lyaml for Lua 5.1.
- skills: remove skills.full_content and native_supported policy inference. Use per-agent skills.policy overrides.\n\nRefs louiselm-376
- capture: add durable speech intake
Features
- acp: add JSON-RPC stdio client (dcf4524)
- add Antigravity ACP support (517eb4d)
- add inline assistant (39adfd4)
- add schema DSL and MiniTest harness (f0d292f)
- add session loading and skill fallback (ad7503c)
- agent: add process lifecycle foundation (85842a0)
- agent: allow an explicit installed-version check per agent (cf913ed)
- agent: let agent definitions declare capabilities (55569da)
- agent: warn when a configured agent trails its latest-version check (ee59c4b)
- android: add opt-in Attention notifications (37de434)
- android: add Scarlet Signal icon (99044ee)
- attention: add private mobile inbox (4a8d8b9)
- attention: add skill posture alerts (60183d7)
- backups: add encrypted ACP log recovery (5e05392)
- beads: adopt Close verdict gate policy and AGENTS.md rule (3edda2a)
- beads: judge stale claims by session liveness (cb5ea9a)
- blog: private MyST publishing pipeline for session transcripts (674939b)
- broker: add explicit state adoption (b8182b2)
- broker: add lifecycle recovery foundations (2619dd7)
- broker: add operator Session inspection (d8cf16f)
- broker: add Session Beads replicas (f033433)
- broker: add systemd socket and service (5b28cfd)
- broker: adopt sockets and pin state identity (ac1a37e)
- broker: answer scoped Agent self status (c1ee74f)
- broker: authorize cross-process commands (46cacc7)
- broker: compose caller-scoped Session status (36e6184)
- broker: deliver queued Attention (51dc513)
- broker: derive Session posture (c5c6543)
- broker: enforce scoped tool delegation (9551088)
- broker: expose conformance admission history (6195116)
- broker: expose conformance evidence (a853833)
- broker: expose recovery readiness (f32204f)
- broker: finish Provider credential custody (b284dd7)
- broker: gate work on retained recovery (30a5fc4)
- broker: make command counts opt-in (579c66f)
- broker: mediate typed Beads effects (4e34954)
- broker: persist skill admission requests (2a94e15)
- broker: prove installed launch authority (c44f3bb)
- broker: provision canonical tracker (c2705ea)
- broker: reconcile restart and settle loss (4fdd41b)
- broker: resolve verified skill admissions (cc0cf6f)
- broker: retain conformance reports (eb021df)
- broker: retain Session connections (ce0ae05)
- broker: retain supply posture evidence (47b585f)
- broker: route one rendezvous by first packet (a5fc8c2)
- broker: run socket-activated daemon (21cbdb9)
- cache: isolate measured Session caches (182650c)
- capture: add durable speech intake (ba19b8a)
- capture: configure private receiver (9440eaa)
- chat: add :LouiselmHandOff to move a session to another agent (8c22da4)
- chat: add :LouiselmModelChange for direct model switching (1e7e560)
- chat: add Normal-mode transcript navigation (5d21d90)
- chat: add transcript handoff buffer (f3309e9)
- chat: focus prompt on attach (7912293)
- chat: fold completed tool runs (446cf13)
- chat: hide and fold prompt contexts (f2b9747)
- chat: inspect raw tool payloads (1bba2fa)
- chat: surface session telemetry (373c822)
- chat: use adapter debug launcher (bb5f98e)
- clean up retired launcher private keys (6a4e17f)
- config: require optional feature opt-ins (e68abfc)
- conformance: add shared report oracle (5b7f2e5)
- conformance: certify installed hosts (208adcb)
- context: add chat context providers (37b26a0)
- context: attach project instructions as an ACP resource_link (fde8c6a)
- demo: add interactive browser tour (2118322)
- dev: add chat launch command (80ee3e6)
- dev: give the mock Agent work generation and a looping qa-review fixture (7b7dd90)
- diagnostics: normalize bounded current-buffer diagnostics (52768af)
- diagnostics: queue current-buffer diagnostics for the next prompt (4b84ac4)
- docs: make :help louiselm navigable (2a166f8)
- forensics: collect private session records (b9dfcc1)
- forensics: diagnose any live Session (4867092)
- forensics: export selected evidence (3d37a57)
- forensics: render ACP JSON-RPC log lines as folded summaries (963ef07)
- forensics: report evidence availability (ac69497)
- handoff: compact transcript renderer for handoff context (louiselm-0ic6) (785cd53)
- handoff: takeover-task brief with compacted context (louiselm-mtte) (45bf34a)
- handoff: typed resource block transport for embedded-context targets (louiselm-zpsf) (4d74859)
- health: add checkhealth integration (b98eb30)
- launcher: bind private Session inputs (46e003c)
- launcher: enforce conformance admission (6f804a1)
- launcher: isolate zero-authority tools (bf36c37)
- launcher: monitor Session conformance (7c4fc22)
- launch: pin actual Agent lifetime (69045c7)
- launch: run authorized sessions (9238b79)
- limits: add Agent account detail view (600e3d8)
- limits: surface Agent capacity (f8309a3)
- name chat sessions (d034923)
- nvim: expose the chat context-queuing API as :Louiselm* commands (9e553a1)
- nvim: invoke native skills through advertised ACP commands (763ba78)
- onboarding: add first-run setup flow (097bcd6)
- permission: add policy gates (28631a2)
- permissions: remember scoped choices (757134a)
- preflight: inspect proposed launch inputs (d303588)
- provenance: add Beads actor edges (35b8e88)
- provenance: add commit inspection UI (fd1ef11)
- provenance: add Decision index (90f3ca1)
- provenance: add historical backlog drift (4605900)
- provenance: add reverse Session view (ed51584)
- provenance: auto-resolve transcripts (e9386db)
- provenance: complete historical decision view (5d8ad8b)
- provenance: derive Decision relations (e9956c4)
- provenance: parse Refs trailers (2d3d03c)
- provenance: resolve reaper actors (fee4573)
- provenance: show bvr issue history (9835b9c)
- provenance: show Decision evidence timeline (ca9b72b)
- receipts: preserve admitted chain history (e81229f)
- recovery: reconstruct cold Sessions (93cd630)
- registry: support routed Providers (2486f99)
- release: prepare checked plugin releases (a9fbfb8)
- resolve Providers by option prefix (bba93d5)
- reuse ACP compaction summaries in handoffs (5ffda49)
- revoke compromised launcher keys (61cdd15)
- schema: add error reporter (b732ae7)
- schema: add recursive validator (fb99022)
- schema: gate setup on validation (163f26c)
- schema: generate LuaCATS annotations (55bd4ea)
- schema: generate Vimdoc help (2a05901)
- schema: ship generated louiselm.Config for setup() completion (6eb323b)
- session: add ACP controls and telemetry (05c68fa)
- session: add ACP resume flow (798712b)
- session: add multi-session headless API (bbafaf3)
- session: add stable report ids (2be09e7)
- session: export session transcripts to markdown (4e4a58b)
- session: persist confirmed option changes (e56f82b)
- session: persist turns before dispatch (5cbfde9)
- session: require Provider before prompts (8a022ec)
- session: resolve transcript paths (5be054d)
- session: show Claude retry status (587709c)
- session: thread agent Definition.options._meta into session/new and session/load (6c45bbc)
- show agent upgrade commands in warnings (fb9607d)
- site: stage Firebase publishing (cb2772f)
- site: stage Firebase publishing (5a7d005)
- skills: add discovery and injection (147ab55)
- skills: add static agent policies (2ef4140)
- skills: bind verified Session supply (e74606a)
- skills: define Verified posture (78e0d67)
- skills: diagnose adapter profiles (1313cdf)
- skills: expose kind/file metadata for skill picker preview (7dbf909)
- skills: make discovery deterministic (559075a)
- skills: package Skill candidates and render Dossiers (af186e0)
- skills: parse metadata with lyaml (7647673)
- skills: sign per-Agent view membership (e06aea6)
- tools: add isolated helper grants (27743b3)
- trust: integrate recovery onboarding (83b6d84)
- ui: add chat buffer UI (ce6.8) (1eb3448)
- ui: add cold Park command (71a6ae3)
- ui: add default keymaps (3860f29)
- ui: add diff review (ef62ff0)
- ui: add multi-session overview windows (add86d6)
- ui: add Session overview sidebar (41c3422)
- ui: align Session picker columns (c7b0278)
- ui: compact winbar session options (548a6da)
- ui: group Session overflow by state (9d7ad02)
- ui: inspect Beads issues (e58bf0d)
- ui: rebind inline edit to <leader>le, add default keymaps for remaining commands (026bc9c)
- ui: recognize bare-suffix Beads IDs under the cursor (7d59a1e)
- ui: show active Session identity (62a5e3b)
- ui: show measured option usage (23a8325)
- ui: show Session attention in winbar (7b31438)
- ui: show Session ID on winbar hover (539b96f)
- ui: surface agent reasoning as a collapsed fold in chat (c56805f)
- ui: sweep sibling Beads workspaces for cross-repo issue IDs (23cfdb7)
- usage: add cross-project usage CLI (43e4d34)
- vm: add explicit recovery connections (ec480b6)
- vm: add isolated launcher acceptance VM (3074423)
- wire configured chat agents (louiselm-gdu) (feaa915)
- workflow: add approval lifecycle (5702084)
- workflow: add async Park service client (9ab4d1f)
- workflow: add human Park escape (5ff2366)
- workflow: admit cold Park from Session (4fd6153)
- workflow: await durable Park result (8b69e89)
- workflow: bind the executor to the real Run ledger (6d057e2)
- workflow: bound Run cancellation (5e195a7)
- workflow: broker bounded Beads work (849fc67)
- workflow: cache Validation results (65e5ce7)
- workflow: define canonical phase metadata (e79f9b7)
- workflow: enable durable Park reaping (731b381)
- workflow: execute bounded outcomes (c01f9a8)
- workflow: implement operator raise/resume for budget Parks (93db877)
- workflow: integrate phase routing (d0830f3)
- workflow: persist cold Park resume metadata (34ff3da)
- workflow: persist routing evidence (050bd01)
- workflow: persist Run generation budget (5476127)
- workflow: rank routing candidates by phase (b3ceea2)
- workflow: react to budget Parks (98f6ac4)
- workflow: restore Park Run state (64523ac)
- workflow: resume durable Parks (ffeef23)
- workflow: stream Run invalidations (c65ca9f)
- workflow: validate workflow definitions from frontmatter (8e13768)
- workspace: add evidence retention (f31fd64)
- workspace: export and apply byte bundles (81ab772)
- workspace: prepare exact verification jobs (5b092c8)
- workspace: promote verified bundles (1d2c6e7)
- workspace: run confined verification jobs (53cb6ea)
- workspace: snapshot private source bytes (8f19cae)
Bug Fixes
- acp: defer fast-event requests (e9483b0)
- acp: ignore unsolicited responses (b9f2c82)
- acp: reject malformed permissions (743d72d)
- acp: reject unsupported reverse requests (4549f2a)
- acp: send object params for session listing (ebad894)
- agent: compare extracted version tokens, not raw banners (225f673)
- agent: ignore punctuated versions (louiselm-1vva) (1d0888a)
- agent: include wrapper args in health check --version command (6b2a69f)
- agents: headless client, and no guessing when unreachable (5bb3909)
- agents: require explicit configuration (60724f3)
- agents: scope in-progress preference to own claims (ee7f254)
- android: renew revoked pairing safely (0822790)
- attention: clear durable session focus (0aea35b)
- attention: clear on chat focus (4dbc4e2)
- attention: clear resumed session failures (f543dd2)
- attention: clear retained Session failures (960c3de)
- attention: ignore streamed output for idle (eef5f88)
- attention: isolate broker producer access (1d1f08c)
- attention: preserve Park recovery state (f8de2ed)
- backups: order cloud copy after backup (20616c7)
- backups: retry native lock contention (d5a39bf)
- beads: accept resolved short issue IDs (4342d93)
- beads: remove mixed-edge deadlock (4a07711)
- beads: show ownership and issue evidence (3c0d71b)
- broker: quarantine untrusted Session history (5b5d4da)
- broker: relay read-only Agent status (270ba2b)
- broker: separate listener and sender identity (9fa5de2)
- capture: accept normal stop (78e6aa2)
- capture: force QR contrast (13dfe23)
- capture: preserve QR quiet zone (f7d85fc)
- capture: render null transcripts safely (35e7927)
- chat: add assistant spacing (46f4656)
- chat: clear attention on session close (14fb4c5)
- chat: confirm close outside permission picker (47fb3ec)
- chat: consume Handoff context (858883f)
- chat: drop skills with erased prompt chips (0bf9f57)
- chat: expose image tool results (260bbfc)
- chat: fold parallel tool runs (8e89831)
- chat: guard last-window quit (41fec85)
- chat: keep session header compact (58f0708)
- chat: keep Session switches out of pickers (195460b)
- chat: normalize multiline activity (f09ccd8)
- chat: pin turn label in winbar (106aa9c)
- chat: preserve permission option names (01ed560)
- chat: preserve transcript event order (1443023)
- chat: preserve window on protected quit (5146007)
- chat: prioritize session identity (8cbf703)
- chat: queue active-turn prompts (ead3625)
- chat: record durable Handoff provenance (ba60ff6)
- chat: recover prompt boundary after undo (414a858)
- chat: release queued prompts on ready (84ddbf1)
- chat: remove text result label (c8d0344)
- chat: render terminal tool results (efe5594)
- chat: repair OOB startup (d105b8b)
- chat: reposition the cursor past a newly queued context chip (e15a846)
- chat: restore full session header (4db5242)
- chat: restore insert mode on switch (5711512)
- chat: retain Handoff transcript (acb65c7)
- chat: retire decisions on Session close (c946c2b)
- chat: route Winbar clicks by source window (437fbf0)
- chat: show replayed user prompts (110e357)
- chat: show select option labels (9ff08dc)
- chat: stabilize resumed session submission (4296678)
- chat: stop image.nvim rescanning the transcript on every keystroke (cd37ab2)
- chat: validate an explicit session id before prompting for a path (be64d3d)
- ci: bound cold-resume scenarios separately (898bc62)
- ci: enable Attention in installed gate (44013d6)
- ci: force HOST=127.0.0.1 to fix mystmd ECONNREFUSED under bridge networking (60f1e0f)
- ci: gate production until bootstrap (734fdc2)
- ci: include MyST process tooling (0bf1c01)
- ci: isolate daemon state maintenance (2f08e8a)
- ci: isolate skills test descriptors (460d365)
- ci: move bootstrap outside private home (fa8ff91)
- ci: satisfy LuaLS quality gate (97566a6)
- ci: split daemon test deadline budgets (7572526)
- ci: stub br executable in Beads inspector tests (0690aea)
- clarify diff approval controls (6bcc166)
- close ACP clients on session errors (62ba06b)
- coordination: handle empty runner stdin (6d99f8f)
- demo: fit guide and editor in viewport (6956662)
- demo: localize scripted responses (27d0455)
- demo: pin durable Neovim package (27470a8)
- demo: sync accepted edit buffer (549ee0a)
- diff: hide unavailable review controls (854a7bc)
- diff: restore focus after answering a review (348c6fc)
- diff: restore focus after proposals (8b4cee9)
- diff: review edits carried in ACP diff content (a57cee2)
- diff: review standalone proposals (eb02204)
- docs: gate the API export per file, not per section (4ca2027)
- docs: reject truncated LuaLS API export (cdbe8cf)
- docs: support nightly command metadata (8e4a427)
- docs: update bv references to bvr (9856288)
- embed skill catalog (louiselm-vjuv) (bc621c5)
- explain manual agent upgrades (a13ce3b)
- finish backup setup and instruction checks (d88220d)
- forensics: cache folded log summaries, drop pattern matching (0827979)
- forensics: default LouiselmForensicsView to the latest collected record (c5d0ec6)
- forensics: read embedded_context from Session state, not a nonexistent capability (3f41777)
- forensics: stop record ids rendering in scientific notation (849f5dc)
- handle chat permission requests (louiselm-z6x) (e5aaa9b)
- handle multiline tool titles (8abb588)
- handoff: allow same-agent targets (60b58c1)
- infra: gate resolved project IAM grants (66f6d21)
- infra: isolate OpenTofu state (edb464f)
- infra: isolate OpenTofu state (1f8db57)
- inline chat tool events (6dc9a9f)
- install: restart capture service (8b665c1)
- launcher: validate the entire runtime tree (43e5164)
- launch: integrate creator-thread lifetime (e42f69a)
- launch: own and stop relay workers (a3a0f5c)
- launch: receipt terminal relay failures (c3d5d67)
- launch: reject ambient descriptors (9502ead)
- limits: encode read params as object (de04317)
- mock: ignore unsupported notifications (ac7b4c6)
- normalize ACP permission commands (f7b31b4)
- nvim: tolerate Claude's scope-annotation suffix in native command matching (c230f8c)
- overview: preview each recorded hunk (92722f3)
- park: show newest Parks first (dcf87d0)
- parse nested skill metadata (louiselm-m8a) (458c293)
- permissions: ask on pathless edits (2fa70dc)
- permissions: show Agent request details (d9ed958)
- posture: preserve lifetime evidence validity (95dbd7f)
- preserve multiline chat prompts (d8e7df5)
- provenance: accept backticked session IDs (71b7fff)
- provenance: accept git's trailing newline after every log record (d95c5df)
- recovery: allow same-phone passkey rotation (6495615)
- recovery: preserve loaded Session behavior (9b893f3)
- recovery: share the browser deadline (82958c8)
- relate tool call status lines (769eaca)
- release: authenticate proposals as an App (9d34532)
- release: authenticate proposals as an App (e6198ca)
- release: bundle the control broker (7a7ee14)
- release: filter paginated drafts with jq (37dd6ba)
- release: filter paginated drafts with jq (41bc2f7)
- release: include complete initial history (ae45a13)
- release: include complete initial history (43d5f7a)
- release: validate current link permissions (816563d)
- render resumed chat history (a824b76)
- runtime: drop unverified policy claims (53bdd3e)
- sandbox: align fixture executable identity (39eb135)
- sandbox: prove host identity (9cae406)
- schema: document nested vimdoc fields (f8b19b2)
- separate first assistant output (louiselm-odo) (c142033)
- session: accept null prompt usage (1f37a59)
- session: accept nullable ACP fields (c664b6b)
- session: bound hung ACP prompts (27cba00)
- session: bound startup and expose stderr (7400f10)
- session: default Claude thinking display to summarized (fb71613)
- session: don't kill Session on unparseable usage_update telemetry (ab3ee4c)
- session: drain permissions after turn (c5a7046)
- session: expose loaded ACP identity (0534977)
- session: fail turns on Codex systemError thread status (b60706a)
- session: guard unsafe editor exits (32665fd)
- session: name resource-not-found session/load failures for cold Park resume (2600c72)
- session: normalize camelCase ACP usage keys into TurnUsage (0e266a0)
- session: pause watchdog for permissions (08825f8)
- session: remove prompt inactivity watchdog (f06375f)
- session: renew prompt inactivity timeout (c36487f)
- session: resolve actor from caller, not focus (a54d42b)
- session: retain sessions after turn errors (5427c1e)
- session: send the Claude thinking default to every agent (23c56bf)
- session: serialize permission requests (c639f95)
- session: suppress live user echoes (4058bc9)
- session: survive an over-full context window (74b6e23)
- setup: register chat commands (fff12d0)
- share LouiseLM state across Neovim profiles (186c7b0)
- site: curate turn recording guide (fcfb0d9)
- site: keep backup guide outside exports (89fa1ef)
- site: keep evidence guide export external (b4037a1)
- site: keep preflight guide outside exports (0148050)
- site: own the favicon, link previews, and navbar (c369bc7)
- skills: diagnose lyaml load failures (b403538)
- skills: discover configured symlink catalogs (5ea3126)
- skills: shorten lyaml error (e3ff24f)
- test: remove Staged-context tests accidentally bundled into c5d0ec6 (f1d4d88)
- tests: guarantee mock-agent process cleanup on test failure (a74ef72)
- tests: reindent chat_spec.lua line to satisfy stylua (5d65cf5)
- track Claude scheduled wakeup activity (19f5936)
- transcript: bound the tool caption to 120 characters (3d6557d)
- transcript: collapse multi-line tool titles into the caption (a6484ea)
- ui: accept bare Beads issue id at manual-entry prompt (93bb3a0)
- ui: accept Beads issues with no labels in inspector (8aa5afd)
- ui: align mixed-Agent picker options (1f6991a)
- ui: allow handoff from error sessions (3ad874b)
- ui: catch writefile errors in Chat:to_markdown (6167df0)
- ui: clarify limit reset display (4e79797)
- ui: clarify missing ACP options (31bd9d7)
- ui: close overview on Session switch (0c674ff)
- ui: close tool inspector with q (44b7cdd)
- ui: coalesce repeated nonterminal tool-call rows (721f681)
- ui: count completed ACP file diffs (7095f90)
- ui: finalize cold Park resume (ca30c28)
- ui: float account limits inspector (64d4249)
- ui: hide injected skill titles (1d4c235)
- ui: honor typed permission choices (2de47dd)
- ui: ignore za during active thinking (faf8cbf)
- ui: inspect beads in session cwd (a3467a5)
- ui: label text tool results (f1bdce8)
- ui: make permission picker fail closed (9cd9e5d)
- ui: make winbar clicks actually work via real mouse clicks (f81019a)
- ui: normalize permission picker mode (1eb309a)
- ui: normalize selector mode (01d8bf8)
- ui: open files below overview sidebar (4f335a1)
- ui: present one permission decision at a time (0ed18d0)
- ui: preserve cold-resume replay (04faf63)
- ui: prevent stale recovery warnings (5b2312f)
- ui: rebuild reasoning folds instead of trusting an install counter (c1b293d)
- ui: recover injected session subjects (c97c72c)
- ui: refuse command pickers during a decision (b76a95d)
- ui: release decisions when a turn is cancelled (c0ae0aa)
- ui: resize Provenance popup (6f85702)
- ui: restore permission picker (caf3b1b)
- ui: restore prefix-scoped Beads cursor matching (729c3f2)
- ui: retain distinct Copilot answers (d351821)
- ui: reuse Provenance buffers (d6851c6)
- ui: schedule chat event rendering (8qk) (8303d9f)
- ui: separate prose and tool-call blocks with a blank line (94ad140)
- ui: show permission command (d5a3ad6)
- ui: show Provenance loading state (7efbc44)
- ui: show session recency first (eb86dc4)
- ui: size Beads float for wrapped text (7d706f0)
- ui: space usage transcript lines (f75e2a6)
- ui: stabilize resumed session picker (6befba4)
- ui: stop chat transcript blank-line bookkeeping from drifting (ed7ee34)
- ui: treat omitted Beads description as empty, not malformed (74fbfa4)
- ui: trust prompt origins for navigation (568199f)
- ui: use lsO for Session Overview (440984b)
- ui: use workspace Beads prefix (36d4125)
- usage: classify literal shell prefixes (4151d8b)
- usage: classify wrapped commands (4498d49)
- usage: match complete picker cohorts (f7804df)
- usage: preserve replay event order (348d6d0)
- usage: restore recorded turns on replay (e9bf120)
- usage: restore resumed turn telemetry (ee9e541)
- usage: scope schema discovery by subject (0c728a5)
- workflow: complete routing decisions (1a97d39)
- workflow: discover stage manifests (73d80ad)
- workflow: fix uv.random arguments (a983ea4)
- workflow: keep the cold Park record until the service confirms (379e986)
- workflow: normalize null Run fields (009e945)
- workflow: notify the callback on a redundant Park (238c848)
- workflow: reject cold Park before a Session's first prompt (e2fd0c2)
- workflow: track a Run's admitted id independently of park_record (309bbe7)
- workflow: wire budget Park observer (43f61fb)
- workspace: release advisory locks explicitly (2ccf61c)
Performance Improvements
Miscellaneous Chores
- rust: enforce strict quality gates (71fe994)