Repository navigation
fix(workspace): 用真实 bench 记录打磨原生会话窄屏阅读 - #8040
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…ark-reference-20261104 Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…tached-benchmark-reference-20261104 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: actor_kind=model_agent; model=gpt-6.1-sol; provider=OpenAI; reasoning_effort=max; runtime_reported.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
在窄屏查看 Agent 原生工作会话和长工具结果的用户。 同一份长记录中,原 App 的文字入口占据额外一行;改为同栏图标后,来源与未知状态常显,正文有更多空间,完整记录仍可展开并继续读取。 在 packaged 页面经原生 reader 和 HTTP 详情分页完整读到公开记录,并能通过键盘打开原会话、看到失败和重试结果。 不新增业务执行、会话权限或模型调用,不把公开 display state 当原 solver 轨迹、模型采用或科学收益证明。
本次结论绑定 a515aa52ed595b69826f3d0ef04d8d7ac8ff6403,base 是 b4216d8c79f7f31785cf3bb6845f6847fcf0a6a6。没有该项窄屏请求的独立书面规格;判断依据为公开请求、既有设计与完整公开数据阅读边界。未把本PR新增文档当独立规格,也未将作者声明替代实际页面检查。
改动思路 / Approach
复用原生会话 reader、HTTP binding 校验、openOriginal 和现有图标/token,仅调整投影布局与验证数据;没有第二配置、状态或执行 owner。 本 PR 交付窄屏状态栏和真实公开长记录的完整阅读回归,保留原生打开失败与恢复;安装态、真实宿主和模型采用仍由原工作会话验收承接。
只删原App入口会让用户失去已授权的导航;继续使用重复虚构文本则仍可能漏掉真实记录。现有owner已足够,因此局部改grid和图标,并把既有公开对象接入同一回归,比增加新设置或数据源更合适。用户直接打开已有工作会话即可阅读,无需重新提供已知上下文或新增确认;展开和继续读取属于按需查看原文,原App导航仍为自愿显式操作。
具体改动 / Changes
关键代码讲解
AttachedConversation状态栏:按钮可见文字改为现有ExternalLink,中文和英文aria-label、title保留。点击仍调用同一openOriginal;opening防重、binding 校验、unknown、失败与 requested 读回没有变成图标自己维护的状态。- 同栏布局:
minmax(0, 1fr) auto给状态和44px操作分配空间;保留4px边距让键盘焦点完整显示。不是靠缩小原文或隐藏未知状态获得空间。 runConversation完整记录校验:经真实reader和HTTP详情分页读完后,解析完整JSON与已有fixture比较,保留非BMP前缀测试。不是只找末尾sentinel;分页必须发生,且最多32次。- 共享临时peer:使用现有临时runtime字段隔离测试。固定同一HTTP探针在本base以409失败、在本head以200通过,原默认目录字节不变。
Grid数据保留全部33条记录、8节点/25发现及provenance。runner_invalid、diagnostic-only、score_countable=false和原始负结果/unknown均保留。原生承载peer、tool call和消息仍是synthetic;真实display data不等于原benchmark Chat或完整solver轨迹。
对主干的风险 / Risks
最强反例是图标可聚焦却看不到焦点,或失败/unknown被移出正常阅读路径;元素存在与无横向溢出本身不能排除它们。本轮在新head实际运行打包页面,检查1512×982和390×844的默认/展开状态,并用Tab、Space、Enter走原生打开失败和恢复:alert常显,焦点完整,成功后明确提示请求已发出。临时opener仅接纳一次;两次open POST没有产生业务input。切换同Goal未绑定项不显示worker原文或输入框,返回worker可读回。
本head65项native HTTP/协议测试通过;Chat构建通过;quick premerge为5项直接检查加4项选择检查,0 failure/hold。相同冻结HTTP探针在base失败/head通过。Ego实际三次详情读取后完整对象相等;没有启动模型、solver或新的benchmark,没有查询、轮询或等待远端CI。旧 18c4aa9 的验证未自动用于新结论:重新读了七文件完整差分,重跑测试、build/gate和实际页面。作者完整Playwright组合未由本审查者执行,以上独立入口证据有明确范围。
我的整体评价 / Verdict
已检查实际打包页面的桌面首屏、展开长 JSON、390px 默认及展开状态和原生打开失败。来源与未知提示保持常显,图标同栏、焦点完整,正文与底部回复区更容易同时定位;完整证据仍在独立可滚动详情中。 未验证 installed App、真实本人会话、真实原宿主或模型采用;未独立测得描述中的精确 52px 收益。长 JSON 完整可读不等于研究分析易懂或科学结论成立。
长程行为保持:历史读取、binding切换和显式失败恢复仍由原owner处理,没有新增重试循环或模型轮次。当前切片范围合适,已复用icon/token并去掉失效的文字布局规则;无需扩大成原工作会话整体验收或新增研究执行。未发现阻塞问题;代码审查结论和另行核验的merge readiness、维护者merge权限保持分开。
English verdict: APPROVE a515aa5; the compact native status band preserves accessible explicit navigation and visible recovery, and complete public records survive native paging within the stated packaged/disposable boundary.
Goal And Delivered Outcome
真实 Grid 记录的 390px 页面暴露了一个阅读问题:原生来源、回复状态和“在原 App 打开”换成多行,挤压正文。本 PR 将原 App 入口收进同一状态栏,并用仓库已有真实 benchmark display state 代替 6,000 行重复虚构“验证结果”,验证完整内容经原生分页进入页面。
main。实现已整合b4216d8c79f7f31785cf3bb6845f6847fcf0a6a6;提交前再次核实的目标快照为ecbf905402ccfd9e4d75b2b963b52376b4ef7332。自身差分仍为七个相关文件,不回退主干的其它改动。Author Declaration
loopx-agent).research-history.md数据边界及AGENTS.md的 whole-viewport / public-private / first-screen 规则;以目标快照比较。attached-agent-conversations.tsx/.cssopenOriginalowner 不变codex-attached.mjs,codex_attached_fixture.pyScope And Continuation
openOriginal操作及中英文名称、aria-busy/aria-disabled。没有自动打开、第二执行者或新的配置/状态 owner。CLI/Lark 不增加接口或权限。runner_invalid、diagnostic-only、score_countable=false;宿主 peer、tool call及承载消息仍是 synthetic。这不是原 benchmark Chat、solver完整轨迹、因果提升或模型采用证据。Validation
a515aa52ed595b69826f3d0ef04d8d7ac8ff6403;实现包含上述整合主干,资格比较固定在ecbf905402ccfd9e4d75b2b963b52376b4ef7332,不将后续主干变化当作已验证。finished;新head的远端CI、独立review与merge readiness另行核验。synthetic,public_fixture。uv run --extra test python -m pytest -q tests/presentation/test_codex_attached_conversation.py:最终版本65项通过(27.62s),覆盖原生history / HTTP / disposable peer。LOOPX_PERSONAL_WORKSPACE_PACKAGED=1 LOOPX_PERSONAL_WORKSPACE_SCENARIO=attached-host-follow-up node examples/personal-workspace-browser-smoke.mjs:最终完整流程通过(55.654s)。真实生产reader、HTTP分页及打包页面;协议宿主为临时peer。cqr_c115fa2613e1698b2ac1,七文件 fingerprintc115fa2613e1698b2ac1c196f7ee53d03c6a661bf66375de49fd57224a71a6ed,verify valid;本次最终审阅safe-fix一轮,0 blocker / warning / advisory。Frontend / Visual Evidence
changed,原生工作会话状态栏。18c4aa98a624c2098051dabc86675b3a51847857同一fixture。没有hosted preview或installed / real-host采用声明。最终桌面首屏:
390px同一真实工具详情,左before / 右after;来源与未知提示相同,正文起点前移约52px:
最终390px默认工作记录,原App图标可通过键盘聚焦:
桌面展开后的完整真实展示对象:
隔离原生打开请求失败及完整焦点描边;失败仍可见,随后请求被接纳,隔离opener计数为1:
原桌面首屏 保留供对照;桌面主要差异为状态栏内的原App入口。
Type of Change
LoopX Area
Shared-authority RFC fixture impact
N/A:自身差分不修改生产authority、provider、migration或兼容投影。
Boundary Checklist