5555 * specifically (range operators `>=`/`<=` are not flagged — they're the building
5656 * block of the correct pattern), keeping false positives near zero.
5757 *
58- * #13681 / #14394 — per-iteration containment, as a PAIR of rules. A `loop`
58+ * commit 8ed9c54b4 / #14394 — per-iteration containment, as a PAIR of rules. A `loop`
5959 * body has no error handling of its own: `loop-node.ts` iterates with a bare
6060 * `await`, so the first item whose node fails ends the entire run and every
6161 * later item goes unprocessed, silently. The containment spelling exists and was
@@ -261,7 +261,7 @@ export const FLOW_DECISION_INCLUSIVE_OVERLAP = 'flow-decision-inclusive-overlap'
261261 */
262262export const FLOW_MULTI_WRITE_UNFILTERED = 'flow-multi-write-unfiltered' ;
263263/**
264- * #13681 / #14394 — a `loop` body that runs a node which can fail, with no
264+ * commit 8ed9c54b4 / #14394 — a `loop` body that runs a node which can fail, with no
265265 * `try_catch` between the loop and that node. The first failing item kills the
266266 * whole sweep: `loop-node.ts:123-135` iterates with a bare `await` and no
267267 * `try`/`catch` anywhere in the file, so the body's failure propagates out of
@@ -279,7 +279,7 @@ export const FLOW_MULTI_WRITE_UNFILTERED = 'flow-multi-write-unfiltered';
279279 */
280280export const FLOW_LOOP_BODY_UNCONTAINED = 'flow-loop-body-uncontained' ;
281281/**
282- * #13681 / #14394 — the near-miss shape: a `try_catch` that declares no `catch`
282+ * commit 8ed9c54b4 / #14394 — the near-miss shape: a `try_catch` that declares no `catch`
283283 * region. `catch` is optional in the schema (`control-flow.zod.ts:315`) and
284284 * omitting it makes the container **fail** (`try-catch-node.ts:190`), so the
285285 * wrapped region dies exactly like an unwrapped one — measured side by side, the
@@ -340,7 +340,7 @@ const DATA_NODE_TYPES = new Set(['get_record', 'create_record', 'update_record',
340340 * - `http` — a non-2xx (when `failOnError`), a timeout/abort, or a failed
341341 * durable enqueue (`http-nodes.ts:208, :249-253`).
342342 * - `notify` — no title, an empty resolved recipient set, or a delivery throw
343- * (`notify-node.ts:293, :300, :446`). The measured #13681 case exactly: one
343+ * (`notify-node.ts:293, :300, :446`). The measured case commit 8ed9c54b4 records, exactly: one
344344 * row with a null owner killed the sweep.
345345 * - `connector_action` — a degraded connector, an unresolvable action, or a
346346 * throwing call (`connector-nodes.ts:69, :76, :124`).
@@ -1330,7 +1330,7 @@ function scanApprovalReviseLoops(
13301330
13311331/**
13321332 * The minimal `catch` region, measured end to end on the real `AutomationEngine`
1333- * (#13681 ) and quoted verbatim by both containment rules and by
1333+ * (commit 8ed9c54b4 ) and quoted verbatim by both containment rules and by
13341334 * `content/docs/automation/flows.mdx`.
13351335 *
13361336 * `catch` cannot be empty: `FlowRegionSchema.nodes` is `.min(1)`
@@ -1425,7 +1425,7 @@ function scanUncontainedLoopBodies(
14251425 `that is a legitimate reading and this stays a warning. ` +
14261426 // The tracker ids stay OUT of the runtime string (`check:doc-authoring`):
14271427 // an author reading this hint cannot resolve `#NNNN`. The measurement
1428- // and the ruling behind this rule are #13681 / #14394; the docblock on
1428+ // and the ruling behind this rule are commit 8ed9c54b4 / #14394; the docblock on
14291429 // {@link FLOW_LOOP_BODY_UNCONTAINED } carries them for the reader who can.
14301430 `See content/docs/automation/flows.mdx §"Per-iteration containment".` ,
14311431 // Warning, not `error`: see the severity policy at the top of this
@@ -1465,7 +1465,7 @@ function scanUncontainedLoopBodies(
14651465/**
14661466 * #14394 rule B — a `try_catch` with no `catch` region, anywhere in the flow.
14671467 *
1468- * Measured (#13681 ): the container fails through, and the run is byte-identical
1468+ * Measured (commit 8ed9c54b4 ): the container fails through, and the run is byte-identical
14691469 * to the one with no `try_catch` at all. `retry`, when present, only delays it.
14701470 *
14711471 * A `catch` that is PRESENT but malformed is deliberately not this rule's
@@ -1737,15 +1737,15 @@ export function lintFlowPatterns(stack: AnyRec): FlowLintFinding[] {
17371737 // purge, and this rule's main habitat — in range (#5383/#5635).
17381738 scanUnboundedBulkWrites ( at , graphNodes , findings ) ;
17391739
1740- // (g) #13681/ #14394 — a `loop` body running a fallible node with no
1740+ // (g) commit 8ed9c54b4 / #14394 — a `loop` body running a fallible node with no
17411741 // `try_catch` between the loop and it. Per graph like the rest, and
17421742 // that is what keeps the count right: every `loop` node belongs to
17431743 // exactly one graph, so its body is descended exactly once, and a
17441744 // nested loop is judged in its own graph rather than through its
17451745 // parent (see {@link scanUncontainedLoopBodies}).
17461746 scanUncontainedLoopBodies ( at , graphNodes , findings ) ;
17471747
1748- // (h) #13681/ #14394 — the near-miss: a `try_catch` with no `catch`. Scanned
1748+ // (h) commit 8ed9c54b4 / #14394 — the near-miss: a `try_catch` with no `catch`. Scanned
17491749 // everywhere, not only inside a loop: the container fails through
17501750 // wherever it is written. Inside a loop body it is the shape (g)
17511751 // deliberately treats as contained, so exactly one of the two rules
0 commit comments