@ontrails/testing 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +807 -0
- package/README.md +157 -0
- package/package.json +57 -0
- package/src/all-established.ts +168 -0
- package/src/all.ts +94 -0
- package/src/assertions.ts +361 -0
- package/src/cli.ts +6 -0
- package/src/composes.ts +433 -0
- package/src/context.ts +228 -0
- package/src/contracts.ts +109 -0
- package/src/detours.ts +181 -0
- package/src/effective-examples.ts +408 -0
- package/src/errors.ts +47 -0
- package/src/examples.ts +439 -0
- package/src/harness-cli.ts +335 -0
- package/src/harness-http.ts +341 -0
- package/src/harness-mcp.ts +98 -0
- package/src/http.ts +10 -0
- package/src/index.ts +48 -0
- package/src/logger.ts +127 -0
- package/src/mcp.ts +6 -0
- package/src/scenario.ts +375 -0
- package/src/signals.ts +221 -0
- package/src/surface-parity.ts +389 -0
- package/src/trail.ts +116 -0
- package/src/types.ts +89 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,807 @@
|
|
|
1
|
+
# @ontrails/testing
|
|
2
|
+
|
|
3
|
+
## 0.2.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`664e8bb`](https://github.com/outfitter-dev/trails/commit/664e8bb049e61f1d47cec1dd246606707af5d1a8): Point public installation examples at exact approved 0.2.0 versions and distinguish the prepared source release from pending npm publication.
|
|
8
|
+
- [`b3ddf91`](https://github.com/outfitter-dev/trails/commit/b3ddf918ada8211f44983512e2bbdfbc5b66d722): Prepare the first normal Trails release at `0.2.0` on `latest`, replacing the unpublished 1.0.0 source release. The target advances the original `0.1.0` source minor, which was never published under the current package names. Public packages remain in lockstep. Update consumer installation guidance and provide a temporary manifest bridge for old 1.0 beta sources. Published beta versions remain unchanged; minor 0.x releases may carry documented breaking changes.
|
|
9
|
+
|
|
10
|
+
The `1.0.0` section retained below records an unpublished preparation, not an npm release. Its accumulated changes are included in `0.2.0`; the section remains as source history alongside the published beta entries.
|
|
11
|
+
|
|
12
|
+
## 1.0.0
|
|
13
|
+
|
|
14
|
+
### Major Changes
|
|
15
|
+
|
|
16
|
+
- [`93607de`](https://github.com/outfitter-dev/trails/commit/93607deae7f5a6badb4fed40f9f6b7fef43c8b64): API simplification: unified trail model, intent enum, blaze, metadata.
|
|
17
|
+
|
|
18
|
+
**BREAKING CHANGES:**
|
|
19
|
+
|
|
20
|
+
- `hike()` removed — use `trail()` with optional `crosses: [...]` field
|
|
21
|
+
- `follows` renamed to `crosses` (matching `ctx.cross()`)
|
|
22
|
+
- `topo.hikes` removed — single `topo.trails` map
|
|
23
|
+
- `kind: 'hike'` removed — everything is `kind: 'trail'`
|
|
24
|
+
- `readOnly`/`destructive` booleans replaced by `intent: 'read' | 'write' | 'destroy'`
|
|
25
|
+
- `implementation` field renamed to `blaze`
|
|
26
|
+
- `markers` field renamed to `metadata`
|
|
27
|
+
- `testHike` renamed to `testCrosses`, `HikeScenario` to `CrossScenario`
|
|
28
|
+
- `surface()` now returns the surface handle (`Command` for CLI, `Server` for MCP)
|
|
29
|
+
|
|
30
|
+
- [`1eb5bdc`](https://github.com/outfitter-dev/trails/commit/1eb5bdc06142d8886f3870801b2ef71a0c5f3844): 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.
|
|
31
|
+
|
|
32
|
+
### Minor Changes
|
|
33
|
+
|
|
34
|
+
- [`69057e9`](https://github.com/outfitter-dev/trails/commit/69057e9348006b2b70c9f6237572a5aa8de3ee1f): Add hierarchical CLI command trees and structured input, enforce established-only topo exports across surfaces, move developer topo and tracing state onto shared `trails.db` with pins and maintenance flows, and ship schema-derived stores through `@ontrails/store` and its Drizzle runtime.
|
|
35
|
+
- [`ebbf0c5`](https://github.com/outfitter-dev/trails/commit/ebbf0c538550429f92944ac2d196b6bc9ca00c4b): Consolidated improvements across all surface packages.
|
|
36
|
+
|
|
37
|
+
**core**: Add `TrailResult<T>` utility type, `topo.ids()` and `topo.count` accessors, `dispatch()` for headless trail execution, and extract shared `executeTrail` pipeline used by CLI/MCP/HTTP.
|
|
38
|
+
|
|
39
|
+
**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.
|
|
40
|
+
|
|
41
|
+
**mcp**: Return `Result` from `buildMcpTools()` on collision instead of throwing.
|
|
42
|
+
|
|
43
|
+
**cli**: Verify exception catching via centralized `executeTrail`.
|
|
44
|
+
|
|
45
|
+
**testing**: Follow context awareness improvements.
|
|
46
|
+
|
|
47
|
+
**warden**: Refactor rules as composable trails with examples.
|
|
48
|
+
|
|
49
|
+
**schema**: Error code and empty body fixes.
|
|
50
|
+
|
|
51
|
+
- [`39ecab9`](https://github.com/outfitter-dev/trails/commit/39ecab9940ad8255215c25b9db55047180828457): Bug fixes across all surface packages found via parallel Codex review.
|
|
52
|
+
|
|
53
|
+
**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.
|
|
54
|
+
|
|
55
|
+
**cli**: Switch the CLI surface to parseAsync for proper async error handling, add boolean flag negation (--no-flag), and strict number parsing that rejects partial input.
|
|
56
|
+
|
|
57
|
+
**mcp**: Align BlobRef with core (including ReadableStream support) and detect tool-name collisions after normalization.
|
|
58
|
+
|
|
59
|
+
**testing**: Include trails in testContracts validation, with cross-context awareness.
|
|
60
|
+
|
|
61
|
+
**warden**: Collect trail detour targets, validate detour refs in trail specs, and stop implementation-returns-result from walking into nested function bodies.
|
|
62
|
+
|
|
63
|
+
- [`f511a3a`](https://github.com/outfitter-dev/trails/commit/f511a3a91c16dc875cd7c59508b053d2a3f798aa): Rename `app` field to `graph` in `CliHarnessOptions` and `McpHarnessOptions`
|
|
64
|
+
- [`f2a7857`](https://github.com/outfitter-dev/trails/commit/f2a785777ba9cb2d540c0fd79c80b43d4cb934d3): Initial v1 beta release of the Trails framework.
|
|
65
|
+
|
|
66
|
+
- **@ontrails/core** — Result type, error taxonomy, trail/signal/topo, validateTopo, validateInput/Output, deriveFields, patterns, redaction, branded types, resilience
|
|
67
|
+
- **@ontrails/cli** — CLI command model, flag derivation, output formatting
|
|
68
|
+
- **@ontrails/mcp** — MCP surface, tool generation, annotations, progress bridge
|
|
69
|
+
- **@ontrails/testing** — testAll, testExamples, testTrail, testCrosses, testContracts, testDetours, surface harnesses
|
|
70
|
+
- **@ontrails/warden** — AST-based code convention rules via oxc-parser, drift detection, CI formatters
|
|
71
|
+
- **@ontrails/topographer** — Surface map generation, hashing, semantic diffing, lock helpers
|
|
72
|
+
|
|
73
|
+
- [`bcdc484`](https://github.com/outfitter-dev/trails/commit/bcdc484ba9c6d65fbd7ae622407be62c26b7e30c): Add an explicit `unmockable: { reason }` resource marker and have testing auto-mock resolution skip intentionally unmockable resources.
|
|
74
|
+
- [`00f7093`](https://github.com/outfitter-dev/trails/commit/00f7093132a50c49b7bc2dcf9eef98f9424fd2e0): Add resources as a first-class primitive.
|
|
75
|
+
|
|
76
|
+
Resources make infrastructure dependencies declarative, injectable, and governable. Define a resource with `resource()`, declare it on a trail with `resources: [db]`, and access it with `db.from(ctx)` or `ctx.resource()`.
|
|
77
|
+
|
|
78
|
+
**Core:** `resource()` factory, `ResourceSpec<T>`, `ResourceContext`, singleton resolution in `executeTrail`, in-flight creation dedup, `isResource` guard, `findDuplicateResourceId`, topo resource discovery and validation, `resources` field on trail specs.
|
|
79
|
+
|
|
80
|
+
**Testing:** Auto-resolution of `mock` factories in `testAll`, `testExamples`, `testContracts`, and `testCrosses`. Explicit `resources` overrides with correct precedence (`explicit > ctx.extensions > auto-mock`). Resource mock propagation through cross graphs.
|
|
81
|
+
|
|
82
|
+
**Warden:** `resource-declarations` rule validates `db.from(ctx)` and `ctx.resource()` usage matches declared `resources: [...]`. `resource-exists` rule validates declared resource IDs resolve in project context. Scope-aware AST walking skips nested function boundaries.
|
|
83
|
+
|
|
84
|
+
**Surfaces:** Resource overrides thread through the CLI, MCP, and HTTP surfaces.
|
|
85
|
+
|
|
86
|
+
**Introspection:** Survey and surface map outputs include resource graph. Topo exposes `.resources`, `.getResource()`, `.hasResource()`, `.listResources()`, `.resourceIds()`, `.resourceCount`.
|
|
87
|
+
|
|
88
|
+
**Docs:** ADR-009 accepted. Unified resource guide, updated vocabulary, getting-started, architecture, and package READMEs.
|
|
89
|
+
|
|
90
|
+
- [`bb1cadf`](https://github.com/outfitter-dev/trails/commit/bb1cadf7890da29114e471a7e5d15982e7e377ca): Rename the generated `testAll` suite from `governance` to `contract`.
|
|
91
|
+
- [`492f71c`](https://github.com/outfitter-dev/trails/commit/492f71c27c903e1fcd86c9a8a46ced2e8cee0ef1): 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.
|
|
92
|
+
- [`5adb995`](https://github.com/outfitter-dev/trails/commit/5adb99551c2dda6190d46cce7f60bb08d63c99aa): Complete the v1 hard cutover from the authored `blaze` field to
|
|
93
|
+
`implementation` across trail contracts, surface projections, tests, examples,
|
|
94
|
+
and public source-analysis helpers. Existing applications must rename authored
|
|
95
|
+
trail behavior fields and direct trail-object access before upgrading.
|
|
96
|
+
- [`88a6a62`](https://github.com/outfitter-dev/trails/commit/88a6a62a9e9e230ca6d368fa78dc3ece6c816204): Complete the v1 classification-first cutover from projection/project vocabulary
|
|
97
|
+
to derive/derived for contract-owned fact production and render/rendered for
|
|
98
|
+
surface presentation. Public type, helper, rule, relation, and report names move
|
|
99
|
+
without compatibility aliases; ordinary repository/project nouns remain
|
|
100
|
+
explicit preserves or structured review inventory.
|
|
101
|
+
- [`6712075`](https://github.com/outfitter-dev/trails/commit/67120754df3f614c7f4dd98be1fa0ba9d69b7765): Complete the v1 hard cutover from the `contour` domain-object declaration
|
|
102
|
+
vocabulary to `entity` across contracts, topo facts, store helpers, Warden,
|
|
103
|
+
Wayfinder, operator surfaces, examples, and generated locks. Existing
|
|
104
|
+
applications must rename contour APIs, run `trails dev reset --yes` to discard
|
|
105
|
+
pre-cutover local Topographer snapshots, and then recompile committed
|
|
106
|
+
`trails.lock` artifacts before upgrading. Those derived snapshots are
|
|
107
|
+
intentionally not read through a compatibility layer.
|
|
108
|
+
The entity-shaped wire contract advances `TopoGraph` and split lock manifests
|
|
109
|
+
from schema version 3 to 4; old split artifacts fail with regeneration guidance,
|
|
110
|
+
while the canonical root `trails.lock` remains schema version 5.
|
|
111
|
+
Wayfinder reports those stale rows as topo-store drift while keeping current
|
|
112
|
+
committed lock facts available for inspection.
|
|
113
|
+
- [`fde5516`](https://github.com/outfitter-dev/trails/commit/fde5516ad396faa718936b10ff658b3ade3383b9): Trail-native vocabulary cutover. Breaking API field renames across all packages:
|
|
114
|
+
|
|
115
|
+
- Trail spec: `run:` → `blaze:`, `follow:` → `crosses:`, `services:` → `resources:`, `metadata:` → `meta:`, `emits:` → `fires:`
|
|
116
|
+
- Runtime: `ctx.follow()` → `ctx.cross()`, `ctx.emit()` → `ctx.fire()`, `ctx.signal` (abort) → `ctx.abortSignal`
|
|
117
|
+
- Entry points: `trailhead(app)` → `surface(app)`
|
|
118
|
+
- Package rename: `@ontrails/crumbs` / `@ontrails/tracker` → `@ontrails/tracing`
|
|
119
|
+
- Wrapper types: retired gate/middleware vocabulary in favor of `Layer` and `layers`
|
|
120
|
+
- Package taxonomy: retired connector vocabulary in favor of adapters
|
|
121
|
+
|
|
122
|
+
### Patch Changes
|
|
123
|
+
|
|
124
|
+
- [`e41c382`](https://github.com/outfitter-dev/trails/commit/e41c3829c2d692683b78c730e67fd5b17ac0ff4e): 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.
|
|
125
|
+
- [`6944147`](https://github.com/outfitter-dev/trails/commit/694414712949a1107235684a2492ac982ed39a20): Complete trifecta for config, permits, and tracker (formerly tracks)
|
|
126
|
+
|
|
127
|
+
- **config**: Add `configResource`, `config.trail`, and `config.workspace` trails with full `defineConfig`, `resolve`, `describe`, `explain`, `doctor`, and code generation support
|
|
128
|
+
- **permits**: Add `authResource` and `auth.verify` trail for runtime authorization checks
|
|
129
|
+
- **tracing**: Rename tracks to tracing; add `tracingResource` and `tracing.status` trail for structured signal tracking
|
|
130
|
+
- **cli**: Fix build flag handling and improve bootstrap scaffolding
|
|
131
|
+
- **testing**: Expand test context helpers and example-based testing utilities
|
|
132
|
+
- **core/mcp/http**: Internal alignment for resource and composition updates
|
|
133
|
+
|
|
134
|
+
- [`f8d80b9`](https://github.com/outfitter-dev/trails/commit/f8d80b9cd823f02b2aa854934702f598bceff07d): Refresh current-facing compose vocabulary in package documentation after the composition cutover.
|
|
135
|
+
- [`ce42573`](https://github.com/outfitter-dev/trails/commit/ce42573d94d4f086007055c8c6da58c8d8b6f91e): Add an example-driven CLI/MCP/HTTP surface parity helper.
|
|
136
|
+
- [`7065b55`](https://github.com/outfitter-dev/trails/commit/7065b55568dced6df9f8687288842cdbbfd7f6e4): Fix two blocking bugs from real-world migration:
|
|
137
|
+
|
|
138
|
+
- Published packages now resolve correctly (workspace:^ instead of workspace:\*)
|
|
139
|
+
- Error forwarding works across different success types (Err no longer carries phantom T)
|
|
140
|
+
|
|
141
|
+
- [`42a87c1`](https://github.com/outfitter-dev/trails/commit/42a87c1b8691c2fad94ba45175b6eec0219f4594): Fix workspace dependency resolution in published packages. Now using bun publish
|
|
142
|
+
which correctly replaces workspace:^ with actual version numbers.
|
|
143
|
+
- [`d40430d`](https://github.com/outfitter-dev/trails/commit/d40430d65f2169178e27147bf120296df67fe418): Remove the retired `@ontrails/logging` workspace from the prerelease package set. Use `@ontrails/observe` for log and trace sink contracts and `@ontrails/observe/logtape` for LogTape forwarding.
|
|
144
|
+
- [`e1eb4ee`](https://github.com/outfitter-dev/trails/commit/e1eb4eec9657efb1da518f3de8da0a38fe41790f): Add an HTTP surface harness and include HTTP projection validation in `testAllEstablished`.
|
|
145
|
+
- [`337b467`](https://github.com/outfitter-dev/trails/commit/337b467308e128fad6f445c5bf30455c4b175ca3): Construct declared Trails error classes when `testComposes` injects composed trail error examples.
|
|
146
|
+
- [`193ae78`](https://github.com/outfitter-dev/trails/commit/193ae78520882759b6b0f09c2ced2b3c897515ee): Migrate testing logger types from the legacy `@ontrails/logging` package to `@ontrails/observe`.
|
|
147
|
+
- [`16cb740`](https://github.com/outfitter-dev/trails/commit/16cb74032ecea582161743d1d30647489772c0f1): Run examples and contract checks across live trail version entries, and project version-entry example coverage into topo and survey reports.
|
|
148
|
+
- [`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).
|
|
149
|
+
- [`b1fbe57`](https://github.com/outfitter-dev/trails/commit/b1fbe574e6f44d1fecb5e3a000270955c0a77b7b): Publish Bun-validated package tarballs through an npm trusted-publishing adapter
|
|
150
|
+
binding, add exact repository metadata for each public workspace package, and
|
|
151
|
+
correct the native Bun release descriptor to its pack-only runtime boundary.
|
|
152
|
+
- [`113aed6`](https://github.com/outfitter-dev/trails/commit/113aed62d20041e35b0cf9d6c1b1a18df4b88f57): Rename the dependency-light observability owner from `@ontrails/observe` to
|
|
153
|
+
`@ontrails/observability` as a pre-v1 hard cut. Update dependent packages,
|
|
154
|
+
documentation, package discovery, and the governed Regrade route; no
|
|
155
|
+
compatibility package or old import route is retained.
|
|
156
|
+
- [`5d88104`](https://github.com/outfitter-dev/trails/commit/5d88104c6c269e2ef1e92ba3b9e09a410df10c7b): Polish Trails blaze terminology across package docs and Warden guidance.
|
|
157
|
+
- [`f04a9ef`](https://github.com/outfitter-dev/trails/commit/f04a9ef19c0b930975bc256318b239266a8e1100): Tighten trail-versioning API polish by keeping executor cross-validation internals out of public options and improving absent marker diagnostics.
|
|
158
|
+
|
|
159
|
+
## 1.0.0-beta.50
|
|
160
|
+
|
|
161
|
+
## 1.0.0-beta.49
|
|
162
|
+
|
|
163
|
+
## 1.0.0-beta.48
|
|
164
|
+
|
|
165
|
+
## 1.0.0-beta.47
|
|
166
|
+
|
|
167
|
+
## 1.0.0-beta.46
|
|
168
|
+
|
|
169
|
+
## 1.0.0-beta.45
|
|
170
|
+
|
|
171
|
+
## 1.0.0-beta.44
|
|
172
|
+
|
|
173
|
+
### Patch Changes
|
|
174
|
+
|
|
175
|
+
- [`b1fbe57`](https://github.com/outfitter-dev/trails/commit/b1fbe574e6f44d1fecb5e3a000270955c0a77b7b): Publish Bun-validated package tarballs through an npm trusted-publishing adapter
|
|
176
|
+
binding, add exact repository metadata for each public workspace package, and
|
|
177
|
+
correct the native Bun release descriptor to its pack-only runtime boundary.
|
|
178
|
+
|
|
179
|
+
## 1.0.0-beta.43
|
|
180
|
+
|
|
181
|
+
### Minor Changes
|
|
182
|
+
|
|
183
|
+
- [`88a6a62`](https://github.com/outfitter-dev/trails/commit/88a6a62a9e9e230ca6d368fa78dc3ece6c816204): Complete the v1 classification-first cutover from projection/project vocabulary
|
|
184
|
+
to derive/derived for contract-owned fact production and render/rendered for
|
|
185
|
+
surface presentation. Public type, helper, rule, relation, and report names move
|
|
186
|
+
without compatibility aliases; ordinary repository/project nouns remain
|
|
187
|
+
explicit preserves or structured review inventory.
|
|
188
|
+
|
|
189
|
+
### Patch Changes
|
|
190
|
+
|
|
191
|
+
- [`113aed6`](https://github.com/outfitter-dev/trails/commit/113aed62d20041e35b0cf9d6c1b1a18df4b88f57): Rename the dependency-light observability owner from `@ontrails/observe` to
|
|
192
|
+
`@ontrails/observability` as a pre-v1 hard cut. Update dependent packages,
|
|
193
|
+
documentation, package discovery, and the governed Regrade route; no
|
|
194
|
+
compatibility package or old import route is retained.
|
|
195
|
+
|
|
196
|
+
## 1.0.0-beta.42
|
|
197
|
+
|
|
198
|
+
## 1.0.0-beta.41
|
|
199
|
+
|
|
200
|
+
## 1.0.0-beta.40
|
|
201
|
+
|
|
202
|
+
### Minor Changes
|
|
203
|
+
|
|
204
|
+
- [`5adb995`](https://github.com/outfitter-dev/trails/commit/5adb99551c2dda6190d46cce7f60bb08d63c99aa): Complete the v1 hard cutover from the authored `blaze` field to
|
|
205
|
+
`implementation` across trail contracts, surface projections, tests, examples,
|
|
206
|
+
and public source-analysis helpers. Existing applications must rename authored
|
|
207
|
+
trail behavior fields and direct trail-object access before upgrading.
|
|
208
|
+
- [`6712075`](https://github.com/outfitter-dev/trails/commit/67120754df3f614c7f4dd98be1fa0ba9d69b7765): Complete the v1 hard cutover from the `contour` domain-object declaration
|
|
209
|
+
vocabulary to `entity` across contracts, topo facts, store helpers, Warden,
|
|
210
|
+
Wayfinder, operator surfaces, examples, and generated locks. Existing
|
|
211
|
+
applications must rename contour APIs, run `trails dev reset --yes` to discard
|
|
212
|
+
pre-cutover local Topographer snapshots, and then recompile committed
|
|
213
|
+
`trails.lock` artifacts before upgrading. Those derived snapshots are
|
|
214
|
+
intentionally not read through a compatibility layer.
|
|
215
|
+
The entity-shaped wire contract advances `TopoGraph` and split lock manifests
|
|
216
|
+
from schema version 3 to 4; old split artifacts fail with regeneration guidance,
|
|
217
|
+
while the canonical root `trails.lock` remains schema version 5.
|
|
218
|
+
Wayfinder reports those stale rows as topo-store drift while keeping current
|
|
219
|
+
committed lock facts available for inspection.
|
|
220
|
+
|
|
221
|
+
## 1.0.0-beta.39
|
|
222
|
+
|
|
223
|
+
### Patch Changes
|
|
224
|
+
|
|
225
|
+
- [`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).
|
|
226
|
+
|
|
227
|
+
## 1.0.0-beta.38
|
|
228
|
+
|
|
229
|
+
## 1.0.0-beta.37
|
|
230
|
+
|
|
231
|
+
## 1.0.0-beta.36
|
|
232
|
+
|
|
233
|
+
## 1.0.0-beta.35
|
|
234
|
+
|
|
235
|
+
## 1.0.0-beta.34
|
|
236
|
+
|
|
237
|
+
## 1.0.0-beta.33
|
|
238
|
+
|
|
239
|
+
## 1.0.0-beta.32
|
|
240
|
+
|
|
241
|
+
### Patch Changes
|
|
242
|
+
|
|
243
|
+
- Updated dependencies [3e5c0fc]
|
|
244
|
+
- Updated dependencies [f3c4fef]
|
|
245
|
+
- Updated dependencies [cb0a9d8]
|
|
246
|
+
- Updated dependencies [21c6dda]
|
|
247
|
+
- Updated dependencies [860ef32]
|
|
248
|
+
- Updated dependencies [fe72b84]
|
|
249
|
+
- @ontrails/core@1.0.0-beta.32
|
|
250
|
+
- @ontrails/cli@1.0.0-beta.32
|
|
251
|
+
- @ontrails/http@1.0.0-beta.32
|
|
252
|
+
- @ontrails/mcp@1.0.0-beta.32
|
|
253
|
+
- @ontrails/observe@1.0.0-beta.32
|
|
254
|
+
|
|
255
|
+
## 1.0.0-beta.31
|
|
256
|
+
|
|
257
|
+
### Patch Changes
|
|
258
|
+
|
|
259
|
+
- Updated dependencies [ee9f3ae]
|
|
260
|
+
- Updated dependencies [4cd5d4e]
|
|
261
|
+
- Updated dependencies [38907cc]
|
|
262
|
+
- @ontrails/mcp@1.0.0-beta.31
|
|
263
|
+
- @ontrails/core@1.0.0-beta.31
|
|
264
|
+
- @ontrails/cli@1.0.0-beta.31
|
|
265
|
+
- @ontrails/http@1.0.0-beta.31
|
|
266
|
+
- @ontrails/observe@1.0.0-beta.31
|
|
267
|
+
|
|
268
|
+
## 1.0.0-beta.30
|
|
269
|
+
|
|
270
|
+
### Patch Changes
|
|
271
|
+
|
|
272
|
+
- @ontrails/cli@1.0.0-beta.30
|
|
273
|
+
- @ontrails/core@1.0.0-beta.30
|
|
274
|
+
- @ontrails/http@1.0.0-beta.30
|
|
275
|
+
- @ontrails/mcp@1.0.0-beta.30
|
|
276
|
+
- @ontrails/observe@1.0.0-beta.30
|
|
277
|
+
|
|
278
|
+
## 1.0.0-beta.29
|
|
279
|
+
|
|
280
|
+
### Patch Changes
|
|
281
|
+
|
|
282
|
+
- @ontrails/cli@1.0.0-beta.29
|
|
283
|
+
- @ontrails/core@1.0.0-beta.29
|
|
284
|
+
- @ontrails/http@1.0.0-beta.29
|
|
285
|
+
- @ontrails/mcp@1.0.0-beta.29
|
|
286
|
+
- @ontrails/observe@1.0.0-beta.29
|
|
287
|
+
|
|
288
|
+
## 1.0.0-beta.28
|
|
289
|
+
|
|
290
|
+
### Patch Changes
|
|
291
|
+
|
|
292
|
+
- @ontrails/cli@1.0.0-beta.28
|
|
293
|
+
- @ontrails/core@1.0.0-beta.28
|
|
294
|
+
- @ontrails/http@1.0.0-beta.28
|
|
295
|
+
- @ontrails/mcp@1.0.0-beta.28
|
|
296
|
+
- @ontrails/observe@1.0.0-beta.28
|
|
297
|
+
|
|
298
|
+
## 1.0.0-beta.27
|
|
299
|
+
|
|
300
|
+
### Patch Changes
|
|
301
|
+
|
|
302
|
+
- @ontrails/cli@1.0.0-beta.27
|
|
303
|
+
- @ontrails/core@1.0.0-beta.27
|
|
304
|
+
- @ontrails/http@1.0.0-beta.27
|
|
305
|
+
- @ontrails/mcp@1.0.0-beta.27
|
|
306
|
+
- @ontrails/observe@1.0.0-beta.27
|
|
307
|
+
|
|
308
|
+
## 1.0.0-beta.26
|
|
309
|
+
|
|
310
|
+
### Patch Changes
|
|
311
|
+
|
|
312
|
+
- Updated dependencies [1307568]
|
|
313
|
+
- Updated dependencies [371d19e]
|
|
314
|
+
- @ontrails/core@1.0.0-beta.26
|
|
315
|
+
- @ontrails/cli@1.0.0-beta.26
|
|
316
|
+
- @ontrails/http@1.0.0-beta.26
|
|
317
|
+
- @ontrails/mcp@1.0.0-beta.26
|
|
318
|
+
- @ontrails/observe@1.0.0-beta.26
|
|
319
|
+
|
|
320
|
+
## 1.0.0-beta.25
|
|
321
|
+
|
|
322
|
+
### Patch Changes
|
|
323
|
+
|
|
324
|
+
- Updated dependencies [a9fdbc7]
|
|
325
|
+
- Updated dependencies [c36aca9]
|
|
326
|
+
- Updated dependencies [3befcf1]
|
|
327
|
+
- Updated dependencies [2c08afe]
|
|
328
|
+
- Updated dependencies [f1e6efa]
|
|
329
|
+
- Updated dependencies [f1e6efa]
|
|
330
|
+
- Updated dependencies [a4f9cf6]
|
|
331
|
+
- Updated dependencies [9bcf34e]
|
|
332
|
+
- Updated dependencies [f7d97fc]
|
|
333
|
+
- Updated dependencies [df13faf]
|
|
334
|
+
- @ontrails/mcp@1.0.0-beta.25
|
|
335
|
+
- @ontrails/core@1.0.0-beta.25
|
|
336
|
+
- @ontrails/http@1.0.0-beta.25
|
|
337
|
+
- @ontrails/cli@1.0.0-beta.25
|
|
338
|
+
- @ontrails/observe@1.0.0-beta.25
|
|
339
|
+
|
|
340
|
+
## 1.0.0-beta.24
|
|
341
|
+
|
|
342
|
+
### Patch Changes
|
|
343
|
+
|
|
344
|
+
- @ontrails/cli@1.0.0-beta.24
|
|
345
|
+
- @ontrails/core@1.0.0-beta.24
|
|
346
|
+
- @ontrails/http@1.0.0-beta.24
|
|
347
|
+
- @ontrails/mcp@1.0.0-beta.24
|
|
348
|
+
- @ontrails/observe@1.0.0-beta.24
|
|
349
|
+
|
|
350
|
+
## 1.0.0-beta.23
|
|
351
|
+
|
|
352
|
+
### Patch Changes
|
|
353
|
+
|
|
354
|
+
- Updated dependencies [9c5ecdc]
|
|
355
|
+
- @ontrails/http@1.0.0-beta.23
|
|
356
|
+
- @ontrails/cli@1.0.0-beta.23
|
|
357
|
+
- @ontrails/core@1.0.0-beta.23
|
|
358
|
+
- @ontrails/mcp@1.0.0-beta.23
|
|
359
|
+
- @ontrails/observe@1.0.0-beta.23
|
|
360
|
+
|
|
361
|
+
## 1.0.0-beta.22
|
|
362
|
+
|
|
363
|
+
### Patch Changes
|
|
364
|
+
|
|
365
|
+
- @ontrails/cli@1.0.0-beta.22
|
|
366
|
+
- @ontrails/core@1.0.0-beta.22
|
|
367
|
+
- @ontrails/http@1.0.0-beta.22
|
|
368
|
+
- @ontrails/mcp@1.0.0-beta.22
|
|
369
|
+
- @ontrails/observe@1.0.0-beta.22
|
|
370
|
+
|
|
371
|
+
## 1.0.0-beta.21
|
|
372
|
+
|
|
373
|
+
### Patch Changes
|
|
374
|
+
|
|
375
|
+
- Updated dependencies [99523f2]
|
|
376
|
+
- @ontrails/core@1.0.0-beta.21
|
|
377
|
+
- @ontrails/cli@1.0.0-beta.21
|
|
378
|
+
- @ontrails/http@1.0.0-beta.21
|
|
379
|
+
- @ontrails/mcp@1.0.0-beta.21
|
|
380
|
+
- @ontrails/observe@1.0.0-beta.21
|
|
381
|
+
|
|
382
|
+
## 1.0.0-beta.20
|
|
383
|
+
|
|
384
|
+
### Patch Changes
|
|
385
|
+
|
|
386
|
+
- Updated dependencies [851a2a3]
|
|
387
|
+
- Updated dependencies [9bec01c]
|
|
388
|
+
- Updated dependencies [accb9ec]
|
|
389
|
+
- @ontrails/core@1.0.0-beta.20
|
|
390
|
+
- @ontrails/mcp@1.0.0-beta.20
|
|
391
|
+
- @ontrails/cli@1.0.0-beta.20
|
|
392
|
+
- @ontrails/http@1.0.0-beta.20
|
|
393
|
+
- @ontrails/observe@1.0.0-beta.20
|
|
394
|
+
|
|
395
|
+
## 1.0.0-beta.19
|
|
396
|
+
|
|
397
|
+
### Major Changes
|
|
398
|
+
|
|
399
|
+
- 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.
|
|
400
|
+
|
|
401
|
+
### Minor Changes
|
|
402
|
+
|
|
403
|
+
- 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.
|
|
404
|
+
|
|
405
|
+
### Patch Changes
|
|
406
|
+
|
|
407
|
+
- 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.
|
|
408
|
+
- f8d80b9: Refresh current-facing compose vocabulary in package documentation after the composition cutover.
|
|
409
|
+
- 337b467: Construct declared Trails error classes when `testComposes` injects composed trail error examples.
|
|
410
|
+
- 16cb740: Run examples and contract checks across live trail version entries, and project version-entry example coverage into topo and survey reports.
|
|
411
|
+
- 5d88104: Polish Trails blaze terminology across package docs and Warden guidance.
|
|
412
|
+
- f04a9ef: Tighten trail-versioning API polish by keeping executor cross-validation internals out of public options and improving absent marker diagnostics.
|
|
413
|
+
- Updated dependencies [e41c382]
|
|
414
|
+
- Updated dependencies [a2f1825]
|
|
415
|
+
- Updated dependencies [a2f1825]
|
|
416
|
+
- Updated dependencies [1eb5bdc]
|
|
417
|
+
- Updated dependencies [f8d80b9]
|
|
418
|
+
- Updated dependencies [94a8380]
|
|
419
|
+
- Updated dependencies [94a8380]
|
|
420
|
+
- Updated dependencies [846a597]
|
|
421
|
+
- Updated dependencies [8638dae]
|
|
422
|
+
- Updated dependencies [8638dae]
|
|
423
|
+
- Updated dependencies [8638dae]
|
|
424
|
+
- Updated dependencies [223aaad]
|
|
425
|
+
- Updated dependencies [3125f4d]
|
|
426
|
+
- Updated dependencies [2494dc6]
|
|
427
|
+
- Updated dependencies [2d53717]
|
|
428
|
+
- Updated dependencies [16cb740]
|
|
429
|
+
- Updated dependencies [8894ecb]
|
|
430
|
+
- Updated dependencies [fdf7ec9]
|
|
431
|
+
- Updated dependencies [92e709b]
|
|
432
|
+
- Updated dependencies [d76be13]
|
|
433
|
+
- Updated dependencies [84f56a5]
|
|
434
|
+
- Updated dependencies [431b04c]
|
|
435
|
+
- Updated dependencies [5d88104]
|
|
436
|
+
- Updated dependencies [f04a9ef]
|
|
437
|
+
- Updated dependencies [fc00aeb]
|
|
438
|
+
- Updated dependencies [ab1c77c]
|
|
439
|
+
- Updated dependencies [8ca5b85]
|
|
440
|
+
- @ontrails/core@1.0.0-beta.19
|
|
441
|
+
- @ontrails/cli@1.0.0-beta.19
|
|
442
|
+
- @ontrails/http@1.0.0-beta.19
|
|
443
|
+
- @ontrails/mcp@1.0.0-beta.19
|
|
444
|
+
- @ontrails/observe@1.0.0-beta.19
|
|
445
|
+
|
|
446
|
+
## 1.0.0-beta.18
|
|
447
|
+
|
|
448
|
+
### Patch Changes
|
|
449
|
+
|
|
450
|
+
- Updated dependencies [c0b2948]
|
|
451
|
+
- Updated dependencies [fc3219c]
|
|
452
|
+
- Updated dependencies [bc2d327]
|
|
453
|
+
- Updated dependencies [bf44972]
|
|
454
|
+
- Updated dependencies [e0ae995]
|
|
455
|
+
- @ontrails/http@1.0.0-beta.18
|
|
456
|
+
- @ontrails/observe@1.0.0-beta.18
|
|
457
|
+
- @ontrails/cli@1.0.0-beta.18
|
|
458
|
+
- @ontrails/core@1.0.0-beta.18
|
|
459
|
+
- @ontrails/mcp@1.0.0-beta.18
|
|
460
|
+
|
|
461
|
+
## 1.0.0-beta.17
|
|
462
|
+
|
|
463
|
+
### Patch Changes
|
|
464
|
+
|
|
465
|
+
- ce42573: Add an example-driven CLI/MCP/HTTP surface parity helper.
|
|
466
|
+
- e1eb4ee: Add an HTTP surface harness and include HTTP projection validation in `testAllEstablished`.
|
|
467
|
+
- Updated dependencies [3dc8254]
|
|
468
|
+
- Updated dependencies [61497c5]
|
|
469
|
+
- @ontrails/core@1.0.0-beta.17
|
|
470
|
+
- @ontrails/cli@1.0.0-beta.17
|
|
471
|
+
- @ontrails/http@1.0.0-beta.17
|
|
472
|
+
- @ontrails/mcp@1.0.0-beta.17
|
|
473
|
+
- @ontrails/observe@1.0.0-beta.17
|
|
474
|
+
|
|
475
|
+
## 1.0.0-beta.16
|
|
476
|
+
|
|
477
|
+
### Minor Changes
|
|
478
|
+
|
|
479
|
+
- bcdc484: Add an explicit `unmockable: { reason }` resource marker and have testing auto-mock resolution skip intentionally unmockable resources.
|
|
480
|
+
- bb1cadf: Rename the generated `testAll` suite from `governance` to `contract`.
|
|
481
|
+
|
|
482
|
+
### Patch Changes
|
|
483
|
+
|
|
484
|
+
- 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.
|
|
485
|
+
- 193ae78: Migrate testing logger types from the legacy `@ontrails/logging` package to `@ontrails/observe`.
|
|
486
|
+
- Updated dependencies [73622ae]
|
|
487
|
+
- Updated dependencies [e991a5b]
|
|
488
|
+
- Updated dependencies [25f3c5c]
|
|
489
|
+
- Updated dependencies [6300f70]
|
|
490
|
+
- Updated dependencies [d172013]
|
|
491
|
+
- Updated dependencies [c3fc5c3]
|
|
492
|
+
- Updated dependencies [20d7a5c]
|
|
493
|
+
- Updated dependencies [be5fb46]
|
|
494
|
+
- Updated dependencies [e898cc4]
|
|
495
|
+
- Updated dependencies [a8997ed]
|
|
496
|
+
- Updated dependencies [fe03945]
|
|
497
|
+
- Updated dependencies [3395234]
|
|
498
|
+
- Updated dependencies [d40430d]
|
|
499
|
+
- Updated dependencies [bcdc484]
|
|
500
|
+
- Updated dependencies [ed171d5]
|
|
501
|
+
- Updated dependencies [49c2e7d]
|
|
502
|
+
- Updated dependencies [331e3a9]
|
|
503
|
+
- Updated dependencies [4399fdb]
|
|
504
|
+
- Updated dependencies [4b8d13b]
|
|
505
|
+
- Updated dependencies [fbd42fc]
|
|
506
|
+
- Updated dependencies [63d1aef]
|
|
507
|
+
- Updated dependencies [112b9f2]
|
|
508
|
+
- Updated dependencies [893025e]
|
|
509
|
+
- Updated dependencies [ed888e2]
|
|
510
|
+
- Updated dependencies [2e05e27]
|
|
511
|
+
- Updated dependencies [9cdb0f2]
|
|
512
|
+
- Updated dependencies [c8caa5e]
|
|
513
|
+
- Updated dependencies [f4b90c9]
|
|
514
|
+
- Updated dependencies [eec5e9d]
|
|
515
|
+
- Updated dependencies [4e75129]
|
|
516
|
+
- Updated dependencies [47505fe]
|
|
517
|
+
- Updated dependencies [ebd4434]
|
|
518
|
+
- Updated dependencies [863d473]
|
|
519
|
+
- Updated dependencies [344f2f7]
|
|
520
|
+
- Updated dependencies [26f9ffd]
|
|
521
|
+
- Updated dependencies [66056ac]
|
|
522
|
+
- Updated dependencies [0bad534]
|
|
523
|
+
- Updated dependencies [10eae9a]
|
|
524
|
+
- Updated dependencies [22c6c06]
|
|
525
|
+
- @ontrails/core@1.0.0-beta.16
|
|
526
|
+
- @ontrails/cli@1.0.0-beta.16
|
|
527
|
+
- @ontrails/mcp@1.0.0-beta.16
|
|
528
|
+
- @ontrails/observe@1.0.0-beta.16
|
|
529
|
+
|
|
530
|
+
## 1.0.0-beta.15
|
|
531
|
+
|
|
532
|
+
### Minor Changes
|
|
533
|
+
|
|
534
|
+
- f511a3a: Rename `app` field to `graph` in `CliHarnessOptions` and `McpHarnessOptions`
|
|
535
|
+
|
|
536
|
+
### Patch Changes
|
|
537
|
+
|
|
538
|
+
- Updated dependencies [4ad6b25]
|
|
539
|
+
- @ontrails/core@1.0.0-beta.15
|
|
540
|
+
- @ontrails/cli@1.0.0-beta.15
|
|
541
|
+
- @ontrails/observe@1.0.0-beta.15
|
|
542
|
+
- @ontrails/mcp@1.0.0-beta.15
|
|
543
|
+
|
|
544
|
+
## 1.0.0-beta.14
|
|
545
|
+
|
|
546
|
+
### Minor Changes
|
|
547
|
+
|
|
548
|
+
- 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.
|
|
549
|
+
|
|
550
|
+
### Patch Changes
|
|
551
|
+
|
|
552
|
+
- Updated dependencies [69057e9]
|
|
553
|
+
- @ontrails/cli@1.0.0-beta.14
|
|
554
|
+
- @ontrails/core@1.0.0-beta.14
|
|
555
|
+
- @ontrails/logging@1.0.0-beta.14
|
|
556
|
+
- @ontrails/mcp@1.0.0-beta.14
|
|
557
|
+
|
|
558
|
+
## 1.0.0-beta.13
|
|
559
|
+
|
|
560
|
+
### Minor Changes
|
|
561
|
+
|
|
562
|
+
- Trail-native vocabulary cutover. Breaking API field renames across all packages:
|
|
563
|
+
|
|
564
|
+
- Trail spec: `run:` → `blaze:`, `follow:` → `crosses:`, `services:` → `provisions:`, `metadata:` → `meta:`, `emits:` → `signals:`
|
|
565
|
+
- Runtime: `ctx.follow()` → `ctx.cross()`, `ctx.emit()` → `ctx.signal()`, `ctx.signal` (abort) → `ctx.abortSignal`
|
|
566
|
+
- Entry points: `blaze(app)` → `trailhead(app)`
|
|
567
|
+
- Package rename: `@ontrails/crumbs` → `@ontrails/tracker`
|
|
568
|
+
- Wrapper types: `Layer` → `Gate`, `layers`/`middleware` → `gates`
|
|
569
|
+
- Transport: `surface` → `trailhead`, `adapter` → `connector`
|
|
570
|
+
|
|
571
|
+
### Patch Changes
|
|
572
|
+
|
|
573
|
+
- 6944147: Complete trifecta for config, permits, and tracker (formerly tracks)
|
|
574
|
+
|
|
575
|
+
- **config**: Add `configProvision`, `configGate`, `config.trail`, and `config.workspace` trails with full `defineConfig`, `resolve`, `describe`, `explain`, `doctor`, and code generation support
|
|
576
|
+
- **permits**: Add `authService` and `auth.verify` trail for runtime authorization checks
|
|
577
|
+
- **tracker**: Rename tracks to tracker; add `trackerProvision` and `tracker.status` trail for structured signal tracking
|
|
578
|
+
- **cli**: Fix build flag handling and improve bootstrap scaffolding
|
|
579
|
+
- **testing**: Expand test context helpers and example-based testing utilities
|
|
580
|
+
- **core/mcp/http**: Internal alignment for provision and composition updates
|
|
581
|
+
|
|
582
|
+
- Updated dependencies [6944147]
|
|
583
|
+
- Updated dependencies
|
|
584
|
+
- @ontrails/core@1.0.0-beta.13
|
|
585
|
+
- @ontrails/cli@1.0.0-beta.13
|
|
586
|
+
- @ontrails/mcp@1.0.0-beta.13
|
|
587
|
+
- @ontrails/logging@1.0.0-beta.13
|
|
588
|
+
|
|
589
|
+
## 1.0.0-beta.12
|
|
590
|
+
|
|
591
|
+
### Patch Changes
|
|
592
|
+
|
|
593
|
+
- Complete trifecta for config, permits, and tracker (formerly tracks)
|
|
594
|
+
|
|
595
|
+
- **config**: Add `configProvision`, `config.gate`, `config.trail`, and `config.workspace` trails with full `defineConfig`, `resolve`, `describe`, `explain`, `doctor`, and code generation support
|
|
596
|
+
- **permits**: Add `authProvision` and `auth.verify` trail for runtime authorization checks
|
|
597
|
+
- **tracker**: Rename tracks to tracker; add `trackerProvision` and `tracker.status` trail for structured event tracking
|
|
598
|
+
- **cli**: Fix build flag handling and improve bootstrap scaffolding
|
|
599
|
+
- **testing**: Expand test context helpers and example-based testing utilities
|
|
600
|
+
- **core/mcp/http**: Internal alignment for provision and composition updates
|
|
601
|
+
|
|
602
|
+
- Updated dependencies
|
|
603
|
+
- @ontrails/core@1.0.0-beta.12
|
|
604
|
+
- @ontrails/cli@1.0.0-beta.12
|
|
605
|
+
- @ontrails/mcp@1.0.0-beta.12
|
|
606
|
+
- @ontrails/logging@1.0.0-beta.12
|
|
607
|
+
|
|
608
|
+
## 1.0.0-beta.11
|
|
609
|
+
|
|
610
|
+
### Minor Changes
|
|
611
|
+
|
|
612
|
+
- Add provisions as a first-class primitive.
|
|
613
|
+
|
|
614
|
+
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()`.
|
|
615
|
+
|
|
616
|
+
**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.
|
|
617
|
+
|
|
618
|
+
**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.
|
|
619
|
+
|
|
620
|
+
**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.
|
|
621
|
+
|
|
622
|
+
**Trailheads:** Provision overrides thread through `run` and `trailhead` on CLI, MCP, and HTTP.
|
|
623
|
+
|
|
624
|
+
**Introspection:** Survey and trailhead map outputs include provision graph. Topo exposes `.provisions`, `.getProvision()`, `.hasProvision()`, `.listProvisions()`, `.provisionIds()`, `.provisionCount`.
|
|
625
|
+
|
|
626
|
+
**Docs:** ADR-009 accepted. Unified services guide, updated vocabulary, getting-started, architecture, and package READMEs.
|
|
627
|
+
|
|
628
|
+
### Patch Changes
|
|
629
|
+
|
|
630
|
+
- Updated dependencies
|
|
631
|
+
- @ontrails/core@1.0.0-beta.11
|
|
632
|
+
- @ontrails/cli@1.0.0-beta.11
|
|
633
|
+
- @ontrails/mcp@1.0.0-beta.11
|
|
634
|
+
- @ontrails/logging@1.0.0-beta.11
|
|
635
|
+
|
|
636
|
+
## 1.0.0-beta.10
|
|
637
|
+
|
|
638
|
+
### Patch Changes
|
|
639
|
+
|
|
640
|
+
- Updated dependencies
|
|
641
|
+
- @ontrails/core@1.0.0-beta.10
|
|
642
|
+
- @ontrails/cli@1.0.0-beta.10
|
|
643
|
+
- @ontrails/mcp@1.0.0-beta.10
|
|
644
|
+
- @ontrails/logging@1.0.0-beta.10
|
|
645
|
+
|
|
646
|
+
## 1.0.0-beta.9
|
|
647
|
+
|
|
648
|
+
### Minor Changes
|
|
649
|
+
|
|
650
|
+
- Consolidated improvements across all trailhead packages.
|
|
651
|
+
|
|
652
|
+
**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.
|
|
653
|
+
|
|
654
|
+
**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.
|
|
655
|
+
|
|
656
|
+
**mcp**: Return `Result` from `buildMcpTools()` on collision instead of throwing.
|
|
657
|
+
|
|
658
|
+
**cli**: Verify exception catching via centralized `executeTrail`.
|
|
659
|
+
|
|
660
|
+
**testing**: Cross-context awareness improvements.
|
|
661
|
+
|
|
662
|
+
**warden**: Refactor rules as composable trails with examples.
|
|
663
|
+
|
|
664
|
+
**schema**: Error code and empty body fixes.
|
|
665
|
+
|
|
666
|
+
### Patch Changes
|
|
667
|
+
|
|
668
|
+
- Updated dependencies
|
|
669
|
+
- @ontrails/core@1.0.0-beta.9
|
|
670
|
+
- @ontrails/cli@1.0.0-beta.9
|
|
671
|
+
- @ontrails/mcp@1.0.0-beta.9
|
|
672
|
+
- @ontrails/logging@1.0.0-beta.9
|
|
673
|
+
|
|
674
|
+
## 1.0.0-beta.8
|
|
675
|
+
|
|
676
|
+
### Patch Changes
|
|
677
|
+
|
|
678
|
+
- @ontrails/cli@1.0.0-beta.8
|
|
679
|
+
- @ontrails/core@1.0.0-beta.8
|
|
680
|
+
- @ontrails/logging@1.0.0-beta.8
|
|
681
|
+
- @ontrails/mcp@1.0.0-beta.8
|
|
682
|
+
|
|
683
|
+
## 1.0.0-beta.7
|
|
684
|
+
|
|
685
|
+
### Patch Changes
|
|
686
|
+
|
|
687
|
+
- @ontrails/cli@1.0.0-beta.7
|
|
688
|
+
- @ontrails/core@1.0.0-beta.7
|
|
689
|
+
- @ontrails/logging@1.0.0-beta.7
|
|
690
|
+
- @ontrails/mcp@1.0.0-beta.7
|
|
691
|
+
|
|
692
|
+
## 1.0.0-beta.6
|
|
693
|
+
|
|
694
|
+
### Patch Changes
|
|
695
|
+
|
|
696
|
+
- Updated dependencies
|
|
697
|
+
- @ontrails/core@1.0.0-beta.6
|
|
698
|
+
- @ontrails/cli@1.0.0-beta.6
|
|
699
|
+
- @ontrails/logging@1.0.0-beta.6
|
|
700
|
+
- @ontrails/mcp@1.0.0-beta.6
|
|
701
|
+
|
|
702
|
+
## 1.0.0-beta.5
|
|
703
|
+
|
|
704
|
+
### Patch Changes
|
|
705
|
+
|
|
706
|
+
- Updated dependencies
|
|
707
|
+
- @ontrails/core@1.0.0-beta.5
|
|
708
|
+
- @ontrails/logging@1.0.0-beta.5
|
|
709
|
+
- @ontrails/cli@1.0.0-beta.5
|
|
710
|
+
- @ontrails/mcp@1.0.0-beta.5
|
|
711
|
+
|
|
712
|
+
## 1.0.0-beta.4
|
|
713
|
+
|
|
714
|
+
### Major Changes
|
|
715
|
+
|
|
716
|
+
- API simplification: unified trail model, intent enum, run, metadata.
|
|
717
|
+
|
|
718
|
+
**BREAKING CHANGES:**
|
|
719
|
+
|
|
720
|
+
- `hike()` removed — use `trail()` with optional `crosses: [...]` field
|
|
721
|
+
- `follows` renamed to `crosses` (matching `ctx.cross()`)
|
|
722
|
+
- `topo.hikes` removed — single `topo.trails` map
|
|
723
|
+
- `kind: 'hike'` removed — everything is `kind: 'trail'`
|
|
724
|
+
- `readOnly`/`destructive` booleans replaced by `intent: 'read' | 'write' | 'destroy'`
|
|
725
|
+
- `implementation` field renamed to `run`
|
|
726
|
+
- `markers` field renamed to `metadata`
|
|
727
|
+
- `testHike` renamed to `testCrosses`, `HikeScenario` to `CrossScenario`
|
|
728
|
+
- `trailhead()` now returns the trailhead handle (`Command` for CLI, `Server` for MCP)
|
|
729
|
+
|
|
730
|
+
### Patch Changes
|
|
731
|
+
|
|
732
|
+
- Updated dependencies
|
|
733
|
+
- @ontrails/core@1.0.0-beta.4
|
|
734
|
+
- @ontrails/cli@1.0.0-beta.4
|
|
735
|
+
- @ontrails/mcp@1.0.0-beta.4
|
|
736
|
+
- @ontrails/logging@1.0.0-beta.4
|
|
737
|
+
|
|
738
|
+
## 1.0.0-beta.3
|
|
739
|
+
|
|
740
|
+
### Minor Changes
|
|
741
|
+
|
|
742
|
+
- Bug fixes across all trailhead packages found via parallel Codex review.
|
|
743
|
+
|
|
744
|
+
**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.
|
|
745
|
+
|
|
746
|
+
**cli**: Switch trailhead to parseAsync for proper async error handling, add boolean flag negation (--no-flag), and strict number parsing that rejects partial input.
|
|
747
|
+
|
|
748
|
+
**mcp**: Align BlobRef with core (including ReadableStream support) and detect tool-name collisions after normalization.
|
|
749
|
+
|
|
750
|
+
**testing**: Include hikes in testContracts validation, with cross-context awareness.
|
|
751
|
+
|
|
752
|
+
**warden**: Collect hike detour targets, validate detour refs in hike specs, and stop implementation-returns-result from walking into nested function bodies.
|
|
753
|
+
|
|
754
|
+
### Patch Changes
|
|
755
|
+
|
|
756
|
+
- Updated dependencies
|
|
757
|
+
- @ontrails/core@1.0.0-beta.3
|
|
758
|
+
- @ontrails/cli@1.0.0-beta.3
|
|
759
|
+
- @ontrails/mcp@1.0.0-beta.3
|
|
760
|
+
- @ontrails/logging@1.0.0-beta.3
|
|
761
|
+
|
|
762
|
+
## 1.0.0-beta.2
|
|
763
|
+
|
|
764
|
+
### Patch Changes
|
|
765
|
+
|
|
766
|
+
- Fix workspace dependency resolution in published packages. Now using bun publish
|
|
767
|
+
which correctly replaces workspace:^ with actual version numbers.
|
|
768
|
+
- Updated dependencies
|
|
769
|
+
- @ontrails/core@1.0.0-beta.2
|
|
770
|
+
- @ontrails/cli@1.0.0-beta.2
|
|
771
|
+
- @ontrails/mcp@1.0.0-beta.2
|
|
772
|
+
- @ontrails/logging@1.0.0-beta.2
|
|
773
|
+
|
|
774
|
+
## 1.0.0-beta.1
|
|
775
|
+
|
|
776
|
+
### Patch Changes
|
|
777
|
+
|
|
778
|
+
- Fix two blocking bugs from real-world migration:
|
|
779
|
+
- Published packages now resolve correctly (workspace:^ instead of workspace:\*)
|
|
780
|
+
- Error forwarding works across different success types (Err no longer carries phantom T)
|
|
781
|
+
- Updated dependencies
|
|
782
|
+
- @ontrails/core@1.0.0-beta.1
|
|
783
|
+
- @ontrails/cli@1.0.0-beta.1
|
|
784
|
+
- @ontrails/mcp@1.0.0-beta.1
|
|
785
|
+
- @ontrails/logging@1.0.0-beta.1
|
|
786
|
+
|
|
787
|
+
## 1.0.0-beta.0
|
|
788
|
+
|
|
789
|
+
### Minor Changes
|
|
790
|
+
|
|
791
|
+
- Initial v1 beta release of the Trails framework.
|
|
792
|
+
|
|
793
|
+
- **@ontrails/core** — Result type, error taxonomy, trail/hike/event/topo, validateTopo, validateInput/Output, deriveFields, patterns, redaction, branded types, resilience
|
|
794
|
+
- **@ontrails/cli** — CLI trailhead connector, Commander integration, flag derivation, gates
|
|
795
|
+
- **@ontrails/mcp** — MCP trailhead connector, tool generation, annotations, progress bridge
|
|
796
|
+
- **@ontrails/logging** — Structured logging, sinks, formatters, LogTape connector
|
|
797
|
+
- **@ontrails/testing** — testAll, testExamples, testTrail, testHike, testContracts, testDetours, trailhead harnesses
|
|
798
|
+
- **@ontrails/warden** — AST-based code convention rules via oxc-parser, drift detection, CI formatters
|
|
799
|
+
- **@ontrails/schema** — Trailhead map generation, hashing, semantic diffing
|
|
800
|
+
|
|
801
|
+
### Patch Changes
|
|
802
|
+
|
|
803
|
+
- Updated dependencies
|
|
804
|
+
- @ontrails/core@1.0.0-beta.0
|
|
805
|
+
- @ontrails/cli@1.0.0-beta.0
|
|
806
|
+
- @ontrails/mcp@1.0.0-beta.0
|
|
807
|
+
- @ontrails/logging@1.0.0-beta.0
|