Repository navigation
fix(workspace): show retained strategy when linked research is empty - #8283
Conversation
…plore records 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.1-sol · OpenAI · runtime_reported · max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
从工作台打开历史实验子 Goal 的用户,需要看保存下来的实验依据和原任务。 当 Explore 事件流为空时,旧页给出空时间线和不能用的研究模式按钮。新版说明事件覆盖,显示保存的策略,并提供原任务入口。 真实只读来源的策略可在研究首页看到,点击可打开同一 Goal 的任务。 这次处理来源已读且事件为空的展示,Explore 记录仍以原实验所保存的事件为准。 本机原生窗口需要在发布后回读,历史归档的记录缺口仍需保留。
改动思路 / Approach
采用现有来源状态和任务导航,让空态给出可回读事实,保持事件流和策略记录的含义分开。 仅替换连接来源的已读空态,沿现有状态投影读取策略和任务。 原状态提供保存的 Vision 策略记录,原事件接口确认分页读完之后才知道 Explore 是否为空。两个读取结果分别进入页面,策略记录保留原文字和时间。原任务沿同一个来源导航。读取失败仍走现有重试分支,且旧来源没有策略字段时也能访问原任务。
具体改动 / Changes
依据为既有 Native App source Goals 契约,版本 172d80d630f424b0b44dd513863ba02b5f13d55c。source-strategy-readback 已实现,打包页面读到来源策略并进入原任务。source-failure-recovery 已实现,阻断请求会显示失败并允许恢复。 契约
关键代码讲解
runGoalSchema解码已有状态中的可选语义历史,只消费时间、策略摘要及观察。老响应缺这些值仍能加载。 代码sourceStrategies从选中来源保留的记录选择最近可读策略。这里使用已保存时间进行排序,向页面传递原文字。 代码GoalResearchHistory在完整读空时为链接来源显示覆盖、策略和原任务入口。非空来源和本机 Goal 沿原逻辑渲染。窄窗把按钮放在策略正文下方。 代码
对主干的风险 / Risks
主要风险是把来源故障误当空,或让空态盖住已有事件。实际打包页面在同一隔离 SQLite 和原生 CLI 下完成基线与候选对照。本机空态和非空来源一致,阻断历史请求出现失败与重试,恢复后才显示空态策略。已读回真实原来源策略及原任务,非空原来源仍可完整读取。TypeScript 打包、研究读取检查、标准合并前的 4 个直接和 17 个选定检查均通过。当前配置关闭远端 CI 等待,评审使用上述本地验证。旧归档没有策略记录时,页面保留来源说明和原任务入口。
我的整体评价 / Verdict
这个增量帮助后续读者从原任务和策略理解实验推进,显示的依据来自现有记录。首屏保留一次覆盖说明,显示策略正文和原任务入口。窄窗中文本用整张卡片宽度,按钮位于正文下方。 打包 Chat 的桌面和窄窗已检验,安装后原生窗口仍需单独回读。 可用同源状态完成用户路径,现有来源身份、存储和执行规则保持。 桌面和窄窗证据
Exact head 625abaf9bbb90106c257ee81e323f3c9f711b17c.
English verdict: APPROVE — validated linked empty-state behavior, preserved populated history, and verified source read recovery.
Goal And Delivered Outcome
A linked experiment can have a saved strategy and original Tasks even when its Explore history returns zero records. Its Research tab showed an empty chart and offered a research-mode control that was unavailable on the linked source. The tab now shows the available strategy and a direct route to original Tasks after a complete empty read. Related to #8278.
Author Declaration
Written by model_agent, GPT-6.1 Sol from OpenAI.
Implemented against
Native App source Goals.
runGoalSchemaandGoalResearchHistoryGoalResearchHistoryand existing Task view routingScope And Continuation
This is a presentation change using the existing status and Explore readers. The preserved strategy is the agent's recorded statement with its timestamp. A populated timeline continues to show its original Explore events.
Validation
625abaf9bbb90106c257ee81e323f3c9f711b17cfinishedsyntheticandauthorized_private_read_onlyThe visual checks cover packaged Chat. Installed desktop readback follows rollout.
Frontend / Visual Evidence
Desktop before, installed baseline assets on the same isolated synthetic source.
Desktop after, packaged candidate with the original strategy as the main content and the existing Tasks route.
Narrow after, 390 px. The strategy uses the full card width and the Tasks button wraps below it.
All images use the same synthetic source. The completed empty read states the Explore limit once and keeps refresh and access to other saved evidence.
Type of Change
LoopX Area
Boundary Checklist