runtime-v0.2.3
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
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
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
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
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
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
Full Changelog: runtime-v0.1.2...runtime-v0.2.3