Skip to content

fix(runtime-host): preserve legacy handoff operator - #4696

Merged
M4n5ter merged 1 commit into
mainfrom
fix/runtime-host-legacy-handoff-operator
Sep 4, 2026
Merged

fix(runtime-host): preserve legacy handoff operator#4696
M4n5ter merged 1 commit into
mainfrom
fix/runtime-host-legacy-handoff-operator

Conversation

@M4n5ter

@M4n5ter M4n5ter commented Sep 4, 2026

Copy link
Copy Markdown
Member
English

Summary

Preserve the only operator artifact guaranteed by a released schema-1 Local Runtime Host handoff when Desktop adopts an already-active managed authority. The recovered schema-2 receipt now points to the existing POSIX operator, while schema-2 setup recovery continues to use the portable Node operator.mjs.

This keeps adoption read-only with respect to the managed deployment: recovery does not replay setup, change the exact package, or mutate lifecycle ownership.

Refs #4657

Root cause

The operator-command migration converted a released handoff to schema 2 before choosing its operator representation. That erased the fact that the handoff came from a release which only guaranteed <deploymentRoot>/operator, allowing recovery to persist a receipt for an operator.mjs that had never been converged.

Verification

  • Desktop main TypeScript build
  • Biome on the two changed files
  • Local Runtime Host remote-access recovery tests: 14/14 passed
  • git diff --check

AI use

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: OpenAI Codex adjudicated the review finding, implemented the recovery fix, and ran the targeted verification under maintainer direction.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Does this PR entail a change in behavior?

  • Yes — described under Summary above
  • No
中文

摘要

Desktop 在接管已经 active 的 managed authority 时,为已发布的 schema-1 Local Runtime Host handoff 保留该版本唯一保证存在的 operator artifact。恢复后的 schema-2 receipt 现在指向既有 POSIX operator;schema-2 setup recovery 仍使用 portable Node operator.mjs

接管过程不会修改 managed deployment:恢复时不重放 setup、不切换 exact package,也不改变 lifecycle ownership。

关联 #4657

根因

operator-command 迁移在选择 operator representation 之前先把已发布 handoff 转成了 schema 2,丢失了“该 handoff 所属版本只保证 <deploymentRoot>/operator”这一事实,因此可能持久化一个从未 converge 的 operator.mjs receipt。

验证

  • Desktop main TypeScript build
  • 对两个变更文件执行 Biome
  • Local Runtime Host remote-access recovery 测试:14/14 通过
  • git diff --check

AI 使用

  • 没有生成式工具作出实质贡献
  • 生成式工具作出实质贡献

工具与范围:OpenAI Codex 在维护者指导下裁决 review finding、实现恢复修复并完成定向验证。

检查清单

  • 测试覆盖该变更,且没有变更时会失败
  • lint、format、typecheck 与受影响测试已在本地通过

该 PR 是否改变行为?

  • 是——已在摘要中说明

@github-actions github-actions Bot added the effort/S Under 100 readable lines label Sep 4, 2026
@M4n5ter M4n5ter self-assigned this Sep 4, 2026

@jackwener jackwener left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved at exact head 6fd0b843514e07ac5a27cb26ae5e6fbd883051a3 at the explicit direction of M4n5ter. No technical review was performed as part of this action; M4n5ter requested the approval and accepts responsibility for subsequent handling.


Review notice: This approval was submitted by an automated review agent operated by jackwener and is published at the direction of M4n5ter, who requested this action and is the human accountable for it.

@M4n5ter
M4n5ter merged commit b39e8d3 into main Sep 4, 2026
2 checks passed
@M4n5ter
M4n5ter deleted the fix/runtime-host-legacy-handoff-operator branch September 4, 2026 01:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/S Under 100 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants