Repository navigation
feat(workspace): make research a dedicated readable workspace - #7051
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…ation reads Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · gpt-6-astra · OpenAI · runtime_reported · xhigh
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
未发现阻塞本次打包前端交付的缺陷。完整评审版本 c262a36363a49da85737cd10b96f5169cc7debb6;实际安装升级和新实验分析仍未验收。以下结论不授权额外模型运行。
动机
需要在 Goal 工作区反复查看研究进展、结论与产出的用户。 此前用户在概览越过状态条、目标和重复图例才能读研究;现在进入研究页签即可看历程,选择结论后阅读完整正文。 打包页面已验证独立研究页签、单次图例、三条初始决策、可回看的完整结论,以及研究开关的真实配置回读。 本 PR 不生成新的 benchmark 结论,不修改求解器、评测、调度、权限或模型执行流程。 安装版 App 的本轮升级验收和真实实验数据的新分析仍留在原任务,不能由合成截图或配置成功替代。
改动思路
现有历史、配置与分析 owner 保持单一职责,改动集中于导航、阅读和同一事务的直接入口。 当前交付界限是可用的打包研究工作台与配置回读;真实实验分析和安装升级仍由已有任务继续验收。 最强反对理由是移动内容可能降低可发现性、丢失历史选择或藏起失败;本次通过一级页签、原来源绑定、挂载面板保留滚动和选中、显式失败恢复覆盖这些风险。只缩小字体会继续混合不同任务,也会恶化正文阅读;新建分析服务则重复现有 owner,均不采用。
| 用户动作 | 当前路径及边界 |
|---|---|
| 查看研究 | 一级研究页签 → 原 Goal 的历史/图表 → 可展开结论;仅读取 |
| 调整模式 | 已知 Goal 配置 → 新读取 → 预览并核版本 → 应用 → 独立回读 |
| 看报告 | 成果页签 → 原报告详情/下载;概览不重复全文 |
表格来自上述版本源码和原生验证,不表示模型执行或研究收益证明。普通浏览不增加确认轮次;已授权目标的研究模式调整只需一个明确点击,出现并发冲突才需刷新后重新决定。
具体改动
验收依据 docs/development/design.md,固定版本 bb6e78ee62129e256bc53093cc1c164f1b780825。Earn the user's attention:概览、研究、任务和成果分工,阅读页隐藏无关运行控制。Explanations On Demand:共享图例、三条初始决策、结论正文完整且来源按需展开。Populated Page Review:24 条重复问题/混合状态的真实 HTTP 读模型与 200 工作项界面,分别检查桌面及 390px 视口;这些规则在本次新增 Research 小节之前已存在。
关键代码讲解
apps/presentation/dashboard/src/features/personal-workspace/goal-research-mode.tsx的GoalResearchMode直接复用已有配置投影、预览、应用与回读。新读取校验 Goal 和版本,预览校验 capability 与 base_revision,应用携带 plan_revision。并发 planning 编辑、错误 Goal、403、503 都会停在明确失败;刷新恢复后保留原 profile/composition。它没有启动 Goal、分析或改变权限的接口。apps/presentation/dashboard/src/features/personal-workspace/goal-explore-results.tsx的GoalExploreResults复用既有parseExploreFindingSections,列表与正文分开;正文不截断,无法解析的旧内容按原文显示,适用范围、引用与版本仍可展开。读取传递原来源 namespace;过期异步返回被丢弃,失败清除无法核验的页。apps/presentation/dashboard/src/features/personal-workspace/personal-workspace-page.tsx的PersonalWorkspacePage把研究放到原有挂载面板里,面板 key 同时包含 Goal 与来源;只读来源不获得本机研究开关。运行统计只在概览,输入收起时不显示执行器/模型,已有草稿、失败、运行轮次仍保留输入控制。
其余变化覆盖路由与双语标签、时间线选择恢复、ContextHelp 的 Escape 事件竞争、Files 报告下载用例、样式和设计规则。主干的紧凑支撑成果/验收工作已整合,不另建一套实现。原生状态脱敏用例修复为 canonical SQLite fixture,同时保留旧解析材料的公开脱敏与不修改源对象断言。
对主干的风险
关键反例是前端模拟成功但配置没有真实保存,或旧模式覆盖另一编辑者的新配置。research-mode 使用隔离的原生配置后端,独立 HTTP 回读验证 off/evidence/off 与 planning 并发拒绝;记录所有 POST,未出现模型 dispatch。research-history 使用原生历史 HTTP,覆盖来源同名隔离、重载/返回、错误恢复、原文与键盘帮助。分析生成响应只作为展示夹具,不能证明实际模型质量。
同一不可变夹具在主干与当前打包前端比较:主干无研究页签、三处图例、六条初始决策;当前有研究页签、一处图例、三条初始决策,三阶段计数保留。完整报告/下载在成果入口继续通过。构建、类型检查、CSS、RFC、4 项直接检查、10 项 catalog、8 项风险检查和公开文本扫描通过。Canary 的图片人工审查状态如实保留;九张 PNG 的像素、空/标准 ICC 元数据和合成来源已人工检查,未公开私人上下文。未查询或等待远程 CI,遵循本 Goal 的本地验证策略。
语义与 CI 对齐
research 是本地视图联合类型扩展;配置 mode、证据状态与决策语义复用现有定义。没有新的调度或验收义务。此前 canonical fixture 与旧报告入口失败保留记录;当前采用真实 canonical 初始化及正确的成果入口重验,未删除关键断言或放宽门槛。读取配置不会启用研究;关闭后历史仍可读,已运行工作仍须单独停止。
我的整体评价
这是 justified_increment:研究阅读与直接配置入口在打包产品中可用。长程执行路径 preserved,用户阅读体验 improved;这里的改善是界面和操作路径的可观察变化,未测量求解收益或宣称模型更有效。保留原始证据、失败与来源身份,比删正文或另建状态 owner 更合理。已应用的简化是去掉概览重复历史/报告和旧 compact 参数链,成本主要是一个现有配置事务的 UI 调用者及验证。
当前交付界限是可用的打包研究工作台与配置回读;真实实验分析和安装升级仍由已有任务继续验收。 合并仍须此不变 head 的 change-quality 和 merge-readiness,评审不是这些门的替代。后续安装版回读继续使用原任务,不以这些合成图完成 live Goal 验收。
English verdict: APPROVE — c262a36363a49da85737cd10b96f5169cc7debb6. The packaged Research journey has a dedicated tab, readable saved findings and an explicitly scoped native configuration toggle. Local positive/negative, populated viewport, source isolation and report-download validation passed; image privacy was manually inspected. Installed App upgrade and new benchmark/model outcomes remain outside this qualified slice.
用户问题与结果 / Problem and behavior
Goal 概览同时堆叠运行状态、研究历程、报告正文和输入控制,长内容下难以找到研究结论。本改动把「研究」提升为一级页签:先看历程与分析,再按需阅读已保存结论;概览保留目标、验收、工作与待决事项,完整报告统一在「成果」。
A dedicated Research tab separates investigation from operational overview. Saved findings use a selectable reader with readable prose and on-demand provenance; Files owns complete reports. Executor/model controls appear when composing, and the compact composer preserves drafts, running turns and errors.
验证与交付边界 / Validation and boundary
Tested implementation:
f708412b9; screenshot-only refresh:c262a36363a49da85737cd10b96f5169cc7debb6. Packaged frontend build/typecheck passed. Browser scenarios passed: research history/reader, real isolated research-mode configuration, populated Goal workspace (200 work nodes), selection, managed results, report download, agent/model controls, and runtime-source workspace. Negative cases include permission denial, unavailable reads, wrong Goal identity, concurrent settings edits, read-only sources, help dismissal and recovery; research-mode checks assert no model dispatch.Risk-based premerge execution passed all 4 direct checks, Python compilation, 10 catalog smokes, 8 risk-profile smokes and public text boundary scan. The command retains manual image holds (nonzero exit); pixels, metadata and synthetic provenance for the images below were inspected separately. An outdated status-redaction smoke was repaired to seed canonical authority while retaining the legacy public-redactor/non-mutation case. RFC and diff hygiene checks passed. This is packaged local validation, not installed-App acceptance and not a claim of new benchmark findings, measured benefit, or completed live analysis. Existing history language is preserved; no paid analysis was launched for screenshots.
首屏与整页证据 / Visual evidence
Before:
6252293, same synthetic research history (24 records, repeated questions and mixed confirmed/refuted/unknown states). After: packaged code atf708412b9. Desktop 1440×1000; narrow 390×844. Research screenshots use the real HTTP read projection with synthetic canonical state and writes disabled; configuration evidence uses an isolated native Goal owner. No private Goal names, messages, paths or operating context are included. The overview images use a separate populated public fixture with long work items, mixed acceptance and pending decisions. No hosted public preview is offered.Observed composition: Research content starts below navigation instead of after operational vitals; optional metadata stays closed. Narrow screens scroll phase cards/finding choices horizontally while the selected body remains readable. Overview shows a compact acceptance summary rather than all criteria and report bodies. The finding list deliberately preserves repeated versions/statuses; it does not claim deduplication of distinct evidence.
Research mode readback is enabled in this isolated configuration example; the independent history/analysis-unavailable state remains visible. No research execution is implied.