@ontrails/testing 1.0.0-beta.3 → 1.0.0-beta.32

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