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

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