fix(dashboard): offer a team plan in the conversation that asked for it - #4576
Merged
Merged
Conversation
The channel stores one `team.plan` card per admitted plan and its answer now names the Goal workspace that holds it, but the manager conversation that produced the plan listed no card at all: the transcript renders only messages and proposals created through this session, so a plan asked for from the manager had to be confirmed by first finding the Goal it staffs. The manager conversation now lists the cards its own channel returned -- the fetch it already performs for that context -- while a proposal fetched for a selected Goal stays in that Goal's workspace, because it belongs to that context. Nothing new is created or granted: the card is the same validated proposal, it is confirmed through the same typed action, and it is still a preview until the owner confirms it. The browser scenario proves the distinction rather than the title: the fixture now serves a manager-channel plan with three lanes next to the Goal's two-lane plan, and the scenario asserts the manager conversation offers the three-lane card after confirming the Goal's, so a Goal-scoped card cannot be mistaken for the manager one. Validation: dashboard typecheck, the team-plan proposal smoke, the workspace browser smoke (all six scenarios, including the new manager-conversation assertion), docs governance and `loopx canary premerge --from-git-diff` pass. Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
…sation card The manager conversation now lists the card its own channel returned, which is a packaged surface, so the chat bundle needs the rebuilt output. Rebuilt with npm run build:chat: new entry assets/index-CXvjZarX.js, the previous generation assets/index-Cb7S1yHW.js stays retained and assets/index-D8O4R6-3.js retires. Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
huangruiteng
commented
Sep 16, 2026
huangruiteng
left a comment
Collaborator
Author
There was a problem hiding this comment.
Head reviewed: 5fa9498
动机
#4569/#4572 之后通道会为每份准入计划存一张 team.plan 卡片、并在回答里点名它所在的 Goal 工作区,但产生计划的管家会话本身一张卡都不显示,业主必须先找到那个 Goal 才能确认。
改动思路
管家会话列出它自己通道返回的卡片(拉取本来就发生);为已选 Goal 拉取的提案仍留在该 Goal 工作区。不新增写入、授权或 apply 路径变化。
具体改动
personal-workspace-page.tsx 新增 managerChannelProposalIds 并并入 managerChatItems;浏览器场景用三 lane 的管家通道计划与 Goal 的两 lane 计划区分卡片来源;RFC EN/ZH 按当前审计表格版式补两处说明。
对主干的风险
纯展示层,读取同一个 action store;唯一变化是管家会话多出本通道卡片行。
我的整体评价
场景断言刻意用 lane 数而非标题区分来源,避免把 Goal 卡片误判成管家卡片;其余复用已验收的确认路径。
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
English verdict: APPROVE
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.
动机
#4569+#4572之后,通道会为每份准入的团队计划存一张team.plan卡片,回答里也会点名"在哪个 Goal 工作区确认"。但产生这份计划的管家会话本身一张卡都不显示:会话时间线只渲染消息和本会话内创建的提案,于是从管家这里问出来的计划,必须先找到它服务的那个 Goal 才能确认。改动思路
具体改动
personal-workspace-page.tsx:新增managerChannelProposalIds(仅在无选中 Goal 的那次拉取时记录),并把它并入managerChatItems的筛选。examples/personal-workspace-browser/team-plan.mjs:fixture 多served 一份三 lane 的管家通道计划(Goal 的那份是两 lane),场景在确认 Goal 卡片之后切到管家会话,断言那里出现的是三 lane 那张——所以不可能把 Goal 卡片误认成管家卡片。对主干的风险
纯展示层:读取同一个 action store,不新增写入、不新增授权、不动 apply 路径。唯一行为变化是管家会话里多出它自己通道的卡片行;Goal 工作区不受影响。打包 bundle 随第二笔 commit 出货。
我的整体评价
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
这一刀补在"提问的地方不能确认"这个缝上,用的还是同一条已验收的确认路径;场景断言刻意选了不同的 lane 数来区分两个卡片来源,而不是靠标题区分。
验证:dashboard typecheck、team-plan proposal smoke、workspace 浏览器 smoke(六个场景,含新的管家会话断言)、docs governance、
loopx canary premerge --from-git-diff全通过。English verdict: APPROVE