Repository navigation
v1.30.0
·
2874 commits
to release
since this release
Summary
- Session Retention — Choose how long a daemon keeps completed sessions, including a custom number of days or no expiry.
- Workspace Management — Browse session worktrees and automatically retire workspaces for merged pull requests and closed issues.
- Model Usage Analytics — Break down usage by model to understand where agent costs come from.
Behavior change: The Slack status bar is off by default unless explicitly enabled.
Upgrade note: Deploy the Control Plane and daemons together. Hand-authored integrations must use the new core and config format.
⚠ BREAKING CHANGES
- protocol: flatten IntegrationSpec to the §6.4 envelope and delete the S1b dual-shape residue (S3) (#634)
Features
- auth: link without a code when the provider allows it (#632) (3de1e4e), closes #225
- cp: publish the platform-provider contract (S3 §9, seam first) (#565) (2245825), closes #525 #560 #556
- cp: slack + feishu platform providers; projectBotAssign becomes optional (S3 §9) (#580) (7e63fcc), closes #574 #574
- cp: telegram + discord platform providers + registry wiring (S3 §9) (#574) (3f76474), closes #565
- daemon: link sessions to integration sources (#629) (d84b57d)
- daemons: console-configurable session expiry (7d/30d/90d/never) (#588) (62ef9e3)
- dream: browse existing org knowledge/skills by tool, not pre-stuffed context (#587) (4dbddb7), closes #36
- github: clean worktrees after merge or issue close (#598) (5e8698d)
- let agent messages continue a conversation without naming a recipient (#549) (8643248)
- relay: ingest pools + demux index store (S3 §8 registry) (#562) (1aa9103), closes #526
- relay: publish the two-sided platform-ingress contract (S3 §8, seam first) (#560) (4cdf1cd), closes #525
- session retention accepts any 'd' day count (default 7d) (#611) (89bd9d0)
- sessions: mark retention-purged sessions in the control plane (#564) (8d656ed), closes #485
- usage: add model breakdown to analytics (#626) (76bb00b)
- web: add agent focus to session header (#609) (ad72760)
- web: publish the platform-module contract (S3 §10, seam first) (#573) (f799b74), closes #525 #560 #565
- web: refine worktree selector (#582) (f2f3ae5)
- workspace: browse session worktrees (#570) (ab08f94)
Bug Fixes
- auth: explain reconnect account mismatch (#602) (900fde8)
- auth: make selected visibility the complete audience (#576) (ba44f0d)
- ci: rebuild unavailable alias sources (#622) (214cf45)
- collab: raise the hop cap to 20, let a report-back be seen, and make needsReply a rule (#628) (12a3a37)
- compose: pass Feishu/Lark platform credentials to the control plane (#624) (a938605)
- cp: a deleted daemon leaves its agents unplaced AND inactive (#585) (62b4953)
- daemon: align collaboration guidance with root-only sends (#633) (53ec642)
- daemon: close the four daemon.ts audit findings (F1, F16, F17, F19) (#646) (0784f4b)
- daemon: durably sync pending session metadata (#640) (2588b30)
- daemon: isolate invalid agent configs (#593) (049d8bd)
- daemon: keep Control Plane agent config in memory (#599) (5d85977)
- daemon: promptly reclaim probe temp roots (#567) (9cb5cf3)
- daemon: replay session metadata after reconnect (#635) (16c36e9)
- daemon: resolve canonical skill selections to the CLI's frontmatter names (#572) (46d1d19), closes #371 #371 #371 #371
- default status bar visibility to off (#606) (a6730f6)
- dream: preserve per-file mtime for files a dream adoption leaves unchanged (#631) (8c6483a)
- github: keep deleted events out of agent turns (#613) (8e0baeb)
- integrations: make direct message triggers configurable (#561) (650942c)
- let a platform-observed agent delivery bind the conversation audience (#568) (6e8d604)
- relay: drive ingest teardown and route mounting from the registry (#643) (dac13bf), closes #575 #571 #605 #575
- render exact Slack agent mention addresses (#601) (b88b5ea)
- sessions: add actionable access recovery (#557) (9ae327e)
- sessions: stabilize hook source and participant header (#637) (592f2dd)
- telegram: retain inbound sender names (#586) (ca7d6b9)
- web: clarify departed owner access (#559) (fb47a89)
- web: compact workspace checkout control (#600) (f99cb04)
- web: compact worktree menu rows (#612) (a3b7858)
- web: drop the ?focus landing from the session→conversation redirect (#623) (7161d8a)
- web: explain reclaimed session workspaces (#617) (0ee17a7)
- web: gate the Sharable toggle on the platform, not just the transport (#630) (2c01f83)
- web: keep org tiles plated on dark, cool the agent tones, align composer + transcript chrome (#577) (3bbf46a), closes #434 #e0a30f #e0930f
- web: pass flat mode through session routes (#578) (5bdb2a3)
- web: place worktree selector in workspace header (#590) (bbea29e)
- web: remove session visibility frame (#615) (4269848)
- web: show session visibility while loading (#642) (dcffa10)
- web: the output-mode status-bar tooltip stops naming Slack (#620) (b543b77), closes #616
Internal
- control-plane: retire the CP's six hand-copied platform sets (audit F8–F13) (#644) (04975cb)
- cp: spec assembly and rc/bot-assign project through the providers (S3 §9) (#603) (1cde68c), closes #574 #580 #580
- cp: the platform slot owns route mounting, the background lifecycle, env keys and the create tail (S3 §9) (#605) (08d5dbd), closes 580/#584 #592 #592
- cp: the platform slot owns tooling credentials, the icon facet, the telegram probe and the assign gate (S3 §9) (#618) (51d63cf), closes #605
- cp: the POST /integrations credential union comes from the platform registry (S3 §9) (#592) (81a6c17), closes 574/#580
- daemon: cursorOrdering becomes a platform strategy; routing knobs become an envelope read (S3 Appendix A) (#589) (937042c)
- daemon: the MCP tool surface reads Layer-1 capability ports (S3 Appendix A) (#596) (bad63b2)
- move the agentconnect-platform skill to the dedicated skill repo (#566) (79f635d)
- platforms: promote the §5 manifest to protocol; relay reads botSenderRouting + thread-root coordinates (S3 §8) (#581) (6055cb3), closes #532
- protocol: flatten IntegrationSpec to the §6.4 envelope and delete the S1b dual-shape residue (S3) (#634) (9e865f7), closes #599 #556 #545
- relay: assign runs on the §8 plugin registry; interaction forwarders move into their plugins (S3) (#569) (739baee), closes #563 #560
- relay: manager runs on the §8 pools + demux index (S3) (#563) (9a556c9), closes #562
- relay: manager's last platform literals become contract-facet reads (S3 §8) (#579) (aa3cd25), closes #560
- relay: routes adopt the §8 verify→handle seam; resolveVerified pair retires (S3) (#575) (e067f82)
- relay: Slack/Feishu HTTP ingest + ingress routes move into their platform modules (S3) (#571) (03f5f16), closes #569
- web: AddIntegrationModal becomes the host chassis; the four wizard bodies become platform fragments (S3 §10) (#591) (efbe2a7), closes #573
- web: derive the console's platform tables from the registry (audit F14/F15/F18) (#645) (b06cec8)
- web: marks, settings fragments, channel semantics and the platform helper libs move into the modules (S3 §10) (#604) (8401f6e), closes #591 #573
- web: the Profile card and the two Slack-flavoured bot-row sentences move behind the contract (S3 §10) (#616) (a9aebef), closes 604/#614 #604 #614
- web: transcript text rendering becomes a registry keyed by platformId (S3 §10/§14) (#614) (ba159aa), closes #604 #604
Full Changelog: v1.29.0...v1.30.0