Skip to content

feat(workspace): compose Goal work and shared task inspection - #6255

Merged
huangruiteng merged 13 commits into
loopx-project:mainfrom
songoow:codex/workspace-state-truth-20261012
Oct 12, 2026
Merged

huangruiteng merged 13 commits into
loopx-project:mainfrom
songoow:codex/workspace-state-truth-20261012

Conversation

@songoow

@songoow songoow commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator

Returning to a Goal previously required switching between Overview, Tasks, the work map and results to understand responsibility and inspect a task. Overview now groups work by its recorded owner, with existing Board/Map lenses, an All-work/Activity rail, inline task creation and verified result readers. One Goal/source-scoped selection survives lens changes, drawer close, reload and back; failed creation retains its draft.

The owner approved the current M2 preview before this update. Phones fold Direction and expose All work from the top bar in an accessible dialog; Escape returns focus and selecting work opens the existing details. Unknown remote task links show unavailable state without querying local owners. Existing visited-lens retention, typed missing-current protection and history pagination are preserved. The current main's refresh sequence fence remains, alongside timer cancellation.

One TypeScript digest supplies vitals, owner groups, rail and Board. Missing totals stay unknown, queued work stays scheduled, and stale/unlisted work does not gain effect controls. Only recorded typed dependencies classify waiting; lineage and Monitor-generation conditions do not become completion prerequisites. No new store, provider, capability, polling loop or permission grant.

This is the existing S5/Goal Workspace M2 delivery slice. CLI/Lark contracts are unchanged. M3/M4, W2/W3, installed App behavior, independent live acceptance/adoption and the two-cycle L1/G1 journey remain separate; #5890 and #5210/#5201 retain their respective scopes. No merge or deployment is claimed.

Validation at 1eceabc948712eb53815b365593dec8f70effc89 (main baseline d03863fd0):

  • Final build/types/source verification and the integrated navigation-sorting, goal-workspace-m2, goal-workspace-create packaged scenarios pass. They cover current refresh guards, URL recovery, remote isolation, phone dialog/focus and actual HTTP/Todo creation with a failed apply and independent CLI readback.
  • Before the last merge (whose only product difference was retaining the PR's refresh timer cancellation), nine affected packaged scenarios passed, including typed-actions, workspace-view-recovery, blocked-reason-readback, goal-work-map, goal-masthead, goal-showcase and task-inspector-return. Refresh behavior was then rerun at the final head; the interrupted process was not counted as a completed whole-suite run.
  • 17 digest tests, real-component relation/state/missing-current tests, control-plane types, CSS checks and packaged craft passed. Existing 54-case split-suite and 36 backend-case evidence remains pinned to c13c45202; it is not described as a new full run.
  • The 200-item scenario asserts matching Now/Board/rail counts (100 waiting, 99 open, one blocked), no navigation effects and the frozen local render budget. Final measured Now rendering was about 91ms; five loaded lens changes were 83–206ms, below the 2s/1s bounds. This is local rendering, not live-team scale.
  • Standard premerge and semantic/public-boundary checks are recorded in the exact-head review. Remote CI, full platform qualification and maintainer approval remain separate.

Journey: inspect responsibility → select a task → add a follow-up once → review and confirm → read back the created task. A failed apply preserves the input. Report readers preserve version/acceptance boundaries rather than treating run summaries as accepted results. Before/after screenshots use invented showcase data.

Future-facing pass: reuse the existing digest, snapshot lifecycle, request builder and selection owner; separate history read activation from component identity. No state migration is required to revert the composition.

By-owner Overview
Approved mobile first viewport
Mobile All work

Before · RFC checkpoint

Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
@songoow songoow changed the title fix(workspace): preserve unknown totals and queued state fix(workspace): preserve truthful state and current UI feedback Oct 11, 2026
@songoow
songoow marked this pull request as ready for review October 11, 2026 17:54

@songoow songoow 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.

Reviewer: model_agent; model=GPT-6 family; provider=OpenAI; self_reported

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机

Goal 所有者需要根据工作指标和任务状态判断进展。此前来源省略总数时,适配器会补零,页面可能显示“0/1”和完整覆盖;排队任务又可能被标成执行中。现在缺失计数一直保留到页面,已报告的零继续保留,未知或有界总数不画完成比例,任务和时间线共用正确的状态文案。

这是一项状态真实性和现有交互可靠性修复,不增加执行权限,也不交付 M2 工作区或真实团队协作。完整 M1、M2 与 L1/G1 的安装态、平台和真实协作资格仍保留在原有 RFC 和任务中。

评审依据为 docs/architecture/rfcs/goal-workspace-surface-v0.md,固定版本 3054cdcc1b236d867c0f28a454672632f27965dd:§5.3 的 Work 与 State 是本修复直接覆盖的条款。V1、V6 的计数/未知/焦点/手机部分有本轮证据,但不据此关闭整行的全部资格要求。

改动思路

保留来源有没有提供数值这一事实,沿用既有 TypeScript digest 计算展示;浏览器不从有限列表编造全量结果。字段在 schema、摘要适配和 Goal 模型中都允许缺失,最后由同一个 digest 决定是否有完整总数和比例。手机会折叠普通补充文字,因此另保留简短的“总数未知”提示。

状态文案复用现有本地化 owner,删除时间线的重复映射。完整流程还暴露了相邻的交互时序问题:旧刷新计时器能覆盖新请求状态,展开输入框的焦点依赖下一帧。分别取消旧计时器,并在明确展开的输入框挂载时聚焦。当前边界是完整修复这些已有界面上的可验证错误,不新增状态库、调度器或另一个工作区页面。

具体改动

  • status.ts 与 personalAgentTodoFacts 保留缺失的完成数,摘要转换不再从有界列表补出权威计数;可见完成项排除 monitor。
  • compileGoalWorkspaceDigest 让缺失来源总数保持 unknown,不完整覆盖不产生完成比例。GoalVitals 保留可见工作数并显示未知提示;完整已知计数继续按原方式展示。
  • GoalTasksView 和 RunRow 共用 localizedSessionStatus,区分 queued、running、waiting 和终态。
  • refreshWorkspace 将延时反馈归属当前请求;Overview 的输入框按实际挂载聚焦。
  • 双语用户指南披露默认变化;解析器/typed reducer/实际组件、真实状态 producer 到打包页面、时钟竞争和焦点场景提供相应回归。四张 public synthetic 图保留同输入的前后对照,首屏批准已经取得。

对主干的风险

准确提交:2c5c72624f135f97a635a1beb6eecb7350e69f55。风险集中在缺失数值的兼容行为,以及异步读取后的界面状态;没有改变后台工作、权限、Todo 完成或验收规则。已报告的零与缺失值分别验证,已知 → 未知会撤回旧比例。读取和视图切换不派发任务;刷新和展开输入框也不获得任何新的写权限。

当前证据:14 个 digest 测试、schema contract、双语生产组件检查和最终 51 个打包场景通过;同一 control-plane 源码的全量 TS 为 4,430 通过、37 个环境条件跳过、0 失败。最终构建/源码完整性、类型检查及标准 premerge 的 3 个直接检查和 19 个选中检查通过。完整 Python、跨平台 CI、安装态和真实模型仍单独跟踪,没有用这些局部结果冒充它们。

两次较早的完整浏览器运行分别停在刷新提示和输入框焦点,未从记录中删除。受控时钟复现了旧计时器把新请求改回 idle;暂停帧在干净基线上复现了原焦点断言失败。修复后的相同义务和更强场景通过,随后最终整组 51 个场景通过。这里保留的是可重现反例和当前覆盖,不声称测试数量证明所有运行环境可靠。

我的整体评价

批准这个有界增量。它修复了来源、派生读模型与实际页面之间的语义断层,两个较小的交互修复也有原失败与反例支持,属于同一个现有工作区的可靠性边界。共享状态文案及单一 digest 已足够,无需引入新的抽象层。后续 M2 应复用这些规则,并继续把安装生效、独立验收与请求方采用分开验证。此作者账户自评不代替维护者评审、远端 CI 或合并授权。

English verdict: APPROVE - 2c5c726. Missing totals remain unknown, queued work is not running, and refresh/focus feedback follows the current UI lifecycle. Counterexamples and all 51 final packaged scenarios pass; remote CI and installed/live qualification remain separate.

@mergify

mergify Bot commented Oct 11, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @songoow.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 11, 2026
Signed-off-by: song <liusongstep@gmail.com>
…vations

Signed-off-by: song <liusongstep@gmail.com>
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 12, 2026

@songoow songoow 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.

Reviewer: model_agent; model=GPT-6 family; provider=OpenAI; self_reported

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机

Goal 所有者需要根据工作指标和任务状态判断进展。此前来源省略总数时,适配器会补零,页面可能显示“0/1”和完整覆盖;排队任务又可能被标成执行中。现在缺失计数一直保留到页面,已报告的零继续保留,未知或有界总数不画完成比例,任务和时间线共用正确的状态文案。

这是一项状态真实性和现有交互可靠性修复,不增加执行权限,也不交付 M2 工作区或真实团队协作。完整 M1、M2 与 L1/G1 的安装态、平台和真实协作资格仍保留在原有 RFC 和任务中。

评审依据为 docs/architecture/rfcs/goal-workspace-surface-v0.md,固定版本 3054cdcc1b236d867c0f28a454672632f27965dd:§5.3 的 Work 与 State 是本修复直接覆盖的条款。V1、V6 的计数/未知/焦点/手机部分有本轮证据,但不据此关闭整行的全部资格要求。

改动思路

保留来源有没有提供数值这一事实,沿用既有 TypeScript digest 计算展示;浏览器不从有限列表编造全量结果。字段在 schema、摘要适配和 Goal 模型中都允许缺失,最后由同一个 digest 决定是否有完整总数和比例。手机会折叠普通补充文字,因此另保留简短的“总数未知”提示。

状态文案复用现有本地化 owner,删除时间线的重复映射。完整流程还暴露了相邻的交互时序问题:旧刷新计时器能覆盖新请求状态,展开输入框的焦点依赖下一帧。分别取消旧计时器,并在明确展开的输入框挂载时聚焦。当前边界是完整修复这些已有界面上的可验证错误,不新增状态库、调度器或另一个工作区页面。

最新主线为 b760c1eb35613ac84a03cb17246eaba9030db062。输入框冲突合并为主线的新提示文案与本 PR 的挂载聚焦;组件 smoke 同时保留主线的完成证明反馈检查及本 PR 的 run 状态检查。重新审阅完整 main→head 差异,未覆盖主线改动。

具体改动

  • status.ts 与 personalAgentTodoFacts 保留缺失的完成数,摘要转换不再从有界列表补出权威计数;可见完成项排除 monitor。
  • compileGoalWorkspaceDigest 让缺失来源总数保持 unknown,不完整覆盖不产生完成比例。GoalVitals 保留可见工作数并显示未知提示;完整已知计数继续按原方式展示。
  • GoalTasksView 和 RunRow 共用 localizedSessionStatus,区分 queued、running、waiting 和终态。
  • refreshWorkspace 将延时反馈归属当前请求;Overview 的输入框按实际挂载聚焦。
  • 双语用户指南披露默认变化;解析器/typed reducer/实际组件、真实状态 producer 到打包页面、时钟竞争和焦点场景提供相应回归。四张 public synthetic 图保留同输入的前后对照,首屏批准已经取得。

对主干的风险

准确提交:b3338c817ac9283886b23de93903708bc855a830。风险集中在缺失数值的兼容行为,以及异步读取后的界面状态;没有改变后台工作、权限、Todo 完成或验收规则。已报告的零与缺失值分别验证,已知 → 未知会撤回旧比例。读取和视图切换不派发任务;刷新和展开输入框也不获得任何新的写权限。

当前集成头通过:14 个 digest 测试、schema contract、双语组件、类型/构建/源码完整性/工作区契约,以及打包 goal-masthead(真实隔离状态 producer)、goal-showcase、navigation-sorting 和标准 premerge。旧 head 的 51 场景全量及 4,430 个 TS 检查保留为历史证据,本次没有宣称在新主线上重跑全量。完整 Python、跨平台 CI、安装态和真实模型仍未据此认证。

两次较早的完整浏览器运行分别停在刷新提示和输入框焦点,未从记录中删除。受控时钟复现了旧计时器把新请求改回 idle;暂停帧在干净基线上复现了原焦点断言失败。修复后的相同义务和更强场景通过,随后最终整组 51 个场景通过。这里保留的是可重现反例和当前覆盖,不声称测试数量证明所有运行环境可靠。

本次复测还发现测试时钟与页面观察混用的问题:取“现在”再暂停可能已经过期,向未来推进又会影响活跃状态的年龄。暂停帧反例改为单独放在其他实时观察检查之后,依然在没有下一帧时断言焦点;错误行用同一次 DOM 查询测量高度,保持大于零且不超过 28px 的要求。中英文标签使用当前可访问名称,未降低原来的焦点、刷新竞争或布局验收。

我的整体评价

批准这个有界增量。它修复了来源、派生读模型与实际页面之间的语义断层,两个较小的交互修复也有原失败与反例支持,属于同一个现有工作区的可靠性边界。共享状态文案及单一 digest 已足够,无需引入新的抽象层。后续 M2 应复用这些规则,并继续把安装生效、独立验收与请求方采用分开验证。此作者账户自评不代替维护者评审、远端 CI 或合并授权。

English verdict: APPROVE - b3338c8. Missing totals remain unknown, queued work is not running, and refresh/focus feedback follows the current UI lifecycle. Current affected packaged/schema/component checks and premerge pass; historical full-suite evidence is retained separately; remote CI and installed/live qualification remain separate.

…te-truth-20261012

Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
@songoow songoow changed the title fix(workspace): preserve truthful state and current UI feedback feat(workspace): compose Goal work and shared task inspection Oct 12, 2026

@songoow songoow 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.

Reviewer: model_agent · GPT-6 family · OpenAI · self_reported

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机

Goal 所有者返回工作区时,需要看清谁负责什么、检查一个任务,并添加后续任务。此前工作分散在概览、任务、地图和成果中,选择任务后刷新会丢失检查上下文;来源缺失总数时还可能显示错误比例。现在概览按实际负责人组织当前任务,明确保留未分配工作,提供看板/关系图镜头、全部工作侧栏与既有成果读回。任务选择可跨视图、关闭详情、刷新和浏览器返回保留;新建任务失败保留草稿,确认后读回真实创建结果。

本 PR 交付工作区组合与现有状态真实性修复,不认证安装态、真实团队运行或完整 roadmap。M3/M4、W2/W3、请求方采用与 L1/G1 的真实周期仍未完成,#5890 和既有 #5210/#5201 保留这些 owners。Activity 只呈现既有时间线中的物料观察,不代表完整审计历史。

规格依据为 docs/architecture/rfcs/goal-workspace-surface-v0.md,固定版本 c464cf308c3c9bad5d1109a758d30dc3620bfde4,重点为 §5.3–5.6 与 M2 的 V2/V3/V7/V9/V10。V6 的当前语言、屏宽、键盘与减少动态效果路径有证据;完整平台、缩放和深色矩阵保留为后续资格要求。

改动思路

保留一个摘要、一次交付快照读取和一个按 Goal/来源划定的选择 owner。只增加负责人列表不能完成检查、创建、失败恢复和返回原上下文;新增服务器状态、权限或另一个地图则没有必要。当前 PR 的边界是“可在概览理解责任、检查工作、创建任务并读回结果”,父级真实协作与安装资格独立保留。

goal_workspace_digest_v0 复用已有 Todo、决策关联及执行观察;新的 needs_you 仍是 Web 展示边界内的分类。只有 typed dependency 影响等待分类,lineage 和 Monitor 代际条件不会冒充完成前置条件。默认 By owner 是明确披露的展示变化,Board/Map 沿用原组件。创建、验收、历史与报告读取继续交给既有 owners,没有新 store、provider、capability 或轮询器。

具体改动

关键代码讲解

  • compileGoalWorkspaceDigest 同时输出类别计数、负责人分组、依赖顺序和侧栏顺序。monitor 被排除,done/deferred 退出 Now;责任不明的工作进入 Unassigned。已报告的零和未知仍有区别,不完整来源不绘制完成比例。
  • useGoalWorkspaceDigest 采用当前可用的 goal_task_map_v0 关系。决策 hold、未完成前置、lineage-only、Monitor 条件和完成前置各有反例;观察不足或只有 claim 时不能显示正在执行。
  • useDeliveryReview 从原组件提取同一个读取生命周期,按 Goal/来源约束快照,取消过期请求并在状态稳定后沿用既有再读规则;Map 与交付证据共用这份读取。
  • PersonalWorkspacePage 保持一个选择和独立的抽屉可见性。URL 的 todo 经有界解析恢复检查,异步旧来源不能改选新来源。已完成历史点击携带的证据不会被 URL 镜像降级;原本未列出的任务与后来失去当前读回的任务显示不同提示,两者只读原请求且没有操作按钮。
  • GoalWorkspaceWork.AddTask 复用 Todo 请求构造与原确认抽屉。重复提交被抑制,失败保留文本,重新检查沿用动作 owner 的 regeneration 关系,应用读回成功后清理对应草稿。

Board、Now、指标和侧栏共享摘要;Results 使用既有严格报告读回。完成历史保留独立分页、虚拟化和滚动状态,镜头保留已访问的组件。文档和公开合成截图说明默认变化与范围。验收映射:V2、V3、V7、V9、V10 的当前切片 implemented;V6 的完整矩阵 deferred 至既有工作区资格;M3/M4 与真实协作 out_of_scope。

对主干的风险

最强风险是 UI 看似成功,却丢失历史证据、继续提供失效任务的操作、重发创建或串用另一个来源。对应反例都通过实际入口检查:4087 项历史、真实完成/归档、跨视图和 URL 恢复、失败后重新确认、既有来源切换。失效状态不授予旧权限,结果摘要不冒充独立验收。

当前产品字节上的 54 个打包场景分两段通过(38 + 16),额外 packaged craft 与 development source-switch 通过。17 个 digest 用例、生产组件反例、36 项真实历史/交付/拓扑测试、真实 action HTTP smoke、类型/CSS/构建/源码/文档与标准 premerge(3 direct + 19 selected)通过。新建任务用隔离真实 HTTP/Todo 后端,并由 CLI 独立读回只创建一次;模型派发和其他浏览器状态在声明处采用合成输入。

此前完整运行暴露了三个真实整合缺口:视图启用状态触发历史重建、URL 恢复丢弃刚读到的历史证据、失效当前任务提示混同于原本未列出的请求。已修复 owners,原验收保持。另有两个测试替身/定位问题:Heartbeat 替身未像真实后端保存 gate,完成历史定位未限定活动 Tasks 面板;修复符合实际服务与新组合,没有降低写入、证据、焦点或布局要求。失败记录保留;最后 16 场景从原 catalogue 继续执行,产品源码与前 38 场景一致。

同输入的旧工作区没有 Now 分组/内联创建,候选显示两组负责人与一个创建入口,工作值都为 23/28。1440/390px 前后截图已检查;手机首屏保留方向与决策,工作区域通过正常滚动访问。200 项合成渲染在冻结预算内,源响应后约 57ms 可用,五次镜头切换约 95–136ms;这是本机渲染证据。没有安装、真实模型意图采纳、完整深色/缩放/平台或远端全 CI 的认证。

未来改动的成本已在同一边界内收束:删除重复快照读取,复用请求构造、状态类别和选择 owner;没有推测性框架。回滚组合不需要迁移状态。当前 head 的 CI、维护者批准及合并仍有各自门槛。

我的整体评价

APPROVE:这个有界增量改善了实际“理解责任 → 检查 → 创建 → 恢复 → 返回”的工作区旅程,正反例覆盖了本次触及的 owners,未发现阻塞当前提交的问题。并不据此关闭完整 M2/V6 或 L1/G1。此为作者账户自评,不是独立维护者批准或合并授权。

English verdict: APPROVE - c13c452. The Goal Overview composes responsibility, shared inspection, existing Board/Map/results and recoverable task creation. All 54 packaged scenarios passed in two segments on unchanged product bytes, with real backend/CLI readback, component counterexamples and premerge. Installed, full-platform, live-team and maintainer/CI merge qualification remain separate.

@mergify

mergify Bot commented Oct 12, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @songoow.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 12, 2026
Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 12, 2026
Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>

@songoow songoow 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.

Reviewer: model_agent · GPT-6 family · OpenAI · self_reported

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机

Goal 所有者返回工作区时,需要看清谁负责什么、检查一个任务,并添加后续任务。此前工作分散在概览、任务、地图和成果中,选择任务后刷新会丢失检查上下文;来源缺失总数时还可能显示错误比例。现在概览按实际负责人组织当前任务,明确保留未分配工作,提供看板/关系图镜头、全部工作侧栏与既有成果读回。任务选择可跨视图、关闭详情、刷新和浏览器返回保留;新建任务失败保留草稿,确认后读回真实创建结果。

本 PR 交付工作区组合与现有状态真实性修复,不认证安装态、真实团队运行或完整 roadmap。M3/M4、W2/W3、请求方采用与 L1/G1 的真实周期仍未完成,#5890 和既有 #5210/#5201 保留这些 owners。Activity 只呈现既有时间线中的物料观察,不代表完整审计历史。

规格依据为 docs/architecture/rfcs/goal-workspace-surface-v0.md,固定版本 c464cf308c3c9bad5d1109a758d30dc3620bfde4,重点为 §5.3–5.6 与 M2 的 V2/V3/V7/V9/V10。V6 的当前语言、屏宽、键盘与减少动态效果路径有证据;完整平台、缩放和深色矩阵保留为后续资格要求。

改动思路

保留一个摘要、一次交付快照读取和一个按 Goal/来源划定的选择 owner。只增加负责人列表不能完成检查、创建、失败恢复和返回原上下文;新增服务器状态、权限或另一个地图则没有必要。当前 PR 的边界是“可在概览理解责任、检查工作、创建任务并读回结果”,父级真实协作与安装资格独立保留。

goal_workspace_digest_v0 复用已有 Todo、决策关联及执行观察;新的 needs_you 仍是 Web 展示边界内的分类。只有 typed dependency 影响等待分类,lineage 和 Monitor 代际条件不会冒充完成前置条件。默认 By owner 是明确披露的展示变化,Board/Map 沿用原组件。创建、验收、历史与报告读取继续交给既有 owners,没有新 store、provider、capability 或轮询器。

本次整合基于主线 d03863fd0048f57f6dc878e7dc464b17f8d862a1,准确评审提交 1eceabc948712eb53815b365593dec8f70effc89。保留并行版本的 missing_current、Heartbeat gate 替身和已访问镜头;手机布局采用已批准版本。刷新请求复用主线 sequence fence,并保留原 PR 的取消旧 timer 与卸载清理,两者各有作用。

具体改动

关键代码讲解

  • compileGoalWorkspaceDigest 同时输出类别计数、负责人分组、依赖顺序和侧栏顺序。monitor 被排除,done/deferred 退出 Now;责任不明的工作进入 Unassigned。已报告的零和未知仍有区别,不完整来源不绘制完成比例。
  • useGoalWorkspaceDigest 采用当前可用的 goal_task_map_v0 关系。决策 hold、未完成前置、lineage-only、Monitor 条件和完成前置各有反例;观察不足或只有 claim 时不能显示正在执行。
  • useDeliveryReview 从原组件提取同一个读取生命周期,按 Goal/来源约束快照,取消过期请求并在状态稳定后沿用既有再读规则;Map 与交付证据共用这份读取。
  • PersonalWorkspacePage 保持一个选择和独立的抽屉可见性。URL 的 todo 经有界解析恢复检查,异步旧来源不能改选新来源。已完成历史点击携带的证据不会被 URL 镜像降级;原本未列出的任务与后来失去当前读回的任务显示不同提示,两者只读原请求且没有操作按钮。
  • GoalWorkspaceWork.AddTask 复用 Todo 请求构造与原确认抽屉。重复提交被抑制,失败保留文本,重新检查沿用动作 owner 的 regeneration 关系,应用读回成功后清理对应草稿。

Board、Now、指标和侧栏共享摘要;Results 使用既有严格报告读回。完成历史保留独立分页、虚拟化和滚动状态,镜头保留已访问的组件。文档和公开合成截图说明默认变化与范围。验收映射:V2、V3、V7、V9、V10 的当前切片 implemented;V6 的完整矩阵 deferred 至既有工作区资格;M3/M4 与真实协作 out_of_scope。

对主干的风险

最强风险是 UI 看似成功,却丢失历史证据、继续提供失效任务的操作、重发创建或串用另一个来源。对应反例都通过实际入口检查:4087 项历史、真实完成/归档、跨视图和 URL 恢复、失败后重新确认、既有来源切换。失效状态不授予旧权限,结果摘要不冒充独立验收。

最终 head 的打包 navigation-sorting、goal-workspace-m2、goal-workspace-create、构建/类型/来源完整性和标准 premerge 通过。最后一次合并仅保留原 PR 的刷新计时器清理,此前的整合候选已记录 9 个受影响场景通过,随后在最终 head 重跑刷新和 M2/创建路径。17 个摘要测试、实际组件反例、CSS、控制面类型和 craft 检查通过。旧 c13c452 上的 54 场景分段与 36 项后端结果保留为历史证据,没有重标成新 head 全量结果。真实 HTTP/Todo 后端及 CLI 读回证明创建一次;状态/地图导航数据为合成输入。

此前完整运行暴露了三个真实整合缺口:视图启用状态触发历史重建、URL 恢复丢弃刚读到的历史证据、失效当前任务提示混同于原本未列出的请求。已修复 owners,原验收保持。另有两个测试替身/定位问题:Heartbeat 替身未像真实后端保存 gate,完成历史定位未限定活动 Tasks 面板;修复符合实际服务与新组合,没有降低写入、证据、焦点或布局要求。失败记录保留;最后 16 场景从原 catalogue 继续执行,该结果属于旧 c13c452;本次单独执行变化涉及的整合回归。

同输入的旧工作区没有 Now 分组/内联创建,候选显示两组负责人与一个创建入口,工作值都为 23/28。1440/390px 前后截图已检查;手机默认折叠方向,通过顶部「全部工作」打开同一个工作侧栏;Escape 返回入口焦点,选择任务打开原检查器。用户已在提交前批准当前预览。200 项合成渲染在冻结预算内,最终源响应后约 91ms 可用,五次镜头切换约 83–206ms;这是本机渲染证据。没有安装、真实模型意图采纳、完整深色/缩放/平台或远端全 CI 的认证。

未来改动的成本已在同一边界内收束:删除重复快照读取,复用请求构造、状态类别和选择 owner;没有推测性框架。回滚组合不需要迁移状态。当前 head 的 CI、维护者批准及合并仍有各自门槛。

我的整体评价

APPROVE:这个有界增量改善了实际“理解责任 → 检查 → 创建 → 恢复 → 返回”的工作区旅程,正反例覆盖了本次触及的 owners,未发现阻塞当前提交的问题。并不据此关闭完整 M2/V6 或 L1/G1。此为作者账户自评,不是独立维护者批准或合并授权。

English verdict: APPROVE - 1eceabc. The Goal Overview composes responsibility, shared inspection, existing Board/Map/results and recoverable task creation. The approved mobile rail and current-head integration cases pass with real backend/CLI creation readback, component counterexamples and premerge. Prior 54-case split-suite evidence remains revision-pinned; no new full-suite claim. Installed, full-platform, live-team and maintainer/CI merge qualification remain separate.

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · reasoning_effort=xhigh

Reviewed exact head: 1eceabc

动机

回到 Goal 页面判断谁在做什么、查看任务并补充下一步的用户。
此前需在概览、任务、地图和成果之间往返;当前在概览中按负责人查看工作、切换看板或关系图、打开同一任务详情,并在原处检查和确认新任务。
打包页面保留任务 URL 选择和刷新后的检查上下文,手机侧栏可用 Escape 返回入口;创建失败保留草稿,重试后真实后端与 CLI 只读回一条任务。
本批是 M2 工作区组合,不交付 M3 增量/目标声明、W2/W3 实时协作、安装态或真实团队验收。
M3/M4、W2/W3、安装态与 L1/G1 原路线交付仍由既有 RFC owners 和 #5890/#5210/#5201 负责。

改动思路

保留 Todo、动作和成果的既有 owner;共享 TypeScript 展示 reducer 和交付快照 hook,避免在新页面另建状态或写入决策。
当前 PR 的可用边界是 M2 的打包概览、共同选择、侧栏与内联创建;未把合成截图或一次成功写入当作真实团队或安装态资格。
规范依据:docs/architecture/rfcs/goal-workspace-surface-v0.md,不可变版本 d03863f。按既有 M2 边界检查 V2、V3、V6、V7、V9、V10;M3、M4 的后续功能不由此关闭。既有 Todo/动作 owner 仍决定写入、失败恢复和读回,展示层不推断验收或执行授权。

具体改动

  • loopx/control_plane/presentation/goal_workspace_digest.ts:141 compileGoalWorkspaceDigest:同一分类供 vitals、负责人组、侧栏和看板,未分配保留,未知总数不伪造进度。
  • apps/presentation/dashboard/src/features/personal-workspace/goal-masthead.tsx:21 useGoalWorkspaceDigest:采用当前 typed dependency,排除 lineage 和 monitor 完成条件,已完成 gate 不继续阻塞。
  • apps/presentation/dashboard/src/features/personal-workspace/personal-workspace-page.tsx:1151 route restoration:共同选择按 Goal/source 隔离,重载保留上下文,当前条目消失撤回操作权限。
  • apps/presentation/dashboard/src/features/personal-workspace/goal-workspace-work.tsx:16 AddTask:复用已有预览/确认流程;真实失败保留草稿,重试只创建一次,直接应用留在概览并清空匹配草稿。
  • apps/presentation/dashboard/src/features/personal-workspace/delivery-review-state.ts:9 useDeliveryReview:共享有界快照读取,保留 stale 提示并撤回来源跳转能力;历史分页/成果继续复用既有消费者。双语文档、合成截图和 durable tests 对应同一 M2 切片。

对主干的风险

独立检查通过:17 项 digest 测试、SSR ownership smoke、status schema smoke、12 项 delivery 测试、TypeScript 检查与正常 Chat 打包。Ego 查看 1440px 桌面、390px 手机和 1024px 英文页面;Escape 返回侧栏入口,选择/重载、缺失当前状态撤回动作均可读回。与 base 使用相同缺失统计输入,旧页面显示 3/8 与完成比例,当前显示 5 项 open、Total unknown 且无比例。200 项显示为 100 waiting / 99 open / 1 blocked;初始状态读回后约 71.9ms,五次视图切换约 185–248ms,满足事前 2s/1s 本地预算。导航无 action/quota/validator/Turn 请求。
创建使用隔离真实 HTTP/ChatActionService/File Todo,注入一次 503 后草稿保留;恢复、第二条任务和重载通过,CLI 分别读回唯一任务。其余 status/map 为公开合成 fixture,未认证安装态、真实模型协作或完整 dark/live 矩阵;未查询 CI。
原生 premerge 的 4 项直接检查和 19 项执行检查均通过;执行检查不等于合并许可,仍须按仓库规则完成独立合并门与维护者授权。

非阻塞 P2:docs/guides/personal-workspace-user-guide.md:294 的英文 “Leaving Overview aborts pending reads” 已落后于 Overview/Tasks 共用快照;请改成离开这两个视图才取消,与中文一致。

我的整体评价

APPROVE。没有阻塞代码发现;本批 M2 有真实可用增量,相关共享 hook 与创建请求提取已落实有界重构。创建确认、当前状态和验收仍受既有 owner 约束。保留 Todo、动作和成果的既有 owner;共享 TypeScript 展示 reducer 和交付快照 hook,避免在新页面另建状态或写入决策。
当前 PR 的可用边界是 M2 的打包概览、共同选择、侧栏与内联创建;未把合成截图或一次成功写入当作真实团队或安装态资格。
合成展示与真实写入分别标明,后续资格和维护者合并授权保持独立,不把本评审当作部署、真实协作或合并许可。

English verdict: APPROVE - 1eceabc. The packaged M2 workflow, scoped selection, unknown-count correction and real isolated create/failure/retry/readback passed. One nonblocking stale English read-lifetime sentence remains. All executed native premerge checks passed; separate merge readiness and maintainer merge authority remain. CI was not consulted.

@huangruiteng
huangruiteng merged commit dbe812b into loopx-project:main Oct 12, 2026
12 checks passed
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.

3 participants