Skip to content

v2.14.0

Choose a tag to compare

@agentconnect-release agentconnect-release released this 14 Nov 13:30
· 9 commits to main since this release
c8bea45

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, and tea get the credential proxy's placeholder through their own config, GitLab and Gitea API writes go through the proxy, and the runtime sandbox images ship pinned glab and tea.
  • 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 wecom flag.

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 bc0a2af to add5c17 in /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