@ontrails/testing 1.0.0-beta.4 → 1.0.0-beta.41

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.
Files changed (91) hide show
  1. package/CHANGELOG.md +526 -12
  2. package/README.md +83 -18
  3. package/package.json +34 -5
  4. package/src/all-established.ts +168 -0
  5. package/src/all.ts +51 -12
  6. package/src/assertions.ts +253 -0
  7. package/src/cli.ts +6 -0
  8. package/src/composes.ts +433 -0
  9. package/src/context.ts +200 -14
  10. package/src/contracts.ts +44 -33
  11. package/src/detours.ts +155 -18
  12. package/src/effective-examples.ts +408 -0
  13. package/src/errors.ts +47 -0
  14. package/src/examples.ts +274 -113
  15. package/src/harness-cli.ts +83 -58
  16. package/src/harness-http.ts +341 -0
  17. package/src/harness-mcp.ts +49 -16
  18. package/src/http.ts +10 -0
  19. package/src/index.ts +22 -14
  20. package/src/logger.ts +3 -1
  21. package/src/mcp.ts +6 -0
  22. package/src/scenario.ts +375 -0
  23. package/src/signals.ts +221 -0
  24. package/src/surface-parity.ts +389 -0
  25. package/src/trail.ts +1 -1
  26. package/src/types.ts +24 -52
  27. package/.turbo/turbo-build.log +0 -1
  28. package/.turbo/turbo-lint.log +0 -3
  29. package/.turbo/turbo-typecheck.log +0 -1
  30. package/dist/all.d.ts +0 -30
  31. package/dist/all.d.ts.map +0 -1
  32. package/dist/all.js +0 -47
  33. package/dist/all.js.map +0 -1
  34. package/dist/assertions.d.ts +0 -49
  35. package/dist/assertions.d.ts.map +0 -1
  36. package/dist/assertions.js +0 -84
  37. package/dist/assertions.js.map +0 -1
  38. package/dist/context.d.ts +0 -19
  39. package/dist/context.d.ts.map +0 -1
  40. package/dist/context.js +0 -33
  41. package/dist/context.js.map +0 -1
  42. package/dist/contracts.d.ts +0 -16
  43. package/dist/contracts.d.ts.map +0 -1
  44. package/dist/contracts.js +0 -66
  45. package/dist/contracts.js.map +0 -1
  46. package/dist/detours.d.ts +0 -12
  47. package/dist/detours.d.ts.map +0 -1
  48. package/dist/detours.js +0 -30
  49. package/dist/detours.js.map +0 -1
  50. package/dist/examples.d.ts +0 -22
  51. package/dist/examples.d.ts.map +0 -1
  52. package/dist/examples.js +0 -175
  53. package/dist/examples.js.map +0 -1
  54. package/dist/follows.d.ts +0 -32
  55. package/dist/follows.d.ts.map +0 -1
  56. package/dist/follows.js +0 -169
  57. package/dist/follows.js.map +0 -1
  58. package/dist/harness-cli.d.ts +0 -21
  59. package/dist/harness-cli.d.ts.map +0 -1
  60. package/dist/harness-cli.js +0 -213
  61. package/dist/harness-cli.js.map +0 -1
  62. package/dist/harness-mcp.d.ts +0 -21
  63. package/dist/harness-mcp.d.ts.map +0 -1
  64. package/dist/harness-mcp.js +0 -50
  65. package/dist/harness-mcp.js.map +0 -1
  66. package/dist/index.d.ts +0 -14
  67. package/dist/index.d.ts.map +0 -1
  68. package/dist/index.js +0 -16
  69. package/dist/index.js.map +0 -1
  70. package/dist/logger.d.ts +0 -15
  71. package/dist/logger.d.ts.map +0 -1
  72. package/dist/logger.js +0 -87
  73. package/dist/logger.js.map +0 -1
  74. package/dist/trail.d.ts +0 -20
  75. package/dist/trail.d.ts.map +0 -1
  76. package/dist/trail.js +0 -80
  77. package/dist/trail.js.map +0 -1
  78. package/dist/types.d.ts +0 -80
  79. package/dist/types.d.ts.map +0 -1
  80. package/dist/types.js +0 -5
  81. package/dist/types.js.map +0 -1
  82. package/src/__tests__/context.test.ts +0 -60
  83. package/src/__tests__/contracts.test.ts +0 -94
  84. package/src/__tests__/detours.test.ts +0 -55
  85. package/src/__tests__/examples.test.ts +0 -175
  86. package/src/__tests__/follows.test.ts +0 -163
  87. package/src/__tests__/logger.test.ts +0 -136
  88. package/src/__tests__/trail.test.ts +0 -99
  89. package/src/follows.ts +0 -283
  90. package/tsconfig.json +0 -9
  91. package/tsconfig.tsbuildinfo +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,519 @@
1
1
  # @ontrails/testing
2
2
 
3
+ ## 1.0.0-beta.41
4
+
5
+ ## 1.0.0-beta.40
6
+
7
+ ### Minor Changes
8
+
9
+ - [`5adb995`](https://github.com/outfitter-dev/trails/commit/5adb99551c2dda6190d46cce7f60bb08d63c99aa): Complete the v1 hard cutover from the authored `blaze` field to
10
+ `implementation` across trail contracts, surface projections, tests, examples,
11
+ and public source-analysis helpers. Existing applications must rename authored
12
+ trail behavior fields and direct trail-object access before upgrading.
13
+ - [`6712075`](https://github.com/outfitter-dev/trails/commit/67120754df3f614c7f4dd98be1fa0ba9d69b7765): Complete the v1 hard cutover from the `contour` domain-object declaration
14
+ vocabulary to `entity` across contracts, topo facts, store helpers, Warden,
15
+ Wayfinder, operator surfaces, examples, and generated locks. Existing
16
+ applications must rename contour APIs, run `trails dev reset --yes` to discard
17
+ pre-cutover local Topographer snapshots, and then recompile committed
18
+ `trails.lock` artifacts before upgrading. Those derived snapshots are
19
+ intentionally not read through a compatibility layer.
20
+ The entity-shaped wire contract advances `TopoGraph` and split lock manifests
21
+ from schema version 3 to 4; old split artifacts fail with regeneration guidance,
22
+ while the canonical root `trails.lock` remains schema version 5.
23
+ Wayfinder reports those stale rows as topo-store drift while keeping current
24
+ committed lock facts available for inspection.
25
+
26
+ ## 1.0.0-beta.39
27
+
28
+ ### Patch Changes
29
+
30
+ - [`4797bee`](https://github.com/outfitter-dev/trails/commit/4797bee8b7edb80d39c032a3a12a8b3bfd0402cf): `createMcpHarness` now forwards the full `McpExtra` from `options.extra` — `authorization`, `permit`, and `sessionId` in addition to the already-forwarded `abortSignal`, `progressToken`, and `sendProgress` — so bearer-token permit enforcement can be exercised through the harness instead of invoking `deriveMcpTools` handlers directly (TRL-1176).
31
+
32
+ ## 1.0.0-beta.38
33
+
34
+ ## 1.0.0-beta.37
35
+
36
+ ## 1.0.0-beta.36
37
+
38
+ ## 1.0.0-beta.35
39
+
40
+ ## 1.0.0-beta.34
41
+
42
+ ## 1.0.0-beta.33
43
+
44
+ ## 1.0.0-beta.32
45
+
46
+ ### Patch Changes
47
+
48
+ - Updated dependencies [3e5c0fc]
49
+ - Updated dependencies [f3c4fef]
50
+ - Updated dependencies [cb0a9d8]
51
+ - Updated dependencies [21c6dda]
52
+ - Updated dependencies [860ef32]
53
+ - Updated dependencies [fe72b84]
54
+ - @ontrails/core@1.0.0-beta.32
55
+ - @ontrails/cli@1.0.0-beta.32
56
+ - @ontrails/http@1.0.0-beta.32
57
+ - @ontrails/mcp@1.0.0-beta.32
58
+ - @ontrails/observe@1.0.0-beta.32
59
+
60
+ ## 1.0.0-beta.31
61
+
62
+ ### Patch Changes
63
+
64
+ - Updated dependencies [ee9f3ae]
65
+ - Updated dependencies [4cd5d4e]
66
+ - Updated dependencies [38907cc]
67
+ - @ontrails/mcp@1.0.0-beta.31
68
+ - @ontrails/core@1.0.0-beta.31
69
+ - @ontrails/cli@1.0.0-beta.31
70
+ - @ontrails/http@1.0.0-beta.31
71
+ - @ontrails/observe@1.0.0-beta.31
72
+
73
+ ## 1.0.0-beta.30
74
+
75
+ ### Patch Changes
76
+
77
+ - @ontrails/cli@1.0.0-beta.30
78
+ - @ontrails/core@1.0.0-beta.30
79
+ - @ontrails/http@1.0.0-beta.30
80
+ - @ontrails/mcp@1.0.0-beta.30
81
+ - @ontrails/observe@1.0.0-beta.30
82
+
83
+ ## 1.0.0-beta.29
84
+
85
+ ### Patch Changes
86
+
87
+ - @ontrails/cli@1.0.0-beta.29
88
+ - @ontrails/core@1.0.0-beta.29
89
+ - @ontrails/http@1.0.0-beta.29
90
+ - @ontrails/mcp@1.0.0-beta.29
91
+ - @ontrails/observe@1.0.0-beta.29
92
+
93
+ ## 1.0.0-beta.28
94
+
95
+ ### Patch Changes
96
+
97
+ - @ontrails/cli@1.0.0-beta.28
98
+ - @ontrails/core@1.0.0-beta.28
99
+ - @ontrails/http@1.0.0-beta.28
100
+ - @ontrails/mcp@1.0.0-beta.28
101
+ - @ontrails/observe@1.0.0-beta.28
102
+
103
+ ## 1.0.0-beta.27
104
+
105
+ ### Patch Changes
106
+
107
+ - @ontrails/cli@1.0.0-beta.27
108
+ - @ontrails/core@1.0.0-beta.27
109
+ - @ontrails/http@1.0.0-beta.27
110
+ - @ontrails/mcp@1.0.0-beta.27
111
+ - @ontrails/observe@1.0.0-beta.27
112
+
113
+ ## 1.0.0-beta.26
114
+
115
+ ### Patch Changes
116
+
117
+ - Updated dependencies [1307568]
118
+ - Updated dependencies [371d19e]
119
+ - @ontrails/core@1.0.0-beta.26
120
+ - @ontrails/cli@1.0.0-beta.26
121
+ - @ontrails/http@1.0.0-beta.26
122
+ - @ontrails/mcp@1.0.0-beta.26
123
+ - @ontrails/observe@1.0.0-beta.26
124
+
125
+ ## 1.0.0-beta.25
126
+
127
+ ### Patch Changes
128
+
129
+ - Updated dependencies [a9fdbc7]
130
+ - Updated dependencies [c36aca9]
131
+ - Updated dependencies [3befcf1]
132
+ - Updated dependencies [2c08afe]
133
+ - Updated dependencies [f1e6efa]
134
+ - Updated dependencies [f1e6efa]
135
+ - Updated dependencies [a4f9cf6]
136
+ - Updated dependencies [9bcf34e]
137
+ - Updated dependencies [f7d97fc]
138
+ - Updated dependencies [df13faf]
139
+ - @ontrails/mcp@1.0.0-beta.25
140
+ - @ontrails/core@1.0.0-beta.25
141
+ - @ontrails/http@1.0.0-beta.25
142
+ - @ontrails/cli@1.0.0-beta.25
143
+ - @ontrails/observe@1.0.0-beta.25
144
+
145
+ ## 1.0.0-beta.24
146
+
147
+ ### Patch Changes
148
+
149
+ - @ontrails/cli@1.0.0-beta.24
150
+ - @ontrails/core@1.0.0-beta.24
151
+ - @ontrails/http@1.0.0-beta.24
152
+ - @ontrails/mcp@1.0.0-beta.24
153
+ - @ontrails/observe@1.0.0-beta.24
154
+
155
+ ## 1.0.0-beta.23
156
+
157
+ ### Patch Changes
158
+
159
+ - Updated dependencies [9c5ecdc]
160
+ - @ontrails/http@1.0.0-beta.23
161
+ - @ontrails/cli@1.0.0-beta.23
162
+ - @ontrails/core@1.0.0-beta.23
163
+ - @ontrails/mcp@1.0.0-beta.23
164
+ - @ontrails/observe@1.0.0-beta.23
165
+
166
+ ## 1.0.0-beta.22
167
+
168
+ ### Patch Changes
169
+
170
+ - @ontrails/cli@1.0.0-beta.22
171
+ - @ontrails/core@1.0.0-beta.22
172
+ - @ontrails/http@1.0.0-beta.22
173
+ - @ontrails/mcp@1.0.0-beta.22
174
+ - @ontrails/observe@1.0.0-beta.22
175
+
176
+ ## 1.0.0-beta.21
177
+
178
+ ### Patch Changes
179
+
180
+ - Updated dependencies [99523f2]
181
+ - @ontrails/core@1.0.0-beta.21
182
+ - @ontrails/cli@1.0.0-beta.21
183
+ - @ontrails/http@1.0.0-beta.21
184
+ - @ontrails/mcp@1.0.0-beta.21
185
+ - @ontrails/observe@1.0.0-beta.21
186
+
187
+ ## 1.0.0-beta.20
188
+
189
+ ### Patch Changes
190
+
191
+ - Updated dependencies [851a2a3]
192
+ - Updated dependencies [9bec01c]
193
+ - Updated dependencies [accb9ec]
194
+ - @ontrails/core@1.0.0-beta.20
195
+ - @ontrails/mcp@1.0.0-beta.20
196
+ - @ontrails/cli@1.0.0-beta.20
197
+ - @ontrails/http@1.0.0-beta.20
198
+ - @ontrails/observe@1.0.0-beta.20
199
+
200
+ ## 1.0.0-beta.19
201
+
202
+ ### Major Changes
203
+
204
+ - 1eb5bdc: Rename first-class trail composition from the `cross` API family to the `compose` family across core contracts, testing helpers, topo projections, Warden rules, CLI scaffolds, and docs. `composes`, `ctx.compose`, `composeInput`, and `Compose*` type names are now the public authoring vocabulary; topo persistence migrates legacy composition rows and graph keys forward.
205
+
206
+ ### Minor Changes
207
+
208
+ - 492f71c: Move CLI, MCP, HTTP, established-surface, and surface-parity helpers behind explicit subpaths so root contract testing imports no longer require optional surface peers. The Trails CLI scaffolder now emits `import { testAllEstablished } from '@ontrails/testing/established'` for generated verification.
209
+
210
+ ### Patch Changes
211
+
212
+ - e41c382: Document beta-channel install guidance in package and adapter README install snippets so consumers use explicit `@beta` (or pinned `1.0.0-beta.N`) tags instead of accidental `latest` resolution during the prerelease line. Adds the policy doc at `docs/releases/beta-channel-policy.md`, prints both `latest` and `beta` dist-tags in `bun run publish:registry-check`, and aligns plugin/skill install snippets.
213
+ - f8d80b9: Refresh current-facing compose vocabulary in package documentation after the composition cutover.
214
+ - 337b467: Construct declared Trails error classes when `testComposes` injects composed trail error examples.
215
+ - 16cb740: Run examples and contract checks across live trail version entries, and project version-entry example coverage into topo and survey reports.
216
+ - 5d88104: Polish Trails blaze terminology across package docs and Warden guidance.
217
+ - f04a9ef: Tighten trail-versioning API polish by keeping executor cross-validation internals out of public options and improving absent marker diagnostics.
218
+ - Updated dependencies [e41c382]
219
+ - Updated dependencies [a2f1825]
220
+ - Updated dependencies [a2f1825]
221
+ - Updated dependencies [1eb5bdc]
222
+ - Updated dependencies [f8d80b9]
223
+ - Updated dependencies [94a8380]
224
+ - Updated dependencies [94a8380]
225
+ - Updated dependencies [846a597]
226
+ - Updated dependencies [8638dae]
227
+ - Updated dependencies [8638dae]
228
+ - Updated dependencies [8638dae]
229
+ - Updated dependencies [223aaad]
230
+ - Updated dependencies [3125f4d]
231
+ - Updated dependencies [2494dc6]
232
+ - Updated dependencies [2d53717]
233
+ - Updated dependencies [16cb740]
234
+ - Updated dependencies [8894ecb]
235
+ - Updated dependencies [fdf7ec9]
236
+ - Updated dependencies [92e709b]
237
+ - Updated dependencies [d76be13]
238
+ - Updated dependencies [84f56a5]
239
+ - Updated dependencies [431b04c]
240
+ - Updated dependencies [5d88104]
241
+ - Updated dependencies [f04a9ef]
242
+ - Updated dependencies [fc00aeb]
243
+ - Updated dependencies [ab1c77c]
244
+ - Updated dependencies [8ca5b85]
245
+ - @ontrails/core@1.0.0-beta.19
246
+ - @ontrails/cli@1.0.0-beta.19
247
+ - @ontrails/http@1.0.0-beta.19
248
+ - @ontrails/mcp@1.0.0-beta.19
249
+ - @ontrails/observe@1.0.0-beta.19
250
+
251
+ ## 1.0.0-beta.18
252
+
253
+ ### Patch Changes
254
+
255
+ - Updated dependencies [c0b2948]
256
+ - Updated dependencies [fc3219c]
257
+ - Updated dependencies [bc2d327]
258
+ - Updated dependencies [bf44972]
259
+ - Updated dependencies [e0ae995]
260
+ - @ontrails/http@1.0.0-beta.18
261
+ - @ontrails/observe@1.0.0-beta.18
262
+ - @ontrails/cli@1.0.0-beta.18
263
+ - @ontrails/core@1.0.0-beta.18
264
+ - @ontrails/mcp@1.0.0-beta.18
265
+
266
+ ## 1.0.0-beta.17
267
+
268
+ ### Patch Changes
269
+
270
+ - ce42573: Add an example-driven CLI/MCP/HTTP surface parity helper.
271
+ - e1eb4ee: Add an HTTP surface harness and include HTTP projection validation in `testAllEstablished`.
272
+ - Updated dependencies [3dc8254]
273
+ - Updated dependencies [61497c5]
274
+ - @ontrails/core@1.0.0-beta.17
275
+ - @ontrails/cli@1.0.0-beta.17
276
+ - @ontrails/http@1.0.0-beta.17
277
+ - @ontrails/mcp@1.0.0-beta.17
278
+ - @ontrails/observe@1.0.0-beta.17
279
+
280
+ ## 1.0.0-beta.16
281
+
282
+ ### Minor Changes
283
+
284
+ - bcdc484: Add an explicit `unmockable: { reason }` resource marker and have testing auto-mock resolution skip intentionally unmockable resources.
285
+ - bb1cadf: Rename the generated `testAll` suite from `governance` to `contract`.
286
+
287
+ ### Patch Changes
288
+
289
+ - d40430d: Remove the retired `@ontrails/logging` workspace from the prerelease package set. Use `@ontrails/observe` for log and trace sink contracts and `@ontrails/logtape` for LogTape forwarding.
290
+ - 193ae78: Migrate testing logger types from the legacy `@ontrails/logging` package to `@ontrails/observe`.
291
+ - Updated dependencies [73622ae]
292
+ - Updated dependencies [e991a5b]
293
+ - Updated dependencies [25f3c5c]
294
+ - Updated dependencies [6300f70]
295
+ - Updated dependencies [d172013]
296
+ - Updated dependencies [c3fc5c3]
297
+ - Updated dependencies [20d7a5c]
298
+ - Updated dependencies [be5fb46]
299
+ - Updated dependencies [e898cc4]
300
+ - Updated dependencies [a8997ed]
301
+ - Updated dependencies [fe03945]
302
+ - Updated dependencies [3395234]
303
+ - Updated dependencies [d40430d]
304
+ - Updated dependencies [bcdc484]
305
+ - Updated dependencies [ed171d5]
306
+ - Updated dependencies [49c2e7d]
307
+ - Updated dependencies [331e3a9]
308
+ - Updated dependencies [4399fdb]
309
+ - Updated dependencies [4b8d13b]
310
+ - Updated dependencies [fbd42fc]
311
+ - Updated dependencies [63d1aef]
312
+ - Updated dependencies [112b9f2]
313
+ - Updated dependencies [893025e]
314
+ - Updated dependencies [ed888e2]
315
+ - Updated dependencies [2e05e27]
316
+ - Updated dependencies [9cdb0f2]
317
+ - Updated dependencies [c8caa5e]
318
+ - Updated dependencies [f4b90c9]
319
+ - Updated dependencies [eec5e9d]
320
+ - Updated dependencies [4e75129]
321
+ - Updated dependencies [47505fe]
322
+ - Updated dependencies [ebd4434]
323
+ - Updated dependencies [863d473]
324
+ - Updated dependencies [344f2f7]
325
+ - Updated dependencies [26f9ffd]
326
+ - Updated dependencies [66056ac]
327
+ - Updated dependencies [0bad534]
328
+ - Updated dependencies [10eae9a]
329
+ - Updated dependencies [22c6c06]
330
+ - @ontrails/core@1.0.0-beta.16
331
+ - @ontrails/cli@1.0.0-beta.16
332
+ - @ontrails/mcp@1.0.0-beta.16
333
+ - @ontrails/observe@1.0.0-beta.16
334
+
335
+ ## 1.0.0-beta.15
336
+
337
+ ### Minor Changes
338
+
339
+ - f511a3a: Rename `app` field to `graph` in `CliHarnessOptions` and `McpHarnessOptions`
340
+
341
+ ### Patch Changes
342
+
343
+ - Updated dependencies [4ad6b25]
344
+ - @ontrails/core@1.0.0-beta.15
345
+ - @ontrails/cli@1.0.0-beta.15
346
+ - @ontrails/observe@1.0.0-beta.15
347
+ - @ontrails/mcp@1.0.0-beta.15
348
+
349
+ ## 1.0.0-beta.14
350
+
351
+ ### Minor Changes
352
+
353
+ - 69057e9: Add hierarchical CLI command trees and structured input, enforce established-only topo exports across trailheads, move developer topo and tracker state onto shared `trails.db` with pins and maintenance flows, and ship schema-derived stores through `@ontrails/store` and its Drizzle runtime.
354
+
355
+ ### Patch Changes
356
+
357
+ - Updated dependencies [69057e9]
358
+ - @ontrails/cli@1.0.0-beta.14
359
+ - @ontrails/core@1.0.0-beta.14
360
+ - @ontrails/logging@1.0.0-beta.14
361
+ - @ontrails/mcp@1.0.0-beta.14
362
+
363
+ ## 1.0.0-beta.13
364
+
365
+ ### Minor Changes
366
+
367
+ - Trail-native vocabulary cutover. Breaking API field renames across all packages:
368
+
369
+ - Trail spec: `run:` → `blaze:`, `follow:` → `crosses:`, `services:` → `provisions:`, `metadata:` → `meta:`, `emits:` → `signals:`
370
+ - Runtime: `ctx.follow()` → `ctx.cross()`, `ctx.emit()` → `ctx.signal()`, `ctx.signal` (abort) → `ctx.abortSignal`
371
+ - Entry points: `blaze(app)` → `trailhead(app)`
372
+ - Package rename: `@ontrails/crumbs` → `@ontrails/tracker`
373
+ - Wrapper types: `Layer` → `Gate`, `layers`/`middleware` → `gates`
374
+ - Transport: `surface` → `trailhead`, `adapter` → `connector`
375
+
376
+ ### Patch Changes
377
+
378
+ - 6944147: Complete trifecta for config, permits, and tracker (formerly tracks)
379
+
380
+ - **config**: Add `configProvision`, `configGate`, `config.trail`, and `config.workspace` trails with full `defineConfig`, `resolve`, `describe`, `explain`, `doctor`, and code generation support
381
+ - **permits**: Add `authService` and `auth.verify` trail for runtime authorization checks
382
+ - **tracker**: Rename tracks to tracker; add `trackerProvision` and `tracker.status` trail for structured signal tracking
383
+ - **cli**: Fix build flag handling and improve bootstrap scaffolding
384
+ - **testing**: Expand test context helpers and example-based testing utilities
385
+ - **core/mcp/http**: Internal alignment for provision and composition updates
386
+
387
+ - Updated dependencies [6944147]
388
+ - Updated dependencies
389
+ - @ontrails/core@1.0.0-beta.13
390
+ - @ontrails/cli@1.0.0-beta.13
391
+ - @ontrails/mcp@1.0.0-beta.13
392
+ - @ontrails/logging@1.0.0-beta.13
393
+
394
+ ## 1.0.0-beta.12
395
+
396
+ ### Patch Changes
397
+
398
+ - Complete trifecta for config, permits, and tracker (formerly tracks)
399
+
400
+ - **config**: Add `configProvision`, `config.gate`, `config.trail`, and `config.workspace` trails with full `defineConfig`, `resolve`, `describe`, `explain`, `doctor`, and code generation support
401
+ - **permits**: Add `authProvision` and `auth.verify` trail for runtime authorization checks
402
+ - **tracker**: Rename tracks to tracker; add `trackerProvision` and `tracker.status` trail for structured event tracking
403
+ - **cli**: Fix build flag handling and improve bootstrap scaffolding
404
+ - **testing**: Expand test context helpers and example-based testing utilities
405
+ - **core/mcp/http**: Internal alignment for provision and composition updates
406
+
407
+ - Updated dependencies
408
+ - @ontrails/core@1.0.0-beta.12
409
+ - @ontrails/cli@1.0.0-beta.12
410
+ - @ontrails/mcp@1.0.0-beta.12
411
+ - @ontrails/logging@1.0.0-beta.12
412
+
413
+ ## 1.0.0-beta.11
414
+
415
+ ### Minor Changes
416
+
417
+ - Add provisions as a first-class primitive.
418
+
419
+ Provisions make infrastructure dependencies declarative, injectable, and governable. Define a provision with `provision()`, declare it on a trail with `provisions: [db]`, and access it with `db.from(ctx)` or `ctx.provision()`.
420
+
421
+ **Core:** `provision()` factory, `ProvisionSpec<T>`, `ProvisionContext`, singleton resolution in `executeTrail`, in-flight creation dedup, `isProvision` guard, `findDuplicateProvisionId`, topo provision discovery and validation, `provisions` field on trail specs.
422
+
423
+ **Testing:** Auto-resolution of `mock` factories in `testAll`, `testExamples`, `testContracts`, and `testCrosses`. Explicit `provisions` overrides with correct precedence (`explicit > ctx.extensions > auto-mock`). Provision mock propagation through crossing graphs.
424
+
425
+ **Warden:** `provision-declarations` rule validates `db.from(ctx)` and `ctx.provision()` usage matches declared `provisions: [...]`. `provision-exists` rule validates declared provision IDs resolve in project context. Scope-aware AST walking skips nested function boundaries.
426
+
427
+ **Trailheads:** Provision overrides thread through `run` and `trailhead` on CLI, MCP, and HTTP.
428
+
429
+ **Introspection:** Survey and trailhead map outputs include provision graph. Topo exposes `.provisions`, `.getProvision()`, `.hasProvision()`, `.listProvisions()`, `.provisionIds()`, `.provisionCount`.
430
+
431
+ **Docs:** ADR-009 accepted. Unified services guide, updated vocabulary, getting-started, architecture, and package READMEs.
432
+
433
+ ### Patch Changes
434
+
435
+ - Updated dependencies
436
+ - @ontrails/core@1.0.0-beta.11
437
+ - @ontrails/cli@1.0.0-beta.11
438
+ - @ontrails/mcp@1.0.0-beta.11
439
+ - @ontrails/logging@1.0.0-beta.11
440
+
441
+ ## 1.0.0-beta.10
442
+
443
+ ### Patch Changes
444
+
445
+ - Updated dependencies
446
+ - @ontrails/core@1.0.0-beta.10
447
+ - @ontrails/cli@1.0.0-beta.10
448
+ - @ontrails/mcp@1.0.0-beta.10
449
+ - @ontrails/logging@1.0.0-beta.10
450
+
451
+ ## 1.0.0-beta.9
452
+
453
+ ### Minor Changes
454
+
455
+ - Consolidated improvements across all trailhead packages.
456
+
457
+ **core**: Add `TrailResult<T>` utility type, `topo.ids()` and `topo.count` accessors, `run()` for headless trail execution, and extract shared `executeTrail` pipeline used by CLI/MCP/HTTP.
458
+
459
+ **http**: Detect route path collisions and return `Result` from `buildHttpRoutes()`, wire request `AbortSignal` through to trail context, and make write → POST mapping explicit in intent-to-method lookup.
460
+
461
+ **mcp**: Return `Result` from `buildMcpTools()` on collision instead of throwing.
462
+
463
+ **cli**: Verify exception catching via centralized `executeTrail`.
464
+
465
+ **testing**: Cross-context awareness improvements.
466
+
467
+ **warden**: Refactor rules as composable trails with examples.
468
+
469
+ **schema**: Error code and empty body fixes.
470
+
471
+ ### Patch Changes
472
+
473
+ - Updated dependencies
474
+ - @ontrails/core@1.0.0-beta.9
475
+ - @ontrails/cli@1.0.0-beta.9
476
+ - @ontrails/mcp@1.0.0-beta.9
477
+ - @ontrails/logging@1.0.0-beta.9
478
+
479
+ ## 1.0.0-beta.8
480
+
481
+ ### Patch Changes
482
+
483
+ - @ontrails/cli@1.0.0-beta.8
484
+ - @ontrails/core@1.0.0-beta.8
485
+ - @ontrails/logging@1.0.0-beta.8
486
+ - @ontrails/mcp@1.0.0-beta.8
487
+
488
+ ## 1.0.0-beta.7
489
+
490
+ ### Patch Changes
491
+
492
+ - @ontrails/cli@1.0.0-beta.7
493
+ - @ontrails/core@1.0.0-beta.7
494
+ - @ontrails/logging@1.0.0-beta.7
495
+ - @ontrails/mcp@1.0.0-beta.7
496
+
497
+ ## 1.0.0-beta.6
498
+
499
+ ### Patch Changes
500
+
501
+ - Updated dependencies
502
+ - @ontrails/core@1.0.0-beta.6
503
+ - @ontrails/cli@1.0.0-beta.6
504
+ - @ontrails/logging@1.0.0-beta.6
505
+ - @ontrails/mcp@1.0.0-beta.6
506
+
507
+ ## 1.0.0-beta.5
508
+
509
+ ### Patch Changes
510
+
511
+ - Updated dependencies
512
+ - @ontrails/core@1.0.0-beta.5
513
+ - @ontrails/logging@1.0.0-beta.5
514
+ - @ontrails/cli@1.0.0-beta.5
515
+ - @ontrails/mcp@1.0.0-beta.5
516
+
3
517
  ## 1.0.0-beta.4
4
518
 
5
519
  ### Major Changes
@@ -8,15 +522,15 @@
8
522
 
9
523
  **BREAKING CHANGES:**
10
524
 
11
- - `hike()` removed — use `trail()` with optional `follow: [...]` field
12
- - `follows` renamed to `follow` (singular, matching `ctx.follow()`)
525
+ - `hike()` removed — use `trail()` with optional `crosses: [...]` field
526
+ - `follows` renamed to `crosses` (matching `ctx.cross()`)
13
527
  - `topo.hikes` removed — single `topo.trails` map
14
528
  - `kind: 'hike'` removed — everything is `kind: 'trail'`
15
529
  - `readOnly`/`destructive` booleans replaced by `intent: 'read' | 'write' | 'destroy'`
16
530
  - `implementation` field renamed to `run`
17
531
  - `markers` field renamed to `metadata`
18
- - `testHike` renamed to `testFollows`, `HikeScenario` to `FollowScenario`
19
- - `blaze()` now returns the surface handle (`Command` for CLI, `Server` for MCP)
532
+ - `testHike` renamed to `testCrosses`, `HikeScenario` to `CrossScenario`
533
+ - `trailhead()` now returns the trailhead handle (`Command` for CLI, `Server` for MCP)
20
534
 
21
535
  ### Patch Changes
22
536
 
@@ -30,15 +544,15 @@
30
544
 
31
545
  ### Minor Changes
32
546
 
33
- - Bug fixes across all surface packages found via parallel Codex review.
547
+ - Bug fixes across all trailhead packages found via parallel Codex review.
34
548
 
35
549
  **core**: Fix Result.toJson false circular detection on DAGs, deserializeError subclass round-trip, topo cross-kind ID collisions, validateTopo multi-node cycle detection, error example input validation bypass, and deriveFields array type collapse.
36
550
 
37
- **cli**: Switch blaze to parseAsync for proper async error handling, add boolean flag negation (--no-flag), and strict number parsing that rejects partial input.
551
+ **cli**: Switch trailhead to parseAsync for proper async error handling, add boolean flag negation (--no-flag), and strict number parsing that rejects partial input.
38
552
 
39
553
  **mcp**: Align BlobRef with core (including ReadableStream support) and detect tool-name collisions after normalization.
40
554
 
41
- **testing**: Include hikes in testContracts validation, with follow-context awareness.
555
+ **testing**: Include hikes in testContracts validation, with cross-context awareness.
42
556
 
43
557
  **warden**: Collect hike detour targets, validate detour refs in hike specs, and stop implementation-returns-result from walking into nested function bodies.
44
558
 
@@ -82,12 +596,12 @@
82
596
  - Initial v1 beta release of the Trails framework.
83
597
 
84
598
  - **@ontrails/core** — Result type, error taxonomy, trail/hike/event/topo, validateTopo, validateInput/Output, deriveFields, patterns, redaction, branded types, resilience
85
- - **@ontrails/cli** — CLI surface adapter, Commander integration, flag derivation, layers
86
- - **@ontrails/mcp** — MCP surface adapter, tool generation, annotations, progress bridge
87
- - **@ontrails/logging** — Structured logging, sinks, formatters, LogTape adapter
88
- - **@ontrails/testing** — testAll, testExamples, testTrail, testHike, testContracts, testDetours, surface harnesses
599
+ - **@ontrails/cli** — CLI trailhead connector, Commander integration, flag derivation, gates
600
+ - **@ontrails/mcp** — MCP trailhead connector, tool generation, annotations, progress bridge
601
+ - **@ontrails/logging** — Structured logging, sinks, formatters, LogTape connector
602
+ - **@ontrails/testing** — testAll, testExamples, testTrail, testHike, testContracts, testDetours, trailhead harnesses
89
603
  - **@ontrails/warden** — AST-based code convention rules via oxc-parser, drift detection, CI formatters
90
- - **@ontrails/schema** — Surface map generation, hashing, semantic diffing
604
+ - **@ontrails/schema** — Trailhead map generation, hashing, semantic diffing
91
605
 
92
606
  ### Patch Changes
93
607