Skip to content

test(workspace): restore browser fixtures after steward source verification - #7332

Merged
loopx-agent merged 1 commit into
mainfrom
codex/workspace-source-fixture-171643
Oct 25, 2026
Merged

loopx-agent merged 1 commit into
mainfrom
codex/workspace-source-fixture-171643

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

Workspace browser smokes on current main stop at source verification: the shared fixture has no GET /api/chat/app-steward response, so the composer remains disabled. This affects the development and packaged browser shards and the installed-page release check, including the integration CI for #7330.

Return the shipped explicit-empty discovery response in the existing fixture. Extend the existing startup journey to prove that a failed source read still disables sending, creates no ordinary manager Session and dispatches no model Turn; the normal retry then restores the original startup/cancellation/failure checks. Production routing and permission checks are unchanged.

Validation at 3d48d5baa53ae81ebc6d0168488d9c0757925378:

  • Reproduced the original disabled-composer failure on immutable main 2b01f9450fc40472821c54e71c1da27b7cd5d91b.
  • Startup, Goal draft and answer presentation pass in both development and packaged browser modes (six journeys).
  • Existing real HTTP/Core app-steward smoke passes, including original Session selection, stale/identity/revocation rejection and no replay/fallback.
  • Chat build, both JavaScript syntax checks, public-boundary scan, whitespace and bilingual checks pass. Exact-scope change-quality passes; standard premerge passes all four direct and three selected checks.

The patch changes two browser-validation files only. It adds no configuration, scenario catalog entry, production state, model run or new timeout. Required remote CI and independent review remain separate from these focused local results.

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)

动机

维护个人工作台浏览器验收的开发者和发布验证者。

未选择原管家来源时,旧测试收到缺少来源字段的响应,输入框一直禁用;新测试收到真实协议规定的显式空响应后,可以继续正常对话旅程。

开发与打包模式的启动、目标草稿和回答展示六项旅程恢复;来源读取失败时,输入框与发送按钮保持禁用,会话创建与 Turn 提交计数均为零。

本次只修浏览器验收夹具和既有启动场景,不改变生产路由、权限、界面或真实模型行为。

这里恢复的是原有验收链路:共享夹具缺少一个已交付协议的响应,会让多个场景停在各自断言之前。保留旧夹具会持续阻塞验证;放宽生产解析或跳过来源核验则会改变产品边界。当前修复直接补齐既有测试入口,不要求用户重设来源或增加确认。

改动思路

复用原来的共享 API 夹具和启动场景。夹具只在 GET 来源发现确实“未选择”时返回两个显式空字段;生产端是否可发送,仍由原来的类型解析和来源状态决定。启动场景先用更具体的路由返回503,观察界面拒绝与零副作用,再点击已有重试,让请求回到共享夹具,继续原有取消、重试和执行器连接失败断言。

因此测试没有直接替界面设置“已就绪”,也没有把缺失或失败响应当空选择。两条局部测试变量只控制合成故障和计数,不新增生产状态、配置、协议或权限。这是必要且已简化的修复边界;无需新建一个场景或测试框架。

具体改动

依据是改动前已接受的 docs/architecture/rfcs/app-conversation-and-async-inbox-v0.md,不可变修订 2b01f9450fc40472821c54e71c1da27b7cd5d91b 的原会话 App 入口条款。以下引用既有条文作为映射标签,均为 implemented:Discovery blocks the ordinary composer 对应读取失败时禁用与无会话/Turn;Existing unselected installations 对应合法空选择后恢复普通入口;failure offers retry and conversation settings 对应原失败提示及重试恢复。完整安装态采用仍属于该RFC既有开放边界,不由夹具修复代结。

关键代码讲解

  • installApi 增加6行 GET 分支,返回 ok:true、binding_id:null、session_id:null。已与生产 app_steward_target、HTTP响应和前端联合类型逐项核对,其他方法和路由保留原处理。
  • conversationStartupScenario 增加来源503、发送禁用、Session创建计数和重试;原准备回执、取消后不提交、执行器失败后无虚构运行控制等断言全部继续执行。原 finally 仍释放等待请求并关闭上下文。

全PR仅两处既有验证文件19增0删;生产页面、来源解析器、选择owner及样式均未改。既有开发/打包分片和发布时安装页验证共用该夹具,81项目录没有增加条目。扫描既有来源/权限smoke及同账户最近12个已合PR后,本修复与HTTP/Core身份撤权覆盖分工明确,未发现重复造例;保留两者有真实集成价值。

对主干的风险

最强风险是“空来源夹具掩盖生产拒绝”。独立验证先在不可变基线运行原启动命令,实际退出1:输入框一直 disabled,填充等待30秒超时。精确新头在开发与生产打包模式各运行启动、Goal草稿、回答展示,六次全部通过;启动用例先明确验证来源失败时两控件禁用、Session创建和Turn请求均为零,再通过原重试进入原流程。

另运行现有 npm run smoke:app-steward,跨真实HTTP/Core验证未选择、准确原Session、过期修订、身份替换、关闭、撤权和畸形响应拒绝,读取与选择不重放模型。该独立来源证据补足浏览器合成响应的局限。当前主干更新到 a66d8de30652f2e319465fa2a0939a0fd6b57adb 后,相关生产解析、来源owner、页面、Core smoke和场景目录字节仍与所审基线/新头相同;重新执行原生预合并,4项直接检查、2项目录检查和1项公开边界检查通过,无人工hold。两文件JavaScript语法、生产Chat构建及精确范围change-quality均通过。

未查询、轮询或等待远端CI。基线失败原样保留,当前新头无失败或跳过的必需验证;这组证据只资格化受影响路径,没有声称跑完全部81场景。浏览器API仍是合成夹具,真实HTTP/Core也使用隔离合成来源,不证明实机安装、Lark或真实模型。

我的整体评价

对 3d48d5baa53ae81ebc6d0168488d9c0757925378 的结论为 APPROVE,本次维护任务的可观察结果已经实现。长程维度保持生产承诺与继续执行规则,恢复的是可重复的仓库验证能力,不据此推断长期收益;体验维度保持原有用户流程,增加的失败/恢复自动化没有增加用户准备或确认轮次。已将已有评审经验用于检查实际完整旅程,没有沿用历史结论或把安装工作扩成当前夹具PR的前置条件。

两处差异均位于浏览器验收脚本,已检查生产页面、样式和来源解析器字节未变,没有生产呈现变化。真实安装态、Lark 和付费模型结果不在本次资格范围内。当前没有需要新增截图认证的视觉改动。复用现有协议和测试owner,局部变量保持测试私有,不新增共享词汇;继续合并仍需独立的当前head关闭项、readiness和维护者权限。

English verdict: APPROVE for 3d48d5baa53ae81ebc6d0168488d9c0757925378. The shared fixture now models the shipped explicit-empty source contract; the existing startup case proves refusal/no session or Turn and legitimate retry before its cancellation/failure checks. Six development/packaged journeys, real HTTP/Core source checks, build, syntax and local premerge pass. The old disabled-composer failure is reproduced and retained. Synthetic coverage does not qualify installed/Lark/model behavior; CI was not consulted.

@loopx-agent

Copy link
Copy Markdown
Collaborator Author

Current merge validation for 3d48d5baa53ae81ebc6d0168488d9c0757925378 against target tip adbcb08f2783c52fb049965d0a460eaf87ea64a2: the existing exact-head approval remains valid and approval closeout is clear. The two changed fixtures and production frontend source have no intervening target changes.

Local standard premerge passes four direct and three selected checks. The exact-head packaged startup journey and real HTTP/Core app-steward refusal/retry/no-replay smoke pass; the bundle was rebuilt before the latter. Initial missing dependency/bundle setup failures were recovered and are not product passes. A fresh exact-scope change-quality receipt passes. No CI was queried or awaited under the configured policy.

This fixture-only prerequisite restores the browser validation path for the composer work. No production source, permissions, UI, active Session or model behavior changes. Merge uses the existing published approval plus fresh unchanged-head readiness under the owner's related-work authorization.

@loopx-agent
loopx-agent merged commit 65450d6 into main Oct 25, 2026
23 of 36 checks passed
@loopx-agent
loopx-agent deleted the codex/workspace-source-fixture-171643 branch October 25, 2026 21: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