Repository navigation
feat(dsh): qualify latest host and add secure launcher - #7089
Conversation
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; reasoning_effort=max
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
[P2] 保留全局位置传入的凭据 runtime root。 register_dsh_launch_command 再次声明 --runtime-root,其默认值 None 覆盖顶层 parser 已解析的值。真实 CLI 的 loopx --runtime-root ROOT dsh-launch ... 因此选择默认根目录;同样参数放在子命令之后才选择 ROOT。我用两个合成凭据源和实际 exec 子进程验证:前者静默选择 fallback 凭据及端点,后者选择 explicit 凭据及端点,两者都返回成功。请复用全局参数,或避免子 parser 的缺省值覆盖已有值,并从正常 CLI 覆盖两种位置。位置:dsh_launch.py:45–51。
动机
使用 LoopX 机器凭据启动 DSH 的用户,需要在受支持的宿主版本上直接开始交互或无界面任务。
此前插件只资格到旧宿主,用户还需要自行传入提供方环境;本 PR 希望让新版宿主可安装运行,并通过一个命令读取已有机器凭据,减少重复配置和密钥进入命令行的机会。
本次已经验证新版打包启动、安装恢复和合成凭据启动,但全局参数位置会选错凭据根目录,尚未交付一致的启动结果。
范围是可选 DSH 集成、启动入口及相关说明;不包含新的模型权限、共享安装升级、发布或合并,也不把一次工具调用当成长程收益证明。
改动思路
保留 DSH 对会话、模型、工具和账单的所有权,LoopX 继续拥有 Goal、Task、配额和结算。新入口经现有 support-control 分发,复用 operator_provider_environ 读取机器凭据,再用 os.execvpe 启动 DSH;没有增加另一套凭据存储或 Goal 权威。插件依赖资格与运行 smoke 则适应宿主 Web 服务改名。
复用既有凭据 owner、插件和启动分发是合适的;最小修复应留在参数注册边界,避免第二份同名参数默认值覆盖已有选择。
当前 PR 的边界是新版可选宿主的可用安装与正确凭据启动,以及准确的交互/无界面路线说明。
仅修改版本范围不能证明新版服务仍能启停;我实际执行打包运行、profile、安装/卸载及默认关闭对照。反过来,直接构造 Namespace 的单测不能证明正常 CLI 选对凭据,所以补做了普通入口到实际子进程的反例。这里用文字说明分支,未生成或认证流程图。
具体改动
独立规格采用修改前的 docs/integrations/deepseek-harness-control-plane-adapter.md,spec_revision 为 5550e91bab264313d5698eb0d7b23c6b2e5f16da;同时核对该版本插件 README 的安装、Driver、隐私及恢复约定。逐项判断:Authority Boundary 已实现,仍由原 owner 分工;Install And Activate 的新版打包启动、精确会话与默认被动行为通过;Failure And Privacy Boundaries 的密钥不打印路径通过,但显式根目录被覆盖未满足;Validation And Removal 的安装、拒绝不兼容版本、移除和禁用宿主存活通过。规格之后新增的路线说明不能反过来充当旧约定的证明。
全 PR 为 12 个文件,新增 5987 行、删除 5594 行。主要是 lockfile 的 5662/5569 行依赖重解析;我核对直接依赖、锁版本、设置和 overrides,并用 pnpm 10.33.0 冻结安装实际运行。其余包括 144 行启动模块、6 行分发接线、95 行 Python 测试;manifest 扩展已资格预发布范围并更新开发依赖,仍拒绝稳定 0.2.1 和未资格 alpha。README/adapter 说明路线、启动与恢复;两个 smoke 和会话 fixture 适配新版 SDK;两处 self-repair 指令强调可见 peer lane 不构成接管授权,是指令变更而非新的机器强制规则。
关键代码讲解
register_dsh_launch_command(18 行)把入口接入正常 parser;45 行的重复参数是本次阻塞点。现有三个测试直接构造 Namespace,因此没有覆盖全局参数合并。resolve_dsh_launch(59 行)解析可执行文件、隔离 home、凭据根目录并转发 DSH 参数;88 行复用原凭据 owner,默认参数为web,找不到宿主时给出可恢复错误。handle_dsh_launch_command(106 行)执行实际进程替换,环境凭据不会被拼入 argv;support_control.py的注册与分发让正常入口可达。dsh-goalbar-runtime-smoke.mjs对新版webApp/旧webRuntime服务的检查要求共享监听器仍存活,不能以禁用 LoopX 时误关宿主来通过测试。
render_dsh_launch 当前没有调用方,可在同一模块做小幅清理;这是非阻塞建议,不需要新的抽象或额外跟踪任务。已有宿主兼容范围有独立消费者,不应为了压缩锁文件就删掉有效兼容分支。
对主干的风险
已执行 Node 24、pnpm 10.33.0 下的类型检查、229 项插件测试、peer-range、artifact、profile、安装/卸载和 DSH 0.2.1-rc.2 实际打包运行 smoke,均通过。运行 smoke 使用实际 DSH 与打包插件、合成 LoopX CLI;覆盖启动、精确会话、连接生命周期、Start/Pause、禁用和空闲无额外调用,不能据此声称真实模型任务或浏览器完整发布资格。没有改动渲染布局,视觉评审不适用。
Python 选择的入口/凭据套件为 head 83 通过、1 失败,实际 base 为 80 通过、同一失败:test_selected_todo_execution_matches_full_cli 的旧 fixture 触发 canonical_authority_required,失败签名和未改动因果路径一致,单独保留为基线问题。quick premerge 的 6 项直接检查及 4 项选中检查通过,公共边界扫描干净。最初 pnpm 11 的工具链不兼容已保留,使用声明兼容的 pnpm 10 后安装成功;没有据此删除检查或修改锁文件。
语义与 CI 对齐
显式 --runtime-root 必须选择用户指定的凭据 owner。当前普通入口违反该约定:缺省子参数覆盖显式全局选择,再落入 select_default_runtime_root。合成子进程只报告选中标签和端点,未读取真实密钥、未调用模型;默认关闭插件不影响宿主的实测也不能消除这个新入口缺陷。最小复验是正常 CLI 两种参数位置均选择同一合成根目录,另保留缺失宿主、无凭据和参数转发测试。按当前评审策略未获取、轮询或等待 GitHub CI。
我的整体评价
结论为 REQUEST_CHANGES,针对完整 exact head edc9f84e16b9776c164cd480ff14f05b3d35f911。可选宿主资格的增量有实际价值,机制规模总体合理;凭据选择错误使 user_experience 为 regression,长程任务也可能重复使用错误提供方,long_horizon 为 regression。应先修正常 parser 的根目录传播,再审完整 head。
已检查实际插件、CLI、安装与恢复消费者;没有渲染布局变更,视觉评审不适用。本轮未认证 Windows、真实模型任务、现场安装采用、完整浏览器发布资格或可比长程净收益。兼容性应保留既有独立宿主范围;新启动器复用原凭据与 authority 词汇,没有增加新的 peer 生命周期或配额权限。公开 self-repair 文本保留可见性与所有权的区别,但不声称模型已遵从这些说明。采用评审上下文中“核验实际用户结果”的建议,不继承其历史判定或声称经验收益已测量。
English verdict: REQUEST_CHANGES — edc9f84. The ordinary CLI silently replaces a global runtime-root selection and launches with the fallback credential/endpoint. Packed DSH 0.2.1-rc.2, 229 plugin tests and distribution checks pass; the unchanged Python baseline failure is separately attributed. Preserve the explicit root through the real parser and test both argument positions.
cocolord
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · GPT family · OpenAI · self_reported · effort_unavailable
REQUEST_CHANGES — 正常入口会丢失显式凭据根目录;新版资格仍有实质缺口
精确 head:edc9f84e16b9776c164cd480ff14f05b3d35f911。P1:顶层 --runtime-root 被子 parser 缺省值覆盖,启动器静默选择另一个凭据/端点。 本次重新读了此前同 head 的完整评审并独立复现,没有继承其资格结论。没有 last-review-to-head 修复增量,仍须判断整个 base-to-head PR。
动机
从终端使用 DSH 的用户,希望用已设置的机器凭据启动交互或无界面任务,而不是再次手动拼装密钥环境。
此前可选插件只资格到旧宿主,终端启动还需另行设置提供方环境;本PR支持新候选宿主并新增启动命令,意图减少重复配置及密钥进入命令行的机会。
已观察到真实新宿主的启动/禁用及启动器版本/帮助读回;但全局参数位置选择了错误的合成凭据根,完整继续执行到结算的本地测试也未完成资格,因此不能声称普通任务已交付一致安全的结果。
范围是可选DSH宿主资格、复用既有机器凭据的启动入口和准确的路线/所有权说明;不包含新模型权限、发布/共享安装升级/合并,也不把合成调用或启动成功当成长程净收益。
改动思路
架构继续区分两个承载:DSH拥有会话、模型、工具、提供方重试和账单;LoopX拥有Goal/Task/quota/结算。插件提供同会话Driver及GoalBar,已有headless Turn adapter提供无人值守路径。新命令经support-control注册分发,复用 operator_provider_environ 的既有credential owner,再用 os.execvpe 交给DSH;没有新凭据store或第二Goal authority。
相对于不交付、只扩peer版本范围、以及再造凭据或执行框架,现有owner加一个小启动入口是更小且有实际调用者的方案。仅扩SemVer无法证明服务改名后禁用仍保留共享Web,故本次真实packed host测试有价值。反之,直接构造Namespace的单测无法证明正常parser保留用户选择。应在参数注册边界复用已有全局root或抑制子parser缺省覆盖,不需要新协议或更大的兼容框架。
具体改动
全PR为12个文件,5987新增/5594删除;约11231行来自lock重解析。三个实际独立评审组同时覆盖启动器、完整dependency/packed host、公开contract/instructions;没有把bits过滤的lock、manifest、docs、tests排除在全PR判断之外。
独立规范:spec_ref=docs/integrations/deepseek-harness-control-plane-adapter.md,spec_revision=5550e91bab264313d5698eb0d7b23c6b2e5f16da;同时读该revision的插件README。以下criterion_id为原无编号段落的审查锚点:
- AUTHORITY(Authority Boundary):DSH执行权/LoopX持久工作权分离,安装不授予绑定/模型权限。implemented:未修改现有owner,启动器只交接已明确选择的host;所有权说明不授予peer接管。
- ACTIVATION(Install And Activate/Same-Session Driver):精确session成功skill调用后才继续,无绑定或目录不能激活。新版真实packed smoke覆盖保留路径;但admission-to-closeout本次失败未完成因果归因,后续结算资格不完整;这是未验证,不宣称新的activation契约回归,不能用只启动代替后续结算。
- PRIVACY(Failure And Privacy Boundaries):不把凭据/原始输出送GoalBar,不接管DSH工具。既有wire未变化;已验证真实launcher的版本/帮助/boot-free配置输出无合成key,实际exec的argv也无key;不宣称DSH执行任意插件/命令后都不可能打印自己的环境。
- REMOVAL(Validation And Removal):卸载/禁用只移除LoopX,保留DSH共享host。implemented:新版实际监听器、live-disable、disabled-package boot及teardown通过,不是仅mock service对象。
另外,ROOT-SELECTION是既有machine credential owner及正常CLI的独立回归锚点,不冒充上述规范中的编号:同revision的loopx/control_plane/operator_provider.py:84–95明确由拥有root的caller传入选择;正常全局参数也已存在。相同显式root放全局或子命令位置当前选错,最小修复在argparse边界并补正常入口测试。
关键代码讲解
register_dsh_launch_command(dsh_launch.py:18)注册可执行文件/home/skills root和透传argv;45–51行重复声明runtime-root,未用SUPPRESS,覆盖顶层已经解析的选择。resolve_dsh_launch(59行)解析binary、home和root,然后使用原机器credential resolver;缺DSH可执行文件给出可操作错误,默认DSH参数为web,--后参数不经shell重解释。handle_dsh_launch_command(106行)用真实exec替换进程;密钥不拼进argv。新support_control注册和dispatch使普通console/module入口可达。- 版本manifest扩展0.2.1 prerelease范围,dev host/SDK统一0.2.1-rc.2;peer smoke继续排除stable0.2.1、alpha及其他未资格tuple。runtime smoke读
webApp或旧webRuntime并要求shared listener存活;connection fixture补新版principal/signal/interactions字段,不新增生产授权分支。
lock不仅是机械噪声:独立比较importers、integrity、全package/snapshot图及transitive变化,包括Cordis和模型/MCP依赖。冻结安装成功,但其MCP版本仍落在已公开advisory范围,不能称安全资格已清。README添加启动方式和隔离home/skills;adapter澄清interactive/headless共享结果契约,60/25/15是文档中的建议投入,不是machine quota或已测使用分布。self-repair及pattern新增“可见peer lane不等于所有权”,是可安装的通用指令,不是运行时新增claim规则,也不只在DSH开启时加载。
对主干的风险
P1 — dsh_launch.py:45–51:保留正常全局root选择。 两个相互独立的合成credential store分别对应explicit与fallback端点,真实普通console以及module CLI均经 os.execvpe 执行受控child。loopx --runtime-root ROOT dsh-launch ...报告fallback;root放子命令之后则报告explicit,两者都exit0。不是只看parse结果,也没有读取owner账号或调用模型。实际child PID保持exec身份,验证了新入口的整个分发边界。请复用全局参数,或用argparse.SUPPRESS防止默认None覆盖;补两种位置、default、argv透传及缺失host测试。这个缺陷会使用户明示配置与实际执行不一致,不能降格为风格建议。
启动器安全边界用合成数据实测:真实安装DSH0.2.1-rc.2的 --version、--help、--profile web --dump-default-config 都exit0且key不进入argv/stdout/stderr。正常child还覆盖缺失/坏credential和环境透传,不混同为真实认证成功。使用独立HOME、DSH roots及进程temp namespace;所有provider/网络安全探针均只允许合成输入及本地边界。未使用owner账户、真实key或paid model。显式选择DSH可执行文件和执行参数是既有工具权限,不是credential-readback或模型/GoalBar远程授权。
新版实际packed runtime、typecheck、peer-range、profile、artifact和installer smoke通过;冻结pnpm10.33.0,实际Node26.0.0/darwin ARM64,不冒充Node24或Windows资格。base从固定5550e91 revision完整archive与冻结lock独立安装,旧DSH0.2.0-rc.2也通过同样实际启动/禁用smoke。最初同package并发build的runtime尝试在host启动前缺build-temp入口而失败,随后串行通过只是额外覆盖,原失败保留。完整229项插件测试在两次head运行均出现228通过/1失败:admission-closeout等待continuation未排队;同一测试在immutable base也复现同一失败文本。后者否定“仅head才失败”,不自动解释因果或合格持续结算;已核验两侧archive/checkout各自的Python模块来源和选中revision,continuation未排队的失败原因仍未成立。Python launcher/provider/关键入口21项通过;完整入口组合180秒未完成,最初缺Node的runner setup失败也保留,不假称产品bug或已修复。缺失的持续工作/结算证据仍需最小区分性复验。
语义与 CI 对齐
P1 — pnpm-lock.yaml:3081–3083:新宿主资格仍保留已公开的MCP依赖风险。 公开依赖检查当前失败:GHSA-6prh-2h8m-c8cw,锁中的MCP client2.2.0在已知范围,公开修复为2.3.0。base锁的client2.0.0也在范围。两个版本的实际安装transport,在两个隔离loopback服务器上都复现公开advisory的合成header/无害body跨origin转发;没有使用真实凭据或外部服务器。因此不是断言本PR首次引入泄露;新版DSH→MCP-client→SDK的受影响路径仍须安全资格和required gate处理,不能因其叫devDependency就忽略真实host测试路径。请使用上游兼容修复或可验证的受影响路径修复,保留冻结安装/实际host回归,不直接allowlist以获得绿色。
目前远程Python browser/shard/Windows及依赖review仍失败或cancelled,dashboard-acceptance及下游gate未通过;已读取日志及workflow obligation,而不是只看check名字。无法用同环境base/head失败签名完成独立归因的行保持unresolved,separate release build/条件发布skip单独列hold。未把它们全归咎本PR,也没有用作者旧CI或self-review代替当前wait_for_ci=true的观察。
typed状态/authority词汇保持现有binding、principal、lease/claim语义,没有substring denylist或将硬义务叫guidance;新指令明确独立核验不等于接管。DSH关闭实际仍保留host且不激活Driver;共同安装的self-repair新增通用ownership指导是明确的独立指令变化,不虚称整个PR在DSH关闭时字节不变。
我的整体评价
结论REQUEST_CHANGES。小启动入口和实际新host资格确有正向增量,机制总体相称;但root选择回归及持续continuation/required security资格缺口不能挣得全PRapproval。problem_context=not_yet_proven;user_experience为regression(显式root不支配实际启动);long_horizon的旧authority保留,但本次后续工作至结算仍not_yet_proven。不把229数量、绿的distribution CI或作者自评当成价值证明。
相关bounded future-facing pass:同一个argparse/credential owner足够;修复缺省覆盖并把正常入口测试与直接Namespace测试并列,是局部可逆的最值修复。render_dsh_launch暂无活动调用者,可同模块删除以减少维护面,是非阻塞小清理,不需要新抽象。保留真实独立host版本消费者的兼容,不因lock较大而删掉必要范围;60/25/15不作为强制资源规则。通用skill安装及content readback证明delivery,不证明模型已遵从。
残余范围:原生宿主动作使用合成LoopX binding,完整canonical subject范围/恢复counterfactual与后续结算仍未验证;owner真实提供方、Windows现场安装、完整mounted browser及可比长期净收益也未资格,不因此编造回归。本次无产品发布、merge、dismissal或产品编辑。修正root、补稳定实际admission-to-closeout及处理当前依赖/必需失败归因后,以新head重新执行完整评审。
English verdict: REQUEST_CHANGES - edc9f84; real CLI exec selects fallback credentials when runtime-root is global. Packed host/launcher checks pass, but continuation and required dependency/CI qualification remain materially unresolved; no owner accounts or live model were used.
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: 4bfb4c45121e4214bf54a23510582eec7935f69b. Base: 5550e91bab264313d5698eb0d7b23c6b2e5f16da.
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
动机
需要从终端用本机已保存凭据启动 DeepSeek Harness(DSH)的操作者。
旧 head 把 --runtime-root 放在 dsh-launch 前时,子 parser 的缺省 None 会覆盖全局选择,真实进程静默使用默认凭据和端点;新 head 在两个参数位置都保留显式根目录,未传时才使用隔离默认根。
普通 LoopX CLI 经真实合成 exec 子进程验证:两个位置都选择显式凭据 owner,默认位置选择默认 owner,显式根缺凭据时不会回退;DSH 参数、隔离 home 与 skills root 正确转发,合成密钥只进入子进程环境。
本次不新增凭据存储、模型执行权限、安装升级、发布或合并;也不把合成 child 成功当成真实模型、安装态宿主或长期收益资格。
改动思路
启动器复用 support-control 的正常 parser、operator_provider_environ 凭据 owner 和 os.execvpe,只把主 parser 的 runtime-root destination 作为共享选择;子命令别名使用 argparse.SUPPRESS,省略时不再覆盖已有值,显式给出时仍可覆盖。
当前修复边界是参数传播与真实 CLI 回归;DSH 继续拥有 Session、模型、工具和账单,LoopX 继续拥有 Goal、Task、quota 与 settlement,不新增第二套 authority。
| 路径 | 结果 |
|---|---|
| 旧 head 全局 root | 被子 parser 默认值覆盖,静默选择 fallback owner。 |
| 当前 head 两种位置 | 均保留显式 root;省略时才选择默认机器 root。 |
规格依据为 docs/integrations/deepseek-harness-control-plane-adapter.md#authority-boundary,revision 5550e91bab264313d5698eb0d7b23c6b2e5f16da。DSH-AUTH、DSH-PRIVACY、DSH-ACTIVATION、DSH-REMOVAL 均为 implemented。仓库复用结论为 reused:沿用 support-control 分发、机器凭据 owner 和真实 DSH 插件 runtime。
具体改动
完整 base-to-head 为 12 文件、+6154/-5594;主要行数来自冻结 pnpm lock 重解析。当前修复提交只改 dsh_launch.py 与 test_cli_dsh_launch.py:子命令 --runtime-root 使用 argparse.SUPPRESS,不再用缺省 None 覆盖主 parser 选择;无调用方的 render_dsh_launch 被删除。
关键代码讲解
register_dsh_launch_command保留子命令位置参数,但省略时不让子 parser 改写共享 destination。resolve_dsh_launch用最终 root 调用既有operator_provider_environ;显式 root 缺凭据时不会借用默认 root。handle_dsh_launch_command经os.execvpe启动真实 child,密钥只存在于环境,不进入 argv。- 新增真实 CLI 参数化测试覆盖 global、subcommand、default、缺凭据、argv 转发、DSH home/skills 和 secret-free 输出。
对主干的风险
旧的 P1 root 选择缺陷已闭合:真实 CLI 与真实合成 exec 子进程在两个位置选择同一显式凭据 fingerprint 和 endpoint;未传 root 才选默认 owner,显式 root 无凭据时也不会 fallback。
当前仍有独立阻断项。固定依赖图加载 @modelcontextprotocol/client 2.2.0,命中公开 GHSA-6prh-2h8m-c8cw;修复版本为 2.3.0。pnpm audit 在当前 lock 仍报告该问题。必须采用上游兼容修复并重跑 typecheck、229 项测试、artifact 与真实 DSH runtime smoke;不能用 allowlist 换绿。
已执行 8 项 launcher(含真实 CLI child)、161 项受影响 Python 测试、Ruff、compile 和 diff checks。3 项 Python 失败在 immutable base/head 同命令同签名复现。插件 typecheck、229 项测试、peer-range、artifact 和 0.2.1-rc.2 runtime smoke 通过。Premerge 19 项中 18 项通过,唯一 CLI output-budget 失败在 base/head 都出现同一 projection_envelope 诊断;公共边界扫描通过。
我的整体评价
针对 owner 指定的 root 传播缺陷,当前修复为 goal_achieved:用户显式选择的凭据 owner 支配实际 DSH child,两种位置均成立。User experience 从错误 provider 的 regression 改为 improved;long_horizon 的 quota/scheduling 状态保持 preserved。代码规模与局部 parser 修复相称,不需要新抽象。
本 PR 的启动器修复不改变渲染页面或交互布局;已沿 CLI parser、真实 exec child 和环境边界检查。
未在大范围本 PR 中新增页面视觉验收;已安装 DSH App 的人工交互不属于此次 CLI 根目录修复。
但整 PR 仍为 REQUEST_CHANGES,因为 MCP client 2.2.0 的公开安全修复尚未落地。此前一次插件 continuation 测试失败没有在当前 229 项运行复现,历史原因仍未证明,作为残余风险保留。此结论不是 merge、install 或 release 授权,也不 dismiss 任何历史 review。
English verdict: REQUEST_CHANGES - 4bfb4c4. The runtime-root P1 is fixed: a real CLI and real synthetic exec child select the explicit credential owner at both argument positions and never fall back when that root lacks credentials. One blocking issue remains: the qualified DSH graph still pins vulnerable @modelcontextprotocol/client 2.2.0 instead of the 2.3.0 patched release. Eight launcher tests, 229 plugin tests, typecheck and packed runtime checks pass; three Python failures and the CLI output-budget failure match immutable base and remain separate baseline holds.
cocolord
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · GPT family · OpenAI · self_reported · effort_unavailable
REQUEST_CHANGES — runtime-root 已修正,MCP 安全资格仍未完成
精确 head:4bfb4c45121e4214bf54a23510582eec7935f69b。本轮重新判断整个PR,不继承旧结论。当前阻塞是 P1:新宿主锁中的MCP client2.2.0仍受已公开GHSA-6prh-2h8m-c8cw影响。旧runtime-root P1已由独立普通CLI→实际exec读回确认修复;不会继续把已修复问题列成当前finding。
动机
从终端使用DSH的用户,需要用已设置的机器凭据直接启动工作,而不是反复手动配置环境或误用另一套提供方设置。
此前可选插件只资格到旧宿主,终端启动需另行设置提供方环境;新增启动命令应减少重复配置和密钥进入命令行的机会。此前全局root被覆盖还会静默选择错误凭据,本轮修复这个普通入口问题。
当前真实CLI全局root已选择explicit合成凭据,宿主MCP请求路径仍存在已公开依赖风险;因此正确启动的增量已成立,但不能声称完整宿主安全资格成立。
范围是可选DSH宿主、复用既有机器凭据的启动入口及路线/所有权说明;不授予新模型、Goal或peer权限,不包含产品发布、共享安装升级或合并,也不把合成调用当成长程净收益。
剩余缺口是MCP的兼容patched closure或已验证guard,以及required dependency安全检查;另有P2的同home安装/启动recipe说明需要修正。下一步由同一个DSH package owner处理,不需要新控制平面或额外权限。
改动思路
DSH继续拥有会话、模型、工具、提供方重试及账单;LoopX拥有持久Goal/Todo/quota/结算。插件是交互式同会话Driver/GoalBar,既有Turn adapter是headless承载,并非两套控制平面。新入口通过support-control到原 operator_provider_environ,再 os.execvpe 替换进程,不新增凭据store、binding sidecar或执行authority。
最小设计就是现有credential owner加一个薄启动器。仅扩大peer范围无法证明新版禁用仍保留共享Web;另建账本或兼容框架则过重。本轮在重复参数缺省处使用SUPPRESS,保留子命令别名的明确覆盖语义,又不让“未提供”覆盖全局选择,并删除没有活动调用者的render预览。这个同模块边界更小、更易回退,是已落实的bounded future-facing修整,不要求无关迁移。
具体改动
整个base-to-head仍为12文件,6154新增/5594删除,其中11231行是lock重解析。三个实际独立并行组覆盖全部launcher/测试、完整依赖和native host、公开contract/共享skill;另作跨组检查。相对最后已审 edc9f84e16b9776c164cd480ff14f05b3d35f911,只改launcher和Python测试:增加SUPPRESS、删除unused render/shlex、补正常CLI及缺失explicit凭据回归,测试文件95→277行。未用小fix diff代替全PR判断。
独立规范:spec_ref=docs/integrations/deepseek-harness-control-plane-adapter.md,spec_revision=5550e91bab264313d5698eb0d7b23c6b2e5f16da,并读同revision的插件README;新写的Route Decision不是反向证明实现的规范。criterion_id是原无编号段落的审查锚点:
- AUTHORITY:DSH执行权与LoopX持久工作权分离,安装不授予绑定或模型权限。implemented:原owner保留;新launcher只交接显式选择的host。
- ACTIVATION:精确session的typed user/message skill调用,或按call id配对的成功tool/result,再结合唯一binding、quota/reservation才继续;目录或安装不是激活。当前新head完整229项插件测试包含真实generic-CLI admission-to-closeout通过;此前base/旧head失败保留为独立观察,不声称SUPPRESS修好了Driver或已解释原因。
- PRIVACY:GoalBar不承载原始文本、凭据、机器路径或provider错误;DSH仍拥有工具/提供方边界。wire未改,launcher key不进入argv;这不是保证任意DSH插件不能打印自己的环境。
- REMOVAL:禁用/移除LoopX不能关闭DSH共享host;native旧/新宿主证据与当前资格读回覆盖此边界,不把一个service对象存在当成HTTP存活证明。
ROOT-SELECTION 是既有credential owner和正常CLI的独立回归锚点,不冒充规范原编号。原owner明确由拥有root的caller传入选择;现在全局形式真实exec读回选择explicit,而旧审查头选择fallback。缺省、子命令、同时指定和DSH remainder须保留各自明确语义。
关键代码讲解
register_dsh_launch_command(dsh_launch.py:17):--runtime-rootalias的default=argparse.SUPPRESS保留顶层namespace,不赋虚假的None。handler和既有注册调用方签名未变。resolve_dsh_launch(62):按binary/home/runtime-root和原credential resolver准备环境;不存在binary给可操作错误,默认DSH参数web,只去除一个前导--,不经过shell解释。handle_dsh_launch_command(109):真实exec替换进程,key在选中child环境而非argv;当前正常console执行保留PID并选择正确root。删除的render函数无活动生产caller,也不是已发布的持久协议分支。- package manifest资格到0.2.1 RC tuple,锁固定0.2.1-rc.2及其SDK;peer smoke保留旧消费者并拒绝stable0.2.1/未资格tuple。runtime smoke要求
webServer与webApp或旧webRuntime存活,并结合共享index200、LoopX route404和boot退场;connection fixture补新版Peer字段,不新增授权。
原base不变,lock、manifest、Driver/integration及共享skill等相对旧审查头的source bytes未改。复用证据记录原revision/hash并重新检查当前base、caller、平台、依赖和claims;特别是完整1594条base-to-head锁记录与旧审查数据相同,不是继承旧verdict。README新增launcher/home隔离说明,adapter澄清两承载共享结果contract。60/25/15仅是文档建议,不是quota或已测使用分布。self-repair及pattern的“可见peer lane不等于所有权”仍投递给generic和DSH skill用户;不能虚称DSH关闭时共同安装指令字节不变,也不声称安装证明模型已遵从。
对主干的风险
旧finding逐项关闭
- 前一作者review的root P2与本次先前review的root P1是同一个原因。本轮独立实际console CLI观察到全局root选择explicit,真实exec保持PID、原样透传空格/Unicode/换行/分号等opaque argv;不是只看代码或构造Namespace。新增正常module测试覆盖默认/全局/子命令及缺失explicit store,且保留原resolver边界。此finding已修复。
- 前一review的MCP P1没有修复。当前lock SHA及client2.2.0未变,重新安装的实际transport仍在合成loopback反例中转发跨origin的测试header/无害body;当前head的dependency-review也失败。这个结论独立于root修复和229项测试通过。
P1 — packages/dsh-loopx-plugin/pnpm-lock.yaml:3081–3083
新宿主closure仍锁住公开advisory GHSA-6prh-2h8m-c8cw 的受影响client2.2.0,公开修复是2.3.0。实际路径为DSH→dsh-mcp-client→MCP HTTP transport,其configured headers没有额外redirect fence。这是条件性、已公开的依赖风险和required security资格hold;base的2.0.0也复现,不是本PR首次引入泄露,也不是宣称launcher的DEEPSEEK_API_KEY自动进入MCP header。
最小修复是上游资格的兼容patched closure或可验证的受影响路径防护,保留匹配的SDK约定、冻结安装和native/MCP回归,再清除required dependency-review。不能只allowlist以得到绿色。公开正文不附探针payload、原始日志或额外利用细节;所有探针只用synthetic数据、两个loopback服务器,无owner key、实际账户、外部服务器或model调用。
P2 — packages/dsh-loopx-plugin/README.md:118–127
新的推荐命令 loopx dsh-launch web 在没有DSH_HOME时使用隔离的 ~/.local/state/loopx/dsh-home,而前面的普通安装会使用DSH默认 ~/.dsh/profiles/web。当该隔离web profile未另行安装LoopX、也未提供额外overlay时,读者按普通安装→推荐启动顺序会选择一个没有原LoopX插件的profile;原 .dsh profile不会被删除或卸载,已安装的共享skills也可能仍在。问题是实际home选择/profile-loader与recipe不一致,不宣称mounted browser故障,也不要求取消有意隔离。
请明确这个默认差异,并让可直接复制的recipe的安装、读回、启动和移除使用同一个home。已有普通安装可以显式传其home;新隔离安装则先把插件安装到launcher所用home,再用同一路径启动。以无模型profile/bundle读回验证,而不是要求用户重复配置或静默失去Initializer/Driver/GoalBar。
验证与 CI
当前native插件229/229通过,launcher/provider/关键入口29项及独立46个实际CLI/exec案例通过;typecheck、peer、build、artifact/profile和冻结pnpm10.33安装通过;实际Node是26.0.0/darwin ARM64,不冒充Node24或Windows。较早旧head两次228/229和base同一admission失败、180秒广泛Python选择超时及缺Node runner错误都保留;当前通过是新证据,不反推根因或改写旧观察。它证明当前一次完整路径,不独立证明长时稳定性或实地收益。
当前runtime资格最初在host启动前因长review路径触发pnpm tarball filename限制而失败;使用同一内容的较短 p.tgz 输入重试通过15.111秒的实际packed runtime资格,只是runner路径修正,原失败保留,不改tracked代码/lock或产品预算。原旧head并发build-temp失败也作为原revision的观察保留,不混为当前原因。
wait_for_ci=true:当前dependency-review失败;另有Release Artifacts build、chat-bundle-browser(1–3)、dashboard-browser(1–3)、windows-powershell及Python Tests checks失败。这些额外失败没有完成同命令immutable base/head或独立external归因,保留为unresolved证据/合并hold,不推断新的产品bug;当前native通过不能覆盖全部browser/Windows/release路径。条件性deploy/upload/publish及node-forward/presentation/dashboard-acceptance skip另行保留,不冒充通过。其余pending CI不是单独REQUEST_CHANGES理由;这次已有实际复现的MCP P1,不无限等待,也不拿分发CI绿灯替代真实边界检查。
我的整体评价
本轮root修正、真实普通入口回归和去掉unused preview是明确正向、同owner且比例合适的增量;当前229项包括admission/closeout的通过也必须承认。先前源码/Python来源已核验,不再要求重复证明。长期owner/quota/settlement没有新权力或状态迁移,但不声称已经测得效率收益或解释所有历史时序失败。
整PR仍不能APPROVE:唯一已确认当前P1是保留的公开MCP风险和required dependency安全资格。请完成patched closure/guard及冻结安装、实际host和安全negative复验;再对新head重新判断全部PR。原root问题已关闭,不继续索要同样修复;P2需要同home的copyable recipe,但不是独立安全/P1 hold,也不应改掉有意隔离。无merge、dismissal、产品编辑或live-account操作。安装态browser、其他平台和paid provider任务未由本次合成资格证明,也不因此编造产品缺陷。
English verdict: REQUEST_CHANGES - 4bfb4c4; actual CLI confirms global runtime-root fix and the fresh plugin suite passes229/229. The retained public MCP advisory still reproduces and current dependency-review fails; also clarify the bounded P2 same-home install/launch recipe. No owner accounts or live models were used.
…1023 Signed-off-by: huangruiteng <huangrt01@163.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
…nges Signed-off-by: huangruiteng <huangrt01@163.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
huangruiteng
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · max
APPROVE — 精确 head:19dd6629f1baad9d3d7b69b98a41bcfa984a0bf9。完整重审后,没有未解决的阻塞 finding;原 runtime-root、MCP 安全资格和同目录使用问题均有当前证据。
动机
从终端使用 DSH 的用户,需要复用已配置的机器凭据并打开装有 LoopX 的同一份宿主配置。
此前需要手动传递提供方环境,且新启动器曾把全局 runtime-root 覆盖成默认值;安装与启动目录不一致还会使插件看似消失。现在两种参数位置保留同一凭据选择,安装、读回、启动和移除使用同一目录。
已验证正常 CLI 到实际进程替换、DSH 打包宿主及安装卸载;跨来源 MCP 请求被拒绝,同来源请求保持可用。
范围是宿主资格、薄启动器及其使用说明;不包含发布、独立 DSH 安装的自动修补、权限扩展或真实模型效果声明。
改动思路
薄启动器复用现有凭据 owner,宿主兼容性与安全修复交给上游 SDK 和冻结依赖,不复制控制平面。
当前 PR 只交付 DSH 宿主资格、显式启动入口和同目录操作流程;全局 self-repair 指令变更及无依据的投入比例已移除。
DSH 继续负责模型、工具、提供方重试和 Session;LoopX 继续负责 Goal、Todo、配额、验证与结算。交互式插件和无人值守 Turn 是不同承载路径,不能因其中一个测试通过就宣称另一个已具备相同资格。新入口通过原凭据解析器建立子进程环境,再执行进程替换;安装和目录可见性均不授予工作权限。
安全修复选择兼容的上游 SDK,不增加全局 fetch hook 或第二套重定向策略。新传输回归从实际 DSH 依赖链解析 SDK,并进入既有 CI 和 canary 质量阶段。pnpm 9 与新版本确实使用不同配置投影,保留两份映射并用冻结矩阵核对比删掉兼容入口更稳妥。
具体改动
spec_ref:docs/integrations/deepseek-harness-control-plane-adapter.md;spec_revision:663ae88b8f112f73fb9de70947f871b10529c652。采用该版本已经接受的集成合同,未把本 PR 新写的说明反过来当成规范。按原章节逐项核对:
Authority Boundary:implemented。复用原机器凭据与内核 owner,不新增状态、绑定或执行权限。Same-Session Driver:implemented。229 项插件测试覆盖未激活零 I/O、精确 Session 激活、替换和真实 CLI admission-to-closeout;安装本身不启动推进。Failure And Privacy Boundaries:implemented。实际 CLI 验证参数与凭据路由,SDK 从实际宿主链解析;跨来源请求被拒绝,同来源 307/308 请求及 JSON-RPC 响应保持正常。Validation And Removal:implemented。真实打包宿主、安装卸载、live-disable 和全包禁用验证共享 Web 存活,LoopX 路由退出。ROOT-SELECTION:沿用既有凭据 owner 与先前评审 frame,而非伪造规范原编号。正常全局/子命令参数均保留选择;显式根目录缺少凭据时不退回另一份机器 store。
关键代码讲解
register_dsh_launch_command(loopx/cli_commands/dsh_launch.py:17):重复 root 参数使用 SUPPRESS,避免缺省值覆盖全局显式输入;补齐 parser 泛型注解,不改变运行语义。resolve_dsh_launch(同文件 62 行):解析宿主、目录和 opaque argv,复用operator_provider_environ,没有复制凭据优先级或另建存储。handle_dsh_launch_command(同文件 109 行):通过实际 exec 交接宿主;准备失败返回清晰退出码,启动器不把密钥放入 argv 或输出。DSH 自身仍负责其命令、日志和进程行为。- 新 transport smoke(
packages/dsh-loopx-plugin/smoke/dsh-mcp-transport-smoke.mjs:50):以两个纯本机服务器分别验证拒绝和合法请求,关闭资源;不是只检查版本字符串或 mock 一个安全返回值。
整个 PR 为 14 个文件,锁文件占主要行数变化。资格宿主使用 Cordis 4.0.5、MCP client 2.3.0 与 SDK 1.32.0,同时修复冻结图中发现的 fast-uri、source-map-js、Vitest 和 Vite 公告项。保留历史独立宿主 peer 范围,拒绝未资格的 stable 0.2.1。README 明确普通目录与隔离目录的差异,安装、读回、启动和移除使用同一份配置;无依据的 60/25/15 投入比例以及全局 self-repair 指令不再混入此 PR。
对主干的风险
上一轮根目录问题用历史缺陷源码和同一份新回归重新验证:旧头两项全局 root 断言失败、其余六项通过;最终头全部八项通过,与 provider 合计 23 项通过。缺少宿主也经普通 CLI 返回退出码 2。旧 SDK 2.2.0 会被同一真实传输 oracle 拒绝;当前 SDK 两个跨来源场景与两个同来源场景均通过。
当前冻结图 756 个包、772 个版本直接向 npm 官方安全接口复核,没有返回受影响项,旧版本阳性对照可以检出。此前配置镜像返回的空审计数据不作为资格依据。pnpm 9.15.9、10.33.0、12.10.1 在独立目录冻结通过,锁文件保持逐字节一致;未加漏洞 allowlist,也未删断言、放宽预算或改变评分来变绿。
插件类型检查、229 项测试、peer/artifact/profile、实际安装卸载及真实 DSH 运行资格通过;另用正常 loopx dsh-launch 承载同一份打包宿主回归,验证 bootstrap、Start/Pause、live-disable 后共享 Web 存活。这里一部分 LoopX 后端使用合成 CLI,另有独立的实际 CLI admission-to-closeout;没有模型调用。最初外置包装器的模块查找失败通过把相同包装器放入资格宿主的 bin 上下文修正,未改产品断言。
广泛导入 mypy 仍失败:完整、同环境的 immutable base/head 都是 5,144 条相同的源码行/错误详情多重集。新启动器自身的类型参数错误已经修复,scoped strict 检查通过;不声称全库类型干净。初次不完整 baseline 缺少 demo 导入,已补齐后重新执行,未用不匹配计数归因。可选 Python headless SDK 的 27 项因未配置独立 SDK/runtime 而跳过,不冒充 native 插件验证。
语义与 CI 对齐
当前策略 wait_for_ci=false,未获取、轮询或等待新 CI,不继承旧 CI 失败为本头结论。执行了完整受影响 DSH 三阶段资格,并以 quick premerge 补公共检查:6 项直接检查、4 项选中检查通过,14/14 文件公共边界扫描无命中,严格质量回执有效。未限定的本机全量 check 曾报告既有 Goal 迁移问题;源代码边界扫描沿用 premerge 的 registry-free owner,保留相同 14 条扫描路径,不把现有 Goal 健康问题伪装成此 PR 的代码扫描失败。没有改动其状态。
我的整体评价
这次交付的价值是可验证的宿主兼容、安全依赖资格和正确启动流程,判断为 goal_achieved,限于本次 proposal;不是完成整个 S4 或证明长期净收益。long_horizon=preserved:现有精确会话、配额、取消、恢复和单次结算职责保留;user_experience=improved:已配置机器凭据无需再次复制,目录/根目录选择不再静默偏移。
薄启动器复用现有凭据 owner,宿主兼容性与安全修复交给上游 SDK 和冻结依赖,不复制控制平面。 当前 PR 只交付 DSH 宿主资格、显式启动入口和同目录操作流程;全局 self-repair 指令变更及无依据的投入比例已移除。
已检查 GoalBar Client、服务与文档改动;没有渲染布局、样式或首屏变化,视觉评审不适用。 完整浏览器挂载和其他平台发布资格不由本次合成宿主验证证明。
实际插件页面布局代码没有变化;真实宿主和已服务 Client 的验证不冒充完整浏览器发布证据。独立安装的 DSH 不会被源码包的 overrides 自动修补,README 已明确其 owner 的升级边界。Windows、发布和真实模型效益不在本次资格声明中。复用既有词汇与状态 owner,无新的共享状态分类、迁移格式或强制推进规则。无剩余阻塞;可以在显式维护者授权及最终合并就绪读回后合并。
English verdict: APPROVE - 19dd662; the actual launcher/root regressions and DSH-selected patched MCP transport are verified. Full native qualification, 23 CLI/provider tests, 229 plugin tests, frozen pnpm matrix, official advisory control, strict CQR and risk-based premerge pass. Existing broad-import type debt and separate release/platform limits remain disclosed.
Outcome
Qualify the optional native LoopX plugin on DSH 0.2.1-rc.2 and add
loopx dsh-launchto reuse existing machine credentials without copying them into argv or launcher output. Preserve explicit global/subcommand runtime roots and opaque DSH arguments. The README now keeps installation, readback, startup and removal on the same selected home.The source host uses upstream-patched MCP client 2.3.0 / SDK 1.32.0 and a compatible Cordis pin. The actual-host transport regression rejects cross-origin 307/308 redirects while retaining legitimate same-origin requests; CI and the existing canary phase run it. Remaining public advisories in the frozen host/build graph are patched without a security allowlist. Source overrides do not patch an independently installed DSH binary.
DSH owns models/tools/Session/retries; LoopX remains the only Goal/Todo/quota/settlement owner. The Python launcher is process/credential IO, not a parallel decision owner. Interactive plugin and headless Turn retain separate caller qualification. Unrelated global self-repair instruction edits and unsupported effort-allocation percentages have been removed.
Validation
Exact final head:
19dd6629f1baad9d3d7b69b98a41bcfa984a0bf9; target base:663ae88b8f112f73fb9de70947f871b10529c652. Source and synthetic/disposable profiles only; no owner credentials, active Goal mutations, model calls or release.cqr_24e4695129878d248177verifies this exact scope.Product boundary
Existing DSH UI and kernel contracts are reused; no rendered layout, Lark, storage schema, capability switch or permission expansion. Bounded simplification reuses the existing credential owner and validation harness, preserving independent host/tool compatibility. This is S4 host qualification, not a claim of sustained long-horizon effectiveness.