Skip to content

Commit e92edee

Browse files
committed
fix(lint,spec): export the two new rule ids from the lint barrel; re-anchor the retirement-jurisdiction citation to the docblock that decided it
- packages/lint/src/index.ts: FLOW_DECISION_MODE_INVALID and FLOW_DECISION_INCLUSIVE_OVERLAP join the flow-pattern export block (rule-id-barrel-exports pin). - conversions/registry.ts: the retiredFromLoadPath jurisdiction is cited from MetadataConversion's docblock and ADR-0087's 2026-07-31 addendum, not from a tracker number that no longer resolves. - schemaless-node-config.zod.ts: the mode JSDoc no longer spells an omitted-means-every sentence the empty-state gate has to classify. Claude-Session: https://claude.ai/code/session_01CiCTczDo7tGhafXjf61dUJ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 65fdb2c commit e92edee

3 files changed

Lines changed: 10 additions & 5 deletions

File tree

‎packages/lint/src/index.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,8 @@ export {
841841
FLOW_MULTI_WRITE_UNFILTERED,
842842
FLOW_LOOP_BODY_UNCONTAINED,
843843
FLOW_TRY_CATCH_WITHOUT_CATCH,
844+
FLOW_DECISION_MODE_INVALID,
845+
FLOW_DECISION_INCLUSIVE_OVERLAP,
844846
} from './lint-flow-patterns.js';
845847

846848
export { lintLivenessProperties } from './lint-liveness-properties.js';

‎packages/spec/src/automation/schemaless-node-config.zod.ts‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -543,8 +543,9 @@ export const DecisionConfigSchema = lazySchema(() => strictObject({
543543
.describe('Ordered decision branches (first true expression wins; omit to branch purely on edge conditions)'),
544544
/**
545545
* How many out-edges an edge-branched decision takes when more than one
546-
* condition holds — `'exclusive'` (the first, in declaration order; what an
547-
* omitted key means) or `'inclusive'` (every one). Read by the engine's
546+
* condition holds: `'exclusive'` is the first, in declaration order, and is
547+
* the reading an absent key gets — the narrower one, a single branch;
548+
* `'inclusive'` is all of them. Read by the engine's
548549
* traversal: see "Where `mode` is honoured" above. Any other value is
549550
* refused with {@link decisionModePrescription}; either member beside a
550551
* non-empty `conditions` list is refused by the `.superRefine` below, with

‎packages/spec/src/conversions/registry.ts‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11383,9 +11383,11 @@ const reportJoinedChartRemoved: MetadataConversion = {
1138311383
* `--from`. `retiredFromLoadPath: true` keeps it off the authoring funnel
1138411384
* (`normalizeStackInput`), where an author who wrote two branches today, against
1138511385
* the contract that says an omitted `mode` is exclusive, must not be rewritten
11386-
* into an inclusive gateway. The flag's jurisdiction ends there (#16864), so
11387-
* every data-at-rest seam that opens the retired window has to refuse this id
11388-
* by name, on the artifact door's precedent for `app-hidden-to-unpublished`
11386+
* into an inclusive gateway. The flag's jurisdiction ends there — its own
11387+
* docblock on `MetadataConversion` says so, and ADR-0087's 2026-07-31 addendum
11388+
* is why: data-at-rest seams replay retired entries on purpose — so every
11389+
* data-at-rest seam that opens the retired window has to refuse this id by
11390+
* name, on the artifact door's precedent for `app-hidden-to-unpublished`
1138911391
* (#17885, `DEFAULT_FLIPS_NOT_REPLAYED_HERE` in `@objectstack/metadata-core`):
1139011392
* the automation engine's flow rehydration seam does (`registerFlow` serves
1139111393
* code-shipped flows, REST bodies and Studio saves alike, none of them dated),

0 commit comments

Comments
 (0)