runtime-v0.2.26
What's Changed
Large Features
- 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
Minor Features
- 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
Performance
- perf(cloud): add worker control long poll by @pablonyx in #416
- perf(anyharness): reduce local session latency by @pablonyx in #517
Fixes
- 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
Docs
- 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
Maintenance
- 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 #347
- refactor(anyharness): move cross-domain deletes out of stores by @pablonyx in #348
- ci(anyharness): ratchet architecture boundaries by @pablonyx in #349
- refactor(anyharness): align live session boundaries by @pablonyx in #350
- refactor(anyharness): split terminal domain and live runtime by @pablonyx in #351
- refactor(anyharness): tighten domain contracts by @pablonyx in #352
- feat(billing): add Pro early-access promo-code script + docs by @pablonyx in #357
- ci(release): build E2B when bypassing staging by @pablonyx in #358
- release(desktop): bump to 0.1.41 by @pablonyx in #359
- release(mobile): bump iOS build number by @pablonyx in #360
- refactor(anyharness): clean up session store live boundary by @pablonyx in #361
- refactor(anyharness): move domain response DTOs to API mappers by @pablonyx in #362
- refactor(anyharness): decouple session product MCP launch by @pablonyx in #363
- release(desktop): bump to 0.1.42 by @pablonyx in #366
- ci(release): route desktop through production promote by @pablonyx in #370
- chore(desktop): bump release to 0.1.43 by @pablonyx in #376
- ci(desktop): allow promote-sourced release refs by @pablonyx in #377
- ci(mobile): submit built EAS artifact by id by @pablonyx in #379
- fix(server): format password auth changes by @pablonyx in #383
- fix(server): make analytics MCP test product-ready by @pablonyx in #384
- fix(server): make agent auth tests product-ready by @pablonyx in #385
- fix(server): format runtime config service by @pablonyx in #389
- fix(mobile): keep staging TestFlight submit aligned by @pablonyx in #390
- chore(desktop): bump updater version to 0.1.44 by @pablonyx in #394
- chore(product): disable Slack bot flow by @pablonyx in #400
- chore(desktop): bump updater version to 0.1.45 by @pablonyx in #404
- test(anyharness): split worker tailer tests by @pablonyx in #435
- fix(server): keep worker control service boundary clean by @pablonyx in #436
- fix(server): guard worker control migration replay by @pablonyx in #437
- chore(frontend): add report-only structure inventory by @pablonyx in #440
- chore(server): add structure guardrails by @pablonyx in #442
- refactor(anyharness): split live session runtime concerns by @pablonyx in #444
- refactor(frontend): normalize hook responsibility folders by @pablonyx in #443
- refactor(anyharness): split adapter operations by capability by @pablonyx in #446
- refactor(anyharness): split agent readiness and install roles by @pablonyx in #445
- refactor(frontend): align DOM primitives with ui package by @pablonyx in #448
- ci(deploy): exclude dry runs from deploy bases by @pablonyx in #449
- refactor(server): thread automation store db sessions by @pablonyx in #447
- refactor(frontend): route support access through sdk react by @pablonyx in #451
- refactor(frontend): move component config out of components by @pablonyx in #452
- refactor(anyharness): split workspace lifecycle responsibilities by @pablonyx in #453
- refactor(frontend): split desktop workspace shell responsibilities by @pablonyx in #456
- refactor(frontend): split automation inventory domain rules by @pablonyx in #457
- refactor(anyharness): split session domain responsibilities by @pablonyx in #454
- ci(deploy): key promotion checks off deploy artifacts by @pablonyx in #459
- refactor(frontend): split mobile chat screen responsibilities by @pablonyx in #460
- refactor(frontend): split web chat screen responsibilities by @pablonyx in #458
- refactor(anyharness): decouple core domains from product surfaces by @pablonyx in #461
- refactor(frontend): split mobile surface responsibilities by @pablonyx in #465
- refactor(frontend): split desktop session workflow responsibilities by @pablonyx in #468
- refactor(desktop): split settings and automation surfaces by @pablonyx in #467
- refactor(anyharness): split api contract boundary modules by @pablonyx in #470
- refactor(server): thread billing store db sessions by @pablonyx in #450
- refactor(frontend): split shared package surface responsibilities by @pablonyx in #466
- refactor(anyharness): align product mcp structure by @pablonyx in #471
- refactor(anyharness): promote artifacts into product domain by @pablonyx in #472
- refactor(anyharness): finish runtime topology moves by @pablonyx in #473
- refactor(server): thread cloud store db sessions by @pablonyx in #455
- release(desktop): bump version to 0.1.47 by @pablonyx in #474
- ci(server): let server test job finish by @pablonyx in #476
- refactor(server): route service session boundaries by @pablonyx in #475
- refactor(server): align billing Stripe integration by @pablonyx in #480
- refactor(server): carve cloud runtime owners by @pablonyx in #477
- refactor(server): split agent auth gateway owners by @pablonyx in #481
- refactor(server): split command and worker transactions by @pablonyx in #479
- refactor(server): split Slack cloud bot workers by @pablonyx in #478
- refactor(ui): split shared icon modules by @pablonyx in #485
- refactor(server): clean folder naming hygiene by @pablonyx in #482
- refactor(desktop): split large workspace hooks by @pablonyx in #486
- refactor(mobile): split large mobile surfaces by @pablonyx in #489
- refactor(desktop): split large frontend infra modules by @pablonyx in #491
- refactor(web): split large web frontend surfaces by @pablonyx in #490
- refactor(desktop): split content and review surfaces by @pablonyx in #492
- refactor(desktop): split settings and app utilities by @pablonyx in #493
- refactor(desktop): split home launch flow by @pablonyx in #495
- refactor(desktop): split workspace mobility flows by @pablonyx in #494
- refactor(desktop): split workspace navigation flows by @pablonyx in #496
- refactor(desktop): split chat selector hooks by @pablonyx in #498
- refactor(desktop): split session lifecycle actions by @pablonyx in #499
- refactor(desktop): split composer model selector logic by @pablonyx in #500
- refactor(product-ui): split shared chat composer surfaces by @pablonyx in #502
- refactor(product-ui): split shared chat transcript surfaces by @pablonyx in #504
- chore(test): normalize describe blocks and refresh todo playground fixtures by @pablonyx in #508
- release(desktop): bump desktop version to 0.1.48 by @pablonyx in #512
- release(desktop): bump desktop version to 0.1.49 by @pablonyx in #525
- docs(release): capture production deploy learnings by @pablonyx in #527
- refactor(cloud): collapse sandbox slot identity into targets by @pablonyx in #529
- refactor(desktop): split turn diff panel components by @pablonyx in #566
- refactor(product): split chat transcript view by @pablonyx in #568
- refactor(desktop): split session runtime dev SSE logging by @pablonyx in #571
- ci(frontend): enforce structure report by @pablonyx in #591
- refactor(desktop): centralize settings admin role checks by @pablonyx in #592
- refactor(worker): align worker structure with control and tail model by @pablonyx in #530
- feat(worker): fold control reconcile into two-poll loop by @pablonyx in #532
- feat(server): add celery background skeleton by @pablonyx in #534
- feat(server): add background outbox foundation by @pablonyx in #535
- feat(server): move signup slack notification to celery by @pablonyx in #536
- refactor(server): move runtime wake to background outbox by @pablonyx in #537
- refactor(server): move support tracker reconciler to Beat by @pablonyx in #538
- refactor(server): move cloud automation execution to Celery by @pablonyx in #539
- refactor(server): extract worker command service by @pablonyx in #540
- refactor(server): extract worker auth helpers by @pablonyx in #541
- refactor(server): extract command preflight by @pablonyx in #542
- refactor(server): extract command wake orchestration by @pablonyx in #543
- refactor(server): extract command client state by @pablonyx in #544
- refactor(server): extract command workspace scope by @pablonyx in #545
- refactor(server): extract workspace detail assembly by @pablonyx in #546
- refactor(server): extract workspace target launch by @pablonyx in #547
- refactor(server): extract workspace remote access by @pablonyx in #548
- refactor(server): extract workspace lifecycle actions by @pablonyx in #549
- refactor(server): extract workspace provisioning by @pablonyx in #550
- refactor(server): split workspace payload models by @pablonyx in #551
- refactor(server): split workspace lifecycle store by @pablonyx in #552
- refactor(server): move sandbox store helpers by @pablonyx in #553
- refactor(server): split runtime config worker service by @pablonyx in #554
- refactor(server): split runtime bootstrap helpers by @pablonyx in #555
- refactor(server): split runtime sandbox lifecycle by @pablonyx in #556
- refactor(server): split runtime launch helpers by @pablonyx in #557
- refactor(server): split runtime workspace preparation by @pablonyx in #558
- refactor(server): split runtime provision input by @pablonyx in #559
- refactor(server): split runtime template preparation by @pablonyx in #560
- refactor(server): split runtime launch connect flow by @pablonyx in #561
- refactor(server): split command payload rules by @pablonyx in #562
- refactor(server): split runtime config resolver types by @pablonyx in #564
- refactor(server): split mobility cleanup service by @pablonyx in #565
- refactor(server): split mobility preflight service by @pablonyx in #567
- refactor(server): split cloud mobility store package by @pablonyx in #569
- refactor(server): ratchet cloud repo config store by @pablonyx in #570
- refactor(server): split cloud sync event stores by @pablonyx in #572
- refactor(server): split cloud command lease store by @pablonyx in #573
- refactor(server): split cloud command result store by @pablonyx in #574
- refactor(server): split automation run store by @pablonyx in #575
- refactor(server): split cloud workspace store by @pablonyx in #576
- refactor(server): split auth identity service by @pablonyx in #577
- refactor(server): split billing usage stores by @pablonyx in #578
- refactor(server): split billing subject store by @pablonyx in #579
- refactor(server): split billing subscription store by @pablonyx in #580
- refactor(server): split billing seat store by @pablonyx in #581
- refactor(server): split billing accounting service by @pablonyx in #582
- refactor(server): split billing snapshot service by @pablonyx in #583
- refactor(server): split billing team checkout by @pablonyx in #584
- refactor(server): split billing checkout service by @pablonyx in #585
- refactor(server): split billing accounting pass by @pablonyx in #586
- refactor(server): split billing seat reconciliation by @pablonyx in #587
- refactor(server): split billing runtime usage by @pablonyx in #588
- refactor(server): split billing overview read models by @pablonyx in #589
- refactor(server): retire billing service imports by @pablonyx in #590
- ci(release): add release train hotfix automation by @pablonyx in #597
- ci(release): add public product version train by @pablonyx in #598
- ci(release): publish product release notes by @pablonyx in #599
- chore(anyharness): add sqlite schema snapshot by @pablonyx in #603
- refactor(anyharness): group live terminal modules by role by @pablonyx in #604
- refactor(anyharness): simplify workspace records by @pablonyx in #606
- refactor(mcp): collapse sub-threshold product MCP files by @pablonyx in #610
- refactor(mcp): purge legacy routes, headers, and deprecated tool params by @pablonyx in #616
- chore(release): add dependabot, CODEOWNERS, CodeQL, and security docs by @pablonyx in #666
- ci(release): bump CodeQL action to v4 and checkout to v5 (Node 24) by @pablonyx in #679
- chore(deps): bump toml from 0.8.2 to 0.9.12+spec-1.1.0 by @dependabot[bot] in #681
- chore(deps): bump zip from 4.6.1 to 8.6.0 by @dependabot[bot] in #682
- chore(deps): bump rusqlite from 0.32.1 to 0.40.1 by @dependabot[bot] in #683
- chore(deps): bump sentry from 0.47.0 to 0.48.2 by @dependabot[bot] in #684
- chore(deps): bump portable-pty from 0.8.1 to 0.9.0 by @dependabot[bot] in #685
- chore(deps): bump the cargo-minor-and-patch group across 1 directory with 17 updates by @dependabot[bot] in #701
- chore(ci): ignore Expo SDK packages in Dependabot by @pablonyx in #704
- test(server): make api-path-prefix assertions robust to Starlette router nesting by @pablonyx in #714
- chore(deps): bump getrandom from 0.2.17 to 0.4.2 by @dependabot[bot] in #687
- chore(deps): bump the github-actions group across 1 directory with 12 updates by @dependabot[bot] in #690
- chore(deps): bump cryptography from 46.0.5 to 49.0.0 in /server by @dependabot[bot] in #670
- chore(deps): update fastapi-users[oauth,sqlalchemy] requirement from >=14.0.0 to >=15.0.5 in /server by @dependabot[bot] in #674
- chore(deps): update uvicorn[standard] requirement from >=0.34.0 to >=0.49.0 in /server by @dependabot[bot] in #671
- chore(deps): update sentry-sdk[fastapi] requirement from >=2.28.0 to >=2.62.0 in /server by @dependabot[bot] in #676
- chore(deps): update botocore[crt] requirement from >=1.43.18 to >=1.43.30 in /server by @dependabot[bot] in #677
- chore(ci): stop Dependabot major-version churn by @pablonyx in #726
- chore(deps): bump the python-minor-and-patch group across 1 directory with 12 updates by @dependabot[bot] in #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 #725
- chore(deps): bump the npm-minor-and-patch group across 1 directory with 36 updates by @dependabot[bot] in #727
- fix(anyharness): re-fork zero-turn Claude fork children instead of dead load_session by @pablonyx in #732
- fix(product-ui): don't show scroll-to-bottom button when transcript isn't scrollable by @pablonyx in #733
- fix(desktop): keep distinct local workspaces per folder+branch instead of collapsing by @pablonyx in #735
- fix(desktop): stop model/mode switch landing one behind by @pablonyx in #736
- feat(desktop): publish Homebrew cask on release by @pablonyx in #770
- fix(desktop): push Homebrew cask on the tap's first release by @pablonyx in #771
- refactor(server): add ownership dependency substrate by @pablonyx in #781
- refactor(server): enforce integration policy org RLS by @pablonyx in #783
- chore(dev): split local dev setup and run by @pablonyx in #790
- [codex] Clean up cloud repo workspace sandbox DB models by @pablonyx in #803
- refactor(cloud): cut over workspace flow to gateway by @pablonyx in #809
Other Changes
- docs(specs): codify anyharness domain grammar and mental model by @pablonyx in #608
- feat(agents): add catalog probe, collation pipeline, and viewer by @pablonyx in #611
- chore(deps): bump agent-client-protocol 0.10.2 → 0.14.0 by @pablonyx in #609
- feat(codex): migrate to standard ACP elicitation + repin to 0.16 fork by @pablonyx in #615
- fix(desktop): runtime queries resolve materialized session ids (404 spam) by @pablonyx in #641
- fix(desktop): sidebar row shows blue dot for unseen session activity by @pablonyx in #642
- fix(plans): fail rejected plans without native reject mapping by @pablonyx in #629
- refactor(anyharness): rename live session modules to grammar vocabulary by @pablonyx in #643
- refactor(anyharness): empty the actor's product pockets via observers, advisor, and domain ops by @pablonyx in #631
- refactor(anyharness): cross the live boundary with a launch bundle and capability traits by @pablonyx in #632
- refactor(anyharness): extract pure launch policy and prompt rendering by @pablonyx in #633
- refactor(anyharness): consolidate the session actor into a struct with methods by @pablonyx in #634
- refactor(anyharness): replace latency threading with tracing spans by @pablonyx in #635
- refactor(anyharness): finish live-session packaging - sink.ingest, InboundDoor, bg-work ownership, SessionView by @pablonyx in #636
- feat(anyharness): restore live model truth from the model config option by @pablonyx in #637
- docs(specs): align anyharness structure specs with the live-sessions migration by @pablonyx in #638
- refactor(anyharness): fold the turn entry vestige into start.rs by @pablonyx in #639
- refactor(agents): clarify runtime service boundaries (PR-1 of catalog/registry stack) by @pablonyx in #618
- feat(catalog): sync — validated atomic catalog ingestion (PR-5) by @pablonyx in #624
- feat(catalog): v2 consumption — launch validation, heartbeat convergence, gated menus (PR-7b) by @pablonyx in #627
- refactor(catalog)!: v2-only hard cutover — delete v1 + model_registry, real auth detection by @pablonyx in #640
- ci(catalog): scheduled probe run with auto-PR (PR-8) by @pablonyx in #623
- fix(desktop): composer model picker search focus and submenu hover gap by @pablonyx in #645
- fix(desktop): markdown tables, sidebar menu polish, terminal creation grid by @pablonyx in #648
- feat(design): Dominic = Claude theme, mono light parity, chrome banding fixes by @pablonyx in #652
- style(design): flatten turn-diff and right-panel git headers (Codex parity) by @pablonyx in #653
- style(design): pull turn-diff and right-panel git headers a notch darker by @pablonyx in #654
- feat(desktop): reverse Cmd/Cmd+Opt number shortcuts; always land on a session by @pablonyx in #664
- fix(desktop): intent-aware transcript scrolling (escape, completion, resume) by @pablonyx in #663
- fix(db): disable asyncpg statement cache to survive index recreation by @pablonyx in #702
- feat(ci): zero-touch auto-prod in the nightly release train by @pablonyx in #703
- feat(anyharness): catalog-lockfile harness pins — fenced, sha-verified installer + producer by @pablonyx in #722
- fix(readme): make release/license badges static by @pablonyx in #728
- feat(anyharness): the catalog is the lockfile — fenced, sha-verified agent installer by @pablonyx in #723
- fix(live): restore live model switching for Gemini via session/set_model by @pablonyx in #715
- fix(desktop): persist auth + provider creds as 0600 files in ~/.proliferate by @pablonyx in #731
- fix(ci): nightly version bump must clear all surface tags by @pablonyx in #734
- feat(desktop): persistent loading→auth shell (no brand-mark jump) by @pablonyx in #740
- feat(desktop): clean up update UI — accent pill, unified toast, session-aware restart by @pablonyx in #744
New Contributors
- @dependabot[bot] made their first contribution in #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
Full Changelog: runtime-v0.1.2...runtime-v0.2.26