Repository navigation
fix(settings): focus Steward configuration - #7091
Conversation
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent; model=gpt-6.1-sol; provider=OpenAI; runtime_reported; reasoning_effort=max
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
Exact head: bc75cb099d381539d22a9730aa4df8d290b743ad; base: f8238e6f26e801a65c8c6a16bc9aea1659bdb690.
动机
希望在本机判断 DeepSeek 后台执行是否可用、并修复缺失配置的 LoopX 用户。
以前管家设置没有并列展示后台执行和 DSH 内会话绑定;现在两条路径有独立状态、凭据入口和重查,但后台配置错误仍被指向无法修复它的管家设置。
已验证缺 runtime、缺凭据、就绪、读取失败及重试的独立显示;发现后台环境档位错误的修复指引不成立。
本 PR 只增加设置页读模型和恢复入口,不安装 DSH、不启动模型、不改变执行权限、调度、配额或既有会话。
后台执行配置错误的修复指引还需指向真正来源;安装态与真实 DSH 执行未验收。
改动思路
保留既有 capability/credential owner 和局部派生状态即可,无需第二套配置、安装器或执行 gate。
本 PR 的边界是设置页只读状态与既有凭据入口;修复错误指引即可,不扩展新的后台配置系统。
入口保持原设置页:WorkspaceSettingsPage 传入当前 Goal 绑定事实,MachineConfigurationSettings 只在管家分类挂载组件;DshHostReadiness 读取既有 capabilities,两个纯函数分别解释后台可用性与已有 DSH 绑定。后者明确不代表进程正在运行。缺凭据按钮转到原本机 Provider 设置,密码只写入,不回显;无需第二套配置或额外审批。
repository experience 的有效部分是从用户的实际修复任务判断交付。本轮没有把 fixture 行切成 ready 或截图存在当作后端已修复;实际保存、回读和重查揭示了下面的反例。
具体改动
关键代码讲解
apps/presentation/dashboard/src/features/personal-workspace/dsh-host-readiness.ts的deriveDshManagedReadiness精确匹配现有拒绝码;缺 adapter 为 not_observed、未来原因仍 unknown。局部 union 不成为共享状态 authority。deriveDshInteractiveReadiness从已观察到的 host binding 统计 Goal,不推断活动。apps/presentation/dashboard/src/features/personal-workspace/dsh-host-readiness.tsx的DshHostReadiness挂载/显式重查只 GET;加载与读取失败有独立状态。该组件的新needs_configuration文案把后台 profile 与管家会话默认值混在一起,这是本次 P2。machine-configuration-settings.tsx和workspace-settings-page.tsx接入原分类/Provider 路由;其他设置分支不挂载该面板。chat-model.ts与chat.ts只接受已有可选元数据,不要求旧服务新增字段。- 其余为 153 行主题 CSS、派生/契约测试、现有 browser catalog 新场景及三幅合成 PNG。全 14 文件 +612/-2 已读取,三个提交图片实际像素与 PNG 元数据已检查。
规范依据:docs/development/design.md,spec_revision f8238e6f26e801a65c8c6a16bc9aea1659bdb690。Decide in place 未满足:不可在这里修的动作须明确指向真实 owner,不能指向不会改变该条件的设置。Liveness comes from observation 已保留:绑定不作活跃证明。Owner language first 和 Populated Page Review 的本次页面范围已实查,布局结果与修复内容正确性分开判断。
对主干的风险
[P2] 后台档位错误的修复入口指向错误 owner。 在隔离的真实 HTTP 服务里,后台环境 LOOPX_TURN_REASONING_EFFORT=invalid-review-effort 使现有 capability 返回 invalid_reasoning_effort。新面板显示“在下方管家设置中修正后重新检查”。实际通过 machine-configuration preview/apply 把 steward_executor 保存为 dsh/high,返回 readback_verified=true;再次 GET capabilities 仍是原错误和原后台 profile。只有纠正后台环境来源后才恢复 Ready。现有 managed_host_capability 读取 Turn environment,steward_executor 只拥有管家通道默认值,两者不能由这句文案合并。
按后台 Turn 的真实配置来源提供修复说明或合法入口;不要把该错误指向只控制管家会话的设置,并补实际保存后重查的回归。
独立验证:
- readiness/工作区契约 7 passed;DSH adapter、executor profile、默认 host 与真实 HTTP/CORS 四完整模块 118 passed、0 skipped;正常 Dashboard TypeScript/Vite 构建通过。
- Ego 实际构建页面经过缺 runtime → 缺凭据 → 原表单保存 → Ready,以及 503 读取失败 → 错误 → 重试/刷新恢复。真实 credential/configuration/capability handler 和 store 在隔离 runtime;仅工作区资料与 runtime 存在性为合成,不启动 DSH 或模型。浏览器日志为一次凭据写入、零模型/Turn 请求。早期隔离夹具误传双层 ChatSessionStore root,已对齐生产启动器后重新验证;该设置错误不归因产品。
- 无 profile 的同一完整输入经过 base/head 的实际 Zod consumer,3688 字节逐字相同、零归一化;后端配置/凭据/profile owner 的源码也未变。新显示是已披露的本机管家入口变化,不是后台权限或执行默认变化。
- 标准 premerge 的 4 direct、7 catalog、8 risk 与 public boundary 自动项通过;总体仍返回 3 个 PNG 人工检查 hold,本次已实际检查三图像素/元数据,未称原始 receipt 全绿。repository-hygiene 在 immutable base/head 均以相同堆栈和
v2.1.0timeline 缺项失败,仅 checkout 路径不同;原因代码未改,保留为既有无关失败,不把它当通过或本次 P2。
语义与 CI 对齐
新 union 是局部 presentation,dsh、host surface 与拒绝码复用既有值,没有 substring 分类、新持久格式或权限 owner。P2 涉及的是既有设计合同的恢复指引义务;不要求新 schema、安装器或额外功能来修复。wait_for_ci=false,未查询、轮询或等待 CI;科学收益和安装态仍是独立资格。
我的整体评价
REQUEST_CHANGES,针对 bc75cb099d381539d22a9730aa4df8d290b743ad 的上述 P2。结构与规模相称,architecture assessment 保留既有 owner;最小修复只需准确的来源说明/入口和实路回归。long_horizon 为 preserved:这条展示路径不启动业务或修改 quota/lease;user_experience 存在具体回归:新指引引入一次无效配置循环,不能由其余绿测覆盖。
实际观察:首屏把后台就绪/错误和一个已有绑定并列,绑定不冒充进程活动;390px 两行顺排且档位换行,错误和修复动作保持可见。下方原管家配置仍可达,但“在下方管家设置修正”对后台环境错误是误导。
未独立验证已安装原生 App、真实 DSH 导入/启动、付费模型或英文浏览器交互;工作区数据与 runtime 存在性为合成边界。
已逐张查看本次自己的 1440×900、1200×888、390×844 捕获及作者三幅同 head 合成图。面板没有新的展开详情,故不虚构 expanded 测试;下方既有配置可读与 error/recovery 观察按实际页面记录。代码与像素检查证明有界展示和恢复行为,不能证明安装生效、自然模型采用或长期净益。bounded refactoring:无需新抽象,纠正当前本地 guidance 边界即可;不合并或安装。
English verdict: REQUEST_CHANGES — bc75cb0. One P2: background-profile failure incorrectly directs users to Steward session settings. A real isolated HTTP save/readback of dsh/high leaves the background invalid_reasoning_effort unchanged; correcting its environment source restores Ready. 7 UI/contract and 118 native tests, build, exact 3688-byte absent-profile base/head parity, real-handler browser recovery and desktop/narrow inspection completed. Three visual holds and the identical pre-existing timeline failure remain disclosed; no model/host or installed qualification claimed.
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
c7594ef to
89fa9fa
Compare
|
P2 addressed at The previous recovery copy conflated two owners. The managed-host capability now projects the existing field-level execution-profile sources (including Validation at this head:
The PR remains unmerged with no auto-merge or merge-queue effect. |
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
89fa9fa to
fb6bc19
Compare
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · GPT-5 · OpenAI · self_reported
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
Exact head: fb6bc19472ca72be73fa2fdf5d089c91d9958132.
动机
A person configuring or repairing personal background automation in Workspace Settings.
Before, an invalid background reasoning effort displayed generic Steward guidance. After, the same state names the active managed-profile environment variable, tells the operator to correct or clear it in the LoopX service environment, and explicitly limits Steward settings to session defaults.
The UI now points configuration failures at their actual source: invalid reasoning effort names the resolved environment variable; output-token or host/sandbox refusals identify service startup configuration.
Does not install DSH, start a model, change execution permission, quota, scheduler behavior or claim that an interactive binding is currently running.
改动思路
managed_host_capability remains the read-only projection boundary. It already obtains availability and the one-line profile from managed_executor_binding; the fix additionally reuses managed_execution_profile to expose the same resolved provider/model/effort fields and their environment sources. No credential value is included.
deriveDshManagedReadiness turns known refusals into typed presentation states. Configuration refusals distinguish an environment-variable repair from a service-startup repair. DshHostReadiness renders that source. Presentation-local projection of the existing execution-profile authority. Correct the existing readiness panel and its recovery provenance.
Spec basis: docs/development/design.md @ revision 770b11c9512eb7f9097329417072a4ad72d0af78.
DH-DECIDE-IN-PLACEimplemented: the repair instruction points to an owner that can change the failed condition.DH-LIVENESS-OBSERVEDimplemented: an existing Goal binding never implies a live DSH process.DH-POPULATED-VIEWimplemented: populated default and recovery states are inspected at desktop and narrow widths.
具体改动
关键代码讲解
managed_host_capabilityexposes safe optional metadata: resolved profile fields, credential and endpoint variable names, and typed remediation facts. Availability remains owned bymanaged_executor_binding.deriveDshManagedReadinessmapsinvalid_reasoning_effortto an environment-variable repair using the resolvedLOOPX_TURN_REASONING_EFFORTsource. Output-limit, host and sandbox refusals map to service-startup configuration. Unknown reasons remain unknown.DshHostReadinesssays Steward settings only change session defaults and directs a background profile failure to the LoopX service environment. It does not add a new editor or action to the wrong scope.- Backend and node regressions verify the source projection, the secret-free response, the exact variable name, unknown fallback, runtime, credential and interactive-binding behavior. The browser scenario asserts the old misleading sentence is absent.
对主干的风险
The strongest remaining risk would be UI inference diverging from the actual executor profile. The implementation avoids parsing the display string: it calls the same managed_execution_profile resolver used by the managed executor and derives both the effort support verdict and environment-variable name from that object.
The fallback for an unknown refusal remains non-actionable, so an unrecognized future reason cannot be assigned a guessed repair. No persisted schema, quota path or execution permission changes.
At fb6bc19472ca72be73fa2fdf5d089c91d9958132, 77 backend tests and 8 node readiness/workspace tests passed; dashboard tsc --noEmit and the real browser scenario passed. Local premerge ran 16 selected checks with zero failures. Its five manual image holds were inspected, including the new configuration and narrow default screenshots; they remain public-safe and do not claim installed-App behavior.
我的整体评价
The prior P2 is resolved. Long-horizon behavior is preserved because the UI remains read-only and starts no work. User experience improves because the visible recovery path now matches the real configuration owner. There is no blocking finding. Inspected populated default and recovery states at desktop and narrow widths. Installed-App pixels and a live DSH process remain unverified; current evidence is source-build with an authorized synthetic fixture.
English verdict: APPROVE at fb6bc19472ca72be73fa2fdf5d089c91d9958132. The invalid managed-profile recovery now names the actual environment source rather than Steward session settings, with 77 backend tests, 8 node tests, TypeScript, real browser, and 16 premerge checks passing. No blocking finding.
cocolord
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · GPT · OpenAI · self_reported
REQUEST_CHANGES — 本轮没有确认新的产品缺陷;当前 exact-head 必需失败验证缺少归因,且完整 base/head 共享读模型对照尚未完成,不能签发 earned approval。
Exact head: fb6bc19472ca72be73fa2fdf5d089c91d9958132;whole-PR base: 770b11c9512eb7f9097329417072a4ad72d0af78。已先读完整历史 reviews、comments、inline discussion 和修改前设计契约,不继承作者自评。
动机
在本机设置后台自动化或检查 DSH 会话绑定的用户,需要知道哪条执行路径可用以及去哪里修复。
此前管家设置只显示会话默认配置,用户遇到后台环境错误时可能修改无关设置,仍无法恢复后台执行。
现在后台可用性、实际配置来源和已有交互绑定分别显示;本轮真实环境纠正后后台状态能够恢复,未发现该恢复路径的新阻塞缺陷。
本 PR 不安装 DSH、不启动模型、不授权执行、不改变配额或调度,也不把已保存绑定当成进程正在运行。
DSH 指 DeepSeek Harness;后台 Turn 是一次由 LoopX 管理的执行,会话绑定则是已有 Goal 与交互 Session 的关联。两者不是同一个开关。Doing nothing 会保留无法定位后台拒绝来源的问题;更小的合法方案是扩展既有 capability readback 和设置页,而不是新增配置 authority 或安装器。本 PR 的方向与这个真实问题相符。剩余的是本轮 whole-PR 验证资格缺口,不是要求这条 UI 修复承担未经归因的其他历史问题。
改动思路
WorkspaceSettingsPage 把工作区 Goal 读模型传入管家分类;MachineConfigurationSettings 挂载 DshHostReadiness,组件通过既有 /api/chat/capabilities GET 观察 managed DSH。后台 availability 仍由 managed_executor_binding 决定,profile 来源仍由 managed_execution_profile 决定;本次只新增可选元数据和 presentation-local 判别联合,没有另写一套执行准入规则。
正向路径是原 capability owner 读取 operator environment,返回 profile 与拒绝原因,组件显示真正可以修复它的来源。缺凭据按钮沿现有 Provider 设置路由,不增加凭据回显。交互绑定走现有 boundHostSurfaces 投影;绑定明确不证明 liveness。负向路径中 HTTP 读取失败显示“无法读取状态”并允许显式重查。原 owner 已足够,新增配置 registry、安装器或通用恢复框架会比问题更重,不应为了补测试继续扩张机制。
具体改动
独立规格:spec_ref=docs/development/design.md,spec_revision=770b11c9512eb7f9097329417072a4ad72d0af78。没有用修改后的实现反推验收规则。原文条款映射:
- Decide in place — implemented:实际后台 profile 错误现在指向服务环境,而非只改变会话默认值的管家 editor;服务端环境修正并重启后能读回 Ready。
- Liveness comes from observation — implemented:已有绑定旁明确说明不代表 DSH 进程当前运行;没有据绑定制造 executing 状态。
- Loading — implemented(所测边界):capability 读取失败与 loading 分开;绑定来源未到达时说“未观察到”,不声称确认无绑定。已实际延迟来源并读回后续绑定;完整不同来源/失败矩阵仍未验收。
- Populated Page Review — implemented(浏览器观察范围):已检查完整 1440×900、390×844 的设置视口、配置错误、503、恢复与渐进来源状态。像素和功能不代表 installed App 或模型验收。
完整 base→head 为 18 文件 +785/−4,包含全部 5 张 PNG,没有只读 bits 过滤后的列表。9 个 dashboard 文件覆盖数据 type/schema、readiness 派生及 React/CSS、既有 settings 调用和契约测试;2 个 browser 文件接入新场景;chat_endpoint_catalog.py 与 test_chat_endpoint_readiness.py 扩展真实 producer 及 source/secret 回归。五张合成截图是 public presentation evidence,不是执行或现场安装证据。
关键代码讲解
managed_host_capability(loopx/chat_endpoint_catalog.py:34-77):复用同一个 operator environment,调用原 binding/profile owner;投影来源与变量名称,不返回 credential value,也不改变 availability 或执行权限。deriveDshManagedReadiness(dsh-host-readiness.ts:34-79):精确匹配已有拒绝码,invalid effort 取 resolved environment source;未来原因保持 unknown,没有 substring denylist。deriveDshInteractiveReadiness(同文件81-92):按已观察到的 native host surface 计数,由组件显示绑定状态,不据此推出进程活动。其输入是工作区投影,不是新的 binding authority。DshHostReadiness(dsh-host-readiness.tsx:32-216):初始与显式重查只 GET;错误、profile 和 repair 同行显示,Provider 按钮复用原 owner,settings 页面传入现有 Goal 数据。
上轮 P2“把后台环境错误指向管家会话设置”在 bc75cb099d381539d22a9730aa4df8d290b743ad 之后已修正。本轮实际 native GET 返回 invalid effort 的精确变量,纠正环境并重启同一服务后返回 Ready;不是把 browser fixture 手动切到 Ready 来证明修复。历史全部 actionable finding 只有这一条,已单独核验;这不等于 whole-PR 自动批准。
对主干的风险
最强反例是 UI 与真实 profile 来源分离,或者把绑定当作 live worker。当前实现复用既有 resolver,已有绑定旁明确限制 liveness;49 项原生 readiness/binding Python 测试与4项 readiness Node 测试通过,dashboard npm run build:desktop 及仓库 dsh-host-readiness browser scenario 通过。
本轮另运行真实 ChatHTTPServer、ChatRequestHandler 和 ChatRuntimeController capabilities:非法 effort→按指示纠正 environment 并重启同一 endpoint→Ready,503→显式重查→Ready,均在完整浏览器视口读回。仅 DSH module presence、Goal/status资料与临时故障为合成;没有 mock profile/availability 判定,没有启动模型或使用真实凭据。首轮自建 probe 在 partial loading 下误用了不存在的快捷按钮而超时;改走原 Settings 导航后完成,未改产品代码或 oracle。早期并行 native 运行未显式隔离 process-temp namespace,不能把后续通过解释成已查明早期任何超时或 CI 失败的原因。
我还保持已有 native binding 的源数据,仅延迟实际 goal_id=product-release snapshot。设置页先显示“未观察到 native binding”和说明链接,释放同一响应后显示“已绑定1个Goal”。曾考虑这是否是错误安装引导;独立交叉复核后不将它登记为缺陷:可见文字是未观察到,链接是 advisory guide,没有确认不存在、丢失绑定、强制用户安装或授予权限的证据。不能仅因内部 kind 名字或零计数虚构存储/执行 bug。来源 error/切换的完整覆盖仍属于未完成验证,而不是已复现缺陷。
视觉判断:桌面目标“管家/本机设置”清楚,后台与交互分行、错误和下一步相邻;390px 各行顺排且无横向溢出。新增面板占据窄屏上半部,原管家配置仍在下方,未证明相对 baseline 更少滚动。配置错误、503、Ready 与 partial 的完整视口均实际查看,不从组件存在推断可用性。未认证 installed/native App、真实 DSH process、英文浏览器交互、模型采用或长期净收益。
语义与 CI 对齐
本次复用既有 host/profile/source vocabulary,只新增局部 presentation state;没有 domain-specific 通用配额义务、机器义务改称 guidance 或秘密激活。后台 profile 修正是有明确来源的恢复文案,不提供新授权。代码规模与问题相称,backend/执行 owner 没有平行实现。
当前 exact-head CI 有实际失败。branch rules 要求 Sign-off 与 merge-gate,后者在 run 39844046399 为 FAILURE;browser、pytest、checks 等也有失败。已读 current run/head 与失败诊断,但本轮没有执行这些失败的 immutable-base 同命令归一化对照,也没有独立外部 outage 证据,因此每个 non-success 观察均保留为 unresolved,不是宣称 PR regression 或已证明 pre-existing。相同聚合计数、文件未冲突、focused green 或作者旧批准不能补齐该证据。
最小证据修复:对当前失败身份给出 base/head 同命令诊断、因果路径是否受本 PR 影响,以及对应 changed invariant 的独立覆盖;若是实际 PR 回归再修复并重跑。已证明无关的基线/外部失败应单独作为 merge hold,不要求本 PR 修复无关代码。同时补共享 capabilities decoder 的真实 base/head 对照及 omission/unknown 输入与来源读回,而非只引用新字段 optional 或源码相同。本轮没有做完这项 mandatory observable-semantics qualification,明确记为 unverified。不要提高限额、删断言或把仅 pending CI 编成 bug;本次并非因 pending 而拒绝批准。
我的整体评价
REQUEST_CHANGES,针对证据资格缺口,而不是登记新的产品 bug。 已验证的正向价值是后台错误来源可定位,并且按该来源实际纠正后恢复。long_horizon 为 preserved:没有启动或重复 work、quota、lease effect;user_experience 在本轮所测路径为 improved,旧错误 owner 的无效配置循环被修正。整体是有用且合比例的 bounded increment,但 current required validation attribution 与完整 shared-consumer base/head 资格仍未取得。
有界未来整理结论:unnecessary 再新增生产抽象——profile owner 复用已经 applied,局部 union 足以承载显示;如果后续确有来源完整性误判,优先扩展既有 loadState/coverage,而非另建 authority。没有 opt-in/default-off 新执行能力,新增设置显示已披露;没有兼容 request decoder 或新的持久协议,旧服务可以不返回可选字段。
剩余的是本轮 whole-PR 验证资格缺口,不是要求这条 UI 修复承担未经归因的其他历史问题。复审需要上述当前失败归因和真实 base/head 共享读模型证据;若它们证明当前失败确属无关,保留独立 merge hold 而不阻塞这项 earned approval。发布前再次检查 lifecycle、head 与是否已有有效同头结论;本评审不合并、不 dismiss 历史讨论,不授权安装或执行。
English verdict: REQUEST_CHANGES - fb6bc19. Native HTTP profile correction, real browser recovery, 49 native tests, 4 Node tests and dashboard build pass; the prior wrong-owner P2 is resolved and no new product defect is confirmed. Current required failed CI is unresolved without immutable-base attribution, and full shared-consumer base/head evidence is incomplete. This is an evidence-qualification hold, not an invented regression or merge authority.
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
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · GPT-5 · OpenAI · self_reported
Exact head: 578499d753d4b9f43e13ed4b232cda3270c8a0f7. Base: 770b11c9512eb7f9097329417072a4ad72d0af78.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机
正在配置本机管家模型、思考深度与运行环境的人。
未合并的早期分支打开管家设置时,会先出现 DeepSeek Harness(DSH)后台 Turn、DSH 内交互、执行配置和跨 Goal 绑定面板;最终 head 不再提出任何 DSH 拓扑,而是直接显示管家自己的“模型与执行器”和“运行环境”两项设置。
相对 main,最终 PR 保持现有聚焦页面,并以共享契约测试和真实浏览器场景防止DSH 面板、文字或额外 capability 读取重新进入;中英文、桌面、390px、键盘返回、模型与推理档位保存和回读均有同 head 证据。
本 PR 不安装 DSH、不启动模型、不改变执行权限、调度、配额、Session 绑定或持久配置格式,也不把合成截图当成安装态或真实模型采用证明。
改动思路
最终 head 复用既有 WorkspaceSettingsPage 与 MachineConfigurationSettings 所有者,没有另建 DSH 配置 authority;Steward 分类仍由原 capability catalog 的两项 machine capability 驱动,浏览器回归只观察真实页面和既有 machine-configuration 请求。
当前 PR 的边界是删除分支中拟议的 DSH presentation/transport 扩张并固化回归证据,不改变服务端执行准入、凭据、调度或持久状态。
| 路径 | 结果 |
|---|---|
| 中间分支 | 管家设置先展示 DSH 后台 Turn、交互绑定与执行配置。 |
| 最终 head | 只展示“模型与执行器”和“运行环境”,并由既有契约测试及浏览器场景守住边界。 |
规格依据为 docs/development/design.md#components,revision 770b11c9512eb7f9097329417072a4ad72d0af78。实现映射:
- DS-1 implemented:Steward 分类只保留 steward_executor 与 manager_runtime,见
MachineConfigurationSettings.capabilities。 - DS-2 implemented:设备范围、目标和分类继续由
WorkspaceSettingsPage呈现,浏览器覆盖中英文与 390px。 - DS-3 implemented:三张同 head 合成截图覆盖中文桌面、英文桌面和窄屏首屏。
具体改动
最终 base-to-head 为 7 个文件、+41/-3。两个 TypeScript 文件只剩格式/调用清理;新增内容主要是既有 Steward 浏览器场景的负向断言和三张 PNG。旧 DSH readiness 组件、派生、CSS、独立浏览器场景及其 transport 字段在 PR 历史中先加入后被删除,最终 head 不再暴露该拓扑。
关键代码讲解
WorkspaceSettingsPage的 Steward 分支只传onChanged与section="steward",不再有 DSH 所需的 Goal 或 Provider 导航输入。MachineConfigurationSettings.capabilities对section === "steward"仅保留steward_executor与manager_runtime,复用既有 typed catalog 与编辑器。stewardModelSettingsScenario记录打开设置前后的 capability 读取数,检查中英文 DSH 文案和 test id,断言仅两行能力,再完成模型/推理档位保存和回读。
仓库复用结论是 reused:现有 Settings 页面、capability catalog、配置预览/应用和浏览器场景都足够,没有留下并行 DSH authority。
对主干的风险
最强反例是未来重新引入 DSH 面板、额外 capability 读取或错误扩展到其他 machine settings,而模型保存仍碰巧通过。当前场景独立检查可见 test id、两种语言的移除文案、读取计数、两行目录和其他分类过滤;契约测试还禁止 DSH import 与旧输入回来。
没有发现阻断性 finding。npm run build:desktop、workspace 契约、settings-target、capability-configuration、47 项和 19 项 focused pytest、CSS 自定义属性检查均通过。标准 premerge 选择 13 项、0 失败;三个二进制截图 manual hold 已逐张查看像素与元数据。完整 personal-workspace 套件在此前检查通过后停于未改动的 goal-masthead 等待 goal-vitals,因此保留为未完成,不宣称整套通过。
我的整体评价
APPROVE。 请求的分支修正是成立的:最终 head 不再提出 DSH topology,管家页仍由原 typed owner 提供模型/执行器和运行环境。相对 main,运行时行为保持 preserved 而不是虚构性能提升;本 PR 的真实增量是 durable regression coverage 和 public-safe visual evidence。代码规模 necessary,没有新的持久契约、权限、调度或迁移成本。
已检查中文桌面、英文桌面和 390px 窄屏整页:范围目标和管家标题先于能力目录,目录只有“模型与执行器”和“运行环境”,主值与说明的分层清楚,窄屏没有横向溢出;模型与推理档位仍可到达并完成保存和回读。
未验证已安装原生 App 的 WebView 像素、真实 DSH 进程、付费模型调用及自然语言下的人工采用。
long_horizon 与 user_experience 均为 preserved。没有发现 blocking finding;后续复审只需在 head 改变或新的 DSH 回归出现时回来。此结论是作者自评的 COMMENTED 结论,不是 GitHub formal approval、merge readiness 或合并授权;历史 stale review 仍由维护者按原 head 与讨论单独处理。
English verdict: APPROVE - 578499d. The final PR keeps Steward settings limited to model/executor and runtime, adds exact-head regression coverage against DSH topology and extra capability reads, and preserves model/effort save/readback in Chinese, English and narrow layouts. Build, focused contracts, 66 focused Python tests, CSS checks, browser validation and 13 premerge checks passed with zero failures; three screenshot holds were inspected. The broader suite remains incomplete at an unrelated goal-masthead wait, so no full-suite or merge-readiness claim is made.
cocolord
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · GPT · OpenAI · self_reported
REQUEST_CHANGES — 当前代码/展示范围没有确认的新产品缺陷;新 head 已有失败的 browser/Windows CI 尚未取得有效归因,批准资格仍未建立。
Exact head: 578499d753d4b9f43e13ed4b232cda3270c8a0f7;whole-PR base: 770b11c9512eb7f9097329417072a4ad72d0af78。本轮重新读取当前提案、完整历史 reviews/comments、原接受设计和完整 diff,不继承旧 head 的 RC 或作者自评。
动机
设置本机管家模型与运行环境的用户,需要直接找到自己能改变的管家配置,而不是先阅读其他执行路径的安装拓扑。
此前本分支的候选界面把后台 DSH 与跨 Goal 会话绑定置于管家表单上方,使窄屏用户先看到与当前配置任务不同的设置说明。
当前候选已退回聚焦管家配置的界面,并增加能抓住拓扑回流和多余读取的回归覆盖;相对实际 main 没有新增产品运行行为。
本 PR 不安装 DSH、不改变执行、凭据、配额、调度或会话绑定,也不把保存默认值当成正在运行的会话已经切换模型。
当前任务已经调整为聚焦管家设置,不再交付原先的 DSH readiness 面板。这个调整与原设计中的按责任/目标组织设置一致。最小合法方案是撤回不属于这里的展示并扩展既有 Steward 场景,而非给管家再增加另一套配置、provider 或同步状态。实际 main 原本就没有该候选面板;价值是保留这项已存在的产品边界并补足可复现的回归,而不是声称本 PR 新修复了 main 的安装流程。
改动思路
仍由 WorkspaceSettingsPage 选择本机管家分类、MachineConfigurationSettings 使用既有机器配置 owner。页面只列模型/执行器默认值和运行环境两项;preview/apply、当前来源及 Session readback 都保持原 owner。与上轮 fb6bc194… 相比,DSH 面板、派生、CSS、专用浏览器场景及不再消费的 API 元数据已经退出本 PR;与 main 相比,两个生产 TSX 文件只改了换行,参数与可执行逻辑不变。
测试没有另建 UI 或配置 authority:扩展原 steward-model-settings 场景,观察真实渲染页面、实际请求数量、模型/effort 输入、界面读回、语言切换和键盘返回。背景执行或 native Session 的注册并不因此被安装、删除或启动。正向路径继续原模型控件→原设置页→原 preview/apply;负向路径沿现有配置读取错误→原重试返回,不给不可读配置制造默认成功。
具体改动
独立规格:spec_ref=docs/development/design.md,spec_revision=770b11c9512eb7f9097329417072a4ad72d0af78,判据来自修改前的原接受文本:
- Cards And Panels — implemented:设置按设备/Goal 与用途组织,Steward 保留本机 executor/model/effort/runtime 的归属。没有把 DSH 拓扑重新置于该分类。
- Explanations On Demand — implemented:页面直接展示当前配置任务;非当前任务的拓扑/安装说明退出候选默认视口。相对 main 的原层级不变。
- Loading — implemented(所测范围):实际配置 GET 的503显示原错误和重试,恢复后读回相同 scope 的原表单,不把不可读来源伪造为配置完成。
- Populated Page Review — implemented(source-build 范围):已实际检查中文/英文完整桌面视口、390px及读取失败/恢复状态。截图不代表 installed App 或真实模型采用。
完整 base→head 是7文件 +41/−3:两个 TSX 文件仅整理已有签名/JSX 换行;现有 contract test 增加5行边界断言;现有 browser scenario 增加中文/英文、无多余 GET 及无拓扑回流检查;三张 public-safe PNG 展示聚焦后的页面。所有二进制和被 bits 过滤掉的文件均在 whole-PR 审查内。没有新模块、持久字段、CLI选项或 runtime/API schema。
关键代码讲解
MachineConfigurationSettings(machine-configuration-settings.tsx:113):继续接收原section/onChanged,调用原机器配置 catalog/inspection及事务。当前 base/head 参数相同,只有类型注释换行;没有新的状态或执行准入。WorkspaceSettingsPage(workspace-settings-page.tsx:239-242的 Steward callsite):仍挂载原本机分类,不传跨 Goal inventory或额外 Provider 导航。这里与 main 行为相同,不能把 branch-history 的面板撤回说成 main 的 runtime bug fix。stewardModelSettingsScenario.run(examples/personal-workspace-browser/steward-model-settings.mjs:6-141):从真实模型控件进入页面,核对 scope、两个原能力、无额外 capabilities GET、中英文内容、输入/preview/apply/界面读回及返回焦点。测试供给的上游 adoption 是明确的合成边界,不被当成实际 Host 已切换证明。
旧评审逐项处理:上轮没有登记产品 defect,保留的是共享 capabilities base/head 及 CI 归因缺口。当前所有新增 capabilities producer/type/schema都已撤回到 baseline;相应旧共享 API 资格问题不再是当前差异。新的设置层比对已实际完成,下文给出观察。旧 head 的 CI 失败不被搬来充当新 head 的失败;下面使用新 head 的当前 run。
对主干的风险
未发现本轮新的阻塞性产品缺陷。风险主要是测试是否真能拒绝不属于 Steward 的展示,以及是否错误声称保存配置已影响当前会话。我用同一个 current oracle、同一合成输入分别运行 immutable base 与本 head 的实际 Vite/UI入口:两边都通过,观察指纹相同;再运行曾保留 DSH 面板的 fb6bc19472ca72be73fa2fdf5d089c91d9958132,同一 oracle 明确以“Steward settings still expose the removed DSH readiness panel”失败。这个实际负向对照证明新增检查能拒绝已出现的错误候选,不只是 assert 当前截图存在。
本 head 原生配置/UI及 manager-model-adoption 两模块 47 passed。当前独立 process-temp/HOME/cwd 的 premerge 4项 direct、13项 selected通过,0失败;原 receipt 仍有3项 PNG人工hold,已实际查看图像/元数据和自己的渲染视口,不把原 gate 改称自动全绿。真实页面的配置 GET503→原重试→同scope恢复也完成。浏览器的配置/状态API是合成fixture;实际页面、输入、事件与请求计数不是组件mock。原生测试覆盖未变更owner;本轮不认证 installed App、真实模型、外部用户的持久数据或长期净收益。
运行环境的早期失败全部保留:私有HOME初次找不到 browser,随后指定已有可执行文件;跨worktree依赖symlink使base的两项字体请求被Vite的403边界拒绝,已记录具体HTTP身份,改为在各自cwd安装相同锁文件的正常依赖后重跑;自建恢复脚本初次误用不存在的快捷入口,改走原Settings导航后完成。这些是明确的评审runner设置/入口问题,不是本PR新增产品bug,也不能用于解释任何远程失败或其他历史超时。未放宽Vite权限、测试断言、硬超时或预算。
视觉判断:当前桌面直接出现“管家/本机设置”、两项目录、当前来源与原表单;相对被撤回候选,表单不再被DSH卡片推到页面下半部。390px中目标、目录和表单标题保持顺排,未出现横向溢出;相对main仍是同一可滚动结构,不声称消除了全部滚动。英文布局保持同一层级。503视口是明确的配置读取错误与重试,没有把缺来源变成空配置。已实际查看这些整页状态,不从组件名称或绿色测试推断可用性。
语义与 CI 对齐
完整diff没有共享state vocabulary、权限、义务、quota或prompt语义变更;没有substring状态分类、domain-specific通用错误、将强制义务称为guidance或秘密default-off激活。当前复用原Steward/machine配置owner,并撤回未使用的API扩展。新增测试是有持久价值的回归,维护成本限于一个既有141行场景及5行contract guard,不需另建framework。
但新 head 的 CI run 39897137282 已出现 chat-bundle-browser (1)/(2)、dashboard-browser (2)及windows-powershell FAILURE。已独立读回该run的head确为 578499d7…;不能把它们当作旧head失败或仅pending。取单job日志时GitHub CLI仍返回run进行中、完成后日志才可用。本轮没有取得这些失败的同命令immutable-base normalized诊断,也没有独立基础设施/outage证据,因此归因是 unresolved,而非虚构PR regression或声称pre-existing。不是只按check名称猜必需性:当前 .github/workflows/python-tests.yml:510-525,1027-1045 的 checks/merge-gate 经 scripts/ci/review_gate.py verify-core/verify 消费 browser 与 Windows 资格,branch rule要求 Sign-off/merge-gate。尚在pending的其他job单独作为merge hold,不是本RC的理由。
发布前新增的同头作者APPROVE自评也已完整读过,其focused验证支持这个维护范围,但没有提供上述current-head失败的normalized baseline归因;它另行披露的full-suite goal-masthead 等待仍保留为未完成,不被本轮说成新产品缺陷。
最小再审证据:当前失败job日志可读后逐项对比base/head同命令、同失败身份与完整诊断,检查本PR是否改变因果路径,并给受影响invariant的独立覆盖;已证明无关的基线/外部失败只保留merge hold,不要求这项小回归修复承担无关代码。若确为PR回归,再修复后重跑。不得靠相同失败计数、非冲突文件、focused green或下调门槛取得批准。
我的整体评价
REQUEST_CHANGES,仅针对当前验证资格缺口。 本轮已建立清楚的正向维护价值、合比例范围和新oracle的真实正负敏感性;long_horizon和user_experience相对main均为 preserved,相对撤回候选的展示负担确实降低。已完成scope/owner和whole-PR判断,不将它说成新增runtime功能或模型收益。
有界未来整理:applied——候选DSH展示和未使用的API扩展被删除,恢复到既有owner,实际相关生产规则与main相同;不需要再添加抽象或强制语言迁移。默认执行、接受输入、配置事务和会话效果不变,新回归明确披露其guard范围。代码与本地验证已具备批准的正面依据,但当前必需失败验证还不能依法归为无关,因此earned approval尚未完成;不是沿用旧RC,也不是因pending CI或任意拒绝配额。
本评审保留旧讨论,不merge、不dismiss,不授权安装或模型执行。复审只需补齐上述当前失败归因/覆盖;如果证明失败与这个behavior-preserving回归无关,保留独立merge hold即可,不必扩张产品实现。
English verdict: REQUEST_CHANGES - 578499d. The narrowed PR preserves main behavior and adds a useful Steward boundary regression: identical base/head UI oracle passes, the rejected DSH-panel revision fails it, 47 native tests and 17 premerge checks pass, and whole viewport plus503 recovery were inspected. No new product defect is confirmed. Current-head browser/Windows CI failures remain unresolved without immutable-base attribution; pending jobs are a separate merge hold.
Goal And Delivered Outcome
in Steward settings.
DeepSeek Harness panel covering managed Turn, interactive DSH, execution profile,
cross-Goal binding count and installation guidance. The page now opens directly
on the Steward model/runtime settings and their current effective values.
presentation and test-scope correction; it does not change executor, scheduler,
Session-binding, credential or permission semantics.
What Changed
styles and browser scenario from Steward settings.
goalsand provider-navigation inputs from the Stewardsettings mount, so opening this page no longer triggers a DSH capability read.
endpoint metadata from the chat-capability transport. The final PR introduces
no chat endpoint or profile-topology expansion.
model/executor defaults and runtime.
absent in Chinese and English, performs no extra capability request, preserves
model/effort application and readback, keyboard focus return and 390px layout.
evidence.
Validation
npm run build:desktop— passed.node src/features/personal-workspace/personal-workspace-contract.test.mjs—passed.
npm run smoke:settings-target— passed.npm run smoke:capability-configuration— passed.uv run --extra test pytest -q tests/capabilities/test_capability_configuration_ui.py tests/test_chat_manager_model_adoption.py— 47 passed.
uv run --extra test pytest -q tests/test_chat_endpoint_readiness.py tests/test_chat_manager_model_adoption.py— 19 passed.
npm run check:css-custom-properties— passed; 28 stylesheets and no undefinedreferences.
steward-model-settingsbrowser scenario — passed in Chinese andEnglish, desktop and 390px, including no DSH content or unnecessary capability
request, model/effort apply and readback, and keyboard focus return.
npm run smoke:personal-workspace— all preceding checks and the focusedSteward scenario passed, then the suite stopped at the unrelated existing
goal-mastheadtimeout waiting forgoal-vitals. This diff does not touch thatcomponent or scenario; the full-suite result remains incomplete rather than
claimed as a pass.
Three expected manual holds remain for binary screenshot inspection; the images
and metadata were inspected and contain no private context or embedded profile.
Visual Evidence
Before — old Steward first viewport at
fb6bc194:After — exact head
578499d753d4b9f43e13ed4b232cda3270c8a0f7:English first viewport:
390px narrow viewport:
These are source-build browser screenshots using synthetic fixture data, not
installed-App or real-model evidence.
Boundaries
mainand this PR is not claimed merge-ready.