Archived
选择组的出口选择要走到落地:恰发一口,随放行一并确认
A6 的输出是**选择组**(negotiation: won / revise / lost),回传协议里本来就有
`selectedPorts`,human-tool 也接住了 —— 但落地那一步硬写 `selectedPorts: {}`,
选择从未抵达。结果:放行了、台账写了,却「发射输出口:(无)」,
G4 异或网关拿不到 outcome,整条流悄无声息地停住。
按 verdict 同样的路子把它串起来:人事件载荷 → 末步运行时 → 谱走完时报上去 →
落地收敛时照它发射。
gates: tsc / eslint / depcruise / 399 测试 全绿
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
@@ -19,6 +19,8 @@ export type StepRuntime = {
|
||||
readonly error?: string;
|
||||
/** 验收工单的放行裁决:pass / 驳回类别 —— 末步据此定终局 */
|
||||
readonly verdict?: string;
|
||||
/** 选择组的出口选择:恰发一口,随放行一并确认(AM 1.2) */
|
||||
readonly selectedPorts?: Record<string, string>;
|
||||
};
|
||||
|
||||
export type FlowPosition = {
|
||||
@@ -149,3 +151,8 @@ export function lastVerdictPassed(position: FlowPosition): boolean {
|
||||
const last = position.steps[position.steps.length - 1];
|
||||
return last?.verdict === 'pass';
|
||||
}
|
||||
|
||||
/** 末步随放行确认的出口选择 —— 落地收敛时按它发射 */
|
||||
export function lastSelectedPorts(position: FlowPosition): Record<string, string> {
|
||||
return position.steps[position.steps.length - 1]?.selectedPorts ?? {};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user