Skip to content

fix(dashboard): offer a team plan in the conversation that asked for it - #4576

Merged
huangruiteng merged 2 commits into
mainfrom
codex/steward-manager-conversation-card
Sep 16, 2026
Merged

huangruiteng merged 2 commits into
mainfrom
codex/steward-manager-conversation-card

Conversation

@huangruiteng

Copy link
Copy Markdown
Collaborator

动机

#4569 + #4572 之后,通道会为每份准入的团队计划存一张 team.plan 卡片,回答里也会点名"在哪个 Goal 工作区确认"。但产生这份计划的管家会话本身一张卡都不显示:会话时间线只渲染消息和本会话内创建的提案,于是从管家这里问出来的计划,必须先找到它服务的那个 Goal 才能确认。

改动思路

  • 管家会话列出它自己通道返回的卡片(这次拉取本来就已经发生,只是结果没被算进会话视图);为某个已选 Goal 拉取的提案仍然留在该 Goal 的工作区,因为它属于那个上下文。
  • 不新增任何东西:卡片还是那份已校验提案,确认仍走同一条类型化 action 路径,确认前仍是预览。

具体改动

  • personal-workspace-page.tsx:新增 managerChannelProposalIds(仅在无选中 Goal 的那次拉取时记录),并把它并入 managerChatItems 的筛选。
  • examples/personal-workspace-browser/team-plan.mjs:fixture 多served 一份三 lane 的管家通道计划(Goal 的那份是两 lane),场景在确认 Goal 卡片之后切到管家会话,断言那里出现的是三 lane 那张——所以不可能把 Goal 卡片误认成管家卡片。
  • RFC EN/ZH(沿用仓库当前已改成审计表格的版式):确认行补充"管家会话也会列出本通道存入的卡片",并在最新集成检查点后补一句本次增量,同时明确它不新增 Lark 卡片、确认前不创建任何东西。

对主干的风险

纯展示层:读取同一个 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

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 huangruiteng left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@huangruiteng
huangruiteng merged commit 81f435d into main Sep 16, 2026
20 of 21 checks passed
@huangruiteng
huangruiteng deleted the codex/steward-manager-conversation-card branch September 16, 2026 16:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant