runtime-v0.3.26
What's Changed
Large Features
- feat(product): add plugin skill bundles by @pablonyx in #208
- feat(product): delegated agents product MCPs by @pablonyx in #211
- feat(cloud): add compute targets and worker enrollment by @pablonyx in #214
- feat(cloud): sync worker session events by @pablonyx in #217
- feat(cloud): run automations through worker targets by @pablonyx in #230
- feat(server): add agent LLM auth gateway foundation by @pablonyx in #254
- feat(server): add agent auth refresh materialization contract by @pablonyx in #255
- feat(desktop): add agent auth gateway configuration UI by @pablonyx in #256
- feat(mobile): add cloud work UI by @pablonyx in #308
- feat(product): add personal cloud environments by @pablonyx in #314
- feat(product): gate teams behind org billing by @pablonyx in #319
- feat(cloud): add gateway BYOK free credits by @pablonyx in #320
- feat(cloud): add workspace archive pruning lifecycle by @pablonyx in #325
- feat(cloud): add Bifrost BYOK gateway onboarding by @pablonyx in #329
- feat(product): align web and desktop cloud workspace UX by @pablonyx in #326
- feat(product): improve agent auth and workspace mobility by @pablonyx in #381
- feat(desktop): add support report uploads by @pablonyx in #391
- feat(product): update settings navigation IA by @pablonyx in #773
- feat(auth): add configurable SSO by @pablonyx in #782
- feat(server): self-hosting v1 - single-org mode, first-run claim, invites, versions, deploy bundle by @pablonyx in #858
- feat(agent-auth): titled-key vault + env-var selections, state.json v2, two-phase render, new auth UI by @pablonyx in #907
- feat(support): revive support flow as two focused modals + product-wide polish by @pablonyx in #932
- feat(billing): usage visibility, budget limits, and consumption surfaces by @pablonyx in #1020
Minor Features
- feat(anyharness): add dynamic model registries by @pablonyx in #209
- feat(product): add file viewer and reference surfaces by @pablonyx in #228
- feat(desktop): add workspace scratch pad by @pablonyx in #229
- feat(cloud): deliver commands through workers by @pablonyx in #216
- feat(cloud): stream live session projection patches by @pablonyx in #218
- feat(cloud): sync existing workspaces through workers by @pablonyx in #219
- feat(cloud): add live snapshot streams by @pablonyx in #221
- feat(cloud): add target config materialization by @pablonyx in #222
- feat(cloud): add worker update supervision by @pablonyx in #223
- feat(cloud): add worker workspace materialization command by @pablonyx in #226
- feat(desktop): refine right panel and file source views by @pablonyx in #232
- feat(desktop): improve loading and review receipts by @pablonyx in #231
- feat(desktop): refresh light mode UI by @pablonyx in #233
- feat(desktop): add scratch list autoformat by @pablonyx in #236
- feat(desktop): render scratch lists with editor widgets by @pablonyx in #237
- fix(desktop): soften scratch task checkbox by @pablonyx in #238
- fix(desktop): align scratch task checkboxes by @pablonyx in #239
- fix(desktop): tune scratch typography by @pablonyx in #241
- fix(desktop): tighten scratch list metrics by @pablonyx in #242
- feat(workspaces): support distinct local workspace sessions by @pablonyx in #245
- feat(desktop): polish update and file browsing UI by @pablonyx in #244
- feat(desktop): align mono light mode styling by @pablonyx in #240
- feat(mobile): add Expo app scaffold by @pablonyx in #250
- feat(product): add shared UI foundation by @pablonyx in #251
- feat(auth): add web and mobile auth foundation by @pablonyx in #252
- feat(product): add web and mobile shell foundation by @pablonyx in #253
- feat(auth): add web and mobile auth flow by @pablonyx in #260
- feat(desktop): refresh loading states by @pablonyx in #264
- feat(desktop): add shortcut reveal alignment by @pablonyx in #266
- feat(server): add Slack signup and billing notifications by @pablonyx in #271
- feat(web): deploy web to Vercel + observability cleanup by @pablonyx in #272
- feat(web): gate session recording on env var + docs followup by @pablonyx in #275
- nit(desktop): scale sticky page title up to text-xl by @pablonyx in #276
- feat(server): add Customer.io welcome transactional email by @pablonyx in #277
- feat(desktop): adjust appearance sizing and auth defaults by @pablonyx in #283
- feat(desktop): add appearance size bounds by @pablonyx in #286
- feat(desktop): add settings sidebar shortcuts by @pablonyx in #287
- fix(desktop): polish git diff UI by @pablonyx in #299
- feat(cloud): edit shared environment files by @pablonyx in #301
- feat(desktop): streamline workspace location controls by @pablonyx in #303
- feat(desktop): polish cloud settings flows by @pablonyx in #305
- feat(desktop): clean up plugins catalog by @pablonyx in #307
- feat(product): unify agent harness configuration by @pablonyx in #309
- feat(desktop): simplify home onboarding cards by @pablonyx in #310
- feat(product): add shared workspace inventory by @pablonyx in #311
- feat(product): unify automation surfaces by @pablonyx in #313
- feat(desktop): clean up settings IA by @pablonyx in #316
- feat(desktop): split worktrees from environments settings by @pablonyx in #315
- feat(desktop): show workspace activity in Dock badge by @pablonyx in #318
- feat(cloud): align web cloud workspace flows by @pablonyx in #330
- feat(cloud): unlock the web harness matrix by @pablonyx in #334
- feat(mobile): refine chat configuration controls by @pablonyx in #342
- feat(desktop): slim updater UI by @pablonyx in #369
- feat(product): surface cloud workspace activity status by @pablonyx in #371
- feat(web): refine workspace chat header by @pablonyx in #372
- feat(product): share transcript viewer across web and desktop by @pablonyx in #373
- feat(product): add email password sign-in by @pablonyx in #382
- feat(product): align web loading and copy feedback by @pablonyx in #387
- feat(support): add debug correlation case files by @pablonyx in #397
- feat(desktop): align Git UI and add turn undo by @pablonyx in #402
- feat(desktop): add web handoff shortcuts by @pablonyx in #405
- feat(product): refresh frontier agent model defaults by @pablonyx in #407
- feat(support): track support reports in GitHub and Linear by @pablonyx in #411
- feat(product): refine chat transcript and launch flows by @pablonyx in #507
- feat(workspaces): improve generated worktree creation by @pablonyx in #605
- feat(agents): normalize variant-encoded model families in catalog build by @pablonyx in #614
- feat(agents): bedrock + opencode-zen probe contexts, parallel matrix by @pablonyx in #617
- feat(desktop): Obsidian-style live-preview markdown in scratchpad by @pablonyx in #660
- feat(workspaces): AI-generate workspace names, retire workspace_naming MCP by @pablonyx in #661
- feat(desktop): tab-strip playground, workspace UI polish, and session runtime updates by @pablonyx in #686
- feat(agents): add Grok (xAI Grok Build) as a harness by @pablonyx in #705
- feat(agents): runtime-startup installed-only reconcile (run_startup_pass) by @pablonyx in #730
- feat(desktop): misc UI polish — tab width, markdown headings, codex spinner, default ⌘N by @pablonyx in #743
- feat(transcript): provider-icon links + better file-path resolution by @pablonyx in #742
- feat(web): gate browser auth for beta access by @pablonyx in #775
- feat(anyharness): add runtime pressure pruning by @pablonyx in #776
- feat(product): add organization integration controls by @pablonyx in #774
- feat(desktop): refresh settings UI by @pablonyx in #777
- fix(desktop): polish settings and page spacing by @pablonyx in #778
- feat(desktop): polish scratch markdown editing by @row0-rl in #780
- feat(desktop): add organization switcher footer by @pablonyx in #784
- feat(orgs): accept pending invitations by @pablonyx in #785
- feat(billing): clarify plans and credits UI by @pablonyx in #786
- feat(cloud): add managed sandbox stack one by @pablonyx in #789
- feat(cloud): runtime worker auth model + enrollment by @pablonyx in #827
- feat(server): first-run claim with setup token by @pablonyx in #863
- feat(server): ADMIN_EMAILS floor + instance admin invariants by @pablonyx in #865
- feat: invite-as-allowlist registration + desktop password sign-in by @pablonyx in #867
- feat(server): real version reporting, /meta pins, desktop updater redirect by @pablonyx in #861
- feat(cloud): integration definition/account/oauth models + provider access by @pablonyx in #830
- feat(cloud): integration gateway MCP endpoint + virtual tools by @pablonyx in #832
- feat(cloud): integration management APIs (authenticate, oauth, admin) by @pablonyx in #835
- feat(cloud): integration health endpoint by @pablonyx in #836
- feat(cloud): integrations settings UI by @pablonyx in #844
- feat(gateway): real xAI upstream + LiteLLM in production compose by @pablonyx in #906
- feat(agent-auth): runtime catalog — gateway probe-always, curation as data, render pins deleted by @pablonyx in #908
- feat(cloud): OAuth (DCR) support for org-custom MCP integrations by @pablonyx in #902
- feat(desktop): searchable integrations + composer indicator by @pablonyx in #905
- feat(desktop): All-Models becomes a rich model table (thinking levels, provider, status) by @pablonyx in #923
- feat(cloud): org-scoped worker identity + gateway org-policy enforcement (restore #894) by @pablonyx in #924
- feat(cloud): heartbeat version convergence + sandbox worker self-swap (restore #897) by @pablonyx in #925
- feat(desktop): ModelTable round 2 — modes column, family-key enrichment, description subtitles by @pablonyx in #926
- feat(anyharness): Bedrock models in the agent gateway + enrichment fixes by @pablonyx in #928
- feat(desktop): Codex-style file tree overlay with grouped filter search by @pablonyx in #930
- feat(desktop): files viewer chrome polish — toggle menu, compact find bar, metrics sweep by @pablonyx in #931
- feat(desktop): Codex-quality diff renderer — layered color-mix + airy typography by @pablonyx in #933
- feat(desktop): per-gap context expanders with gutter chevrons by @pablonyx in #934
- feat(desktop): Codex-style review layout — sticky headers, jump-to-file, virtualization by @pablonyx in #935
- feat: hunk-level revert/stage — sidecar patch endpoints + hover pills by @pablonyx in #936
- feat(desktop): full-height single-scroll review layout by @pablonyx in #937
- feat(server): analytics dashboards — provider-cost ingestion + Metabase schema by @pablonyx in #973
- feat(customerio): engagement attribute sync (email_type, workspace_count, last_active_at) by @pablonyx in #967
- feat(desktop): header tabs polish — borderless chips, sticky new-chat, history popover by @pablonyx in #991
- feat(settings): rework Account IA and Appearance preview by @pablonyx in #993
- fix(desktop): sidebar dates/icons, neutral update pill, stable workspace sort by @pablonyx in #992
- feat(composer): redesign chat input control row, model picker, and empty-session switch by @pablonyx in #996
- feat(workers): add catalogVersion to heartbeat response (convergence P1) by @pablonyx in #988
- feat(worker): catalog fetch+push transport — pins converge without binary releases (convergence P2) by @pablonyx in #989
- feat(composer): rework command palette, slash command UX, and add-repo flow by @pablonyx in #1000
- feat(chat): transcript polish — list spacing, shimmer, label sizes, streaming reveal, anchor fixes by @pablonyx in #1002
- feat(desktop): agents settings UX polish + env-unmasked CLI auth state by @pablonyx in #986
- feat(agent-gateway): enforce org auth-method policy at select-time by @pablonyx in #1019
- feat(billing): revive the billing reconciler on CloudSandbox + resume-deny + enforce by @pablonyx in #1021
- feat(auth): org-scoped SSO login entry points + product-readiness carve-out by @pablonyx in #1048
- feat(server): advertise a runtime version pin and serve the anyharness binary for worker self-update by @pablonyx in #1087
- feat(anyharness): worker-owned in-place AnyHarness runtime self-update in cloud sandboxes by @pablonyx in #1088
- fix(desktop): restore search field in composer model picker by @pablonyx in #1094
- feat(desktop): remove Agent Defaults settings page; defaults from catalog + last-used-wins by @pablonyx in #1100
- feat(server): audit integration-gateway tool calls with a per-call usage row by @pablonyx in #1101
- feat(server): guided self-host installer, preflight, doctor, and one deployment layer by @pablonyx in #1118
- feat(desktop): server-declared self-host capability contract + Desktop gating by @pablonyx in #1119
- feat(desktop): move source control into the composer by @pablonyx in #1132
- feat(desktop): add version-aware release notices by @pablonyx in #1131
Performance
- perf(chat): improve launch and prompt latency by @pablonyx in #28
- perf(desktop): reduce chat typing and tab-switch latency by @pablonyx in #199
- perf(desktop): keep large diffs boot responsive by @pablonyx in #247
- perf(cloud): add worker control long poll by @pablonyx in #416
- perf(anyharness): reduce local session latency by @pablonyx in #517
- fix(desktop): keep workspace shell mounted across all authenticated routes by @pablonyx in #1097
Fixes
- fix(desktop): repair client session stream materialization by @pablonyx in #195
- fix(desktop): stabilize pending workspace shell handoff by @pablonyx in #197
- fix(desktop): seed agent catalog for first paint by @pablonyx in #206
- fix(desktop): respect visible session models by @pablonyx in #210
- fix(desktop): revert light mode refresh by @pablonyx in #235
- fix(desktop): keep scratch enter handling single-pass by @pablonyx in #243
- fix(desktop): clean up Git diffs and file search by @pablonyx in #248
- fix(desktop): align sidebar colors with reference app by @pablonyx in #263
- fix(product): align redirect callback pages with auth screen by @pablonyx in #265
- fix(desktop): restore shortcut reveal surfaces by @pablonyx in #268
- fix(desktop): restore shortcut aliases by @pablonyx in #269
- fix(desktop): remove unscoped button font:inherit in dom.css (cascade bug) by @pablonyx in #279
- fix(product): clean up account and organization settings by @pablonyx in #282
- fix(desktop): correct harness defaults, shortcuts, and support by @pablonyx in #281
- fix(desktop): clear home selection and cowork footer flicker by @pablonyx in #288
- fix(desktop): clean up chat view affordances by @pablonyx in #285
- fix(desktop): respect right-panel tab shortcuts by @pablonyx in #289
- [proliferate] Clean up subagent UI receipts by @pablonyx in #284
- fix(cloud): harden shared environment config saves by @pablonyx in #302
- fix(cloud): carry release validation fixes onto main by @pablonyx in #304
- fix(desktop): match terminal pane background to right panel surfaces by @pablonyx in #298
- fix(desktop): polish workspace iconography by @pablonyx in #312
- fix(cloud): load backfilled remote sessions by @pablonyx in #322
- fix(desktop): keep cloud-synced workspaces local by @pablonyx in #323
- fix(desktop): polish sidebar and chat actions by @pablonyx in #324
- fix(cloud): enforce archive purge invariants by @pablonyx in #327
- fix(cloud): stabilize archive lifecycle follow-ups by @pablonyx in #328
- fix(cloud): forge reliable web workspace sessions by @pablonyx in #333
- fix(cloud): harden dispatch control handoffs by @pablonyx in #335
- fix(desktop): keep requested Claude models visible by @pablonyx in #336
- fix(product): polish cloud workspace launch surfaces by @pablonyx in #337
- fix(product): polish cloud workspace chat UI by @pablonyx in #339
- fix(desktop): repair workspace shortcuts and tab activation by @pablonyx in #353
- fix(desktop): preserve sidebar row spacing by @pablonyx in #356
- fix(product): smooth auth loading mark handoff by @pablonyx in #364
- fix(product): constrain auth loading beads by @pablonyx in #365
- fix(product): stabilize agents, workspaces, and automations by @pablonyx in #368
- fix(mobile): use remote production build numbers by @pablonyx in #378
- fix(server): avoid wake transaction leak by @pablonyx in #386
- fix(product): apply cloud MCP config to local sessions by @pablonyx in #388
- fix(desktop): apply appearance theme in support window by @pablonyx in #393
- fix(desktop): allow support window event listen by @pablonyx in #396
- fix(desktop): preserve billing return handoff by @pablonyx in #399
- fix(desktop): clarify support report upload failures by @pablonyx in #398
- fix(desktop): make new workspace shortcuts reliable by @pablonyx in #401
- fix(support): harden debug report correlation by @pablonyx in #403
- fix(desktop): dedupe support report upload toasts by @pablonyx in #406
- fix(server): isolate automation snapshot failures by @pablonyx in #408
- fix(desktop): fail release on broken sentry upload by @pablonyx in #409
- fix(release): align desktop sentry preflight guard by @pablonyx in #410
- fix(desktop): avoid web-to-desktop handoff reload loops by @pablonyx in #511
- fix(desktop): align live tool call labels by @pablonyx in #518
- fix(desktop): normalize composer caret sizing by @pablonyx in #519
- fix(anyharness): honor requested Claude model ids by @pablonyx in #520
- fix(desktop): scale composer input text with chat size by @pablonyx in #521
- fix(anyharness): resolve Claude Opus 4.8 launch id by @pablonyx in #524
- fix(anyharness): render prompts for terminal command runs by @pablonyx in #602
- fix(chat): surface delivery errors and allow retry for unconfirmed prompts by @pablonyx in #628
- fix(desktop): idle presentation for warming sessions + stable sidebar position for new workspaces by @pablonyx in #647
- fix(sessions): fail ACP startup fast when the agent process exits + codex install fix by @pablonyx in #646
- fix(desktop): single transcript spacing rhythm and resize-driven bottom pinning by @pablonyx in #649
- fix(catalog): codex back to npm delivery now that @proliferate-ai sidecars are published by @pablonyx in #655
- fix(web): explain when the local API is unreachable during first-run auth by @utsavp257 in #657
- fix(anyharness): preserve access-gate failures in session errors by @sandip-pathe in #656
- fix(support): stop report uploads retrying a permanent conflict forever by @pablonyx in #737
- fix(catalog): refresh agent catalog + restore claude model availability across auth contexts by @pablonyx in #738
- fix(catalog): drop sourceless native pins + update catalog tests for the refresh by @pablonyx in #741
- fix(desktop): self-heal stale default model + gate new-thread to active auth context by @pablonyx in #739
- fix(desktop): GitHub sign-in checking flash + sidebar spinner alignment by @pablonyx in #757
- fix(desktop): keep right panel add button outside tab fade by @row0-rl in #779
- fix(desktop): reduce duplicate subagent visual identities by @Julian0444 in #788
- fix(product): tighten sidebar row density by @pablonyx in #797
- fix(desktop): repo-shape conformance for streaming-UI leftovers by @pablonyx in #872
- fix(migrations): merge the three parallel alembic heads on main by @pablonyx in #887
- fix(desktop): prevent path traversal in support attachment staging by @pablonyx in #874
- fix(cloud/agent-run-config): require org membership for org-scoped listing (IDOR) by @pablonyx in #875
- fix(cloud/github-app): verify installation ownership in install callback (IDOR) by @pablonyx in #876
- fix(auth): add token-generation revocation for logout and password change by @pablonyx in #877
- fix(product-ui): repo-shape conformance for secrets dialog + icon barrel by @pablonyx in #911
- fix(desktop): All-Models refresh for native routes uploads runtime-probed models by @pablonyx in #912
- fix(desktop): worker identity survives logout/user switch by @pablonyx in #893
- fix(desktop): file-viewer scroll + open-in fixes by @pablonyx in #954
- fix(anyharness): dedup gateway model table to Bedrock-only current-gen + fix names by @pablonyx in #955
- fix(agent-gateway): schedule materialization after vkey rotation (P0) by @pablonyx in #987
- fix(catalog): gateway enrichment join — normalizer gaps + cross-harness identity fallback by @pablonyx in #994
- fix(catalog): codex gateway policy — openai only, gpt-5.2 default by @pablonyx in #995
- fix(auth): classify against the env the CLI actually inherits (ambient, registry-bounded) by @pablonyx in #997
- fix(auth): reject unknown fields on PATCH /users/me + allowlist gateway line growth by @pablonyx in #999
- fix(server): correct Sentry error-count ingestion (empty-result bug) by @pablonyx in #984
- fix(server): deliver signup Slack notifications inline (no Celery worker exists) by @pablonyx in #1018
- fix(billing): bill org compute to the org subject, not personal by @pablonyx in #1047
- fix(agents): use git ref, not catalog version label, for git-pin drift checks by @pablonyx in #1052
- fix(billing): only hold payment_failed on dunning-driven subscription deletion by @pablonyx in #1049
- fix(billing): clear credits-exhausted errors end-to-end — no pager, stable 402 code, real toast message by @pablonyx in #1057
- fix(cloud): self-heal stale sandbox runtimes on reconnect + structured 502 by @pablonyx in #1058
- fix(billing): membership changes no longer 500 when an org has two active subscriptions by @pablonyx in #1056
- fix(server): align email validation between account creation and read models by @pablonyx in #1014
- fix(desktop): consumption card always visible in the sidebar, not in the account popover by @pablonyx in #1075
- fix(desktop): make invitation-accept UI reachable for non-admin invitees by @pablonyx in #1017
- fix(self-host): replace dead Bifrost gateway vars with the real LiteLLM config by @pablonyx in #1054
- fix(desktop): invite links carry the issuing server origin; trust-confirm before switching by @pablonyx in #1083
- fix(desktop): sync right panel tab height with glass workspace header by @pablonyx in #1093
- fix(desktop): stop show-more toggle from appearing on every user message by @pablonyx in #1095
- fix(desktop): stop gating local-surface harness settings on cloud auth by @pablonyx in #1096
- fix(anyharness): stamp release version into runtime and worker binaries by @pablonyx in #1102
- fix(desktop): stop presenting sessions as iterating once the final answer has rendered by @pablonyx in #1099
- feat(billing): wire the gateway LLM-credit budget gate as a second enforcement wall by @pablonyx in #1103
- fix(anyharness): unbreak Windows worker builds broken by the runtime self-update by @pablonyx in #1107
- fix(desktop): drop the glass workspace header to 46px to match the right pane by @pablonyx in #1115
- fix(desktop): hide the Org settings scope from non-admin members by @pablonyx in #1121
- fix(desktop): add GitHub App CTAs to the repo Configure authority gate by @pablonyx in #1122
- fix(anyharness): gateway-route session readiness + model eligibility (#1106) by @pablonyx in #1117
- fix(server): self-hosted cloud-workspace safety, actionable errors, and callback hardening by @pablonyx in #1116
- fix(auth): self-host SSO discovery + JIT error + invite-delivery recovery by @pablonyx in #1120
- fix(agents): expose session controls and harden catalog reconciliation by @pablonyx in #1127
- fix(desktop): route settings links to their intended sections by @pablonyx in #1129
- fix(desktop): make optimistic chat transitions transactional by @pablonyx in #1128
- fix(desktop): simplify workspace sidebar icons by @pablonyx in #1130
- fix(chat): transcript continuity and composer polish by @pablonyx in #1134
- fix(deploy): scope preflight section OK lines to their own section's errors by @TommyKisly in #1125
- fix(chat): ultra ring alignment, catalog display names, composer polish by @pablonyx in #1135
- fix(anyharness): resolve Cursor model variants by @pablonyx in #1137
- fix(desktop): surface dispatch worker startup failures by @pablonyx in #1136
Docs
- docs(frontend): codify ownership rules by @pablonyx in #35
- docs(server): clarify backend ownership guides by @pablonyx in #49
- docs(server): audit billing reconciler worker shape by @pablonyx in #100
- docs(server): audit cloud runtime background loops by @pablonyx in #101
- docs(server): add phase 7 cleanup lanes by @pablonyx in #102
- docs(server): audit runtime environment cleanup by @pablonyx in #107
- docs(server): classify phase 7 remainder by @pablonyx in #117
- docs(anyharness): codify runtime architecture guides by @pablonyx in #118
- docs(server): audit cloud workspace lifecycle by @pablonyx in #124
- docs(server): audit cloud mobility lifecycle by @pablonyx in #121
- docs(server): audit cloud runtime phase 8 lifecycle by @pablonyx in #126
- docs(server): audit phase 8 billing by @pablonyx in #131
- docs(server): audit automation worker claims by @pablonyx in #132
- docs(server): plan phase 8 migration by @pablonyx in #138
- docs(anyharness): document deferred cleanup closeout by @pablonyx in #193
- docs(anyharness): document runtime architecture and product MCPs by @pablonyx in #200
- docs(cloud): add cloud worker implementation specs by @pablonyx in #224
- docs(cloud): update worker supervisor specs by @pablonyx in #234
- docs(architecture): add cloud runtime specs by @pablonyx in #262
- docs(frontend): codify app package standards by @pablonyx in #338
- docs(dev): add local development runbook by @pablonyx in #354
- docs(dev): move ci cd guide into dev process by @pablonyx in #355
- docs(docs): route docs into spec buckets by @pablonyx in #374
- docs(release): document production deploy failure modes by @pablonyx in #375
- docs(release): clarify deployment runbook by @pablonyx in #380
- docs(structures): add worker and supervisor structure guides by @pablonyx in #392
- docs(server): align server guide structure by @pablonyx in #395
- docs(anyharness): align runtime structure docs with current paths by @pablonyx in #441
- docs(specs): move repo docs into specs by @pablonyx in #501
- docs(specs): track migrated reference specs by @pablonyx in #503
- docs(specs): clean up transitional spec language by @pablonyx in #516
- docs(product): consolidate architecture and worker specs by @pablonyx in #528
- docs(runbooks): add Stripe and E2B recovery guides by @pablonyx in #563
- docs(runbooks): add cloud ops recovery inventory by @pablonyx in #593
- docs(worker): ratify shared redis wake ownership by @pablonyx in #531
- docs(worker): ratify durable job substrate plan by @pablonyx in #533
- docs(frontend): tighten frontend structure guidance by @pablonyx in #595
- docs(server): codify background and shared-lib structure by @pablonyx in #596
- docs(docs): clarify worker docs and retire drafts by @pablonyx in #600
- docs(docs): clarify auth and package ownership by @pablonyx in #601
- docs(release): add GitHub issue form templates for bugs and features by @pablonyx in #665
- docs(specs): integrations + worker-auth primitive, current-state architecture by @pablonyx in #891
- docs(testing): how-to for writing new tier-2/tier-3 tests by @pablonyx in #1073
- docs(runtime): worker-owned anyharness self-update in cloud sandboxes by @pablonyx in #1081
- fix(specs): remove stray character breaking the contract.md H1 by @Rahul-Ganesan in #977
- specs(testing): self-hosting test hand-off (flow rows + scenario battery) by @pablonyx in #1078
Maintenance
- ci(release): standardize desktop release process by @pablonyx in #29
- refactor(desktop): split config copy and presentation ownership by @pablonyx in #32
- refactor(desktop): organize frontend access boundaries by @pablonyx in #30
- refactor(desktop): organize component folders by @pablonyx in #31
- refactor(desktop): organize frontend lib layers by @pablonyx in #33
- refactor(desktop): move external access behind access hooks by @pablonyx in #34
- test(frontend): enforce repo shape checks by @pablonyx in #36
- refactor(frontend): stabilize wave 1 access and stores by @pablonyx in #37
- refactor(frontend): clean cloud settings card boundaries by @pablonyx in #38
- refactor(frontend): purify workspace cloud domain models by @pablonyx in #41
- refactor(frontend): share workspace cloud model by @pablonyx in #43
- refactor(frontend): clean settings component boundaries by @pablonyx in #39
- refactor(frontend): clean workspace file component boundaries by @pablonyx in #42
- refactor(frontend): purify automations domain records by @pablonyx in #40
- refactor(desktop): organize agents hooks by @pablonyx in #48
- refactor(desktop): organize settings and organization hooks by @pablonyx in #47
- refactor(desktop): organize terminal hooks by @pablonyx in #46
- refactor(desktop): organize plans hooks by @pablonyx in #44
- refactor(desktop): organize wave 3 hooks by @pablonyx in #45
- refactor(desktop): organize auth hooks by @pablonyx in #50
- refactor(desktop): organize support and editor hooks by @pablonyx in #51
- refactor(desktop): organize telemetry hooks by @pablonyx in #52
- refactor(desktop): organize cloud product hooks by @pablonyx in #53
- refactor(desktop): organize cowork hooks by @pablonyx in #56
- refactor(desktop): organize home hooks by @pablonyx in #54
- refactor(desktop): organize app and main hooks by @pablonyx in #55
- refactor(desktop): purify domain import boundaries by @pablonyx in #59
- refactor(desktop): move cloud cache ownership to access hooks by @pablonyx in #64
- refactor(desktop): organize chat composer ui hooks by @pablonyx in #57
- refactor(desktop): organize workspace sidebar hooks by @pablonyx in #58
- refactor(desktop): organize workspace command palette hooks by @pablonyx in #60
- refactor(desktop): organize workspace git publish hooks by @pablonyx in #62
- refactor(desktop): organize chat attachment hooks by @pablonyx in #65
- refactor(desktop): move easy AnyHarness access leftovers by @pablonyx in #61
- refactor(desktop): move workspace cache ownership into cache hooks by @pablonyx in #66
- refactor(desktop): organize workspace status metadata hooks by @pablonyx in #67
- refactor(desktop): organize worktree settings hooks by @pablonyx in #70
- refactor(desktop): organize chat transcript selection hooks by @pablonyx in #63
- refactor(desktop): organize chat model selector hooks by @pablonyx in #69
- refactor(desktop): organize chat surface hooks by @pablonyx in #68
- refactor(desktop): move workspace file cache ownership by @pablonyx in #72
- refactor(desktop): move workspace mobility cache ownership by @pablonyx in #73
- refactor(desktop): move session runtime access cache ownership by @pablonyx in #76
- refactor(desktop): move workspace selection cache ownership by @pablonyx in #77
- refactor(desktop): move chat prompt cache ownership by @pablonyx in #75
- refactor(desktop): move plans cache ownership by @pablonyx in #74
- refactor(server): clean up support domain ownership by @pablonyx in #78
- refactor(server/cloud): clean credential domain rules by @pablonyx in #80
- refactor(server): clean automation API domain rules by @pablonyx in #81
- refactor(server): organize catalog domain helpers by @pablonyx in #82
- refactor(server): clean up organizations domain ownership by @pablonyx in #83
- refactor(server): extract cloud workspace access policy by @pablonyx in #79
- refactor(server): clean up Cloud MCP domain rules by @pablonyx in #85
- refactor(desktop): clarify terminal UI and actions by @pablonyx in #84
- refactor(desktop): split workspace shell components by @pablonyx in #86
- refactor(desktop): split transcript rendering components by @pablonyx in #87
- refactor(desktop): split store and measurement modules by @pablonyx in #88
- refactor(server): organize automation worker surface by @pablonyx in #90
- chore(server): format automation worker package by @pablonyx in #91
- refactor(desktop): split workspace file editor components by @pablonyx in #89
- refactor(desktop): organize small session hooks by @pablonyx in #94
- refactor(server): clarify local automation executor surface by @pablonyx in #93
- refactor(server): move automation cloud executor under worker by @pablonyx in #92
- refactor(server): split automation cloud executor stages by @pablonyx in #95
- refactor(desktop): extract session history domain helpers by @pablonyx in #98
- refactor(desktop): extract pending config map helpers by @pablonyx in #96
- refactor(desktop): extract session creation domain helpers by @pablonyx in #97
- refactor(desktop): extract session selection planner by @pablonyx in #99
- refactor(desktop): extract stream side-effect planner by @pablonyx in #106
- refactor(desktop): split session selection actions by @pablonyx in #104
- refactor(desktop): split session control actions by @pablonyx in #103
- refactor(desktop): split session runtime summary and history by @pablonyx in #105
- refactor(server): thread organization request sessions by @pablonyx in #112
- refactor(server): thread cloud credential store reads by @pablonyx in #108
- refactor(desktop): remove broad session action facade by @pablonyx in #113
- refactor(server): clean cloud repo config ownership by @pablonyx in #111
- refactor(server): remove legacy cloud MCP store wrappers by @pablonyx in #114
- refactor(server): split MCP materialization service by @pablonyx in #115
- refactor(server): thread automation API store sessions by @pablonyx in #116
- refactor(server): split cloud ORM model package by @pablonyx in #110
- refactor(desktop): split playground composer by @pablonyx in #120
- refactor(desktop): split connector detail modal by @pablonyx in #122
- refactor(desktop): split organization settings pane by @pablonyx in #123
- refactor(desktop): split review defaults section by @pablonyx in #127
- refactor(desktop): split diff viewer components by @pablonyx in #128
- refactor(desktop): split workspace browser panel by @pablonyx in #129
- refactor(desktop): split collapsed action rows by @pablonyx in #130
- refactor(desktop): split all changes frame by @pablonyx in #133
- refactor(desktop): split workspace header tabs view model by @pablonyx in #137
- refactor(server): remove AI magic service ORM coupling by @pablonyx in #119
- refactor(server): clean cloud repos auth ownership by @pablonyx in #135
- refactor(server): clean users invitation DB wrappers by @pablonyx in #134
- refactor(server): clean sandbox integration ownership by @pablonyx in #125
- refactor(server): clean anonymous telemetry ownership by @pablonyx in #136
- test(server): pin automation claim phase 8 behavior by @pablonyx in #143
- test(server): pin billing phase 8 behavior by @pablonyx in #142
- test(server): pin cloud runtime phase 8 behavior by @pablonyx in #139
- test(server): pin cloud mobility phase 8 behavior by @pablonyx in #140
- test(server): pin cloud workspace phase 8 behavior by @pablonyx in #141
- refactor(anyharness): organize adapters and integration helpers by @pablonyx in #147
- docs(desktop): document editor state store scope by @pablonyx in #150
- refactor(desktop): organize automation domain helpers by @pablonyx in #157
- refactor(desktop): move updater persistence load to access hook by @pablonyx in #151
- test(desktop): cover workspace UI persistence lifecycle by @pablonyx in #152
- test(desktop): add session store invariant coverage by @pablonyx in #153
- test(desktop): add pure domain cleanup coverage by @pablonyx in #154
- test(desktop): cover MCP OAuth persistence workflow by @pablonyx in #155
- refactor(desktop): extract MCP stdio finalization workflow by @pablonyx in #156
- refactor(desktop): organize support session debug helpers by @pablonyx in #158
- refactor(server): extract runtime domain decisions by @pablonyx in #144
- refactor(anyharness): move product domains under domains by @pablonyx in #159
- refactor(server): extract mobility lifecycle domain rules by @pablonyx in #145
- refactor(cloud): extract workspace lifecycle rules by @pablonyx in #146
- refactor(server): extract billing pure domain rules by @pablonyx in #148
- refactor(server): extract automation claim lifecycle domain by @pablonyx in #149
- refactor(anyharness): consolidate product MCP servers by @pablonyx in #168
- refactor(desktop): split chat transcript components by @pablonyx in #160
- refactor(desktop): split workspace files and git components by @pablonyx in #161
- refactor(desktop): split preference domain helpers by @pablonyx in #162
- refactor(desktop): split playground components by @pablonyx in #163
- refactor(desktop): split shell panel components by @pablonyx in #164
- refactor(desktop): split chat input components by @pablonyx in #165
- refactor(desktop): split chat domain helpers by @pablonyx in #166
- refactor(desktop): split workspace domain helpers by @pablonyx in #169
- refactor(desktop): split debug measurement infra by @pablonyx in #167
- refactor(server): thread mobility simple endpoint db sessions by @pablonyx in #170
- refactor(server): thread workspace simple request db sessions by @pablonyx in #171
- refactor(server): thread billing request db sessions by @pablonyx in #172
- refactor(server): thread local automation executor DB sessions by @pablonyx in #173
- refactor(desktop): split workspace UI store actions by @pablonyx in #174
- refactor(desktop): untangle auth orchestration effects by @pablonyx in #175
- refactor(desktop): extract session directory helpers by @pablonyx in #177
- refactor(desktop): separate workspace file access context by @pablonyx in #176
- refactor(desktop): decouple session runtime records by @pablonyx in #178
- refactor(server): remove org membership DB wrapper by @pablonyx in #180
- refactor(server): move scheduler DB boundaries to worker service by @pablonyx in #181
- refactor(anyharness): assemble session MCP launch by @pablonyx in #182
- refactor(server): close phase 8 wave 2 domain gaps by @pablonyx in #183
- refactor(anyharness): split session store persistence by @pablonyx in #184
- refactor(anyharness): split session event sink by @pablonyx in #185
- refactor(anyharness): split session runtime modules by @pablonyx in #186
- refactor(desktop): integrate final frontend cleanup lanes by @pablonyx in #187
- ci(anyharness): block old AnyHarness flat paths by @pablonyx in #188
- test(anyharness): add focused session invariants by @pablonyx in #189
- refactor(server): align non-deferred ownership cleanup by @pablonyx in #190
- ci(anyharness): add boundary rails by @pablonyx in #191
- docs(anyharness): align migration docs with runtime split by @pablonyx in #192
- refactor(anyharness): centralize product MCP routing by @pablonyx in #202
- [proliferate] Migrate cowork product MCP by @pablonyx in #205
- refactor(anyharness): split live session actor by @pablonyx in #204
- refactor(anyharness): migrate agents catalog ownership by @pablonyx in #203
- refactor(cloud): add shared cloud SDK foundation by @pablonyx in #212
- feat(cloud): supervise runtime bundle launches by @pablonyx in #225
- test(desktop): split sidebar local slot coverage by @pablonyx in #246
- fix(server): harden agent gateway reconciliation by @pablonyx in #257
- feat(anyharness): apply agent auth config in worker runtime by @pablonyx in #258
- build(server): wire agent gateway deployment by @pablonyx in #259
- feat(product): configure product observability by @pablonyx in #270
- release(desktop): bump version to 0.1.30 by @pablonyx in #278
- chore(desktop): split settings cleanup files by @pablonyx in #317
- fix(ci): clean up cloud workspace lint checks by @pablonyx in #331
- fix(ci): format server files by @pablonyx in #332
- chore(frontend): move apps under apps workspace by @pablonyx in #340
- refactor(frontend): move desktop primitives into shared UI package by @pablonyx in #341
- ci(release): add hosted deploy spine by @pablonyx in #344
- refactor(frontend): share settings surfaces across apps by @pablonyx in #343
- refactor(anyharness): thin workspace and agent HTTP handlers by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/347
- refactor(anyharness): move cross-domain deletes out of stores by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/348
- ci(anyharness): ratchet architecture boundaries by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/349
- refactor(anyharness): align live session boundaries by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/350
- refactor(anyharness): split terminal domain and live runtime by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/351
- refactor(anyharness): tighten domain contracts by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/352
- feat(billing): add Pro early-access promo-code script + docs by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/357
- ci(release): build E2B when bypassing staging by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/358
- release(desktop): bump to 0.1.41 by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/359
- release(mobile): bump iOS build number by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/360
- refactor(anyharness): clean up session store live boundary by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/361
- refactor(anyharness): move domain response DTOs to API mappers by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/362
- refactor(anyharness): decouple session product MCP launch by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/363
- release(desktop): bump to 0.1.42 by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/366
- ci(release): route desktop through production promote by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/370
- chore(desktop): bump release to 0.1.43 by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/376
- ci(desktop): allow promote-sourced release refs by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/377
- ci(mobile): submit built EAS artifact by id by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/379
- fix(server): format password auth changes by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/383
- fix(server): make analytics MCP test product-ready by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/384
- fix(server): make agent auth tests product-ready by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/385
- fix(server): format runtime config service by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/389
- fix(mobile): keep staging TestFlight submit aligned by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/390
- chore(desktop): bump updater version to 0.1.44 by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/394
- chore(product): disable Slack bot flow by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/400
- chore(desktop): bump updater version to 0.1.45 by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/404
- test(anyharness): split worker tailer tests by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/435
- fix(server): keep worker control service boundary clean by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/436
- fix(server): guard worker control migration replay by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/437
- chore(frontend): add report-only structure inventory by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/440
- chore(server): add structure guardrails by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/442
- refactor(anyharness): split live session runtime concerns by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/444
- refactor(frontend): normalize hook responsibility folders by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/443
- refactor(anyharness): split adapter operations by capability by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/446
- refactor(anyharness): split agent readiness and install roles by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/445
- refactor(frontend): align DOM primitives with ui package by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/448
- ci(deploy): exclude dry runs from deploy bases by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/449
- refactor(server): thread automation store db sessions by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/447
- refactor(frontend): route support access through sdk react by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/451
- refactor(frontend): move component config out of components by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/452
- refactor(anyharness): split workspace lifecycle responsibilities by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/453
- refactor(frontend): split desktop workspace shell responsibilities by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/456
- refactor(frontend): split automation inventory domain rules by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/457
- refactor(anyharness): split session domain responsibilities by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/454
- ci(deploy): key promotion checks off deploy artifacts by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/459
- refactor(frontend): split mobile chat screen responsibilities by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/460
- refactor(frontend): split web chat screen responsibilities by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/458
- refactor(anyharness): decouple core domains from product surfaces by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/461
- refactor(frontend): split mobile surface responsibilities by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/465
- refactor(frontend): split desktop session workflow responsibilities by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/468
- refactor(desktop): split settings and automation surfaces by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/467
- refactor(anyharness): split api contract boundary modules by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/470
- refactor(server): thread billing store db sessions by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/450
- refactor(frontend): split shared package surface responsibilities by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/466
- refactor(anyharness): align product mcp structure by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/471
- refactor(anyharness): promote artifacts into product domain by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/472
- refactor(anyharness): finish runtime topology moves by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/473
- refactor(server): thread cloud store db sessions by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/455
- release(desktop): bump version to 0.1.47 by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/474
- ci(server): let server test job finish by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/476
- refactor(server): route service session boundaries by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/475
- refactor(server): align billing Stripe integration by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/480
- refactor(server): carve cloud runtime owners by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/477
- refactor(server): split agent auth gateway owners by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/481
- refactor(server): split command and worker transactions by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/479
- refactor(server): split Slack cloud bot workers by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/478
- refactor(ui): split shared icon modules by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/485
- refactor(server): clean folder naming hygiene by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/482
- refactor(desktop): split large workspace hooks by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/486
- refactor(mobile): split large mobile surfaces by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/489
- refactor(desktop): split large frontend infra modules by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/491
- refactor(web): split large web frontend surfaces by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/490
- refactor(desktop): split content and review surfaces by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/492
- refactor(desktop): split settings and app utilities by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/493
- refactor(desktop): split home launch flow by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/495
- refactor(desktop): split workspace mobility flows by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/494
- refactor(desktop): split workspace navigation flows by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/496
- refactor(desktop): split chat selector hooks by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/498
- refactor(desktop): split session lifecycle actions by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/499
- refactor(desktop): split composer model selector logic by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/500
- refactor(product-ui): split shared chat composer surfaces by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/502
- refactor(product-ui): split shared chat transcript surfaces by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/504
- chore(test): normalize describe blocks and refresh todo playground fixtures by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/508
- release(desktop): bump desktop version to 0.1.48 by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/512
- release(desktop): bump desktop version to 0.1.49 by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/525
- docs(release): capture production deploy learnings by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/527
- refactor(cloud): collapse sandbox slot identity into targets by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/529
- refactor(desktop): split turn diff panel components by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/566
- refactor(product): split chat transcript view by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/568
- refactor(desktop): split session runtime dev SSE logging by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/571
- ci(frontend): enforce structure report by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/591
- refactor(desktop): centralize settings admin role checks by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/592
- refactor(worker): align worker structure with control and tail model by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/530
- feat(worker): fold control reconcile into two-poll loop by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/532
- feat(server): add celery background skeleton by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/534
- feat(server): add background outbox foundation by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/535
- feat(server): move signup slack notification to celery by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/536
- refactor(server): move runtime wake to background outbox by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/537
- refactor(server): move support tracker reconciler to Beat by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/538
- refactor(server): move cloud automation execution to Celery by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/539
- refactor(server): extract worker command service by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/540
- refactor(server): extract worker auth helpers by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/541
- refactor(server): extract command preflight by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/542
- refactor(server): extract command wake orchestration by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/543
- refactor(server): extract command client state by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/544
- refactor(server): extract command workspace scope by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/545
- refactor(server): extract workspace detail assembly by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/546
- refactor(server): extract workspace target launch by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/547
- refactor(server): extract workspace remote access by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/548
- refactor(server): extract workspace lifecycle actions by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/549
- refactor(server): extract workspace provisioning by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/550
- refactor(server): split workspace payload models by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/551
- refactor(server): split workspace lifecycle store by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/552
- refactor(server): move sandbox store helpers by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/553
- refactor(server): split runtime config worker service by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/554
- refactor(server): split runtime bootstrap helpers by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/555
- refactor(server): split runtime sandbox lifecycle by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/556
- refactor(server): split runtime launch helpers by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/557
- refactor(server): split runtime workspace preparation by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/558
- refactor(server): split runtime provision input by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/559
- refactor(server): split runtime template preparation by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/560
- refactor(server): split runtime launch connect flow by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/561
- refactor(server): split command payload rules by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/562
- refactor(server): split runtime config resolver types by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/564
- refactor(server): split mobility cleanup service by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/565
- refactor(server): split mobility preflight service by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/567
- refactor(server): split cloud mobility store package by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/569
- refactor(server): ratchet cloud repo config store by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/570
- refactor(server): split cloud sync event stores by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/572
- refactor(server): split cloud command lease store by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/573
- refactor(server): split cloud command result store by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/574
- refactor(server): split automation run store by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/575
- refactor(server): split cloud workspace store by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/576
- refactor(server): split auth identity service by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/577
- refactor(server): split billing usage stores by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/578
- refactor(server): split billing subject store by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/579
- refactor(server): split billing subscription store by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/580
- refactor(server): split billing seat store by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/581
- refactor(server): split billing accounting service by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/582
- refactor(server): split billing snapshot service by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/583
- refactor(server): split billing team checkout by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/584
- refactor(server): split billing checkout service by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/585
- refactor(server): split billing accounting pass by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/586
- refactor(server): split billing seat reconciliation by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/587
- refactor(server): split billing runtime usage by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/588
- refactor(server): split billing overview read models by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/589
- refactor(server): retire billing service imports by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/590
- ci(release): add release train hotfix automation by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/597
- ci(release): add public product version train by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/598
- ci(release): publish product release notes by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/599
- chore(anyharness): add sqlite schema snapshot by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/603
- refactor(anyharness): group live terminal modules by role by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/604
- refactor(anyharness): simplify workspace records by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/606
- refactor(mcp): collapse sub-threshold product MCP files by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/610
- refactor(mcp): purge legacy routes, headers, and deprecated tool params by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/616
- chore(release): add dependabot, CODEOWNERS, CodeQL, and security docs by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/666
- ci(release): bump CodeQL action to v4 and checkout to v5 (Node 24) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/679
- chore(deps): bump toml from 0.8.2 to 0.9.12+spec-1.1.0 by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/681
- chore(deps): bump zip from 4.6.1 to 8.6.0 by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/682
- chore(deps): bump rusqlite from 0.32.1 to 0.40.1 by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/683
- chore(deps): bump sentry from 0.47.0 to 0.48.2 by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/684
- chore(deps): bump portable-pty from 0.8.1 to 0.9.0 by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/685
- chore(deps): bump the cargo-minor-and-patch group across 1 directory with 17 updates by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/701
- chore(ci): ignore Expo SDK packages in Dependabot by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/704
- test(server): make api-path-prefix assertions robust to Starlette router nesting by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/714
- chore(deps): bump getrandom from 0.2.17 to 0.4.2 by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/687
- chore(deps): bump the github-actions group across 1 directory with 12 updates by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/690
- chore(deps): bump cryptography from 46.0.5 to 49.0.0 in /server by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/670
- chore(deps): update fastapi-users[oauth,sqlalchemy] requirement from >=14.0.0 to >=15.0.5 in /server by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/674
- chore(deps): update uvicorn[standard] requirement from >=0.34.0 to >=0.49.0 in /server by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/671
- chore(deps): update sentry-sdk[fastapi] requirement from >=2.28.0 to >=2.62.0 in /server by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/676
- chore(deps): update botocore[crt] requirement from >=1.43.18 to >=1.43.30 in /server by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/677
- chore(ci): stop Dependabot major-version churn by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/726
- chore(deps): bump the python-minor-and-patch group across 1 directory with 12 updates by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/712
- chore(deps): bump tauri from 2.10.3 to 2.11.2 in the cargo-minor-and-patch group across 1 directory by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/725
- chore(deps): bump the npm-minor-and-patch group across 1 directory with 36 updates by @dependabot[bot] in https://github.com/proliferate-ai/proliferate/pull/727
- fix(anyharness): re-fork zero-turn Claude fork children instead of dead load_session by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/732
- fix(product-ui): don't show scroll-to-bottom button when transcript isn't scrollable by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/733
- fix(desktop): keep distinct local workspaces per folder+branch instead of collapsing by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/735
- fix(desktop): stop model/mode switch landing one behind by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/736
- feat(desktop): publish Homebrew cask on release by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/770
- fix(desktop): push Homebrew cask on the tap's first release by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/771
- refactor(server): add ownership dependency substrate by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/781
- refactor(server): enforce integration policy org RLS by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/783
- chore(dev): split local dev setup and run by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/790
- [codex] Clean up cloud repo workspace sandbox DB models by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/803
- refactor(cloud): cut over workspace flow to gateway by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/809
- fix(frontend): wire the six oversized files onto their split-out modules by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/855
- refactor(cloud): delete parked cloud domains and dead consumers by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/823
- feat(server): membership policy seam + SINGLE_ORG_MODE by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/862
- ci(self-host): production compose smoke, phase 1 by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/859
- release(server): publish self-host deploy bundle by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/868
- refactor(anyharness): gut runtime_config, inject gateway MCP from dotfile by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/837
- ci: fail PRs that fork the alembic migration history by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/888
- chore(harness): remove the gemini harness (upstream went enterprise-only) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/896
- fix(ci): sync HarnessPane.test.tsx max-lines allowlist by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/917
- chore(cloud): integration FKs + schema vestiges + gateway/health perf hygiene by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/895
- refactor(desktop): unify code/markdown rendering onto shared product-ui primitive by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/927
- chore(sdk): regenerate openapi for stage-patch/unstage-patch endpoints by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/951
- fix(server): sync analytics ingest task def with deployed reality by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/983
- fix(ci): make repo-shape checks green on main by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1010
- tests(release): tier-3 runner skeleton (lanes, env manifest, reporter, dry-run) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1009
- test(release-e2e): browser-free session seeding for the staging durable user by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1062
- ci(release-e2e): tier-3 runner workflow (release-train cadence) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1064
- test(release): reconcile tier-3 pins with tonight's merges by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1066
- ci(tests): install Tauri system deps in the tier-3 workflow build step by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1067
- ci(tests): provide throwaway server secrets to the tier-3 boot step by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1068
- test(intent): mock IdP slot + SSO scenario (T2-AUTH-3) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1015
- test(intent): tier-2 org SSO login entry points (T2-AUTH-5) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1072
- test(intent): point remove-user flow row at existing coverage by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1074
- specs(testing): T3-INT-1 credential is any api_key kind, not a Slack bot token by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1076
- fix(tests): tier-3 runner treats missing credentials as blocked and self-seeds the CI local lane by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1080
- fix(ci): make same-day release tag reruns collision-tolerant by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1082
- test(self-hosting): tier-1 config/meta units + tier-2 claim/invite/adaptive-signin specs by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1085
- feat(desktop): make updater endpoint + pubkey build-overridable for tier-4 tests by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1086
- refactor(integrations): remove cloudflare_docs seed and archive removed seeds on sync by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1001
- ci(release): publish runtime and worker bare-binary trees to the downloads CDN by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1091
- test(release): tier-4 cloud AnyHarness runtime self-update scenario (T4-CLOUD-1) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1092
- test(desktop): tier-4 desktop auto-update scenario (T4-DESKTOP-1) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1090
- test(release): implement T3-PROV-2 pause/resume and T3-SEC-MAT-1 secret materialization by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1098
- test(server): assert org billing exhaustion lifecycle live on staging (T3-BILL-4) + fix #1047 attribution by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1108
- test(release-e2e): add self-hosting live scenarios (T3-SH / T4-SH) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1109
- test(release-e2e): implement T3-SH-3 gateway add-on against the standing box by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1110
- test(release-e2e): assert funded billing lifecycle + Stripe test-mode swap live on staging (T3-BILL-3) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1112
- ci(release): let the runtime CDN publish job assume its AWS role by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1113
- test(release): assert an agent's integration-gateway tool call and audit row (T3-INT-1) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1111
- feat(desktop): add Subagents UX playground by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1133
- fix(anyharness): regenerate database schema snapshot by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1138
- refactor(frontend): split oversized modules by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1139
Other Changes
- [codex] Add safe area to desktop app icon by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1
- [codex] Clean home onboarding and repo setup by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/2
- Add agent launch defaults settings by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/3
- [codex] Add organization ownership and settings by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/4
- [codex] Split oversized frontend helpers by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/5
- [codex] Add right-panel browser tabs by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/6
- [codex] Split right-panel migration helpers by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/7
- [codex] Clean up composer mobility states by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/8
- [codex] Fix workspace mark-done context menu by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/9
- Harden worktree retention purge flow by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/10
- Fix repo shape after retention merge by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/11
- Add ACP session fork support by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/12
- Fix fork tab view model shape check by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/13
- Add Pro billing and org billing settings by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/14
- Add workspace file operations and viewer targets by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/15
- [codex] Fix duplicate local workspace creation by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/16
- Simplify repo setup modal by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/18
- [codex] fix duplicate composer submits by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/20
- Clean chat completion state and composer geometry by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/21
- [codex] Add file-backed prompt attachments by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/22
- [codex] Improve worktree cleanup feedback by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/23
- Clean up support dialog by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/24
- Clean up workspace shortcuts by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/25
- [codex] unify delegated agents UI by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/19
- Add latency diagnostics instrumentation by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/26
- Add global worktree cleanup policy by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/27
- [proliferate] Add server Phase 8 tracker by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/179
- [proliferate] Refine right panel changes review by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/227
- feat(web): share desktop product UI surfaces by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/261
- [proliferate] Preserve projected launch sessions by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/267
- [proliferate] Improve file viewer search UI by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/296
- docs(specs): codify anyharness domain grammar and mental model by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/608
- feat(agents): add catalog probe, collation pipeline, and viewer by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/611
- chore(deps): bump agent-client-protocol 0.10.2 → 0.14.0 by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/609
- feat(codex): migrate to standard ACP elicitation + repin to 0.16 fork by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/615
- fix(desktop): runtime queries resolve materialized session ids (404 spam) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/641
- fix(desktop): sidebar row shows blue dot for unseen session activity by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/642
- fix(plans): fail rejected plans without native reject mapping by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/629
- refactor(anyharness): rename live session modules to grammar vocabulary by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/643
- refactor(anyharness): empty the actor's product pockets via observers, advisor, and domain ops by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/631
- refactor(anyharness): cross the live boundary with a launch bundle and capability traits by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/632
- refactor(anyharness): extract pure launch policy and prompt rendering by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/633
- refactor(anyharness): consolidate the session actor into a struct with methods by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/634
- refactor(anyharness): replace latency threading with tracing spans by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/635
- refactor(anyharness): finish live-session packaging - sink.ingest, InboundDoor, bg-work ownership, SessionView by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/636
- feat(anyharness): restore live model truth from the model config option by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/637
- docs(specs): align anyharness structure specs with the live-sessions migration by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/638
- refactor(anyharness): fold the turn entry vestige into start.rs by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/639
- refactor(agents): clarify runtime service boundaries (PR-1 of catalog/registry stack) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/618
- feat(catalog): sync — validated atomic catalog ingestion (PR-5) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/624
- feat(catalog): v2 consumption — launch validation, heartbeat convergence, gated menus (PR-7b) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/627
- refactor(catalog)!: v2-only hard cutover — delete v1 + model_registry, real auth detection by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/640
- ci(catalog): scheduled probe run with auto-PR (PR-8) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/623
- fix(desktop): composer model picker search focus and submenu hover gap by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/645
- fix(desktop): markdown tables, sidebar menu polish, terminal creation grid by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/648
- feat(design): Dominic = Claude theme, mono light parity, chrome banding fixes by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/652
- style(design): flatten turn-diff and right-panel git headers (Codex parity) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/653
- style(design): pull turn-diff and right-panel git headers a notch darker by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/654
- feat(desktop): reverse Cmd/Cmd+Opt number shortcuts; always land on a session by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/664
- fix(desktop): intent-aware transcript scrolling (escape, completion, resume) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/663
- fix(db): disable asyncpg statement cache to survive index recreation by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/702
- feat(ci): zero-touch auto-prod in the nightly release train by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/703
- feat(anyharness): catalog-lockfile harness pins — fenced, sha-verified installer + producer by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/722
- fix(readme): make release/license badges static by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/728
- feat(anyharness): the catalog is the lockfile — fenced, sha-verified agent installer by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/723
- fix(live): restore live model switching for Gemini via session/set_model by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/715
- fix(desktop): persist auth + provider creds as 0600 files in ~/.proliferate by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/731
- fix(ci): nightly version bump must clear all surface tags by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/734
- feat(desktop): persistent loading→auth shell (no brand-mark jump) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/740
- feat(desktop): clean up update UI — accent pill, unified toast, session-aware restart by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/744
- Wave 1: desktop settings on the design system + shared flat primitives by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/810
- Wave 2: shadcn interaction kit in @proliferate/ui by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/811
- Wave 2.5: transcript virtualization + trailing-status base by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/822
- Wave 3a: chat composer restyle + transcript polish by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/813
- Wave 3d: codex-style home, onboarding cards, toast update UI by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/812
- Wave 3c: session tabs, right-pane header, unified add-repo by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/815
- Wave 3b: codex-style sidebar + conductor workspaces view by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/816
- feat(desktop): semantic type scale wired to the UI font-size setting by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/841
- feat(desktop): single SidebarAccountFooter; shortcuts modal-only; update pill top-left by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/842
- fix(server): align test suite + finish deletion sweep after #803/#809 cutover by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/846
- fix(ci): green main — product-ui tooltip assertions + test_cloud_api length by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/848
- fix(ci): green main — product-ui tooltip assertions + test_cloud_api length by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/849
- fix(ci): green main — product-ui tooltip test + test_cloud_api length by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/851
- fix(desktop): route raw buttons through the ui Button primitive by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/852
- refactor(frontend): split six files under the 400-line structure threshold by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/853
- refactor(frontend): split six oversized files below the structure threshold by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/854
- feat(desktop): chat input cleanup — monochrome pills, tone system removed, placeholder variants by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/857
- feat(desktop): polished update UI — morphing pill, progress ring, honest states, copy deck by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/856
- style(desktop): update entrances are plain fades by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/864
- fix(desktop): clear the last 3 frontend-structure violations by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/866
- polish(settings): end-to-end settings surface cleanup by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/870
- feat: workspace git/PR statuses — sidebar, workspaces page, and anyharness hosting endpoint by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/869
- feat(desktop): codex-family popover convergence + header chip restore + new tab look by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/860
- feat(desktop): streaming UI overhaul — interaction cards, plan flow, shimmer, todo tracker by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/871
- feat(desktop): environments + repo-scope settings (picker, Cloud|Local, Configure/Actions/Environment, unified add-repo modal) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/873
- feat(desktop): offline connectivity detection, network error classification, reconnect backoff by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/929
- docs: CLAUDE.md + feature-worktree dev/auth recipe for agent sessions by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/953
- feat(support): capture urgent/notify-me + outreach_email override by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/972
- feat(desktop): support modal urgent/notify/credit/logs + outreach email footer by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/976
- fix(alembic): merge divergent support-capture + dashboards migration heads by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/982
- obs: sync Sentry release tags to VERSION+sha everywhere by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/968
- obs: version+context on server logs, report_critical severity helper by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/971
- obs: org/sandbox/runtime-env identity tags on all Sentry surfaces by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/970
- obs: Sentry replay-on-error for desktop renderer (masked) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/969
- docs: exceptions-observability implementation reference by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/980
- feat(goals): native goals end-to-end (anyharness domain + GoalPort + goal bar) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/909
- feat(activity): SessionActivity contract v1 (loops, processes, subagents, feed) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/918
- feat(activity): loops + rosters runtime (native writes, emulated scheduler, fork-compat ingest) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/919
- feat(activity): desktop loops/rosters/feed UI, live-wired by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/920
- chore(repo-shape): unbreak main max-lines after goals stack by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/990
- feat(desktop): remove Agents Overview page, surface readiness as sidebar dots by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/956
- feat(anyharness): honest native-auth readiness — parse OAuth expiry, expired login reads login_required by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/961
- feat(desktop): harness page restructure — method cards + single scroll by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/957
- fix(catalog): show bare current-gen Claude models on native/api (regression from #955) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/975
- feat(desktop): shared API-key creator modal + reusable CloudGuard by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/960
- feat: opencode native auth coexists with gateway/api-key sources by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/962
- feat: catalog-driven per-harness settings — Claude Chrome toggle (--chrome) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/963
- fix(auth): extend single-org bypass to current_product_user by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1023
- fix(billing): gate cloud-sandbox wake/ensure on the resume billing gate (#1036) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1045
- fix(catalog): gate bare Claude ids on Bedrock-routed accounts (#1037, #1038) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1046
- fix: gate org invitations list to admins by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1029
- feat(desktop): connect to a self-hosted server from the sign-in screen by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1027
- Enforce org and per-user compute budget limits by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1028
- Gateway route feeds auth-context classification by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1034
- tests(intent): wave 2 — org roles, secrets, workspace + workflow seams by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1016
- fix(auth): extend single-org bypass to the gateway WebSocket product gate by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1050
- tests(intent): tier-2 billing suite (T2-BILL-1..9) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1033
- tests(intent): T2-WS-2 + T2-INT-1 — Add-Repo entry seam + integrations product-readiness gate by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1031
- tests(intent): T2-AUTH-4 login-method seam + T2-ORG-2 member visibility by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1053
- tests(intent): T2-INT-1 gap fill — health composition, disconnect lifecycle, OAuth-seam exclusion by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1061
- fix(ci): make server-ci GHCR publish gate input-driven (+ :stable, +litellm image) by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1077
- feat(self-host): deployment shared-integration — gateway/cloud/auth/instance profiles, routes, env, doctor by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1123
- test(self-hosting): tier-2 + tier-3 coverage for the self-hosting merges by @pablonyx in https://github.com/proliferate-ai/proliferate/pull/1124
New Contributors
- @dependabot[bot] made their first contribution in https://github.com/proliferate-ai/proliferate/pull/681
- @utsavp257 made their first contribution in #657
- @sandip-pathe made their first contribution in #656
- @row0-rl made their first contribution in #779
- @Julian0444 made their first contribution in #788
- @TommyKisly made their first contribution in #1125
- @Rahul-Ganesan made their first contribution in #977
Full Changelog: https://github.com/proliferate-ai/proliferate/commits/runtime-v0.3.26