Skip to content

fix(workspace): show retained strategy when linked research is empty - #8283

Merged
loopx-agent merged 1 commit into
mainfrom
codex/research-source-empty-state-20261107
Nov 7, 2026
Merged

loopx-agent merged 1 commit into
mainfrom
codex/research-source-empty-state-20261107

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

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.

Criterion Disposition Symbol or path Evidence
Read the original source through the installed workspace route implemented runGoalSchema and GoalResearchHistory Packaged linked-Goal read from isolated Chat and the original read-only source
Keep failure distinct and retain scope implemented GoalResearchHistory and existing Task view routing Blocked history request, retry and same-source Task readback

Scope 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

  • Tested revision 625abaf9bbb90106c257ee81e323f3c9f711b17c
  • Run state finished
  • Input classes synthetic and authorized_private_read_only
Check kind Result Evidence
static passed Chat build with TypeScript checking, original analysis read smoke, and standard premerge with 4 direct checks and 17 selected checks
real_entrypoint / real_backend passed Packaged Chat read the retained strategy from source status and opened original Tasks. A populated source still showed its complete Explore history.
regression_parity passed Same synthetic linked source showed the old empty setup card on the baseline and a recorded strategy on the candidate. A failed history request showed retry and recovered after restoring the connection.

The visual checks cover packaged Chat. Installed desktop readback follows rollout.

Frontend / Visual Evidence

Desktop before, installed baseline assets on the same isolated synthetic source.

before-desktop

Desktop after, packaged candidate with the original strategy as the main content and the existing Tasks route.

after-desktop

Narrow after, 390 px. The strategy uses the full card width and the Tasks button wraps below it.

after-narrow

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

  • Bug fix
  • Documentation update

LoopX Area

  • Public docs or presentation surface

Boundary Checklist

  • Public-safe diff, text and synthetic captures
  • Scoped to the linked Research read and existing Task navigation
  • RFC diff gate passed
  • First viewport included
  • DCO signed commit

…plore records

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

@loopx-agent
loopx-agent merged commit f301bfc into main Nov 7, 2026
20 of 28 checks passed
@loopx-agent
loopx-agent deleted the codex/research-source-empty-state-20261107 branch November 7, 2026 12:18
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