Summary
- Release 0.48.0 (stable)
- Built from v0.47.1...v0.48.0
- Published intentionally from main via tag promotion
- State snapshot: overdeck-state 31f81d7
Highlights
Features
- Collapsible Agents rail in the conversation view
- Add a Workspaces section to the Cmd-K command palette (PAN-1990)
- Add /workspace/:id WorkspaceView route (PAN-1990)
- Add Workspaces sidebar section above Projects (PAN-1990)
- Additively carry workspaceId on issueId-bearing events (PAN-1990)
- Add workspace-registry REST API for the workspaces domain (PAN-1990)
- Add pan memory backfill from Claude JSONL transcripts (PAN-1990)
- Mirror daily summaries and pins to overdeck-state (PAN-1990)
- Add pan memory search --global (PAN-1990)
- Add pan memory pin/unpin/pins commands (PAN-1990)
- Capture + inject memory for conversations in main/scratch workspaces (PAN-1990)
- Migrate legacy issue-keyed memory homes to workspace UUIDs (PAN-1990)
- Add pan admin db rebuild-workspaces (PAN-1990)
- Re-key memory storage to workspaceId + workspace identity mirror (PAN-1990)
- Expand embedded xBRIEF views
- Open xBRIEF from issue resources
- Add full-screen xBRIEF shell
- Make issueId nullable in MemoryIdentity/MemoryObservation (PAN-1990)
- Add pan project add-target for secondary target paths (PAN-1990)
- Add workspace get/activate/archive + list/destroy extensions (PAN-1990)
- Add pan workspace new + pan workspace main (PAN-1990)
- Resource discovery + idle-stack reaper join the workspaces resolver (PAN-1990)
- Open PRDs from issue resources
- Conversations carry workspace_id resolved from cwd (PAN-1990)
- Flip PROVIDERS.kimi.defaultHarness to kimi-code (wi7b, gated on wi14 e2e)
- Expose PRD resource presence
- Archive (never delete) the issue workspace row on teardown (PAN-1990)
- Expose issue PRD drafts
- Create the issue workspace row before the worktree (PAN-1990)
- Surface QuantumLlama models in dashboard catalog and cost displays (PAN-3252)
- Open tasks from issue resources
- Boot-seed projects.yaml + backfill issue worktrees (PAN-1990)
- Plumb QUANTUMLLAMA_API_KEY through settings, env loading, and provider env (PAN-3252)
- Add ql-* models to ModelId, fallback registry, and capability table (PAN-3252)
- Guard script blocking direct SQL against workspace tables outside the doors (PAN-1990)
- Add projects/workspaces/project_targets/pinned_docs to overdeck.db (PAN-1990)
- Map ql-* model ids to custom provider in cost parser (PAN-3252)
- Add QuantumLlama pricing rows to cost tracking (PAN-3252)
- Register QuantumLlama provider in provider registry (PAN-3252)
- Add the resolver/writer two doors (PAN-1990)
- Wire kimi-code launcher fields into the real pan-start spawn path
- Add projects/workspaces/project_targets/pinned_docs schema (PAN-1990)
- Route NeedsYouStrip, SimpleHomePage, ConversationDock through usePendingInputSubjects
- Add off-book pickup policy row with explanatory expander
- Validate brief overlay path inline with a debounced save
- Replace Lane A concurrency input with a debounced stepper
- Add Kimi Code to every frontend harness picker, brand, and label
- Render posture attribution with a stale-reason tag
- Replace posture buttons with segmented control + atomic confirm
- Add pending_input_changed delta infrastructure
- SessionPanel derives kinds from enrichment not Channels map
- Thread pendingQuestionPrompt through subject, decision, and card
- Add per-field save-state machinery to RunSettingsPanel
- Add paneQuestion to the frontend pending-input vocabulary
- Thread awaitingInput fields through activity response and toSessionNode
- Add paneQuestion kind for question-family detections
- Broaden the kimi prerequisite's purpose to cover native + ACP
- Sync skills to kimi-code; document its shared AGENTS.md context layer
- Render the native Kimi conversation feed (wi8b AC4)
- Resolve native Kimi wire.jsonl transcripts in the Command Deck resolver
- Gate the Kimi Anthropic-compat env shim off for harness kimi-code
- Add the native Kimi Code runtime adapter and registry wiring
- Add pan answer command (PAN-3228)
- Expose agent pane-choice routes (PAN-3228)
- Wire GitLab merged-MR heads into the gather's hasMergedPr oracle
- Wire GitLab open MRs into the gather's hasOpenPr lens
- Create glab-backed GitLab MR helpers in src/lib/gitlab-merge-requests.ts
- Expose per-repo forge on projectRepositories()
- Generate the native Kimi Code launcher command
- Gate kimi-code behind the Kimi-only policy, mirroring acp
- Map kimi-code to the kimi binary with its own configured path
- Register KIMI_CODE_BEHAVIOR in the harness behavior matrix
- Add kimi-code to the Harness union and hand-maintained validators
- Add idempotent short-circuit for re-close workflows (PAN-3025 WI-4)
- Add journal fallback to row 5 (post-merge) mergeStatus read (PAN-3025 WI-3)
- Reset verificationStatus on reopen (PAN-3025 WI-2)
- Preserve verificationStatus in close-out journal write (PAN-3025 WI-1)
- Sweep stranded verdict fallbacks and surface long contention (PAN-3092)
Fixes
- Stop classifying Claude Code's idle heartbeat as a user question
- Stop new workspaces being born dirty from the generated pre-rebase guard (#3318)
- Accept a later green main run containing the merge for row 6 (PAN-3202) (#3319)
- Stop fake timers gating real I/O in squatter test (#3323)
- Shrink launcher-generator under its file-size ceiling (PAN-3300) (#3304)
- Translate Overdeck kimi model ids to kimi-code session-config values
- Raise kickoff/resume transcript-confirmation window 3s→30s
- Reinstate TMUX env for harness processes — transcripts silently unpersisted on macOS
- Refuse sequencer spawn on empty manifest, downgrade priorless incremental
- Stop misclassifying macOS as headless in Codex re-auth
- Lowercase draft filenames + case-collision guard in the write door (PAN-3287)
- Address cycle-4 review findings
- Address cycle-3 review findings
- Address cycle-2 review findings
- Address review-agent blocking findings and verification failures
- Scope agent-test-1 query to avoid ambiguous match in drawer session
- Correct pickDefaultDrawerAgent mock to return selected agent not array
- Mock TalkItThrough, add pickDefaultDrawerAgent export, fix PAN-1 assertion regex
- Wrap SimpleHomePage test with QueryClientProvider and correct DrawerAgentSession mock path
- Complete bucket fixture and mock DrawerAgentSession for tests
- Correct SimpleHomePage and ConversationDock test fixtures
- Make needs-you rows navigate to the waiting subject (PAN-3276)
- Ninth review cycle — regression coverage for stale-lock reclamation
- Resolve merge conflict in file-size-allowlist.txt
- Eighth review cycle — fail-closed Kimi conversation capture, reclaimable ownerless lock
- Seventh review cycle — make the Kimi capture lock cross-process, fail closed on every fresh launch
- Sixth review cycle — route every Kimi launch owner through the shared capture lock
- Correct module path and recovery semantics for repeat-reset bound
- Untrack the generated Husky pre-rebase wrapper
- Address artifact viewer review findings
- Fifth review cycle — Kimi resume delivery, hand-maintained harness validators, restart capture ordering
- Add AC-3 test for agent-backed pending input preservation
- Clarify FR-7 AC-3 coverage with production-code paths
- Expand fr7 test coverage for conversation-only surfaces
- Restore test coverage for conversation-only surfaces
- Separate xBRIEF dialog title text
- Fourth review cycle — Kimi conversation resume, planning validate-before-mutate
- Account for PRD route in no-loss matrix
- Handle multiple conversations on docked issue
- Fix ConversationDock dedup and restore tests
- Fix FR-7 test coverage and ConversationDock rendering
- Third review cycle — session-capture race, restart ordering, no-loss audit, resume/recovery, transcript adapter
- Point compute-agent-enrichment refs at the split agent modules (PAN-3265) (#3271)
- Fix FR-7 conversation routing and add tests
- Match approved xBRIEF shell
- Reject a dashboard deployment that cannot boot (PAN-3264) (#3269)
- Resolve FR-7 data integrity and remove fake tests
- Batch the GitLab merged-head oracle per repo (PAN-3267)
- Implement FR-7 conversation-only surfaces
- Add conversation routing test and fix markdownlint
- Second review cycle — conversation session resolution, harness coercion, artifact provenance
- Never answer a live choice menu our own paste buried (PAN-3261)
- Resolve blocking review findings for PAN-3232
- Remove duplicate entries from file-size-allowlist
- Merge allowlist entries from main and PAN-3232
- Review rework — thread kimi-code through every spawn path, model aliases, docs
- Re-wire the PTY supervisor on crash-resume regardless of persisted flags (PAN-3257)
- Stop stranding review rework behind misclassified delivery failures (PAN-1837 incident)
- Preserve subagent transcript scrolling
- Remove leftover merge marker in pipeline-membership-gather test
- Regenerate composer-commands manifest for the kimi-code harness flag
- Stop the post-review false-drift loop that re-drove one issue 426 times (PAN-3254)
- Resolve boolean type error in SimpleHomePage
- Bound review-status history everywhere — hydration cap, write cap, and event-payload trim (PAN-3253)
- Stop dirty-workspace gates flagging Overdeck runtime paths as uncommitted work (PAN-3245)
- Decouple verification and flywheel runs from the deploy window (PAN-3244)
- Wi14 e2e live-verification fixes — kimi-code readiness, provider-env leak, CLI harness gate
- Address pending promotion review
- Preserve running projection on late restart gate (PAN-3228)
- Simplify extraQuestions logic to avoid type errors
- Route conversation answers properly and surface conversation-only subjects (WI-7)
- Add awaiting-input fields to specialist nodes (WI-5)
- Complete pending_input_changed delta producer-consumer slice (WI-4)
- Resolve kimi-code's own model aliases to the kimi provider
- Scope RunSettingsPanel transaction state per book, fix brief-overlay save race
- Address review blocking findings for PAN-3233
- Remove dead harness fields from ActivitySection and add pending-input docs
- Fold blocking detections into pendingQuestionCount
- Gate the whole pendingQuestion fingerprint on suppression
- Blocking pane detections bypass specialist suppression
- Emit swarm pending-decision needs-you trips (PAN-3228)
- Wire the PTY-supervisor token and package-safe script path into kimi-code spawnAgent
- Scope AUQ recovery gates to current sessions (PAN-3228)
- Drain auto-commit flushes deterministically in tests (#3240)
- Recheck decisions during graceful restart (PAN-3228)
- Authenticate agent pane-choice answers (PAN-3228)
- Break pending-decision import cycle (PAN-3228)
- Repair GitLab cache test contract (PAN-2882)
- Park pending decisions during autonomous redrive (PAN-3228)
- Gate agent restart paths on pending decisions (PAN-3228)
- Gate fresh starts on pending decisions (PAN-3228)
- Detect pending operator decisions (PAN-3228)
- Make the subagent transcript scrollable and full-width
- Address review blocking findings for PAN-2882
- Satisfy GitLab membership review requirements
- Clear recovered promotion markers
- Patrol pending plan promotions
- Reconcile pending plan promotions
- Create promotion marker directory
- Persist deferred promotion marker
- Fan warnings out concurrently so no episode is starved
- Create event_idempotency in overdeck.db, and bound the sweep's warning budget
- Bound the append-once request so it cannot wedge the patrol
- Add a settled at-most-once event append behind the activity warning
- Make the activity write door idempotent by episode id (PAN-3092)
- Address merge verification review findings
- Make the conflict surface honest and stop the per-patrol no-op write
- Distinguish verdict conflicts from lock contention, dedupe warnings durably (PAN-3092)
- Record GitLab MRs in merged DoD evidence
- Add missing canonical-state mock and strengthen workflow assertions (PAN-3025 cycle 3)
- Correct Effect return types and dependency mocking in row-5 and guard tests
- Verify merges across polyrepo roots
- Replace vacuous test mocks with production-path verifications (PAN-3025 review cycle 2)
- Address PAN-3092 review — verdict conflicts, UAT durability, lock-free warning
- Verify GitLab squash-merged branches
- Address all review blocking findings (PAN-3025)
- Update close-out-terminal test to expect preserved verificationStatus (PAN-3025)
- Update records test to expect preserved verificationStatus (PAN-3025)
- Keep merge verification within file-size ratchet
- Reorder tracker type resolution before issue prefix guard in membership gather
- Escalate a frozen test agent instead of going quiet (PAN-3092)
- Back off contended verdict writes instead of burning agent turns (PAN-3092)
- Make the drain's supersede check content-aware (PAN-3092)
- Make the pipeline merge verdict-aware (PAN-3092)
- Narrow briefing troubled-agents filter to gate alone
Plus 91 internal changes (refactors, tests, tooling).
Breaking changes
- None explicitly called out in commit subjects. Review the full changelog before upgrading across versions.
Install
npm install -g @overdeck/core@0.48.0