Skip to content

Commit d9c7ce8

Browse files
os-zhuangclaude
andcommitted
docs(adr): renumber the token/scope-tree ADR 0037 → 0039 (resolve collision)
ADR-0037 was claimed by two merged PRs: #1694 "Live Canvas" (created earlier, 2026-06-10) and #1706 "concurrent durable pause / token tree" (this work, 2026-06-11). Live Canvas has precedence, so the token-tree ADR yields to the next free number (0038 is the Build Verification Loop). Renames the file to 0039 and updates only this work's own references — the ADR-0019/0031 forward-refs, the flow guide's Track A/B links, and the showcase flow comments. The Live Canvas ADR stays 0037, untouched. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent fb49b87 commit d9c7ce8

5 files changed

Lines changed: 9 additions & 9 deletions

File tree

content/docs/guides/metadata/flow.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ This is the **aggregating-node** pattern (Camunda multi-instance / Step Function
345345
`Map`): the run keeps a single program counter and pauses once, so it needs no
346346
concurrent-token machinery. Durable pause **inside** a hand-drawn `parallel`
347347
branch or `loop` iteration — where two unrelated positions pause independently —
348-
is a separate, larger capability ([ADR-0037](https://github.com/objectstack-ai/framework/blob/main/docs/adr/0037-token-scope-tree-execution.md)
348+
is a separate, larger capability ([ADR-0039](https://github.com/objectstack-ai/framework/blob/main/docs/adr/0039-token-scope-tree-execution.md)
349349
Track B); the aggregating node covers the common parallel/batch-approval demand
350350
without it. Worked example: `showcase_invoice_signoff` in the showcase app.
351351

@@ -376,7 +376,7 @@ The run holds a **single program counter** the whole time: only one item's
376376
approval is open at any moment; when it is decided the engine **re-enters** the
377377
map node to start the next item. v1 is sequential and fail-fast (the first item
378378
whose subflow fails fails the map). Concurrent fan-out (all items at once) is the
379-
larger [ADR-0037](https://github.com/objectstack-ai/framework/blob/main/docs/adr/0037-token-scope-tree-execution.md)
379+
larger [ADR-0039](https://github.com/objectstack-ai/framework/blob/main/docs/adr/0039-token-scope-tree-execution.md)
380380
Track B work. Worked example: `showcase_release_signoff``showcase_one_task_signoff`.
381381

382382
### Nested pause — pausing inside a subflow

docs/adr/0019-approval-as-flow-node.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ The open-source / enterprise split is **not** an architectural concern and is **
176176
A pausing node inside a **subflow** now suspends the whole chain instead of failing the parent.
177177
Model: **linked runs** (the inter-flow half of the long-term execution-state architecture —
178178
cf. Step Functions nested executions / Temporal child workflows; the intra-flow half, a
179-
token/scope tree replacing the single-program-counter continuation, is [ADR-0037](./0037-token-scope-tree-execution.md)).
179+
token/scope tree replacing the single-program-counter continuation, is [ADR-0039](./0039-token-scope-tree-execution.md)).
180180

181181
- The child's continuation persists under its **own run id** (run identity keeps per-flow version
182182
pinning, run logs, and `$runId`-based approval/wait correlation intact). The parent suspends at

docs/adr/0031-advanced-flow-node-executors-and-dag.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ with best-effort folding of foreign BPMN gateways. BPMN 2.0 **XML**
199199
- Durable pause *inside* a `parallel` branch or `loop` iteration — the structured
200200
constructs run their regions synchronously here. Generalizing the engine's
201201
single-program-counter to a token/scope tree (the runtime dual of these
202-
regions) is [ADR-0037](./0037-token-scope-tree-execution.md).
202+
regions) is [ADR-0039](./0039-token-scope-tree-execution.md).
203203

204204
## Already shipped this line of work
205205

docs/adr/0037-token-scope-tree-execution.md renamed to docs/adr/0039-token-scope-tree-execution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# ADR-0037: Concurrent durable pause — multi-instance nodes now, token/scope-tree later
1+
# ADR-0039: Concurrent durable pause — multi-instance nodes now, token/scope-tree later
22

33
**Status**: Proposed (2026-06-11) — revised after a code + industry self-review
44
**Deciders**: ObjectStack Protocol Architects

examples/app-showcase/src/flows/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -833,7 +833,7 @@ export const ResilientSyncFlow = defineFlow({
833833
});
834834

835835
/**
836-
* Invoice Dual Sign-off — the worked **parallel-approval** example (ADR-0037
836+
* Invoice Dual Sign-off — the worked **parallel-approval** example (ADR-0039
837837
* Track A: aggregating approval node, no engine-core change).
838838
*
839839
* "Finance AND legal must both sign off before an invoice is sent" is expressed
@@ -853,7 +853,7 @@ export const ResilientSyncFlow = defineFlow({
853853
export const InvoiceDualSignoffFlow = defineFlow({
854854
name: 'showcase_invoice_signoff',
855855
label: 'Invoice Dual Sign-off (parallel approval)',
856-
description: 'On send, requires finance AND legal to both approve via one aggregating approval node — demonstrates parallel approvals without a token tree (ADR-0037 Track A).',
856+
description: 'On send, requires finance AND legal to both approve via one aggregating approval node — demonstrates parallel approvals without a token tree (ADR-0039 Track A).',
857857
type: 'autolaunched',
858858
nodes: [
859859
{
@@ -957,7 +957,7 @@ export const OneTaskSignoffSubflow = defineFlow({
957957
});
958958

959959
/**
960-
* Release Sign-off — the worked **batch-approval** example (ADR-0037 Track A2:
960+
* Release Sign-off — the worked **batch-approval** example (ADR-0039 Track A2:
961961
* the sequential `map` / multi-instance node).
962962
*
963963
* "Every task in the release must be signed off, one at a time" is a **single
@@ -975,7 +975,7 @@ export const OneTaskSignoffSubflow = defineFlow({
975975
export const ReleaseSignoffFlow = defineFlow({
976976
name: 'showcase_release_signoff',
977977
label: 'Release Sign-off (batch approval / map)',
978-
description: 'Signs off every task in a release one at a time via a map node — demonstrates batch approval (ADR-0037 Track A2).',
978+
description: 'Signs off every task in a release one at a time via a map node — demonstrates batch approval (ADR-0039 Track A2).',
979979
type: 'autolaunched',
980980
variables: [
981981
{ name: 'items', type: 'list', isInput: true },

0 commit comments

Comments
 (0)