feat(chat): explicitly select authorized attached Agents in private chat - #5546
Open
huangruiteng wants to merge 2 commits into
Open
huangruiteng wants to merge 2 commits into
huangruiteng wants to merge 2 commits into
Conversation
Signed-off-by: huangruiteng <huangrt01@163.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
This was referenced Oct 4, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Private Chat currently selects an executor endpoint but cannot explicitly address an existing registered Agent. This adds App-scoped grants for exact attached Sessions in the selected workspace. Settings authorizes the existing Goal/Agent/Session/host;
/agentslists usable grants,/agent <target-ref>selects one, and/projectreturns to the original ordinary conversation. Follow-ups enter the original canonical queue, are claimed/completed by that host, and return to the original App/source without launching another adapter.The typed binding owner validates registration, workspace, Goal lifetime and host identity. Queue admission and host claim preserve the grant fence; revoked pending work cannot execute. Persisted Session/host audience stamps also refuse reassignment through another Session or App after revocation. Request routing survives crash/replay and recipient changes. The current attached broker cannot push interrupt or create a host Session, so
/stopand/newreport that limitation explicitly. Normal workspace Chat still creates no hidden Goal. No new roles or inherited state are bootstrapped.Dependencies: stacked on #5544 at
2b83fa8e1b6530caa3bc608e9014cb12c9b3732a; its existing #5540–#5542 prerequisites remain unchanged. This diff does not duplicate #5538 or independent service-owner fix #5543. Runtime/authority changes remain for maintainer review and merge.Validation at head
e05382373f21e4660fdc8377af109264fa9ecc9f:Fixtures use synthetic App/owner identities, provider responses and protocol/attached-host execution. They do not prove a live Agent subscription, mobile experience, new roles, formal installation/login recovery, streaming/media/permission interactions or broader steward coordination. GitHub CI is pending and is not substituted by local tests.
中文:本增量补齐项目私聊的显式 Agent 目标授权与选择;后续消息沿用原 attached 宿主、原 canonical Session 和队列,结果回到原 App/source。共享 Core 核验确切身份、工作区、Goal lifetime 与受众,撤销后拒绝尚未领取的消息;同一宿主持续对话不能换给另一个 App。已受理工作在切换或崩溃后保持原目标,当前不支持的停止/新建操作明确反馈。240 项 Python、11 项 Core、类型/构建/质量及 premerge 检查通过;真实宿主自动领取、手机、正式安装和更广管家协调仍待验收,留维护者评审合并。
CI checkpoint (exact head e053823)
GitHub run 37167987116 ended with 27 checks successful, 7 skipped and 6 failed. Python reported 73 unique failing test names, including two names absent from the preceding status increment: retry-safe typed-write recovery after runtime exit, and delegation preview lifetime retirement. Both targeted tests pass locally on exact main and the composed candidate; that does not explain or waive the Linux CI failures.
当前 exact head 的 CI 未通过:73 个失败测试名,比前一增量多两条。新增两条分别在确切 main 和本地组合候选独立通过,尚未复现其 Linux CI 失败,不作基线归因或豁免。另一个已在 main 复现的失效 inventory 锚点由独立 #5548 修复。
A local candidate combining this stack, installation fix #5543 and inventory repair #5548 passes 629 relevant Python tests and premerge (5 direct, 19 selected); an isolated installed wheel passes 12 Agent/status/recovery journeys. These are local qualification evidence, separate from exact-head CI, live provider, mobile, or release installation.