@chrok/braid 0.1.3 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,44 +2,172 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.2.1 — 2026-10-04
6
+
7
+ ### Maintenance
8
+
9
+ - Upgrade the Pi validation target to 1.0.1 and refresh the workspace lockfile
10
+ so Pi's minimatch resolves the patched brace-expansion 5.0.12. Add a separate
11
+ dependency-security check covering development dependencies and reporting
12
+ scanner failures explicitly
13
+ ([#38](https://github.com/Epsirom/braid/pull/38)) — @Epsirom.
14
+
15
+ No Braid API or runtime behavior changes. Pi 1.0.1 is the tested host version;
16
+ updating Braid does not upgrade a separately installed Pi host.
17
+
18
+ ### New Contributors
19
+
20
+ No first-time human contributors in this release.
21
+
22
+ [Full comparison](https://github.com/Epsirom/braid/compare/v0.2.0...v0.2.1).
23
+
24
+ ## 0.2.0 — 2026-10-02
25
+
26
+ ### Features and breaking changes
27
+
28
+ - Separate editable node definitions from unique execution instances, preserving
29
+ captured prompts, policies, predecessor identities, and historical results
30
+ ([#35](https://github.com/Epsirom/braid/pull/35)) — @Epsirom.
31
+ - Support bounded structured loops with explicit decision feedback, finite round
32
+ limits, fresh worktrees per visit, and no overlapping/nested rounds
33
+ ([#35](https://github.com/Epsirom/braid/pull/35)) — @Epsirom.
34
+ - Add `startBraid`, revision-checked live updates, `pauseAfter`, and atomic
35
+ update/resume. Pi adds `braid_update`, `braid_resume`, exact execution retrieval,
36
+ iteration-aware reminders, and live topology updates
37
+ ([#35](https://github.com/Epsirom/braid/pull/35)) — @Epsirom.
38
+ - Derive successor worktrees from predecessor checkpoints, including read-only
39
+ executions. Split isolated `merge` from source-checkout `integrate`; remove
40
+ automatic final integration. Workspace keys and merge dispositions use
41
+ `executionId`; sources remain reusable until final cleanup
42
+ ([#35](https://github.com/Epsirom/braid/pull/35)) — @Epsirom.
43
+ - Make invocation failures optional by default. Captured `requireSuccess: true`
44
+ failures abort siblings and fail the job after writes/checkpoint/cleanup drain.
45
+ Add a finite `maxExecutions` budget shared across loops and live updates
46
+ ([#35](https://github.com/Epsirom/braid/pull/35)) — @Epsirom.
47
+ - Add submission-local `promptTemplates` and explicit template-reference prompts
48
+ to core and Pi's `braid` tool. Core expands `{{name}}` placeholders using literal
49
+ string variables, validates every rendered prompt before execution, and keeps
50
+ existing plain-string/default merge prompts and runner contracts. Shared
51
+ instructions no longer need repeating in each node's tool-call arguments
52
+ ([#33](https://github.com/Epsirom/braid/pull/33)) — @Epsirom.
53
+ - Add opt-in `notifyOnCompletion` on execute, decision, and merge nodes. Pi sends
54
+ parent reminders on node success/failure, including timeout/cancellation of
55
+ running nodes, with delivery acknowledgement and dropped-message retries.
56
+ Skipped nodes stay silent; whole-job reminders remain enabled. Add
57
+ `braid_status({jobId, nodeId})` for full intermediate outputs/errors, with
58
+ overflow results saved to a private temporary file. Live graph
59
+ controls are now available through the execution-control API above
60
+ ([#34](https://github.com/Epsirom/braid/pull/34),
61
+ [#35](https://github.com/Epsirom/braid/pull/35)) — @Epsirom.
62
+
63
+ See the [0.1 → 0.2 migration guide](docs/compatibility.md#migrating-from-01-to-02)
64
+ before upgrading: use `integrate` for source-checkout writes, add explicit final
65
+ integration, use execution IDs for historical results and merge dispositions,
66
+ and set `requireSuccess: true` where failures must stop the whole run.
67
+
68
+ ### Maintenance
69
+
70
+ - Refresh repository/package descriptions and discovery keywords for mutable
71
+ agent graphs, bounded loops, and explicit workspace integration. Add npm links
72
+ and version badges, distinguish 0.2 source from published 0.1.3, and align the
73
+ roadmap and release checklist with the new execution contract
74
+ ([#36](https://github.com/Epsirom/braid/pull/36)) — @Epsirom.
75
+ - Update `@types/node` from 22.20.2 to 22.20.4
76
+ ([#17](https://github.com/Epsirom/braid/pull/17)) — @dependabot[bot].
77
+
78
+ ### New Contributors
79
+
80
+ No first-time human contributors in this release.
81
+
82
+ [Full comparison](https://github.com/Epsirom/braid/compare/v0.1.3...v0.2.0).
83
+
5
84
  ## 0.1.3 — 2026-09-29
6
85
 
86
+ ### Features and fixes
87
+
7
88
  - Add per-node `workspace: "read-only" | "worktree"` for execute/decision nodes.
8
89
  Read-only nodes inspect the live source directory with Git inspection, without
9
90
  writable tools, snapshots, worktrees, or merge sources. Existing defaults are
10
91
  preserved. Pi's braid tool guides analysis/review/routing/synthesis to read-only
11
92
  nodes and implementation to worktrees; explicit read-only workspace metadata
12
- is included in results and events (#22).
93
+ is included in results and events
94
+ ([#28](https://github.com/Epsirom/braid/pull/28)) — @Epsirom.
13
95
  - Skip the automatic merge agent when all remaining workspaces match their
14
96
  snapshots, preserving analysis-only terminal outputs and original node errors.
15
97
  Mixed runs pass only changed sources to the automatic merge. Unchanged sources
16
98
  retain recovery refs pointing to their snapshots without empty checkpoint
17
- commits; explicit merge nodes still run even for unchanged sources (#21).
99
+ commits; explicit merge nodes still run even for unchanged sources
100
+ ([#27](https://github.com/Epsirom/braid/pull/27)) — @Epsirom.
18
101
  - Prevent Pi TUI crashes in narrow terminals by truncating the flowchart fallback
19
- message to the terminal width.
102
+ message to the terminal width
103
+ ([#24](https://github.com/Epsirom/braid/pull/24)) — @powerfooI
104
+ (**First-time contributor**).
105
+
106
+ ### Maintenance
107
+
20
108
  - Scan fork pull requests with CodeQL advanced setup so external contributions
21
- can satisfy the required security checks.
109
+ can satisfy the required security checks
110
+ ([#25](https://github.com/Epsirom/braid/pull/25)) — @Epsirom.
111
+ - Make timeout coverage independent of workspace timing
112
+ ([#26](https://github.com/Epsirom/braid/pull/26)) — @Epsirom.
113
+
114
+ ### New Contributors
115
+
116
+ - Thanks to @powerfooI for their first contribution in
117
+ [#24](https://github.com/Epsirom/braid/pull/24)!
118
+
119
+ [Full comparison](https://github.com/Epsirom/braid/compare/v0.1.2...v0.1.3).
22
120
 
23
121
  ## 0.1.2 — 2026-09-27
24
122
 
123
+ ### Features and fixes
124
+
25
125
  - Make Pi depend on the exact `@chrok/braid` version instead of bundling core.
26
- Export shared model-adapter helpers from the existing root entry point.
126
+ Export shared model-adapter helpers from the existing root entry point
127
+ ([#19](https://github.com/Epsirom/braid/pull/19)) — @Epsirom.
128
+
129
+ ### Build and release maintenance
130
+
27
131
  - Use one npm workspace lockfile and a development-only local core link; test
28
- Pi-only installation against the unpublished core tarball outside the checkout.
29
- - Wait for core registry metadata and tarball availability before publishing Pi.
132
+ Pi-only installation against the unpublished core tarball outside the checkout
133
+ ([#19](https://github.com/Epsirom/braid/pull/19)) — @Epsirom.
134
+ - Wait for core registry metadata and tarball availability before publishing Pi
135
+ ([#19](https://github.com/Epsirom/braid/pull/19)) — @Epsirom.
136
+
137
+ ### New Contributors
138
+
139
+ No first-time human contributors in this release.
140
+
141
+ [Full comparison](https://github.com/Epsirom/braid/compare/v0.1.1...v0.1.2).
30
142
 
31
143
  ## 0.1.1 — 2026-09-27
32
144
 
33
- - Validate the Pi integration against Pi 0.87.1; update GitHub Actions and tsx.
34
- - Group routine dependency updates and reserve Node/TypeScript major upgrades
35
- for deliberate compatibility changes across both packages.
145
+ ### Features and fixes
146
+
36
147
  - Clarify Pi tool and context guidance for parallel implementation and merge
37
148
  nodes; describe read-only filesystem access by the node's assigned workspace
38
- instead of assuming its directory is outside Git.
149
+ instead of assuming its directory is outside Git
150
+ ([#15](https://github.com/Epsirom/braid/pull/15)) — @Epsirom.
39
151
  - Trim OpenAI-compatible base URL trailing slashes in linear time, avoiding
40
- excessive regular-expression backtracking on long internal slash sequences.
152
+ excessive regular-expression backtracking on long internal slash sequences
153
+ ([#14](https://github.com/Epsirom/braid/pull/14)) — @Epsirom.
154
+
155
+ ### Maintenance
156
+
157
+ - Validate the Pi integration against Pi 0.87.1; update GitHub Actions and tsx
158
+ ([#16](https://github.com/Epsirom/braid/pull/16)) — @Epsirom.
159
+ - Group routine dependency updates and reserve Node/TypeScript major upgrades
160
+ for deliberate compatibility changes across both packages
161
+ ([#16](https://github.com/Epsirom/braid/pull/16)) — @Epsirom.
41
162
  - Protect the main branch and version tags; document repository governance,
42
- CodeQL checks, Actions restrictions, and immutable releases.
163
+ CodeQL checks, Actions restrictions, and immutable releases
164
+ ([#14](https://github.com/Epsirom/braid/pull/14)) — @Epsirom.
165
+
166
+ ### New Contributors
167
+
168
+ No first-time human contributors in this release.
169
+
170
+ [Full comparison](https://github.com/Epsirom/braid/compare/v0.1.0...v0.1.1).
43
171
 
44
172
  ## 0.1.0 — 2026-09-27
45
173
 
@@ -47,18 +175,42 @@ Initial public release. Publication is tracked in
47
175
  [GitHub releases](https://github.com/Epsirom/braid/releases).
48
176
 
49
177
  - Framework-independent DAG runtime with conditional decisions, bounded
50
- concurrency, explicit joins, failure propagation, and isolated node context.
178
+ concurrency, explicit joins, failure propagation, and isolated node context
179
+ ([initial commit](https://github.com/Epsirom/braid/commit/bdf4812f6844a415adcdaf53d83ac6f2ace63f2e))
180
+ — @Epsirom (**First-time contributor**).
51
181
  - Caller cancellation, node/graph deadlines, immutable events, partial results,
52
- model overrides, and provider-reported token accounting.
53
- - OpenAI-compatible Chat Completions runner with validated decision tool calls.
182
+ model overrides, and provider-reported token accounting
183
+ ([initial commit](https://github.com/Epsirom/braid/commit/bdf4812f6844a415adcdaf53d83ac6f2ace63f2e)) — @Epsirom.
184
+ - OpenAI-compatible Chat Completions runner with validated decision tool calls
185
+ ([initial commit](https://github.com/Epsirom/braid/commit/bdf4812f6844a415adcdaf53d83ac6f2ace63f2e)) — @Epsirom.
54
186
  - Pi background jobs, completion reminders, cancellation, guarded worker tools,
55
- and a live flow panel. The Pi package includes the matching core runtime.
187
+ and a live flow panel
188
+ ([573a2a4](https://github.com/Epsirom/braid/commit/573a2a4c4b240ad29ce7ed7c2ef1d063187a49c8),
189
+ [#4](https://github.com/Epsirom/braid/pull/4)). The Pi package includes the
190
+ matching core runtime ([#5](https://github.com/Epsirom/braid/pull/5)) — @Epsirom.
56
191
  - Core-managed Git worktrees, checkpoint/backup refs, agent-driven merge nodes,
57
- failure context on unconditional edges, and optional Pi tool budgets.
192
+ failure context on unconditional edges
193
+ ([#4](https://github.com/Epsirom/braid/pull/4)), and optional Pi tool budgets
194
+ with finite-budget reminders ([#3](https://github.com/Epsirom/braid/pull/3)) — @Epsirom.
195
+
196
+ ### Packaging and maintenance
197
+
58
198
  - Clean package builds, isolated tarball checks, CI for Node and supported
59
- operating systems, and an npm trusted-publishing workflow.
199
+ operating systems, and an npm trusted-publishing workflow
200
+ ([#5](https://github.com/Epsirom/braid/pull/5)) — @Epsirom.
60
201
  - Install guides, runnable offline examples, compatibility and resource-limit
61
- documentation, scheduler benchmarks, and contribution/security policies.
202
+ documentation, scheduler benchmarks, and contribution/security policies
203
+ ([#5](https://github.com/Epsirom/braid/pull/5)) — @Epsirom.
204
+
205
+ ### New Contributors
206
+
207
+ - Thanks to @Epsirom for starting the project with the
208
+ [initial commit](https://github.com/Epsirom/braid/commit/bdf4812f6844a415adcdaf53d83ac6f2ace63f2e)
209
+ and contributing [#3](https://github.com/Epsirom/braid/pull/3),
210
+ [#4](https://github.com/Epsirom/braid/pull/4), and
211
+ [#5](https://github.com/Epsirom/braid/pull/5).
212
+
213
+ [Release history](https://github.com/Epsirom/braid/commits/v0.1.0).
62
214
 
63
215
  Limitations: no persistent jobs, retries, token/spend budgets, streaming core
64
216
  responses, graph mutation, nested runs, or sandboxing. See the roadmap and
package/CONTRIBUTING.md CHANGED
@@ -34,6 +34,15 @@ checkout. That last check needs registry access for Pi dependencies but never
34
34
  calls a model. `npm test` is the fast core-only loop; `npm run test:pi` tests Pi.
35
35
  `npm run bench` measures the scheduler without a provider.
36
36
 
37
+ Run `npm run audit:dependencies` after `npm ci` to scan the complete dependency
38
+ tree, including development dependencies. The separate Dependency security
39
+ workflow runs this on pull requests, pushes to main, and weekly. The command
40
+ exits 1 for vulnerabilities and 2 for scanner failures or incomplete reports;
41
+ both fail the workflow, with details in its log and a separate result summary.
42
+ This registry-backed check is separate from `verify` so deterministic tests do
43
+ not depend on audit service availability. See [dependency security](SECURITY.md#dependency-security)
44
+ for the known Pi shrinkwrap issue and the required upgrade verification.
45
+
37
46
  ## Changes and reviews
38
47
 
39
48
  Submit changes to `main` through a pull request, including maintainer changes.