( prev: Pick<RowExecutionMetadata, 'executionId' | 'workflowId' | 'blockErrors'> )
| 169 | * tombstone the dispatcher reads to skip re-runs of cells the user killed |
| 170 | * mid-cascade. */ |
| 171 | export function buildCancelledExecution( |
| 172 | prev: Pick<RowExecutionMetadata, 'executionId' | 'workflowId' | 'blockErrors'> |
| 173 | ): RowExecutionMetadata { |
| 174 | return { |
| 175 | status: 'cancelled', |
| 176 | executionId: prev.executionId ?? null, |
| 177 | jobId: null, |
| 178 | workflowId: prev.workflowId, |
| 179 | error: 'Cancelled', |
| 180 | cancelledAt: new Date().toISOString(), |
| 181 | ...(prev.blockErrors ? { blockErrors: prev.blockErrors } : {}), |
| 182 | } |
| 183 | } |
| 184 | |
| 185 | /** |
| 186 | * Maps a group's `outputs[]` to a `blockId → Array<{path, columnName}>` map. |
no outgoing calls
no test coverage detected