Skip to content

v0.20.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 06:34
· 28 commits to main since this release
66a6179

What's Changed

  • Prevent configured sweep cadence from silently skipping enabled cron routines by @danieljhkim in #1485
  • Enable and verify HSTS for orbit-cli.com by @danieljhkim in #1486
  • Allow flexible audited task status changes, including reopening done tasks by @danieljhkim in #1487
  • Publish a maintained security.txt for orbit-cli.com by @danieljhkim in #1488
  • Repair conflict-recovery launch failure and preserve its diagnostic by @danieljhkim in #1489
  • Recover published task PRs when the landing base advances before completion by @danieljhkim in #1490
  • Allow explicitly authorized Mac operators to invoke agents on the owning Linux host by @danieljhkim in #1491
  • Include model-aware Orchestrated-By attribution in task commit trailers by @danieljhkim in #1492
  • Expose bounded recovery-attempt diagnostics through authoritative workflow run show by @danieljhkim in #1493
  • Refresh stale delivery checkpoints when resuming a preserved PR candidate by @danieljhkim in #1494
  • Keep task creator model separate from Orchestrated-By identity by @danieljhkim in #1495
  • Support an explicit cooperative SSH operator grant for remote agent invocation by @danieljhkim in #1496
  • Scope remote agent invocation independently of ordinary caller access by @danieljhkim in #1497
  • Complete recovered rebases without granting agents broad Git metadata writes by @danieljhkim in #1498
  • Implement independent review policy, direct repairs, and delivery coverage by @danieljhkim in #1499
  • Use concrete failure diagnostics for stable CI sweep signatures by @danieljhkim in #1500
  • Withhold release-publication work from automatic CI repair admission by @danieljhkim in #1501
  • Fix website Pages deployment failing on missing Wrangler project name by @danieljhkim in #1502
  • [code-review] Reviewer scope check rejects canonical symbol selectors by @danieljhkim in #1503
  • [code-review] Before-PR policy rejects the local child pipelines needed to assemble an epic by @danieljhkim in #1504
  • Bind CI failure signatures and excerpts to the actual failing job by @danieljhkim in #1505
  • [code-review] Covered-only delivery prefixes eventually stall observation permanently by @danieljhkim in #1506
  • [code-review] Managed PR merge does not atomically pin the reviewed head by @danieljhkim in #1507
  • [auto-task] Doc duties — validate the least-recently-validated docs by @danieljhkim in #1508
  • Migrate existing task registries before delivery automation reserves task action keys by @danieljhkim in #1509
  • Recognize manually authored covering repairs in CI sweep deduplication by @danieljhkim in #1510
  • [code-review] Operation explain omits the active grant policy snapshot by @danieljhkim in #1511
  • [code-review] Epic review gate looks up the stable worktree ID instead of its admitted run by @danieljhkim in #1512
  • [security-review] Pin and verify the MCP publisher used by npm smoke CI by @danieljhkim in #1513
  • Distinguish required candidate validation from expected failures and scope exclusions in review settlement by @danieljhkim in #1514
  • fix: derive delivery automation ownership from the workspace registry [ORB-11530] by @danieljhkim in #1515
  • Preserve the authoritative integration branch throughout scheduled CI sweep admission by @danieljhkim in #1516
  • Restore additive task-registry compatibility and automatically recover registries marked v6 by @danieljhkim in #1517
  • [code-review] Review wall-time budget loses interrupted work and does not bound the current attempt by @danieljhkim in #1518
  • Support validated crew effort configuration and include effort in effective config output by @danieljhkim in #1519
  • [ci-failure-sweep] Fix red CI: macOS Platform / macOS Sandbox / Run orbit-core sandbox tests by @danieljhkim in #1520
  • [code-review] Review-gate failure handoff cannot push a rewritten candidate by @danieljhkim in #1522
  • [qa-sweep] Fresh orbit init still tells operators before-pr is not yet supported by @danieljhkim in #1523
  • Bind superseded review validation to the check that actually replaces it by @danieljhkim in #1524
  • [auto-task] Doc duties — validate the least-recently-validated docs by @danieljhkim in #1525
  • [BLOCKED] Prove live filesystem enforcement for ORB-11514 without breaking recovery tools by @danieljhkim in #1521
  • Collect complete diagnostic units from long CI logs without permanent truncation deferral by @danieljhkim in #1526
  • [friction-curation] Make agent_implement cleanup compatible with Codex denied rm commands by @danieljhkim in #1527
  • [friction-curation] Say when a task-pilot apply applied zero partitions in the stale-skip diagnostic by @danieljhkim in #1528
  • [code-review] Host-registry design docs still assign identity DTOs to orbit-common after path retarget by @danieljhkim in #1529
  • Preserve successful rebase recovery provenance through settlement and resume by @danieljhkim in #1530
  • [friction-curation] Preserve run attribution on dashboard process error rows by @danieljhkim in #1531
  • Fix global task jump reporting an existing task as not found by @danieljhkim in #1532
  • [qa-sweep] auto-task list and dashboard show Debug coverage names that add rejects by @danieljhkim in #1533
  • [BLOCKED] Keep explicit review check identities distinct from fallback command identities by @danieljhkim in #1534
  • [ci-failure-sweep] Fix red CI: macOS Platform / macOS Sandbox / Run orbit-core sandbox tests by @danieljhkim in #1535
  • [friction-curation] Make empty multi-term friction and task search distinguishable from a clean group by @danieljhkim in #1536
  • [friction-curation] Stop orbit-web unidentified-caller routine toggle from flaking under parallel tests by @danieljhkim in #1537
  • [friction-curation] Document git archive and git-show workarounds for a read-only managed .git by @danieljhkim in #1538
  • [qa-sweep] workspace init --root still tells operators to commit checkout .orbit files that were not written by @danieljhkim in #1539
  • [friction-curation] Derive frozen MCP surface length assertions from one canonical list by @danieljhkim in #1540
  • [auto-task] Doc duties — validate the least-recently-validated docs by @danieljhkim in #1541
  • Reconcile failed-run filtering with dashboard failure counts by @danieljhkim in #1542
  • Make website First Task onboarding a complete executable sequence by @danieljhkim in #1544
  • Persist an explicit sandbox-off operator choice across executor seeding by @danieljhkim in #1545
  • Select crews randomly from configurable task-complexity pools in auto dispatch by @danieljhkim in #1546
  • Fix CI diagnostic selection and cross-job compiler deduplication [ORB-11582] by @danieljhkim in #1543
  • Make Operations mint and toggle controls usable in authorized dashboard sessions by @danieljhkim in #1547
  • Add discoverable public documentation for the Orbit dashboard by @danieljhkim in #1549
  • [ci-failure-sweep] Fix red CI: CI / Coverage (informational) / Collect workspace coverage by @danieljhkim in #1550
  • [code-review] Neutralize repository Git hooks and stop inheriting the host environment in host-side VCS mutations by @danieljhkim in #1551
  • Give website homepage sections a semantic heading hierarchy by @danieljhkim in #1552
  • [code-review] Refuse to touch index rows in unregister_task_bundle when the binding belongs to another workspace by @danieljhkim in #1553
  • [code-review] Record approved_from_proposed from the pre-write status, not the updated task by @danieljhkim in #1554
  • [code-review] Make check-installer-pubkey.sh compare the full trusted-key set across install.sh, install-binary.js and release.rs by @danieljhkim in #1555
  • [code-review] Stop admitting Orbit's own privilege-bearing variables into agent subprocesses through the ORBIT_* wildcard by @danieljhkim in #1556
  • [code-review] Serialize store schema migrations across processes with an immediate transaction and in-transaction re-check by @danieljhkim in #1558
  • Show truthful paused schedules and time zones in Operations by @danieljhkim in #1559
  • [code-review] Write the run definition snapshot atomically by @danieljhkim in #1560
  • Show a concrete product walkthrough before advanced website delivery modes by @danieljhkim in #1561
  • [code-review] Guard redact_home_dir against a root or very short $HOME by @danieljhkim in #1562
  • [code-review] Unlink dangling symlinks in remove_path_if_exists as its contract promises by @danieljhkim in #1563
  • Extract bounded failure evidence from oversized complete CI commands without permanent sweep deferral by @danieljhkim in #1564
  • [code-review] Stop minute-truncating cron slots through DateTime<Local>::with_second (every cron routine errors for the whole DST fall-back hour) by @danieljhkim in #1565
  • [BLOCKED] [code-review] Stop orbit init from spinning forever when stdin is closed by @danieljhkim in #1557
  • [code-review] Enforce denyModify for exact/subtree paths that do not exist at spawn time (linux-bwrap) by @danieljhkim in #1566
  • Restore navigation and theme access on the mobile website homepage by @danieljhkim in #1567
  • [code-review] Add a deadline to companion RPC reads and to SubprocessEmbedder::drop by @danieljhkim in #1568
  • [code-review] Make the global "Jump to" resolver work for non-ORB prefixes and the selected workspace by @danieljhkim in #1569
  • [code-review] Stop serialising every supervised child on the global signal-handler mutex by @danieljhkim in #1570
  • Complete verified already-landed task retries without requiring an empty commit by @danieljhkim in #1571
  • [code-review] Confine orbit.task.artifact.put source_path to the workspace checkout (arbitrary file read over MCP) by @danieljhkim in #1573
  • [code-review] Bound policy.timeout_minutes / retries.backoff_minutes so a large YAML value cannot panic the whole sweep by @danieljhkim in #1572
  • Improve contrast and legibility of small website homepage labels by @danieljhkim in #1574
  • [code-review] Stop full-scanning corpus_fts on every upsert, delete and snippet lookup (quadratic reindex) by @danieljhkim in #1575
  • [code-review] Collapse the two staged-write implementations in fs/io.rs into one by @danieljhkim in #1576
  • [code-review] Drop the Bash 4 mapfile from sync-activity-assets.sh by @danieljhkim in #1577
  • [code-review] Make orbit config set able to descend through inline tables instead of reporting them as non-table values by @danieljhkim in #1578
  • [code-review] Record the post-recovery re-attempt outcome instead of discarding it by @danieljhkim in #1579
  • Prevent task-pilot source fetch failures when delivery updates the shared remote ref concurrently by @danieljhkim in #1580
  • [qa-sweep] orbit init without --force resets executor sandbox: off by @danieljhkim in #1581
  • [qa-sweep] First Task still fails ship on a disposable repo with no origin by @danieljhkim in #1582
  • [code-review] Validate cron at auto-task load time like the routine loader does by @danieljhkim in #1583
  • [code-review] Report (or reject) retired orbit.task.add fields instead of silently dropping them by @danieljhkim in #1584
  • [code-review] Batch the per-path Git subprocesses in the worktree boundary fingerprint by @danieljhkim in #1585
  • [ci-failure-sweep] Fix red CI: macOS Platform / macOS Sandbox / Run orbit-exec sandbox tests (real sandbox-exec) by @danieljhkim in #1586
  • [code-review] Show the run-events scan-budget error instead of "No v2 envelope events" by @danieljhkim in #1587
  • [code-review] Stop leaking the full process environment to external tools by @danieljhkim in #1588
  • [code-review] Vendor the web fonts instead of loading them from Google by @danieljhkim in #1590
  • [code-review] Reject out-of-range every_minutes so an auto-task interval cannot degenerate into "fire on every pass" by @danieljhkim in #1589
  • [code-review] Tell the aggregate task view when the server truncated it by @danieljhkim in #1592
  • [code-review] Do not swallow SIGTERM/SIGINT delivered to a long-running server while it supervises a child by @danieljhkim in #1593
  • Detect incompatible semantic-index layouts across installed Orbit runtimes by @danieljhkim in #1595
  • Reuse proven completed CI repair owners for late results from pre-fix checkouts by @danieljhkim in #1596
  • [code-review] Give AutoTaskSchedule a readable parse error instead of "did not match any variant of untagged enum" by @danieljhkim in #1597
  • Expose active provider liveness and v2 step progress through workflow run show by @danieljhkim in #1598
  • [code-review] Clean up the child and its readers when try_wait fails in the supervisor by @danieljhkim in #1599
  • [BLOCKED] [code-review] Delete the unserved _preview_failures_card.html (and the source-text tests that keep it alive) by @danieljhkim in #1594
  • [BLOCKED] [security-review] Host/bwrap: deny leaf rewrite of .git and copy of git metadata during same-PR recovery by @danieljhkim in #1591
  • [code-review] Treat a panicked fan-out worker as a failed worker instead of silently dropping it by @danieljhkim in #1600
  • [BLOCKED] Prove live filesystem enforcement for ORB-11514 without breaking recovery tools by @danieljhkim in #1601
  • [code-review] Apply the task write lock / status compare-and-set to approve, start, and reject transitions by @danieljhkim in #1602
  • Classify cancelled CI jobs without steps as inconclusive instead of retryable log failures by @danieljhkim in #1604
  • [code-review] Remove the placeholder orbit-release-key-4 from the trusted release key set until a real key is generated on the signing host by @danieljhkim in #1605
  • Make Operations compact and usable on narrow dashboard widths by @danieljhkim in #1606
  • [code-review] Resolve orbit run ship mode from the selected root's registry, not ~/.orbit by @danieljhkim in #1607
  • [code-review] Validate skill ids as path stems before joining them onto the catalog roots by @danieljhkim in #1608
  • [code-review] Stop the pipeline worker observer from polling SQLite every 25 ms for the run's whole lifetime by @danieljhkim in #1603
  • [code-review] Run apply_task_automation_update under the task write lock with an expected status by @danieljhkim in #1609
  • [code-review] Make task transitions durably commit and recover without masking corruption by @danieljhkim in #1610
  • [code-review] Make blob-store writes atomic so a crash cannot leave a permanently corrupt content-addressed blob by @danieljhkim in #1611
  • [code-review] Honor global output format across remaining CLI record-output paths by @danieljhkim in #1612
  • [code-review] Make update_run_waiting_reasons a transactional run-state update by @danieljhkim in #1613
  • [code-review] Resume the log SSE stream without gaps and surface disconnects by @danieljhkim in #1614
  • Distinguish dashboard loading and stale data from empty results by @danieljhkim in #1615
  • [code-review] Do not run companion inference inside the SQLite write transaction / store mutex by @danieljhkim in #1616
  • [code-review] Reduce repeated tokenizer RPCs during long-paragraph chunking by @danieljhkim in #1617
  • [code-review] Promote --workspace to a global flag and rename task add --workspace by @danieljhkim in #1618
  • [code-review] Bound response-envelope discovery work without losing supported envelopes by @danieljhkim in #1619
  • [code-review] Keep orbit doctor --fix-* --format json stdout parseable by @danieljhkim in #1620
  • [code-review] Make task deletion coordinate with writers and recover safely after interruption by @danieljhkim in #1621
  • [code-review] Limit detached incremental indexing to long-lived runtimes by @danieljhkim in #1622
  • [code-review] Serialise ensure_host_identity under the registry lock (check-then-write race creates two machine ids) by @danieljhkim in #1623
  • [code-review] Enforce checkout repo_root / path_overrides uniqueness at the persistence boundary by @danieljhkim in #1625
  • [code-review] Companion download: remove the implicit 30 s total timeout and stream to disk by @danieljhkim in #1626
  • Bound Orbit repository build concurrency independently of agent concurrency by @danieljhkim in #1624
  • [code-review] Stop the 30 s refresh from clobbering in-progress operator state by @danieljhkim in #1627
  • [code-review] Make task update accept the same list-flag shapes as task add by @danieljhkim in #1628
  • [code-review] Make ActorIdentity serde round-trip losslessly (a persisted Human { label } reads back as an agent model) by @danieljhkim in #1630
  • [BLOCKED] [code-review] Fix silent input handling in friction add and run-list limit by @danieljhkim in #1631
  • [BLOCKED] [code-review] Decouple token-scoreboard regeneration from every invocation trace by @danieljhkim in #1633
  • [BLOCKED] [code-review] Show relations and artifacts in the human task show view by @danieljhkim in #1632
  • Repair orbit-search test embedders missing token_boundaries after ORB-11703 by @danieljhkim in #1634
  • [code-review] Make auto-task slot minting concurrency-safe and preserve corrupt cursor evidence by @danieljhkim in #1635
  • [BLOCKED] [code-review] Do not load the whole audit trail to find an orphaned run's last activity timestamp by @danieljhkim in #1636
  • [BLOCKED] [code-review] Delete the duplicated glob matcher: orbit_common::fs::glob is a verbatim copy of orbit_types::policy::glob with a split consumer base by @danieljhkim in #1629
  • [code-review] Fix the macOS platform job: two of its test steps run zero tests and its path filters point at deleted files by @danieljhkim in #1637
  • Repair task-pilot source inspection interaction with Git metadata protection by @danieljhkim in #1639
  • [code-review] Delete the dead checkoutless HubCoordinationExecutor task/friction CRUD path by @danieljhkim in #1640
  • [code-review] Remove redundant run-owner probes without weakening reconciliation by @danieljhkim in #1641
  • [code-review] Stop hashing every artifact blob on every bundle read used by listing and search by @danieljhkim in #1642
  • Validate compiler-cache effectiveness across managed worktrees and fix measured blockers by @danieljhkim in #1644
  • Release build admission before application runtime and between watch iterations by @danieljhkim in #1638
  • [code-review] Remove arbitrary task scans and redundant git probes from tool context resolution by @danieljhkim in #1645
  • [BLOCKED] [code-review] Compare the CSRF Origin check against the request Host, and accept [::1] by @danieljhkim in #1643
  • [code-review] Print the host's real task prefix in workspace init --task-id-start output by @danieljhkim in #1646
  • [code-review] Remove or implement the dead and misleading flags on orbit tool run by @danieljhkim in #1647
  • [code-review] Move /api/log off the async worker and stop scanning the whole log file by @danieljhkim in #1648
  • [code-review] Bound heavyweight Git operations and recover only owned interrupted mutations by @danieljhkim in #1649
  • [code-review] Read each doc once in search_docs / related-docs / index instead of re-resolving roots and re-reading every file per record by @danieljhkim in #1650
  • [code-review] Stop reloading the whole task list on every reserve_locks poll by @danieljhkim in #1651
  • [code-review] Disclose the default field projection of orbit tool run orbit.task.* by @danieljhkim in #1652
  • [code-review] Return structured workspace-init results through the output renderer by @danieljhkim in #1653
  • [code-review] Route orbit docs add through orbit-config's comment-preserving store and the workspace config by @danieljhkim in #1654
  • [code-review] Route every runtime call that locks or scans through the blocking pool by @danieljhkim in #1655
  • [code-review] Remove the N+1 run-state and audit reads from orbit.workflow.run.list by @danieljhkim in #1656
  • [code-review] Make generate-doc-indexes.sh --check see untracked docs so index staleness fails before commit by @danieljhkim in #1657
  • [code-review] Reduce repeated incident inventory work while preserving live admission checks by @danieljhkim in #1658
  • Repair global --workspace collision with search scope after ORB-11598 by @danieljhkim in #1659
  • [qa-sweep] First Task local ship still fails when the disposable repo branch is not main by @danieljhkim in #1660
  • fix: restore native macOS CI validation [ORB-11770] by @danieljhkim in #1661
  • Filter active job runs in SQL before queued-worker admission scans by @danieljhkim in #1662
  • [code-review] Bound pr_complete's wait budget and poll interval by @danieljhkim in #1663
  • [code-review] Load task sidecars and the --input-file once per task show / tool run by @danieljhkim in #1664
  • [code-review] Drive check-dependency-direction.sh from cargo metadata instead of regex-parsing Cargo.toml by @danieljhkim in #1665
  • [code-review] Scan every workspace crate in check-public-artifact-ids.py (a shipped orbit-search string already violates it) by @danieljhkim in #1667
  • [code-review] Unify the guardrail list between make ci-fast and scripts/ci-guardrails.sh by @danieljhkim in #1668
  • [code-review] Cache the per-revision instruction listing used by the preparation fingerprint by @danieljhkim in #1669
  • [code-review] Reuse runtime-owned SQLite stores for automation, review, operations, and tool audit by @danieljhkim in #1670
  • [code-review] Move duplicated path/workspace-id rules to their single owner by @danieljhkim in #1672
  • fix(ci): isolate compiler cache namespace fixtures [ORB-11767] by @danieljhkim in #1666
  • test: align workflow run-list description snapshots [ORB-11773] by @danieljhkim in #1673
  • [code-review] Pause polling while the tab is hidden and back off when refreshes fail by @danieljhkim in #1675
  • [code-review] Avoid redundant managed-asset reconciliation on warm runtime opens by @danieljhkim in #1676
  • fix: restore non-compiling portable fast guardrails [ORB-11775] by @danieljhkim in #1674
  • [BLOCKED] [code-review] Validate reused worktree branch provenance before publishing setup checkpoints by @danieljhkim in #1671
  • [code-review] Collect failures across selected tests within each CI suite invocation by @danieljhkim in #1678
  • [code-review] Split job_run_store/mod.rs and move its inline tests to the sibling layout by @danieljhkim in #1679
  • [BLOCKED] [code-review] Fix the transitive runtime -> bootstrap -> application import and close the guardrail gap by @danieljhkim in #1677
  • [code-scanning-sweep] Fix rust/hard-coded-cryptographic-value in crates/orbit-core/src/application/job/run/reconcile.rs by @danieljhkim in #1680
  • fix: diagnose the database path through a fresh read-only probe [ORB-11787] by @danieljhkim in #1681
  • fix: import default activities from the runtime owner [ORB-11788] by @danieljhkim in #1682
  • test: isolate catalog defaults from workspace overrides [ORB-11789] by @danieljhkim in #1683
  • [code-review] Make expandable rows and filter pills keyboard-operable by @danieljhkim in #1684
  • [code-scanning-sweep] Fix rust/hard-coded-cryptographic-value in crates/orbit-core/src/application/job/tests/workspace_a… by @danieljhkim in #1685
  • [code-review] Route task-bundle locking through one bounded, diagnosable lock implementation by @danieljhkim in #1687
  • [code-review] Avoid reparsing unchanged envelopes during indexed task selection by @danieljhkim in #1690
  • [code-scanning-sweep] Fix rust/hard-coded-cryptographic-value in crates/orbit-core/src/application/job/tests/workspace_a… by @danieljhkim in #1691
  • [code-review] Wire test-mcp-registry-publish-workflow.sh into a gate and make it run on macOS by @danieljhkim in #1692
  • [BLOCKED] [code-scanning-sweep] Fix rust/hard-coded-cryptographic-value in crates/orbit-core/src/application/job/tests/exec.rs by @danieljhkim in #1688
  • [qa-sweep] workspace init --task-id-start bricks a custom task prefix before any task is minted by @danieljhkim in #1693
  • test: use generated identity for completion recovery fixture [ORB-11778] by @danieljhkim in #1689
  • [code-scanning-sweep] Fix rust/hard-coded-cryptographic-value in crates/orbit-core/src/application/job/tests/exec.rs by @danieljhkim in #1694
  • [code-review] Push the field filter into the retrievers instead of post-filtering the over-fetched top-K by @danieljhkim in #1695
  • [code-review] Return JSON {error} for every rejection and never surface a JSON parse error to the user by @danieljhkim in #1696
  • test: isolate routine defaults from operator overrides [ORB-11795] by @danieljhkim in #1697
  • test: contend on the canonical task write lock [ORB-11796] by @danieljhkim in #1698
  • test: isolate worker read counters by owning database [ORB-11797] by @danieljhkim in #1699
  • [code-scanning-sweep] Fix rust/hard-coded-cryptographic-value in crates/orbit-core/src/application/job/tests/workspace_a… by @danieljhkim in #1700
  • [code-review] Bound stalled companion downloads without restoring a whole-request deadline by @danieljhkim in #1701
  • [code-scanning-sweep] Fix rust/hard-coded-cryptographic-value in crates/orbit-core/src/application/job/tests/exec.rs by @danieljhkim in #1702
  • fix: probe current database write readiness without repair [ORB-11798] by @danieljhkim in #1703
  • [code-review] Reuse known task prefixes for repeated unresolved-reference checks by @danieljhkim in #1704
  • [code-review] Cancel escaped-pipe readers and stop output after supervisor completion by @danieljhkim in #1705
  • [code-review] Correct the deny.toml rationale for RUSTSEC-2023-0071 (rsa) to reflect its real call sites by @danieljhkim in #1706
  • [code-scanning-sweep] Fix rust/hard-coded-cryptographic-value in crates/orbit-core/src/application/job/tests/exec.rs by @danieljhkim in #1707
  • [code-review] Keep only an event counter in V2AuditWriter instead of a full in-memory event copy by @danieljhkim in #1708
  • [code-review] Treat an observed non-key SSH login as a pin mismatch, not as "unobservable" by @danieljhkim in #1709
  • [code-review] Drop the fake parallelism in semantic_search (both retrievers serialise on one connection mutex) by @danieljhkim in #1710
  • [code-review] Export bundles under the shared read lock and exclude lock/staging sidecars from the archive by @danieljhkim in #1711
  • [qa-sweep] After the ORB-11638 defaults stamp, a deleted managed default never self-heals and orbit doctor still reports "Workspace healthy" by @danieljhkim in #1712
  • [code-review] Ignore commented-out mod lines in check-orphan-modules.sh by @danieljhkim in #1713
  • [code-review] Share scheduler slot calculations while distinguishing future slots from catch-up work by @danieljhkim in #1714
  • [code-review] Recover companion RPC state after malformed or mismatched responses by @danieljhkim in #1715
  • [code-review] record_publication_success idempotency check compares lowercase stored commit with raw input by @danieljhkim in #1716
  • [code-review] semantic uninstall --all leaves the integrity manifest and temp files behind by @danieljhkim in #1717
  • [code-review] reindex_tasks never removes rows for deleted tasks (unlike reindex_docs) by @danieljhkim in #1718
  • [code-review] Bound cosine_top_k memory: it materialises and sorts every row by @danieljhkim in #1720
  • Ensure code-scanning sweeps populate context_files from alert locations at task creation by @danieljhkim in #1721
  • [BLOCKED] [code-review] Two selector grammars for the same id-or-name lookup (find_workspace first-match vs resolve_logical_workspace fail-closed) by @danieljhkim in #1719
  • [security-review] Enforce proc.spawn filesystem policy against indirect child access by @danieljhkim in #1722
  • [BLOCKED] [code-review] Escaped-pipe fallback drops all CLI subprocess output when UnixStream::pair() fails by @danieljhkim in #1723
  • [code-review] Derive agent timeout classification from the supervisor verdict, not from stderr text by @danieljhkim in #1724
  • [code-review] Align proc.spawn stdin and timeout handling with the engine's shell step by @danieljhkim in #1725
  • [code-review] Host Git timeout verdict is re-derived from stderr text instead of the supervisor's structural verdict by @danieljhkim in #1726
  • [qa-sweep] Workspace ID/name collision makes the ID-owning checkout unusable by @danieljhkim in #1728
  • fix: canonicalize Landlock test paths on macOS [ORB-11806] by @danieljhkim in #1727
  • [code-review] Stop stamping Utc::now() into created_at/updated_at when a persisted policy or executor resource omits them by @danieljhkim in #1729
  • Resolve Homebrew Codex launcher for Mac scheduled drains with minimal PATH by @danieljhkim in #1730
  • [qa-sweep] Shared-root runtime routes second workspace task writes into the first workspace store by @danieljhkim in #1731
  • chore: prepare v0.20.0 release [ORB-11809] by @danieljhkim in #1732

Full Changelog: v0.19.2...v0.20.0