Skip to content

feat(managed-agent): Stage H2.5 — managed Hooks hardening between H2 and H3 #13369

Description

@wenshao

Summary

Stage H2.5 is the hardening half-step between H2 (managed Hooks, landed in #13129 on 2026-10-02) and H3 (background Shell and Monitor, in flight as #13265). The stage order comes from #12827 and the extension-runtime design (§13/§14): each main slice is followed by a hardening pass, and a slice starts only after its prerequisites above have landed.

No issue tracked H2.5 until now — status notes elsewhere wrongly named #12793 as the tracker, but #12793 is the closed Stage D contract issue. This issue rectifies that.

Already landed

PR Merged Scope
#13136 2026-10-02 Bound Hook admission and cold-restore cost (adds the V28 + V29 migrations)
#13137 2026-10-02 Report Hosted Hook denials and conflicts accurately

Remaining scope

  1. follow-up(managed-hooks): decide idle ownership and address deferred review diagnostics #13133 — idle Hook ownership and deferred review diagnostics. Folded into this slice: close it, or carry an explicit recorded deferral.
  2. Replay ordering in commitDomainRecord. docs/design/2026-09-27-managed-extension-authority.md, "Open questions" item 5: commitDomainRecord publishes a new body before it detects a replayed command, and returns that body's reference instead of the committed one; commitExtensionRecord already checks the replay first. The older method was left for a separate fix — this is it.
  3. Logical vs physical start tightening (decide). "Open questions" item 4: H0b lets a run stay admitted while its execution is already running_attached, so such a task shows pending with the Runtime state ready and no start time. Tightening that rule is a change to the H0b contract — decide here whether it rides H2.5 or moves to a dedicated contract issue.
  4. Timestamp unit alignment (decide). "Open questions" item 2: task resources report epoch milliseconds while the public Session, turn, event and item resources report seconds. The design notes alignment is cheapest while the task routes are partial and no domain produces tasks. Decide whether that window is still open, here or in a spun-out issue.

Acceptance

  • Items 1–2 land, or are deferred with a recorded reason; decisions on items 3–4 are recorded.
  • No new domain is enabled and no unaccepted capability is expanded (extension-runtime design §13 rule).

Links


中文说明

H2.5 是 H2(managed Hooks,#13129 于 2026-10-02 合入)与 H3(后台 Shell + Monitor,#13265 在飞)之间的半步加固片。顺序依据 #12827 与扩展运行时设计(§13/§14):每片主体之后跟一片加固,且每片只在其前置全部落地后开工。

此前没有任何 issue 跟踪 H2.5 —— 我此前的状态表误写为「由 #12793 跟踪」,但 #12793 是已关闭的 Stage D 契约 issue。本 issue 补上这个空缺。

已落地: #13136(Hook admission 上界与冷恢复成本,含 V28/V29 迁移)、#13137(Hosted Hook 拒绝与冲突的准确上报),均于 2026-10-02 合入。

剩余范围:

  1. follow-up(managed-hooks): decide idle ownership and address deferred review diagnostics #13133(Hook 空闲归属 + 延后评审诊断)——并入本片,关闭或记录明确的延期理由;
  2. commitDomainRecord 的重放顺序(设计文档「Open questions」第 5 项:先发新 body 后查重放,commitExtensionRecord 已先查;旧方法留待单独修复,即本项);
  3. 逻辑/物理启动收紧(第 4 项,属 H0b 契约变更——在本 issue 决定是否随 H2.5 走还是另立契约 issue);
  4. 时间戳单位对齐(第 2 项:task 用毫秒、公开资源用秒;设计说在 task 路由仍为 partial 时对齐最便宜——判定窗口是否还在)。

验收: 第 1–2 项落地(或记录理由延期);第 3–4 项留下决定记录;不启用新域、不扩大未验收能力(§13 规则)。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions