Skip to content

Commit 6bf205c

Browse files
committed
fix(spec): the two step-18 flow-binding D3 entries name only a text-slot hole and a CEL expression as the reads to rename
The replacement text of flow-binding-name-dollar-refused and flow-binding-variable-dollar-name-refused still listed "a single-brace token in a value position" among the reads of a renamed variable. No protocol-18 value position reads a flow variable through a single-brace token: a value slot is a CEL value envelope or a literal, and a token there is refused. The generated upgrade guide and spec-changes.json project this text. Text only; a spec patch changeset carries the FROM -> TO sentence. Claude-Session: https://claude.ai/code/session_01BRQ9Mp1yH7R1az6MaUM18H Co-authored-by: Claude <noreply@anthropic.com>
1 parent 713f231 commit 6bf205c

3 files changed

Lines changed: 19 additions & 2 deletions

File tree

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
'@objectstack/spec': patch
3+
---
4+
5+
fix(spec): the two step-18 flow-binding D3 entries name only the reads a renamed variable has on protocol 18, a text-slot hole and a CEL expression
6+
7+
Clause-②: no
8+
9+
The `replacement` text of two ADR-0087 D3 semantic entries, `flow-binding-name-dollar-refused` and `flow-binding-variable-dollar-name-refused`, listed three ways a flow reads the old variable name, for the author to rename. Protocol 18 has only the first two. The protocol upgrade guide and `spec-changes.json` are generated from these entries, so they now say what the two entries' release notes already say.
10+
11+
| FROM | TO |
12+
|:--|:--|
13+
| Rename every read of the old name with it — a text-slot hole, a CEL expression, a single-brace token in a value position | Rename every read of the old name with it — a text-slot hole, a CEL expression |
14+
15+
No protocol-18 value position reads a flow variable through a single-brace `{…}` token. A value slot takes a CEL value envelope or a literal, and a `{…}` token there is refused. The one `{…}` string a value slot hands on is a CRUD `filter` operand's whole-string query placeholder (`{current_user_id}`, `{today}`): the query engine reads it, and it names no flow variable. A text slot reads `{{ }}` holes.
16+
17+
Text only. No schema, door, conversion or entry id changes, and each entry keeps its `fromVersion`, `toVersion` and every other field.

‎packages/spec/src/migrations/entries/semantic/18.flow-binding-name-dollar-refused.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export const entry: SemanticMigration = {
3232
'the same name without the dollar sign, read as a hole over that name: iteratorVariable: \'row\' read as '
3333
+ '{{ row.name }}, idVariable: \'account_id\' read as {{ account_id }}, a declared variable or an assignment '
3434
+ 'target named total read as {{ total }}. Rename every read of the old name with it — a text-slot hole, a '
35-
+ 'CEL expression, a single-brace token in a value position',
35+
+ 'CEL expression',
3636
reason:
3737
'The dollar-named variables are the flow engine\'s own: it binds $record, $runId, $flowName, $flowLabel and '
3838
+ '$error, a flat-graph loop binds $loopItems and $loopIndex, and a resume signal may not write any dollar '

‎packages/spec/src/migrations/entries/semantic/18.flow-binding-variable-dollar-name-refused.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export const entry: SemanticMigration = {
2525
'the same name without the dollar sign, read as a hole over that name: errorVariable: \'caught\' read as '
2626
+ '{{ caught.message }}, outputVariable: \'lead\' read as {{ lead.name }}. A try_catch may instead drop '
2727
+ 'errorVariable and read the engine\'s default, {{ $error.message }}. Rename every read of the old name '
28-
+ 'with it — a text-slot hole, a CEL expression, a single-brace token in a value position',
28+
+ 'with it — a text-slot hole, a CEL expression',
2929
reason:
3030
'The dollar-named variables are the flow engine\'s own: it binds $record, $runId, $flowName, $flowLabel and '
3131
+ '$error, a flat-graph loop binds $loopItems and $loopIndex, and a resume signal may not write any dollar '

0 commit comments

Comments
 (0)