Repository navigation
v2.14.0
·
9 commits
to main
since this release
Summary
- Computer Use — Computers are now available in every console without a feature flag.
- Coordinator Controls — An agent can turn its Auto coordinator off, or put a Decision model (Jev or OpenAI) in front of it to screen channel messages before the coordinator reads them, with the filter's recent evaluations in the console.
- Self-Scheduling Agents — Agents can list, create, change, and delete their own scheduled tasks without waiting for a person to approve a request.
- Microsoft Teams Agent Bots — A Teams tenant can give each further agent its own bot, members can ask for one, and tenant-wide consent is asked once per tenant. Teams 1:1 chats can send and receive files, and administrators can recover a Teams or Google Chat connection.
- Slack Work Canvas — An assistant-mode agent keeps a read-only Work canvas in each Slack channel, listing open work and scheduled runs. Agents can also offer a follow-up as a proposal card, and an approved proposal answers in a thread of its place.
- Credential Proxy for More Tools —
gh,glab, andteaget the credential proxy's placeholder through their own config, GitLab and Gitea API writes go through the proxy, and the runtime sandbox images ship pinnedglabandtea. - AHP Clients — Agent Host Protocol clients such as VS Code can browse a session's workspace and read edited files whole.
- WeCom (Preview) — Connect a WeCom smart bot to an agent from the console, behind the
wecomflag.
Behavior change: The console no longer accepts sign-ins whose account links no social or SSO identity. Cloud sessions now check the organization's credit standing before they start or resume.
Features
- a Decision model can screen messages before the coordinator (#3962) (29651b3)
- an agent can turn its coordinator off (#3961) (dc39643)
- an approved proposal answers in a thread of its place (#3982) (03f5ec7)
- ask the Teams tenant-wide consent once per tenant (#3988) (4635cb6), closes #3208
- control-plane: add a Teams agent bot's app for the person who connects it (#3997) (d31ab53), closes #3208
- daemon: card a getting-to-know round at the top level under a coordinator (#3995) (af03358)
- daemon: give an approved proposal a root in a webchat coordinator conversation (#3984) (917fb7d)
- daemon: hand tea the credential proxy's placeholder (#4110) (d11a804)
- daemon: keep a Work canvas of each Slack channel's open work (#3969) (ef1e5aa)
- daemon: let AHP clients browse the session workspace and read edits as whole files (#4121) (53a4689)
- daemon: look back at an assistant-mode place's quiet tasks (#4082) (7bcdf68)
- daemon: offer a follow-up as a proposal card from an ordinary turn (#4018) (a0b01b7)
- daemon: refresh files an AHP client holds open and mask the text it reads (#4123) (b0a8be4)
- daemon: serve GitLab and Gitea API writes through the proxy at the write tier (#4104) (2732d80)
- docker: ship pinned glab and tea in the runtime sandbox images (#4117) (578a729)
- give each further agent of a Teams tenant its own bot (#3971) (58d7d00), closes #3208
- googlechat: add administrator connection recovery (#3953) (06d1f93)
- keep a Teams agent bot in step with its row (#3977) (756eab0), closes #3208
- let a member ask for a further agent's Teams bot (#3976) (3bfedc6), closes #3208
- let an agent schedule its own work (#3991) (f85c56c)
- msteams: add administrator connection recovery (#3964) (52d9e04)
- msteams: send and receive files in 1:1 chats (#4058) (37d5e64)
- show the coordinator filter's recent evaluations (#3983) (e57235d)
- web: fade a waiting Teams connect into the agent's header marks (#4049) (7bccfbc), closes #3208
- web: give agent messages a bubble with their thread's task card inside (#4000) (3af1ac9)
- web: list a waiting Teams request with the agent's integrations (#4048) (5cdec54), closes #3208
- web: offer the coordinator filter when an agent is added, named Jev (#3979) (5e8e3b5)
- web: only your own messages sit on the right; everyone else's are on the left (#3992) (ccf5094)
- web: pick the coordinator filter in the model picker (#3965) (12fccd9)
- web: show Computers in the console without a feature flag (#4101) (823b55a)
- wecom: connect WeCom smart bots from the Console behind a feature flag (#3951) (85f8903), closes #3947
Bug Fixes
- connect an agent's Teams bot through one button for everyone (#4034) (510e390), closes #3208
- connect the Teams app with no team to choose (#4037) (13bc694), closes #3208
- control-plane: consent to the package's permissions when adding a Teams agent for a person (#4020) (363b385), closes #3208
- control-plane: finish a Teams member's request once its package is approved (#4022) (eb99d34), closes #3208
- control-plane: keep trying to add a new Teams agent for the person who connected it (#4032) (57b95ea), closes #3208
- control-plane: let an agent's gh token read its pull requests' checks and statuses (#4096) (438bd74)
- control-plane: log Graph's reason for a refused Teams package publish (#4012) (79ad573), closes #3208
- control-plane: log which Microsoft call refused a Teams connect step (#4002) (1694310), closes #3208
- control-plane: log why a Teams member could not add an approved app to a team (#4026) (7059cee), closes #3208
- control-plane: log why an approved Teams package is not finished (#4023) (5bc74a5), closes #3208
- control-plane: name a Teams agent bot's registration within Azure's limit (#3990) (fbdc7c2), closes #3208
- control-plane: name the blueprint as an agent bot's Teams consent app (#4019) (dd324c5), closes #3208
- control-plane: read a Teams agent bot's sponsor from Graph (#3987) (a103e44), closes #3208
- control-plane: recover pool approval across rolling upgrades (#3942) (5fc7c67)
- control-plane: refuse OIDC subjects with no linked sign-in identity (#4124) (ef99872)
- control-plane: republish a Teams package the catalog lookup missed (#4015) (bfd2b37), closes #3208
- control-plane: sign a Teams member in at the organization's connected tenant (#4021) (f5dc337), closes #3208
- daemon: a coordinator leaves a message by calling ignoreMessage (#4027) (3c8c30a), closes #4011
- daemon: a coordinator's Slack reply in a thread is recorded as a post of that thread (#4046) (f2351bb), closes #4041
- daemon: a reply in the thread of an agent's callAgent post reaches the agent (#4055) (13317ba)
- daemon: a task's Code diff keeps updating on a wake no person started (#4038) (0d8915f)
- daemon: anchor a hook or schedule target in Google Chat (#4059) (65d4078), closes #4054
- daemon: answer resolveSessionConfig, which VS Code sends before createSession (#4120) (0795ca5)
- daemon: check the organization's standing before a Cloud session starts or resumes (#4126) (a1623bc)
- daemon: drop a sentinel an interrupted message left before the next reply (#4080) (20c45b0), closes #4066
- daemon: drop the session link from a task proposal's Slack card (#4024) (34fe45d)
- daemon: end a review turn whose hook changed before it started (#4088) (cd5ac4c)
- daemon: end a runtime's whole process tree on Windows (#4105) (349eea0)
- daemon: give the coordinator its agent's role so an unaddressed alert is not ignored (#3978) (48087c3)
- daemon: hand gh and glab the placeholder through their own config (#4100) (b22b17b)
- daemon: harden auto mode in a room without threads (#4071) (688e5c8), closes #3947
- daemon: have the coordinator open a task for what it has no tool for (#4072) (7b4ba29)
- daemon: keep a task sent back to work silent when nothing changed (#4084) (6273a62)
- daemon: keep a tunnel stream open across the shim channel renewal (#4057) (5869493), closes #3923
- daemon: keep git working in runtimes that drop credential-shaped env names (#4092) (58a916a)
- daemon: keep GitLab tokens out of execution environments (#4014) (1183069), closes #3923
- daemon: keep the Gitea bot token out of execution environments (#3985) (00f9869), closes #3923
- daemon: keep the GitLab read token out of a pod's skill install (#4036) (b2b7979), closes #3923
- daemon: keep the user's node ahead of the daemon's own on PATH (#4091) (e1b633d)
- daemon: land a coordinator's threadless reports and replies at the root (#4028) (52fe94a)
- daemon: let the coordinator decide a message that mentions only other bots (#4128) (2404381), closes agentconnect-md/agentconnect#4118 #4118 #4125 #4115
- daemon: look back only at work that runs after the upgrade (#4085) (ed36ccb)
- daemon: name a Work canvas for its agent and channel, and link each task (#3974) (4f5e2fd)
- daemon: open a task for a request that waits on its sender's answer (#4099) (a0a8697)
- daemon: post a coordinator's final text as its own reply (#4011) (f0e2b49), closes #3541
- daemon: queue code-host connections at the shim's stream cap (#3998) (965f158), closes #3923
- daemon: read a pod's private GitHub skill sources through the proxy (#4065) (d35b35f), closes #3923
- daemon: reclaim disk held by retired versions and VM images (#3946) (258b29c)
- daemon: record a coordinator's reply once, when it is posted (#4041) (d5d25cb)
- daemon: refuse a code-host connection no daemon answers (#4017) (dfea388), closes #3923
- daemon: restate changed standing context after a load on every runtime (#4068) (49329af)
- daemon: restore repository links on hook anchors (#3967) (9f5fb78)
- daemon: run a coordinator's ignoreMessage without a permission ask (#4042) (0654543), closes #4027 #4027
- daemon: run the in-pod merge watcher through the proxy, holding no minting capability (#4061) (22a3bf2), closes #3923
- daemon: say on a Work canvas that its agent is paused (#3981) (433f477)
- daemon: send every message of a room without threads to its coordinator (#4070) (6c108d4), closes #3947
- daemon: serve host sessions' credential proxy without a proxy credential (#4060) (d9b1314), closes #4045
- daemon: set srt's Basic proxy auth through Git's own variable (#4103) (067e875)
- daemon: settle a coordinator message that mentions only other bots (#4118) (bd83504), closes #4115
- daemon: show a coordinator the thread it meets part-way (#4029) (ff0b65e)
- daemon: show a key server's denial with its links instead of redacting them (#4129) (c8bea45)
- daemon: show a task the other work of its conversation (#4106) (7b6e890)
- daemon: show each sibling task's own status to a task (#4112) (2aa5fe4)
- daemon: stay silent when an interrupted turn leaves a partial sentinel (#4066) (9fa4244)
- daemon: stop mentioning the asker on a channel's Work canvas (#4005) (7546546)
- daemon: thread getting-to-know cards under a coordinator's reply (#3973) (86bf9c1)
- daemon: wait for background work before a config change restarts the runtime (#3986) (b71a77e)
- draw an agent's own roots and delivered messages for what they are (#3989) (3bb0474)
- give the deployment Teams app's bot to the built-in agent (#4035) (e97077b), closes #3208
- keep a thread's record polling while its conversation re-renders (#4008) (ef4cc96)
- leave a paused agent out of other agents' coordinator instructions (#4010) (61095fe)
- let a Teams agent bot join teams by mention, and leave approval to the admin center (#4030) (1ad9b26), closes #3208
- mark an agent's chat API in the agents list (#4004) (f26048c)
- name another Teams bot by its ID in a message's text (#4040) (a71c30f)
- protocol: default a Claude Code coordinator to Sonnet (#4086) (0e46862)
- read who sent a message the same way everywhere, by the chat account they linked (#4001) (e81c5f8)
- relay: log a Teams activity of a type the relay does not forward (#4053) (5f2da9b), closes #3208
- relay: log a Teams message the relay answers without forwarding (#4052) (9b34d0c), closes #3208
- say when a follow-up ended, footer a coordinator's reply, and show a follow-up on hover (#4016) (00950d6)
- session-access: stop a deleted Slack bot's channels from degrading the session list forever (#4111) (b1e3fa0)
- session-access: stop one slow chat check from hiding other sessions and piling up notices (#4109) (578a14d)
- show a Teams request as connected when a renewed sign-in finds it approved (#4031) (0cb5762), closes #3208
- show the getting-to-know report itself and clear a thread's starting notice (#3994) (5a60f62)
- slack: name a bot whose post carries no profile (#4003) (d5636a7)
- slack: preserve bot connections on user token revocation (#3943) (cd5bd95)
- slack: preserve file identity and support native report charts (#3957) (91d0c07)
- slack: use the agent avatar on draft cards (#3963) (83a706c)
- submit every new Teams agent bot for an administrator to publish (#4047) (acc6c1b), closes #3208
- tell a coordinator whom a Teams message mentions and its own name (#4125) (5829f25), closes #4115
- web: clarify model credential labels (#3958) (25e5e8d)
- web: draw a schedule's avatar on the header chip's light tile (#3999) (8fa4f3f)
- web: hide "No integration yet" while a Teams connect is waiting (#4051) (8a91280), closes #3208
- web: keep a follow-up's summary under its task page's title row (#3980) (bcf7756)
- web: keep an agent's bubble as narrow as a person's (#4007) (e6c63bd)
- web: link a session's place to its conversation when it runs in no thread (#4039) (6876141)
- web: list a conversation's tasks in one group and fold long reports (#3975) (16f6a0d)
- web: name WeCom groups and people readably when WeCom gives no name (#4069) (75cee0f), closes #3947
- web: show coordinator filter verdicts on the coordinator session page (#4044) (243e8f9)
- web: show Done after a WeChat QR login completes (#3945) (b85697a)
- web: show the add-repository code host picker like the workspace one (#4089) (a3aae81)
- web: show the coordinator filter as an addition to the coordinator model (#3993) (8e2f7c4)
- web: simplify thread composer and dock layout (#3959) (45d6d91)
- web: stop the console sidebar flashing on sign-in and load (#4090) (bdf801c)
- web: word the Teams own-bot option like Google Chat's, and drop a team step the connect no longer has (#4033) (773267d), closes #3208
- wecom: connect the daemon to WeCom's long connection (#4043) (7526883), closes #3947
- write another Teams bot's mention as @label again (#4122) (b7ba2f1), closes agentconnect-md/agentconnect#4040 #4040 #4050 #4115
- write another Teams bot's name as plain @text in a reply (#4050) (dd6b133)
Internal
- auth: upgrade bundled Logto to 1.46.0 (#4102) (3723e01)
- control-plane: add the WeCom platform provider (#3949) (e65f912), closes #3947
- control-plane: model Teams agent bots: settings, client and row (#3968) (46126f3), closes #3208
- daemon: add the WeCom long connection and streamed replies (#3950) (75f3037), closes #3947
- daemon: answer WeCom questions with a tap (#3955) (fa0c7ef), closes #3947
- daemon: let an agent send messages to WeCom conversations (#3960) (673fdaf), closes #3947
- daemon: make GitHub proxy-only behind a pool switch (#4067) (d1824e7), closes #3923
- daemon: read and send WeCom attachments (#3954) (db3b98e), closes #3947
- daemon: send tunnel bytes toward the daemon as binary frames (#4083) (7d76086), closes #3923
- daemon: send tunnel bytes toward the sandbox as binary frames (#4081) (45c8cf0), closes #3923
- daemon: update ACP SDK to 2.6.0 (#4063) (799b4f1)
- daemon: widen each tunnel stream's window toward the sandbox to 1 MiB (#4073) (330aa4c), closes #3923
- deploy: default icon uploads to the bundled object store (#4116) (0706825)
- deps: bump node from
bc0a2aftoadd5c17in /docker (#4076) (0b20274) - deps: bump node in /packages/computer/docker (#4077) (5a8d9e0)
- deps: bump npm minor and patch dependencies (#4094) (b888c37)
- deps: bump rust in /docker (#4075) (5686759)
- deps: bump the opentelemetry group with 10 updates (#4078) (df40c87)
- deps: refresh vulnerable transitive dependencies (#4098) (03f02f2)
- deps: upgrade @microsoft/agent-host-protocol to 1.1.0 (#4107) (24c4151)
- protocol,message: declare the WeCom platform and normalize its smart bot messages (#3948) (f5b7b9e), closes #3947
- relay: serve a Teams agent bot's row from the blueprint (#3966) (ae0af8c), closes #3208
- runtime: bump Claude ACP to 0.107.0 (#4097) (a333c70)
- runtime: pin agent-browser 0.43.0 (#4062) (abb50ad)
- runtime: refresh Claude and Codex ACP image pins (#3944) (e980d71)
- skills: load the pg driver itself in cp-query.sh (#4108) (ec50712)
- web: open WeCom's smart bot creation page from the wizard (#4064) (6d81e6f), closes #3947
- web: read pending steering from the shared pending list (#4113) (231059d)
Full Changelog: v2.13.0...v2.14.0