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
Filed by the triage seat as the door-3 half of the #9446 ruling (maintainer, 2026-08-18, verbatim 「同意」: the #9378 status table is a property of the flow-dispatch CONTRACT, executed in stages — door 2 in #9446 itself, door 3 as this card).
Scope
packages/runtime/src/endpoint-executor.ts's flow branch currently ends with an unconditional successAnswer(await automation.execute(...)) — HTTP 200 wrapping {"success":false,...} on every failure, the double envelope #3962 ruled out for /actions. Converge it onto the four-row table the trigger routes answer after #9413/#9415 (404 / 409 FLOW_DISABLED / 422 FLOW_NO_START_NODE / 400 FLOW_FAILED), consuming the producer's result.code.
Constraints (from the ruling)
The envelope flip is BREAKING for any consumer of the current double envelope on declared endpoints. The PR must say so plainly, and landing is sequenced against consumers — enumerate them (objectui, examples, docs) with real greps before flipping, and coordinate the objectui half if one exists.
Door 3 carries the endpoint policy chain and outputMapping, so this is not a copy of door 2's mapper — the mapping must sit where those still apply.
Filed by the triage seat as the door-3 half of the #9446 ruling (maintainer, 2026-08-18, verbatim 「同意」: the #9378 status table is a property of the flow-dispatch CONTRACT, executed in stages — door 2 in #9446 itself, door 3 as this card).
Scope
packages/runtime/src/endpoint-executor.ts's flow branch currently ends with an unconditionalsuccessAnswer(await automation.execute(...))— HTTP 200 wrapping{"success":false,...}on every failure, the double envelope #3962 ruled out for/actions. Converge it onto the four-row table the trigger routes answer after #9413/#9415 (404 / 409FLOW_DISABLED/ 422FLOW_NO_START_NODE/ 400FLOW_FAILED), consuming the producer'sresult.code.Constraints (from the ruling)
outputMapping, so this is not a copy of door 2's mapper — the mapping must sit where those still apply.content/docs/protocol/kernel/http-protocol.mdx's boundary wording (corrected by spec: addFLOW_DISABLED/FLOW_NO_START_NODEtoAutomationResult.codeand deliver the trigger ruling's remaining two rows (409/422) #9415 to describe the divergence) flips back to "same response contract" in the same PR.Clause-②: yes.Refs: #9446 (the ruling record) · #9378 (the table) · #9413 / #9415 (doors 1's rows) · #3962 (the double-envelope precedent).
Filed by triage session
session_pm_triage_20260818T0104Z; ruling provenance on #9446.