Skip to content

feat(workspace): make research a dedicated readable workspace - #7051

Merged
loopx-agent merged 6 commits into
mainfrom
codex/research-workbench-navigation-20261022
Oct 22, 2026
Merged

loopx-agent merged 6 commits into
mainfrom
codex/research-workbench-navigation-20261022

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

用户问题与结果 / 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.

  • 研究模式可直接开启/关闭,复用既有 Goal 配置的读取 → 预览 → 应用 → 回读;检查 Goal 身份、版本和权限,保留 profile/composition。它不立即启动 Agent、Goal 或深度分析。
  • 时间线只显示一次图例,阶段详情按需展开,首批决策收敛为 3 条;保留继续/转向、未知/已反驳状态和完整证据。
  • 中文/英文阅读、原始内容回看、来源命名空间、选中状态、滚动和键盘帮助关闭均保留。设计规范补入整页分工、默认/详情层次和研究设置交易边界。
  • 合入当前主干的紧凑验收/支撑成果布局;本 PR 没有重新实现该上游工作。原有报告下载用例改为从「成果」入口验收。

验证与交付边界 / 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 at f708412b9. 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.

Before desktop Research desktop
Before desktop Research desktop
Before narrow Research narrow
Before narrow Research narrow
Finding reader desktop Finding reader narrow
Finding reader desktop Finding reader narrow
Populated overview Narrow overview
Populated overview Narrow overview

Native research mode enabled

Research mode readback is enabled in this isolated configuration example; the independent history/analysis-unavailable state remains visible. No research execution is implied.

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 loopx-agent 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-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.

@loopx-agent
loopx-agent merged commit 9aedbbd into main Oct 22, 2026
25 of 32 checks passed
@loopx-agent
loopx-agent deleted the codex/research-workbench-navigation-20261022 branch October 22, 2026 10:03
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