You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
automation: enforce ActionDescriptor.supportsPause at runtime (executor suspend vs declaration), and decide isAsync disposition #6667
Successor to #5703, filed per the maintainer ruling of 2026-08-08 (option A there: close the original card — its "zero readers" premise expired once #5561 / PR #5725 landed the authoring-time warning and the CI gate for supportsPause).
Two pieces remain that the #5703 thread identified but no card owns:
isAsync disposition. Taken alone, isAsync still has zero readers across the three repos (measured on the automation: ActionDescriptor.supportsPause / isAsync 是零读者的声明字段 —— 引擎判定「暂停」的唯一事实是 execute() 返回的 suspend: true #5703 thread, 2026-08-08). When this card is taken up: retire it under ADR-0049 enforce-or-remove, or enforce it the same way as supportsPause if a real consumer exists by then. Decide on fresh measurements at pickup time, not today's reading.
Dedup: searched open issues for supportsPause before filing — only #5703 itself and two PM registry cards match; no existing card owns this work.
No domain or queue labels applied — routing labels are the triage seat's single-producer territory.
Landing anchor (read on origin/main @ 04476e7): supportsPause declarations and the suspend mechanics live in packages/services/service-automation (builtin nodes map-node.ts:53, screen-nodes.ts:50, subflow-node.ts:54, wait-node.ts:192) plus plugin-approvals — the proposed engine-boundary check (executor suspend result vs descriptor declaration) lands in the service-automation flow engine ⇒ domain:services.
Grade: successor card filed per the 2026-08-08 maintainer ruling on automation: ActionDescriptor.supportsPause / isAsync 是零读者的声明字段 —— 引擎判定「暂停」的唯一事实是 execute() 返回的 suspend: true #5703 (option A) — piece 1 is a concrete declared=enforced runtime check with a proposed shape; nothing left to ask. Piece 2 (isAsync disposition) is decided at pickup on fresh measurements per the card; if the retirement route is taken it touches packages/spec and transfers to the spec seat at that point (contract surfaces have one owner) — flag back rather than folding.
CLAIM — services-lane PM session session_01USNUyHEr7uaU6MoEWXitei, branch claude/issue-6667-supportspause-runtime-check. No competing claim on re-read (only the triage comment, which disclaims one).
Serialization satisfied: this card lands in the same engine.ts region as #6654, whose PR #6690 merged just now — dispatching against post-merge origin/main.
Scope per the card and triage note: piece 1 (runtime declared=enforced check — executor suspend result vs ActionDescriptor.supportsPause, failing loudly at the engine boundary) is the implementation. Piece 2 (isAsync) is a measurement-then-report step: the dispatch requires fresh three-repo reader measurements at pickup and, if the retirement route is indicated, the dev flags back rather than folding it in — an ADR-0049 retirement touches packages/spec and belongs to the spec seat. The PM will file that half as a spec card if the measurement says retire.
Activity
os-zhuang commentedon Aug 8, 2026
Triage:
pm:queue+domain:services.origin/main@04476e7):supportsPausedeclarations and the suspend mechanics live inpackages/services/service-automation(builtin nodesmap-node.ts:53,screen-nodes.ts:50,subflow-node.ts:54,wait-node.ts:192) plusplugin-approvals— the proposed engine-boundary check (executorsuspendresult vs descriptor declaration) lands in the service-automation flow engine ⇒domain:services.ActionDescriptor.supportsPause/isAsync是零读者的声明字段 —— 引擎判定「暂停」的唯一事实是execute()返回的suspend: true#5703 (option A) — piece 1 is a concrete declared=enforced runtime check with a proposed shape; nothing left to ask. Piece 2 (isAsyncdisposition) is decided at pickup on fresh measurements per the card; if the retirement route is taken it touchespackages/specand transfers to the spec seat at that point (contract surfaces have one owner) — flag back rather than folding.ActionDescriptor.supportsPause/isAsync是零读者的声明字段 —— 引擎判定「暂停」的唯一事实是execute()返回的suspend: true#5703 + PM registry cards); automation:ActionDescriptor.supportsPause/isAsync是零读者的声明字段 —— 引擎判定「暂停」的唯一事实是execute()返回的suspend: true#5703 is closed by the same ruling.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
os-project-manager commentedon Aug 8, 2026
CLAIM — services-lane PM session
session_01USNUyHEr7uaU6MoEWXitei, branchclaude/issue-6667-supportspause-runtime-check. No competing claim on re-read (only the triage comment, which disclaims one).Serialization satisfied: this card lands in the same
engine.tsregion as #6654, whose PR #6690 merged just now — dispatching against post-mergeorigin/main.Scope per the card and triage note: piece 1 (runtime declared=enforced check — executor
suspendresult vsActionDescriptor.supportsPause, failing loudly at the engine boundary) is the implementation. Piece 2 (isAsync) is a measurement-then-report step: the dispatch requires fresh three-repo reader measurements at pickup and, if the retirement route is indicated, the dev flags back rather than folding it in — an ADR-0049 retirement touchespackages/specand belongs to the spec seat. The PM will file that half as a spec card if the measurement says retire.Generated by Claude Code
docs(service-automation): scope the refusal claim to the synchronous …