@ontrails/testing 1.0.0-beta.5 → 1.0.0-beta.50

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 +555 -12
  2. package/README.md +83 -18
  3. package/package.json +39 -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,548 @@
1
1
  # @ontrails/testing
2
2
 
3
+ ## 1.0.0-beta.50
4
+
5
+ ## 1.0.0-beta.49
6
+
7
+ ## 1.0.0-beta.48
8
+
9
+ ## 1.0.0-beta.47
10
+
11
+ ## 1.0.0-beta.46
12
+
13
+ ## 1.0.0-beta.45
14
+
15
+ ## 1.0.0-beta.44
16
+
17
+ ### Patch Changes
18
+
19
+ - [`b1fbe57`](https://github.com/outfitter-dev/trails/commit/b1fbe574e6f44d1fecb5e3a000270955c0a77b7b): Publish Bun-validated package tarballs through an npm trusted-publishing adapter
20
+ binding, add exact repository metadata for each public workspace package, and
21
+ correct the native Bun release descriptor to its pack-only runtime boundary.
22
+
23
+ ## 1.0.0-beta.43
24
+
25
+ ### Minor Changes
26
+
27
+ - [`88a6a62`](https://github.com/outfitter-dev/trails/commit/88a6a62a9e9e230ca6d368fa78dc3ece6c816204): Complete the v1 classification-first cutover from projection/project vocabulary
28
+ to derive/derived for contract-owned fact production and render/rendered for
29
+ surface presentation. Public type, helper, rule, relation, and report names move
30
+ without compatibility aliases; ordinary repository/project nouns remain
31
+ explicit preserves or structured review inventory.
32
+
33
+ ### Patch Changes
34
+
35
+ - [`113aed6`](https://github.com/outfitter-dev/trails/commit/113aed62d20041e35b0cf9d6c1b1a18df4b88f57): Rename the dependency-light observability owner from `@ontrails/observe` to
36
+ `@ontrails/observability` as a pre-v1 hard cut. Update dependent packages,
37
+ documentation, package discovery, and the governed Regrade route; no
38
+ compatibility package or old import route is retained.
39
+
40
+ ## 1.0.0-beta.42
41
+
42
+ ## 1.0.0-beta.41
43
+
44
+ ## 1.0.0-beta.40
45
+
46
+ ### Minor Changes
47
+
48
+ - [`5adb995`](https://github.com/outfitter-dev/trails/commit/5adb99551c2dda6190d46cce7f60bb08d63c99aa): Complete the v1 hard cutover from the authored `blaze` field to
49
+ `implementation` across trail contracts, surface projections, tests, examples,
50
+ and public source-analysis helpers. Existing applications must rename authored
51
+ trail behavior fields and direct trail-object access before upgrading.
52
+ - [`6712075`](https://github.com/outfitter-dev/trails/commit/67120754df3f614c7f4dd98be1fa0ba9d69b7765): Complete the v1 hard cutover from the `contour` domain-object declaration
53
+ vocabulary to `entity` across contracts, topo facts, store helpers, Warden,
54
+ Wayfinder, operator surfaces, examples, and generated locks. Existing
55
+ applications must rename contour APIs, run `trails dev reset --yes` to discard
56
+ pre-cutover local Topographer snapshots, and then recompile committed
57
+ `trails.lock` artifacts before upgrading. Those derived snapshots are
58
+ intentionally not read through a compatibility layer.
59
+ The entity-shaped wire contract advances `TopoGraph` and split lock manifests
60
+ from schema version 3 to 4; old split artifacts fail with regeneration guidance,
61
+ while the canonical root `trails.lock` remains schema version 5.
62
+ Wayfinder reports those stale rows as topo-store drift while keeping current
63
+ committed lock facts available for inspection.
64
+
65
+ ## 1.0.0-beta.39
66
+
67
+ ### Patch Changes
68
+
69
+ - [`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).
70
+
71
+ ## 1.0.0-beta.38
72
+
73
+ ## 1.0.0-beta.37
74
+
75
+ ## 1.0.0-beta.36
76
+
77
+ ## 1.0.0-beta.35
78
+
79
+ ## 1.0.0-beta.34
80
+
81
+ ## 1.0.0-beta.33
82
+
83
+ ## 1.0.0-beta.32
84
+
85
+ ### Patch Changes
86
+
87
+ - Updated dependencies [3e5c0fc]
88
+ - Updated dependencies [f3c4fef]
89
+ - Updated dependencies [cb0a9d8]
90
+ - Updated dependencies [21c6dda]
91
+ - Updated dependencies [860ef32]
92
+ - Updated dependencies [fe72b84]
93
+ - @ontrails/core@1.0.0-beta.32
94
+ - @ontrails/cli@1.0.0-beta.32
95
+ - @ontrails/http@1.0.0-beta.32
96
+ - @ontrails/mcp@1.0.0-beta.32
97
+ - @ontrails/observe@1.0.0-beta.32
98
+
99
+ ## 1.0.0-beta.31
100
+
101
+ ### Patch Changes
102
+
103
+ - Updated dependencies [ee9f3ae]
104
+ - Updated dependencies [4cd5d4e]
105
+ - Updated dependencies [38907cc]
106
+ - @ontrails/mcp@1.0.0-beta.31
107
+ - @ontrails/core@1.0.0-beta.31
108
+ - @ontrails/cli@1.0.0-beta.31
109
+ - @ontrails/http@1.0.0-beta.31
110
+ - @ontrails/observe@1.0.0-beta.31
111
+
112
+ ## 1.0.0-beta.30
113
+
114
+ ### Patch Changes
115
+
116
+ - @ontrails/cli@1.0.0-beta.30
117
+ - @ontrails/core@1.0.0-beta.30
118
+ - @ontrails/http@1.0.0-beta.30
119
+ - @ontrails/mcp@1.0.0-beta.30
120
+ - @ontrails/observe@1.0.0-beta.30
121
+
122
+ ## 1.0.0-beta.29
123
+
124
+ ### Patch Changes
125
+
126
+ - @ontrails/cli@1.0.0-beta.29
127
+ - @ontrails/core@1.0.0-beta.29
128
+ - @ontrails/http@1.0.0-beta.29
129
+ - @ontrails/mcp@1.0.0-beta.29
130
+ - @ontrails/observe@1.0.0-beta.29
131
+
132
+ ## 1.0.0-beta.28
133
+
134
+ ### Patch Changes
135
+
136
+ - @ontrails/cli@1.0.0-beta.28
137
+ - @ontrails/core@1.0.0-beta.28
138
+ - @ontrails/http@1.0.0-beta.28
139
+ - @ontrails/mcp@1.0.0-beta.28
140
+ - @ontrails/observe@1.0.0-beta.28
141
+
142
+ ## 1.0.0-beta.27
143
+
144
+ ### Patch Changes
145
+
146
+ - @ontrails/cli@1.0.0-beta.27
147
+ - @ontrails/core@1.0.0-beta.27
148
+ - @ontrails/http@1.0.0-beta.27
149
+ - @ontrails/mcp@1.0.0-beta.27
150
+ - @ontrails/observe@1.0.0-beta.27
151
+
152
+ ## 1.0.0-beta.26
153
+
154
+ ### Patch Changes
155
+
156
+ - Updated dependencies [1307568]
157
+ - Updated dependencies [371d19e]
158
+ - @ontrails/core@1.0.0-beta.26
159
+ - @ontrails/cli@1.0.0-beta.26
160
+ - @ontrails/http@1.0.0-beta.26
161
+ - @ontrails/mcp@1.0.0-beta.26
162
+ - @ontrails/observe@1.0.0-beta.26
163
+
164
+ ## 1.0.0-beta.25
165
+
166
+ ### Patch Changes
167
+
168
+ - Updated dependencies [a9fdbc7]
169
+ - Updated dependencies [c36aca9]
170
+ - Updated dependencies [3befcf1]
171
+ - Updated dependencies [2c08afe]
172
+ - Updated dependencies [f1e6efa]
173
+ - Updated dependencies [f1e6efa]
174
+ - Updated dependencies [a4f9cf6]
175
+ - Updated dependencies [9bcf34e]
176
+ - Updated dependencies [f7d97fc]
177
+ - Updated dependencies [df13faf]
178
+ - @ontrails/mcp@1.0.0-beta.25
179
+ - @ontrails/core@1.0.0-beta.25
180
+ - @ontrails/http@1.0.0-beta.25
181
+ - @ontrails/cli@1.0.0-beta.25
182
+ - @ontrails/observe@1.0.0-beta.25
183
+
184
+ ## 1.0.0-beta.24
185
+
186
+ ### Patch Changes
187
+
188
+ - @ontrails/cli@1.0.0-beta.24
189
+ - @ontrails/core@1.0.0-beta.24
190
+ - @ontrails/http@1.0.0-beta.24
191
+ - @ontrails/mcp@1.0.0-beta.24
192
+ - @ontrails/observe@1.0.0-beta.24
193
+
194
+ ## 1.0.0-beta.23
195
+
196
+ ### Patch Changes
197
+
198
+ - Updated dependencies [9c5ecdc]
199
+ - @ontrails/http@1.0.0-beta.23
200
+ - @ontrails/cli@1.0.0-beta.23
201
+ - @ontrails/core@1.0.0-beta.23
202
+ - @ontrails/mcp@1.0.0-beta.23
203
+ - @ontrails/observe@1.0.0-beta.23
204
+
205
+ ## 1.0.0-beta.22
206
+
207
+ ### Patch Changes
208
+
209
+ - @ontrails/cli@1.0.0-beta.22
210
+ - @ontrails/core@1.0.0-beta.22
211
+ - @ontrails/http@1.0.0-beta.22
212
+ - @ontrails/mcp@1.0.0-beta.22
213
+ - @ontrails/observe@1.0.0-beta.22
214
+
215
+ ## 1.0.0-beta.21
216
+
217
+ ### Patch Changes
218
+
219
+ - Updated dependencies [99523f2]
220
+ - @ontrails/core@1.0.0-beta.21
221
+ - @ontrails/cli@1.0.0-beta.21
222
+ - @ontrails/http@1.0.0-beta.21
223
+ - @ontrails/mcp@1.0.0-beta.21
224
+ - @ontrails/observe@1.0.0-beta.21
225
+
226
+ ## 1.0.0-beta.20
227
+
228
+ ### Patch Changes
229
+
230
+ - Updated dependencies [851a2a3]
231
+ - Updated dependencies [9bec01c]
232
+ - Updated dependencies [accb9ec]
233
+ - @ontrails/core@1.0.0-beta.20
234
+ - @ontrails/mcp@1.0.0-beta.20
235
+ - @ontrails/cli@1.0.0-beta.20
236
+ - @ontrails/http@1.0.0-beta.20
237
+ - @ontrails/observe@1.0.0-beta.20
238
+
239
+ ## 1.0.0-beta.19
240
+
241
+ ### Major Changes
242
+
243
+ - 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.
244
+
245
+ ### Minor Changes
246
+
247
+ - 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.
248
+
249
+ ### Patch Changes
250
+
251
+ - 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.
252
+ - f8d80b9: Refresh current-facing compose vocabulary in package documentation after the composition cutover.
253
+ - 337b467: Construct declared Trails error classes when `testComposes` injects composed trail error examples.
254
+ - 16cb740: Run examples and contract checks across live trail version entries, and project version-entry example coverage into topo and survey reports.
255
+ - 5d88104: Polish Trails blaze terminology across package docs and Warden guidance.
256
+ - f04a9ef: Tighten trail-versioning API polish by keeping executor cross-validation internals out of public options and improving absent marker diagnostics.
257
+ - Updated dependencies [e41c382]
258
+ - Updated dependencies [a2f1825]
259
+ - Updated dependencies [a2f1825]
260
+ - Updated dependencies [1eb5bdc]
261
+ - Updated dependencies [f8d80b9]
262
+ - Updated dependencies [94a8380]
263
+ - Updated dependencies [94a8380]
264
+ - Updated dependencies [846a597]
265
+ - Updated dependencies [8638dae]
266
+ - Updated dependencies [8638dae]
267
+ - Updated dependencies [8638dae]
268
+ - Updated dependencies [223aaad]
269
+ - Updated dependencies [3125f4d]
270
+ - Updated dependencies [2494dc6]
271
+ - Updated dependencies [2d53717]
272
+ - Updated dependencies [16cb740]
273
+ - Updated dependencies [8894ecb]
274
+ - Updated dependencies [fdf7ec9]
275
+ - Updated dependencies [92e709b]
276
+ - Updated dependencies [d76be13]
277
+ - Updated dependencies [84f56a5]
278
+ - Updated dependencies [431b04c]
279
+ - Updated dependencies [5d88104]
280
+ - Updated dependencies [f04a9ef]
281
+ - Updated dependencies [fc00aeb]
282
+ - Updated dependencies [ab1c77c]
283
+ - Updated dependencies [8ca5b85]
284
+ - @ontrails/core@1.0.0-beta.19
285
+ - @ontrails/cli@1.0.0-beta.19
286
+ - @ontrails/http@1.0.0-beta.19
287
+ - @ontrails/mcp@1.0.0-beta.19
288
+ - @ontrails/observe@1.0.0-beta.19
289
+
290
+ ## 1.0.0-beta.18
291
+
292
+ ### Patch Changes
293
+
294
+ - Updated dependencies [c0b2948]
295
+ - Updated dependencies [fc3219c]
296
+ - Updated dependencies [bc2d327]
297
+ - Updated dependencies [bf44972]
298
+ - Updated dependencies [e0ae995]
299
+ - @ontrails/http@1.0.0-beta.18
300
+ - @ontrails/observe@1.0.0-beta.18
301
+ - @ontrails/cli@1.0.0-beta.18
302
+ - @ontrails/core@1.0.0-beta.18
303
+ - @ontrails/mcp@1.0.0-beta.18
304
+
305
+ ## 1.0.0-beta.17
306
+
307
+ ### Patch Changes
308
+
309
+ - ce42573: Add an example-driven CLI/MCP/HTTP surface parity helper.
310
+ - e1eb4ee: Add an HTTP surface harness and include HTTP projection validation in `testAllEstablished`.
311
+ - Updated dependencies [3dc8254]
312
+ - Updated dependencies [61497c5]
313
+ - @ontrails/core@1.0.0-beta.17
314
+ - @ontrails/cli@1.0.0-beta.17
315
+ - @ontrails/http@1.0.0-beta.17
316
+ - @ontrails/mcp@1.0.0-beta.17
317
+ - @ontrails/observe@1.0.0-beta.17
318
+
319
+ ## 1.0.0-beta.16
320
+
321
+ ### Minor Changes
322
+
323
+ - bcdc484: Add an explicit `unmockable: { reason }` resource marker and have testing auto-mock resolution skip intentionally unmockable resources.
324
+ - bb1cadf: Rename the generated `testAll` suite from `governance` to `contract`.
325
+
326
+ ### Patch Changes
327
+
328
+ - 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.
329
+ - 193ae78: Migrate testing logger types from the legacy `@ontrails/logging` package to `@ontrails/observe`.
330
+ - Updated dependencies [73622ae]
331
+ - Updated dependencies [e991a5b]
332
+ - Updated dependencies [25f3c5c]
333
+ - Updated dependencies [6300f70]
334
+ - Updated dependencies [d172013]
335
+ - Updated dependencies [c3fc5c3]
336
+ - Updated dependencies [20d7a5c]
337
+ - Updated dependencies [be5fb46]
338
+ - Updated dependencies [e898cc4]
339
+ - Updated dependencies [a8997ed]
340
+ - Updated dependencies [fe03945]
341
+ - Updated dependencies [3395234]
342
+ - Updated dependencies [d40430d]
343
+ - Updated dependencies [bcdc484]
344
+ - Updated dependencies [ed171d5]
345
+ - Updated dependencies [49c2e7d]
346
+ - Updated dependencies [331e3a9]
347
+ - Updated dependencies [4399fdb]
348
+ - Updated dependencies [4b8d13b]
349
+ - Updated dependencies [fbd42fc]
350
+ - Updated dependencies [63d1aef]
351
+ - Updated dependencies [112b9f2]
352
+ - Updated dependencies [893025e]
353
+ - Updated dependencies [ed888e2]
354
+ - Updated dependencies [2e05e27]
355
+ - Updated dependencies [9cdb0f2]
356
+ - Updated dependencies [c8caa5e]
357
+ - Updated dependencies [f4b90c9]
358
+ - Updated dependencies [eec5e9d]
359
+ - Updated dependencies [4e75129]
360
+ - Updated dependencies [47505fe]
361
+ - Updated dependencies [ebd4434]
362
+ - Updated dependencies [863d473]
363
+ - Updated dependencies [344f2f7]
364
+ - Updated dependencies [26f9ffd]
365
+ - Updated dependencies [66056ac]
366
+ - Updated dependencies [0bad534]
367
+ - Updated dependencies [10eae9a]
368
+ - Updated dependencies [22c6c06]
369
+ - @ontrails/core@1.0.0-beta.16
370
+ - @ontrails/cli@1.0.0-beta.16
371
+ - @ontrails/mcp@1.0.0-beta.16
372
+ - @ontrails/observe@1.0.0-beta.16
373
+
374
+ ## 1.0.0-beta.15
375
+
376
+ ### Minor Changes
377
+
378
+ - f511a3a: Rename `app` field to `graph` in `CliHarnessOptions` and `McpHarnessOptions`
379
+
380
+ ### Patch Changes
381
+
382
+ - Updated dependencies [4ad6b25]
383
+ - @ontrails/core@1.0.0-beta.15
384
+ - @ontrails/cli@1.0.0-beta.15
385
+ - @ontrails/observe@1.0.0-beta.15
386
+ - @ontrails/mcp@1.0.0-beta.15
387
+
388
+ ## 1.0.0-beta.14
389
+
390
+ ### Minor Changes
391
+
392
+ - 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.
393
+
394
+ ### Patch Changes
395
+
396
+ - Updated dependencies [69057e9]
397
+ - @ontrails/cli@1.0.0-beta.14
398
+ - @ontrails/core@1.0.0-beta.14
399
+ - @ontrails/logging@1.0.0-beta.14
400
+ - @ontrails/mcp@1.0.0-beta.14
401
+
402
+ ## 1.0.0-beta.13
403
+
404
+ ### Minor Changes
405
+
406
+ - Trail-native vocabulary cutover. Breaking API field renames across all packages:
407
+
408
+ - Trail spec: `run:` → `blaze:`, `follow:` → `crosses:`, `services:` → `provisions:`, `metadata:` → `meta:`, `emits:` → `signals:`
409
+ - Runtime: `ctx.follow()` → `ctx.cross()`, `ctx.emit()` → `ctx.signal()`, `ctx.signal` (abort) → `ctx.abortSignal`
410
+ - Entry points: `blaze(app)` → `trailhead(app)`
411
+ - Package rename: `@ontrails/crumbs` → `@ontrails/tracker`
412
+ - Wrapper types: `Layer` → `Gate`, `layers`/`middleware` → `gates`
413
+ - Transport: `surface` → `trailhead`, `adapter` → `connector`
414
+
415
+ ### Patch Changes
416
+
417
+ - 6944147: Complete trifecta for config, permits, and tracker (formerly tracks)
418
+
419
+ - **config**: Add `configProvision`, `configGate`, `config.trail`, and `config.workspace` trails with full `defineConfig`, `resolve`, `describe`, `explain`, `doctor`, and code generation support
420
+ - **permits**: Add `authService` and `auth.verify` trail for runtime authorization checks
421
+ - **tracker**: Rename tracks to tracker; add `trackerProvision` and `tracker.status` trail for structured signal tracking
422
+ - **cli**: Fix build flag handling and improve bootstrap scaffolding
423
+ - **testing**: Expand test context helpers and example-based testing utilities
424
+ - **core/mcp/http**: Internal alignment for provision and composition updates
425
+
426
+ - Updated dependencies [6944147]
427
+ - Updated dependencies
428
+ - @ontrails/core@1.0.0-beta.13
429
+ - @ontrails/cli@1.0.0-beta.13
430
+ - @ontrails/mcp@1.0.0-beta.13
431
+ - @ontrails/logging@1.0.0-beta.13
432
+
433
+ ## 1.0.0-beta.12
434
+
435
+ ### Patch Changes
436
+
437
+ - Complete trifecta for config, permits, and tracker (formerly tracks)
438
+
439
+ - **config**: Add `configProvision`, `config.gate`, `config.trail`, and `config.workspace` trails with full `defineConfig`, `resolve`, `describe`, `explain`, `doctor`, and code generation support
440
+ - **permits**: Add `authProvision` and `auth.verify` trail for runtime authorization checks
441
+ - **tracker**: Rename tracks to tracker; add `trackerProvision` and `tracker.status` trail for structured event tracking
442
+ - **cli**: Fix build flag handling and improve bootstrap scaffolding
443
+ - **testing**: Expand test context helpers and example-based testing utilities
444
+ - **core/mcp/http**: Internal alignment for provision and composition updates
445
+
446
+ - Updated dependencies
447
+ - @ontrails/core@1.0.0-beta.12
448
+ - @ontrails/cli@1.0.0-beta.12
449
+ - @ontrails/mcp@1.0.0-beta.12
450
+ - @ontrails/logging@1.0.0-beta.12
451
+
452
+ ## 1.0.0-beta.11
453
+
454
+ ### Minor Changes
455
+
456
+ - Add provisions as a first-class primitive.
457
+
458
+ 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()`.
459
+
460
+ **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.
461
+
462
+ **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.
463
+
464
+ **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.
465
+
466
+ **Trailheads:** Provision overrides thread through `run` and `trailhead` on CLI, MCP, and HTTP.
467
+
468
+ **Introspection:** Survey and trailhead map outputs include provision graph. Topo exposes `.provisions`, `.getProvision()`, `.hasProvision()`, `.listProvisions()`, `.provisionIds()`, `.provisionCount`.
469
+
470
+ **Docs:** ADR-009 accepted. Unified services guide, updated vocabulary, getting-started, architecture, and package READMEs.
471
+
472
+ ### Patch Changes
473
+
474
+ - Updated dependencies
475
+ - @ontrails/core@1.0.0-beta.11
476
+ - @ontrails/cli@1.0.0-beta.11
477
+ - @ontrails/mcp@1.0.0-beta.11
478
+ - @ontrails/logging@1.0.0-beta.11
479
+
480
+ ## 1.0.0-beta.10
481
+
482
+ ### Patch Changes
483
+
484
+ - Updated dependencies
485
+ - @ontrails/core@1.0.0-beta.10
486
+ - @ontrails/cli@1.0.0-beta.10
487
+ - @ontrails/mcp@1.0.0-beta.10
488
+ - @ontrails/logging@1.0.0-beta.10
489
+
490
+ ## 1.0.0-beta.9
491
+
492
+ ### Minor Changes
493
+
494
+ - Consolidated improvements across all trailhead packages.
495
+
496
+ **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.
497
+
498
+ **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.
499
+
500
+ **mcp**: Return `Result` from `buildMcpTools()` on collision instead of throwing.
501
+
502
+ **cli**: Verify exception catching via centralized `executeTrail`.
503
+
504
+ **testing**: Cross-context awareness improvements.
505
+
506
+ **warden**: Refactor rules as composable trails with examples.
507
+
508
+ **schema**: Error code and empty body fixes.
509
+
510
+ ### Patch Changes
511
+
512
+ - Updated dependencies
513
+ - @ontrails/core@1.0.0-beta.9
514
+ - @ontrails/cli@1.0.0-beta.9
515
+ - @ontrails/mcp@1.0.0-beta.9
516
+ - @ontrails/logging@1.0.0-beta.9
517
+
518
+ ## 1.0.0-beta.8
519
+
520
+ ### Patch Changes
521
+
522
+ - @ontrails/cli@1.0.0-beta.8
523
+ - @ontrails/core@1.0.0-beta.8
524
+ - @ontrails/logging@1.0.0-beta.8
525
+ - @ontrails/mcp@1.0.0-beta.8
526
+
527
+ ## 1.0.0-beta.7
528
+
529
+ ### Patch Changes
530
+
531
+ - @ontrails/cli@1.0.0-beta.7
532
+ - @ontrails/core@1.0.0-beta.7
533
+ - @ontrails/logging@1.0.0-beta.7
534
+ - @ontrails/mcp@1.0.0-beta.7
535
+
536
+ ## 1.0.0-beta.6
537
+
538
+ ### Patch Changes
539
+
540
+ - Updated dependencies
541
+ - @ontrails/core@1.0.0-beta.6
542
+ - @ontrails/cli@1.0.0-beta.6
543
+ - @ontrails/logging@1.0.0-beta.6
544
+ - @ontrails/mcp@1.0.0-beta.6
545
+
3
546
  ## 1.0.0-beta.5
4
547
 
5
548
  ### Patch Changes
@@ -18,15 +561,15 @@
18
561
 
19
562
  **BREAKING CHANGES:**
20
563
 
21
- - `hike()` removed — use `trail()` with optional `follow: [...]` field
22
- - `follows` renamed to `follow` (singular, matching `ctx.follow()`)
564
+ - `hike()` removed — use `trail()` with optional `crosses: [...]` field
565
+ - `follows` renamed to `crosses` (matching `ctx.cross()`)
23
566
  - `topo.hikes` removed — single `topo.trails` map
24
567
  - `kind: 'hike'` removed — everything is `kind: 'trail'`
25
568
  - `readOnly`/`destructive` booleans replaced by `intent: 'read' | 'write' | 'destroy'`
26
569
  - `implementation` field renamed to `run`
27
570
  - `markers` field renamed to `metadata`
28
- - `testHike` renamed to `testFollows`, `HikeScenario` to `FollowScenario`
29
- - `blaze()` now returns the surface handle (`Command` for CLI, `Server` for MCP)
571
+ - `testHike` renamed to `testCrosses`, `HikeScenario` to `CrossScenario`
572
+ - `trailhead()` now returns the trailhead handle (`Command` for CLI, `Server` for MCP)
30
573
 
31
574
  ### Patch Changes
32
575
 
@@ -40,15 +583,15 @@
40
583
 
41
584
  ### Minor Changes
42
585
 
43
- - Bug fixes across all surface packages found via parallel Codex review.
586
+ - Bug fixes across all trailhead packages found via parallel Codex review.
44
587
 
45
588
  **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.
46
589
 
47
- **cli**: Switch blaze to parseAsync for proper async error handling, add boolean flag negation (--no-flag), and strict number parsing that rejects partial input.
590
+ **cli**: Switch trailhead to parseAsync for proper async error handling, add boolean flag negation (--no-flag), and strict number parsing that rejects partial input.
48
591
 
49
592
  **mcp**: Align BlobRef with core (including ReadableStream support) and detect tool-name collisions after normalization.
50
593
 
51
- **testing**: Include hikes in testContracts validation, with follow-context awareness.
594
+ **testing**: Include hikes in testContracts validation, with cross-context awareness.
52
595
 
53
596
  **warden**: Collect hike detour targets, validate detour refs in hike specs, and stop implementation-returns-result from walking into nested function bodies.
54
597
 
@@ -92,12 +635,12 @@
92
635
  - Initial v1 beta release of the Trails framework.
93
636
 
94
637
  - **@ontrails/core** — Result type, error taxonomy, trail/hike/event/topo, validateTopo, validateInput/Output, deriveFields, patterns, redaction, branded types, resilience
95
- - **@ontrails/cli** — CLI surface adapter, Commander integration, flag derivation, layers
96
- - **@ontrails/mcp** — MCP surface adapter, tool generation, annotations, progress bridge
97
- - **@ontrails/logging** — Structured logging, sinks, formatters, LogTape adapter
98
- - **@ontrails/testing** — testAll, testExamples, testTrail, testHike, testContracts, testDetours, surface harnesses
638
+ - **@ontrails/cli** — CLI trailhead connector, Commander integration, flag derivation, gates
639
+ - **@ontrails/mcp** — MCP trailhead connector, tool generation, annotations, progress bridge
640
+ - **@ontrails/logging** — Structured logging, sinks, formatters, LogTape connector
641
+ - **@ontrails/testing** — testAll, testExamples, testTrail, testHike, testContracts, testDetours, trailhead harnesses
99
642
  - **@ontrails/warden** — AST-based code convention rules via oxc-parser, drift detection, CI formatters
100
- - **@ontrails/schema** — Surface map generation, hashing, semantic diffing
643
+ - **@ontrails/schema** — Trailhead map generation, hashing, semantic diffing
101
644
 
102
645
  ### Patch Changes
103
646