Skip to content

v0.46.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 02:30

Summary

  • Release 0.46.0 (stable)
  • Built from v0.45.24...v0.46.0
  • Published intentionally from main via tag promotion
  • State snapshot: overdeck-state f39f597

Highlights

Features

  • Per-repo generation teardown
  • Two-phase all-or-nothing polyrepo promote
  • Route polyrepo projects through UAT assembly, delete the guard
  • Polyrepo UAT assembly engine
  • Polyrepo ready set with per-repo contributions
  • Scope the UAT conflict hook to a repo
  • Per-repo generation tables, types, and store I/O
  • Stamp dashboard build provenance (PAN-3128)
  • Expose membership queryability
  • Add membership unavailability contract
  • Dedupe keyed deliveries in crash-independent components (PAN-2997)
  • Add LinearMcpAuthBanner with status hook and AppChrome mount (PAN-2997)
  • Add Linear MCP auth routes (PAN-2997)
  • Wake agents after Linear MCP auth (PAN-2997)
  • Ingest Linear MCP auth heartbeats (PAN-2997)
  • Add Linear MCP auth lifecycle fold (PAN-2997)
  • Add Linear MCP auth domain events (PAN-2997)
  • Render pane choice menus as inline decision cards (PAN-3113)
  • Pane choice-menu detection + answer endpoint for conversations (PAN-3113)
  • Pane choice-menu parser for blocking numbered menus (PAN-3113)
  • Finish the cockpit merge-train control (ac1 + ac3)
  • Explain Flywheel scope and correct its apply-timing copy
  • Persist and display the active run's effective scope
  • Make the Flywheel rail a viewer of the shared merge train
  • Host the multi-project merge train on Awaiting Merge
  • Multi-project merge-train view
  • Aggregate /api/merge-train/* namespace
  • Add merge-train control to project cockpit
  • Compute merge queue from pipeline ready set
  • Use per-project DNS domain in frontend URLs
  • Show issue titles in activity feed
  • Show issue titles in decisions
  • Populate issue titles for prompts
  • Show issue titles in question dialog
  • Add issue reference formatter
  • Add GET/POST /api/projects/:key/merge-train endpoints
  • Decouple UAT reconciler from project-root (PAN-1696)
  • Decouple ready set from flywheel (PAN-1696)
  • Add per-project merge_train override in projects.yaml
  • Rename merge_train flag key and add legacy fallback
  • Brand workspace head anchors
  • Narrative feed + rich question card on the simple issue page (PAN-3090)
  • Narrative feed shaping module + string catalog (PAN-3090 WI-1/WI-6)
  • Report per-repo sync-main results
  • Assess polyrepo merge completeness
  • Find merged review artifacts
  • Detect inotify watch exhaustion — banner, pill, pan doctor (PAN-3063)
  • Add /pan-peer-review for operator-requested second opinions
  • Seed isolated homes with skills
  • Render composer command results
  • Expose composer command catalog
  • Scope native commands by harness
  • Enforce composer command confirmations
  • Open composer UI command results
  • Launch detached composer commands
  • Execute captured composer commands
  • Intercept portable agent commands
  • Intercept portable conversation commands
  • Parse portable composer commands
  • Add composer command policy overlay
  • Route autocomplete through composer manifest
  • Generate composer command manifest (PAN-1525)
  • Expose command options and aliases
  • Clickable feature-app link chip on expanded tree rows
  • Gate slash command registry drift
  • Consume generated slash commands
  • Generate slash command registry
  • Expose command registry introspection
  • Add Claude Opus 5 (claude-opus-5) support (PAN-3026)
  • Monitor transport tests, role inbox instruction, docs (PAN-3015)
  • Pan monitor pull-based inbox transport for Claude Code (PAN-3015)
  • Add feature flag read door
  • Upload release sourcemaps
  • Capture pipeline funnel telemetry
  • Capture dashboard boot telemetry
  • Capture CLI command telemetry
  • Add server analytics service
  • Add telemetry privacy settings
  • Gate frontend telemetry at runtime
  • Expose telemetry settings (PAN-2599)
  • Define typed telemetry event schema
  • Persist anonymous telemetry install id
  • Add telemetry enablement config
  • Add pipeline resync recovery action
  • Add pan review resync
  • Add review status resync endpoint
  • Summarize project settings values

Fixes

  • Make merge reconciliation atomic (PAN-3162)
  • Resolve the PTY supervisor where its dependencies live (#3177)
  • Bind merge evidence to current artifacts (PAN-3162)
  • Lint the assembled UAT union and probe stacks honestly (PAN-3166) (#3173)
  • Resolve specs through one path authority so UAT keeps its checklist (#3169)
  • Skip forge-merged repos on merge click (PAN-3162)
  • Verify non-GitHub merges from forge state (PAN-3162)
  • Bound stuck merge states (PAN-3162)
  • Satisfy deacon file-size ratchet (PAN-3162)
  • Reconcile forge-side merges in deacon (PAN-3162)
  • Observe forge-side merges (PAN-3162)
  • Stabilize review feedback identity
  • Short-circuit deploy dependency checks (PAN-3155)
  • Scope filtered merge train empty state
  • Count hidden idle merge trains
  • Hide idle enabled projects
  • Report deploy row merge dependency (PAN-3155)
  • Prefer actionable pull request refs (PAN-3155)
  • Verify strike branch merges (PAN-3155)
  • Require complete merge evidence before finalizing a polyrepo batch
  • Preserve live batch on ref outage; finish prefix + coalescing
  • Honour configured branch prefixes; coalesce evidence checks
  • Address third-round polyrepo UAT review blockers
  • Address second-round polyrepo UAT review blockers
  • Address polyrepo UAT review blockers
  • Queue every post-merge lifecycle generation
  • Preserve post-merge retry ownership
  • Escalate repeated feedback suppression
  • Key review feedback delivery
  • Redispatch review after blocked rework
  • Anchor blocked review verdicts
  • Guarantee post-merge lifecycle ownership
  • Preserve timed-out dashboard deployments (PAN-3128)
  • Bound dashboard deployment generations (PAN-3128)
  • Isolate canonical dashboard deployments (PAN-3128)
  • Preserve canonical deploy dependencies (PAN-3128)
  • Reject noncanonical live builds in DoD (PAN-3128)
  • Build reload from canonical worktree (PAN-3128)
  • Retry incomplete post-merge handoffs
  • Preserve merged Docker cleanup retries
  • Guarantee post-merge Docker cleanup
  • Address Docker cleanup review feedback
  • Avoid rebuild status import cycle
  • Block rebuilds for merged issues
  • Reap merged workspace networks
  • Remove workspace network after merge
  • Close merge recovery review gaps (PAN-3110)
  • Verify symbolic default branches
  • Initial poison read rejects as recoverable marker error (PAN-2997)
  • Surface membership unavailability
  • Return typed membership unavailability
  • Preserve membership failure reasons
  • Type membership gather failures
  • Resolve repository default branches
  • Reject invalid membership repositories
  • Recoverable classification for poison-clear failures (PAN-2997)
  • Resume a scheduler-yielded work agent on MERGE instead of dead-ending (PAN-3120)
  • Requeue retryable auto-merge failures (PAN-3110)
  • Pane-identity marker for keyed recovery, strict verification reads (PAN-2997)
  • Retry merge preparation through server rebase (PAN-3110)
  • Merge clean pull requests without agent rebase (PAN-3110)
  • Keep spawn module below size ceiling (PAN-3110)
  • Preserve anchored verdicts across work restarts (PAN-3110)
  • Register POST /api/conversations/:id/pane-choice in both no-loss inventories (PAN-3119) (#3124)
  • Tighten assemble project validation and complete the collapsed cockpit summary
  • Heal UAT verification evidence at close-out (PAN-3114)
  • Provisional terminal from birth, fail-closed poison lifecycle (PAN-2997)
  • Verified keyed rollback with poison breadcrumb, fail-closed target check (PAN-2997)
  • Post-submit liveness verification rolls back false terminal claims (PAN-2997)
  • Liveness-gated Enter-first keyed tmux submit (PAN-2997)
  • Server-owned atomic tmux submit, no ambiguous cross-tier keyed fallback (PAN-2997)
  • Enforce keyed wakes atomically at crash-independent tiers (PAN-2997)
  • Keyed wake outbox replaces mail-content reconciliation (PAN-2997)
  • Resumable Linear wake claims with mail-outbox reconciliation (PAN-2997)
  • Crash-idempotent Linear wake claims and incremental projection reads (PAN-2997)
  • Address PAN-2997 review — PostToolUseFailure detection, lifecycle correlation, unbounded fold, issue links
  • Persist UAT verification after promotion (PAN-3114)
  • Anchor pane-menu scan at last non-blank line (PAN-3113)
  • Record UAT promotion verification verdicts (PAN-3114)
  • Surface send-failure reason inline and suppress doomed Retry (PAN-3117)
  • Close the remaining merge-train review findings
  • Address review findings on the merge-train decoupling
  • Accept quiescent non-PR post-merge state
  • Accept contained branch work as merged
  • Register per-project merge-train routes in NO_LOSS_MATRIX
  • Display 'supervisor' delivery method in session/conversation UI
  • Stash enumeration of a repo-less wrapper workspace is empty, not a 500
  • Record verification verdicts for strike-landed issues (PAN-3067)
  • Treat missing transcript as a clean skip in memory session-start hook
  • Allow read-only stash list/show through git-guard; scrub guard PATH from dashboard spawn
  • Test failures — NO-LOSS-MATRIX, flywheel --json, CLI test update
  • Add CSRF headers to merge-train toggle and show queue without active run
  • Leave 60s headroom on installation-token JWT exp
  • Regenerate composer-command manifest for --health-timeout (#3105)
  • Refresh composer command manifest
  • Pan-dashboard-restart — restart through the supervisor, launch with Traefik env, verify WS origin
  • Add dashboard auth guard to POST merge-train endpoint
  • Trust config.yaml traefik domain when launch env has no origin config
  • Export readProjectJsonBody for reuse in projects-merge-train module
  • Use statuses parameter for live-generation query instead of filtering
  • Uat reconciliation forced rebuild and live-generation filtering
  • Resolve typecheck error in listEligibleCandidatesByProject
  • Uat reconciliation type errors and per-project isolation
  • Fix UAT reconciler and enable per-project iteration (PAN-1696)
  • Update control-settings test to check new merge_train.enabled key
  • Resolve live settings, per-project persistence, polyrepo guard
  • Resolve full ProjectConfig for per-project flag check
  • Guard polyrepo projects from UAT assembly attempt
  • Health-timeout floor + suffixes, never reap a slow-booting dashboard (#3099)
  • Reap full workspace stacks after 2h idle, not just overdeck UI peers (#3050)
  • Stop pan done from failing on generated devcontainer harness (#3096)
  • Feed action rows read as actions — verb + server detail, errors verbatim in red, thinking markers dropped (PAN-3090)
  • Fail closed on anchor uncertainty
  • Derive run IDs from composite anchors
  • Pair role run anchor stamp and compare
  • Compare producer-issued review anchors
  • Stamp bypass with workspace anchor
  • Stamp composite review anchor
  • Stamp route with workspace anchor
  • Compare composite workspace anchors
  • Preserve file-size ceiling after main sync (PAN-3037)
  • Assert the notes argument on inspect verdict delivery (PAN-3086) (#3087)
  • Propagate cleared review intents through fallback (PAN-3083)
  • Keep review status within size guard (PAN-3083)
  • Consume serviced review intents (PAN-3083)
  • Stop redispatching terminal reviews (PAN-3083)
  • Resolve conflicts from target branch
  • Deliver inspect verdicts and always pass --effort (PAN-3077, PAN-3078)
  • Reject unverifiable merge artifacts
  • Stabilize concurrent start branch probes
  • Fail closed without rejected lifecycle promises
  • Verify branches across workspace repos
  • Read polyrepo agent git status
  • Surface stranded repo blockers
  • Stop forgiving missing merge artifacts
  • Probe dispatch branch in primary repo
  • Resolve restart branch from primary repo
  • Block stranded polyrepo merges
  • Block partial polyrepo lifecycle
  • Sync main across workspace repos
  • Route Get it unstuck to the door that tripped stuck (PAN-3073)
  • Clear feedback_delivery_needs_you once feedback delivery succeeds (PAN-3074)
  • Drawer conversation tab can scroll again
  • 404 missing assets instead of the SPA shell; allow bracketed model ids
  • An agent parked on a blocking prompt is not healthy/working (PAN-3070) (#3072)
  • Verification row passes on the verdict, not the commit anchor (#3071)
  • Detect Claude permission prompts behind the footer hint (#3069)
  • Surface tool-permission prompts as decisions without Channels (#3066)
  • Type pending reap resolution (PAN-3055)
  • Reap dead-agent pending input (PAN-3055)
  • Gate scans on tmux census (PAN-3055)
  • Regenerate synced-skills fixture for /pan-peer-review
  • Count all bridge networks for Docker pool exhaustion (PAN-3053) (#3060)
  • Restore main-green gates for boot-reconciliation extend route (PAN-3056) (#3059)
  • Continue agents that compacted and stopped (PAN-3057)
  • One GPT-5.6 context window, Anthropic-only 1M detection (PAN-3057)
  • Make the boot-reconciliation dialog tell the truth (PAN-3052)
  • Unswallow promotion errors, clean the promoted draft, drop the gh assumption (#3045)
  • Move clearRecordPipelineClosedOutSync into the record write door (#3039)
  • Clear terminal closedOut marker so reopened issues re-enter the pipeline
  • Refresh composer manifest after rebase (PAN-1525)
  • Close composer command review gaps (PAN-1525)
  • Seed Codex homes from shared skills (PAN-1525)
  • Validate detached composer paths (PAN-1525)
  • Session row metadata overlap in Command Deck tree
  • Session tree misses strike-only and workspace-less issues (PAN-3034)
  • Eliminate the recovery check-then-rename race with claim-everything drains (PAN-2989)
  • Keep claimed verdicts read-visible and never recover a dead claim over a newer live fallback (PAN-2989)
  • Align unpause toast assertion (PAN-3021)
  • Cancel raced reconcile/restore at the durability deadline and claim fallback generations atomically (PAN-2989)
  • Hide synthetic ship conversation rows (#3024)
  • Proactively drain the workspace verdict fallback (PAN-2989)
  • Scrub agent identity from the spawned dashboard server env (PAN-2989)
  • Bound the under-lock durability wait in updateIssueRecord (PAN-2989)
  • Honor per-issue workModel override in the work-spawn route (#3022)
  • Require positive close-out evidence (PAN-3018) (#3019)
  • Sync cockpit URL when switching to an issue pane tab
  • Report never-built UAT stacks as absent instead of healthy
  • Keep cockpit deep-link URL when issue selection clears the conversation
  • Replace --bare with --safe-mode for background AI spawns (PAN-3014)
  • Preserve local fatal diagnostics
  • Preserve process finalization semantics
  • Keep the CLI exit door lightweight
  • Close remaining telemetry review gaps
  • Flush pipeline telemetry on CLI exit
  • Route all CLI exits through the async door
  • Separate configured and effective telemetry state
  • Capture sanitized Node process exceptions
  • Sanitize browser telemetry metadata
  • Keep pipeline telemetry reads cycle-free
  • Normalize persisted status comparison
  • Stream sourcemap release commands asynchronously
  • Enforce telemetry schema documentation parity
  • Detect equal-timestamp sweep drift
  • Complete pipeline telemetry funnel
  • Finalize telemetry for direct CLI exits
  • Prevent stale enrichment regression
  • Enforce telemetry privacy lifecycle
  • Keep config schema within size ceiling
  • Keep reconciliation cycle-free
  • Narrow review resync errors
  • Type reconciled event append
  • Type review event append in deacon
  • Reconcile lost review status events
  • Emit reconciled review status changes
  • Bound review status enrichment
  • Make review status event emit durable
  • Show settings for sparse projects
  • Show project settings disclosure state

Plus 177 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.46.0

Full changelog