@ontrails/trails 1.0.0-beta.3 → 1.0.0-beta.30

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 (157) hide show
  1. package/CHANGELOG.md +886 -0
  2. package/README.md +27 -0
  3. package/package.json +30 -7
  4. package/src/app.ts +125 -2
  5. package/src/cli.ts +344 -11
  6. package/src/completions.ts +240 -0
  7. package/src/lifecycle-source-io.ts +33 -0
  8. package/src/load-app-mirror.ts +202 -0
  9. package/src/local-state-io.ts +173 -0
  10. package/src/mcp-app.ts +40 -0
  11. package/src/mcp-options.ts +76 -0
  12. package/src/mcp.ts +8 -0
  13. package/src/project-writes.ts +377 -0
  14. package/src/release/bindings.ts +39 -0
  15. package/src/release/check.ts +844 -0
  16. package/src/release/config.ts +63 -0
  17. package/src/release/contract-facts.ts +425 -0
  18. package/src/release/index.ts +125 -0
  19. package/src/release/native-bun-publish.ts +651 -0
  20. package/src/release/native-bun-registry.ts +754 -0
  21. package/src/release/pack-coherence.ts +457 -0
  22. package/src/release/packed-artifacts-smoke.ts +236 -0
  23. package/src/release/policy.ts +1684 -0
  24. package/src/release/semver.ts +104 -0
  25. package/src/release/smoke.ts +46 -0
  26. package/src/release/wayfinder-dogfood-smoke.ts +760 -0
  27. package/src/retired-topo-command.ts +36 -0
  28. package/src/run-adapter-check.ts +76 -0
  29. package/src/run-collision.ts +126 -0
  30. package/src/run-completions-install.ts +179 -0
  31. package/src/run-example.ts +149 -0
  32. package/src/run-examples.ts +148 -0
  33. package/src/run-quiet.ts +75 -0
  34. package/src/run-release-check.ts +74 -0
  35. package/src/run-schema.ts +41 -0
  36. package/src/run-trace.ts +273 -0
  37. package/src/run-warden.ts +39 -0
  38. package/src/run-watch.ts +432 -0
  39. package/src/run-wayfind-outline.ts +166 -0
  40. package/src/scaffold-version-sync.ts +183 -0
  41. package/src/scaffold-versions.generated.ts +12 -0
  42. package/src/trails/adapter-check.ts +244 -0
  43. package/src/trails/add-surface.ts +94 -40
  44. package/src/trails/add-trail.ts +79 -41
  45. package/src/trails/add-verify.ts +95 -25
  46. package/src/trails/compile.ts +59 -0
  47. package/src/trails/completions-complete.ts +165 -0
  48. package/src/trails/completions.ts +47 -0
  49. package/src/trails/create-adapter.ts +1084 -0
  50. package/src/trails/create-scaffold.ts +399 -104
  51. package/src/trails/create-versions.ts +62 -0
  52. package/src/trails/create.ts +186 -72
  53. package/src/trails/deprecate.ts +59 -0
  54. package/src/trails/dev-clean.ts +82 -0
  55. package/src/trails/dev-reset.ts +50 -0
  56. package/src/trails/dev-stats.ts +72 -0
  57. package/src/trails/dev-support.ts +360 -0
  58. package/src/trails/doctor.ts +77 -0
  59. package/src/trails/draft-promote.ts +949 -0
  60. package/src/trails/guide.ts +71 -69
  61. package/src/trails/load-app.ts +1193 -16
  62. package/src/trails/operator-context.ts +66 -0
  63. package/src/trails/project.ts +17 -3
  64. package/src/trails/regrade.ts +72 -0
  65. package/src/trails/release-check.ts +105 -0
  66. package/src/trails/release-smoke.ts +48 -0
  67. package/src/trails/revise.ts +53 -0
  68. package/src/trails/root-dir.ts +21 -0
  69. package/src/trails/run-example.ts +475 -0
  70. package/src/trails/run-examples.ts +129 -0
  71. package/src/trails/run.ts +434 -0
  72. package/src/trails/scaffold-json.ts +58 -0
  73. package/src/trails/survey.ts +896 -227
  74. package/src/trails/topo-activation.ts +385 -0
  75. package/src/trails/topo-constants.ts +2 -0
  76. package/src/trails/topo-history.ts +47 -0
  77. package/src/trails/topo-output-schemas.ts +259 -0
  78. package/src/trails/topo-pin.ts +38 -0
  79. package/src/trails/topo-read-support.ts +363 -0
  80. package/src/trails/topo-reports.ts +809 -0
  81. package/src/trails/topo-store-support.ts +307 -0
  82. package/src/trails/topo-support.ts +219 -0
  83. package/src/trails/topo-unpin.ts +61 -0
  84. package/src/trails/topo.ts +92 -0
  85. package/src/trails/validate.ts +27 -0
  86. package/src/trails/version-lifecycle-support.ts +935 -0
  87. package/src/trails/warden-guide.ts +129 -0
  88. package/src/trails/warden.ts +183 -58
  89. package/src/trails/wayfind.ts +1001 -0
  90. package/src/versions.ts +31 -0
  91. package/.turbo/turbo-build.log +0 -1
  92. package/.turbo/turbo-lint.log +0 -3
  93. package/.turbo/turbo-typecheck.log +0 -1
  94. package/__tests__/examples.test.ts +0 -6
  95. package/dist/bin/trails.d.ts +0 -3
  96. package/dist/bin/trails.d.ts.map +0 -1
  97. package/dist/bin/trails.js +0 -4
  98. package/dist/bin/trails.js.map +0 -1
  99. package/dist/src/app.d.ts +0 -2
  100. package/dist/src/app.d.ts.map +0 -1
  101. package/dist/src/app.js +0 -11
  102. package/dist/src/app.js.map +0 -1
  103. package/dist/src/clack.d.ts +0 -9
  104. package/dist/src/clack.d.ts.map +0 -1
  105. package/dist/src/clack.js +0 -84
  106. package/dist/src/clack.js.map +0 -1
  107. package/dist/src/cli.d.ts +0 -2
  108. package/dist/src/cli.d.ts.map +0 -1
  109. package/dist/src/cli.js +0 -13
  110. package/dist/src/cli.js.map +0 -1
  111. package/dist/src/trails/add-surface.d.ts +0 -13
  112. package/dist/src/trails/add-surface.d.ts.map +0 -1
  113. package/dist/src/trails/add-surface.js +0 -88
  114. package/dist/src/trails/add-surface.js.map +0 -1
  115. package/dist/src/trails/add-trail.d.ts +0 -11
  116. package/dist/src/trails/add-trail.d.ts.map +0 -1
  117. package/dist/src/trails/add-trail.js +0 -85
  118. package/dist/src/trails/add-trail.js.map +0 -1
  119. package/dist/src/trails/add-verify.d.ts +0 -10
  120. package/dist/src/trails/add-verify.d.ts.map +0 -1
  121. package/dist/src/trails/add-verify.js +0 -67
  122. package/dist/src/trails/add-verify.js.map +0 -1
  123. package/dist/src/trails/create-scaffold.d.ts +0 -15
  124. package/dist/src/trails/create-scaffold.d.ts.map +0 -1
  125. package/dist/src/trails/create-scaffold.js +0 -288
  126. package/dist/src/trails/create-scaffold.js.map +0 -1
  127. package/dist/src/trails/create.d.ts +0 -22
  128. package/dist/src/trails/create.d.ts.map +0 -1
  129. package/dist/src/trails/create.js +0 -121
  130. package/dist/src/trails/create.js.map +0 -1
  131. package/dist/src/trails/guide.d.ts +0 -11
  132. package/dist/src/trails/guide.d.ts.map +0 -1
  133. package/dist/src/trails/guide.js +0 -80
  134. package/dist/src/trails/guide.js.map +0 -1
  135. package/dist/src/trails/load-app.d.ts +0 -4
  136. package/dist/src/trails/load-app.d.ts.map +0 -1
  137. package/dist/src/trails/load-app.js +0 -24
  138. package/dist/src/trails/load-app.js.map +0 -1
  139. package/dist/src/trails/project.d.ts +0 -8
  140. package/dist/src/trails/project.d.ts.map +0 -1
  141. package/dist/src/trails/project.js +0 -43
  142. package/dist/src/trails/project.js.map +0 -1
  143. package/dist/src/trails/survey.d.ts +0 -33
  144. package/dist/src/trails/survey.d.ts.map +0 -1
  145. package/dist/src/trails/survey.js +0 -225
  146. package/dist/src/trails/survey.js.map +0 -1
  147. package/dist/src/trails/warden.d.ts +0 -19
  148. package/dist/src/trails/warden.d.ts.map +0 -1
  149. package/dist/src/trails/warden.js +0 -88
  150. package/dist/src/trails/warden.js.map +0 -1
  151. package/dist/tsconfig.tsbuildinfo +0 -1
  152. package/src/__tests__/create.test.ts +0 -349
  153. package/src/__tests__/guide.test.ts +0 -91
  154. package/src/__tests__/load-app.test.ts +0 -15
  155. package/src/__tests__/survey.test.ts +0 -161
  156. package/src/__tests__/warden.test.ts +0 -74
  157. package/tsconfig.json +0 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,891 @@
1
1
  # trails
2
2
 
3
+ ## 1.0.0-beta.30
4
+
5
+ ### Patch Changes
6
+
7
+ - 5510807: Treat npm `ETARGET` exact-version probes as unpublished target versions during registry readiness checks.
8
+ - b0ff8b9: Teach the registry preflight to verify first-time package publishes when npm's package summary lags behind dist-tags and tarball availability.
9
+ - @ontrails/commander@1.0.0-beta.30
10
+ - @ontrails/adapter-kit@1.0.0-beta.30
11
+ - @ontrails/cli@1.0.0-beta.30
12
+ - @ontrails/config@1.0.0-beta.30
13
+ - @ontrails/core@1.0.0-beta.30
14
+ - @ontrails/http@1.0.0-beta.30
15
+ - @ontrails/mcp@1.0.0-beta.30
16
+ - @ontrails/observe@1.0.0-beta.30
17
+ - @ontrails/permits@1.0.0-beta.30
18
+ - @ontrails/regrade@1.0.0-beta.30
19
+ - @ontrails/topographer@1.0.0-beta.30
20
+ - @ontrails/tracing@1.0.0-beta.30
21
+ - @ontrails/warden@1.0.0-beta.30
22
+ - @ontrails/wayfinder@1.0.0-beta.30
23
+
24
+ ## 1.0.0-beta.29
25
+
26
+ ### Patch Changes
27
+
28
+ - 52425c5: Consolidate registry verdicts behind one shared `packageRegistry` classifier.
29
+
30
+ `apps/trails/src/release` now derives every package's registry state — `complete`, `needs-publish`, `first-time-package`, `needs-tag-repair`, `tag-points-ahead`, `registry-inaccessible` — from a single `classifyPackageRegistryState` function, fed by an exact-version probe (`npm view <name>@<version>`). The release policy engine and the registry preflight both consume it, so their verdicts can no longer drift, and the missing "is the target version actually published" fact is now first-class.
31
+
32
+ The preflight check is phase-aware: `publish:registry-check` (ready) treats an unpublished target or a behind dist-tag as expected pre-publish work rather than a failure, while `publish:registry-check:published` still requires every package to be fully published and tagged. This fixes the confusing failure seen when the repo is several releases ahead of the published `beta` tag. Exact-version probes run with bounded concurrency so release checks stay responsive. No publish or dist-tag mutation is performed.
33
+
34
+ - @ontrails/commander@1.0.0-beta.29
35
+ - @ontrails/adapter-kit@1.0.0-beta.29
36
+ - @ontrails/cli@1.0.0-beta.29
37
+ - @ontrails/config@1.0.0-beta.29
38
+ - @ontrails/core@1.0.0-beta.29
39
+ - @ontrails/http@1.0.0-beta.29
40
+ - @ontrails/mcp@1.0.0-beta.29
41
+ - @ontrails/observe@1.0.0-beta.29
42
+ - @ontrails/permits@1.0.0-beta.29
43
+ - @ontrails/regrade@1.0.0-beta.29
44
+ - @ontrails/topographer@1.0.0-beta.29
45
+ - @ontrails/tracing@1.0.0-beta.29
46
+ - @ontrails/warden@1.0.0-beta.29
47
+ - @ontrails/wayfinder@1.0.0-beta.29
48
+
49
+ ## 1.0.0-beta.28
50
+
51
+ ### Patch Changes
52
+
53
+ - 9d679cf: Make generated release publish policy gather CI proof only for `publish:auto`, reuse generated release PR head proof when it matches the released tree, tolerate duplicate pending checks after a required check has passed, and log registry readiness separately from publish authorization.
54
+ - 32dc2f3: Let generated release PR labeling treat trusted Graphite merge-queue proof with green required CI as source stack evidence for `publish:auto`, alongside explicit `stack:boundary` labels.
55
+ - @ontrails/commander@1.0.0-beta.28
56
+ - @ontrails/adapter-kit@1.0.0-beta.28
57
+ - @ontrails/cli@1.0.0-beta.28
58
+ - @ontrails/config@1.0.0-beta.28
59
+ - @ontrails/core@1.0.0-beta.28
60
+ - @ontrails/http@1.0.0-beta.28
61
+ - @ontrails/mcp@1.0.0-beta.28
62
+ - @ontrails/observe@1.0.0-beta.28
63
+ - @ontrails/permits@1.0.0-beta.28
64
+ - @ontrails/regrade@1.0.0-beta.28
65
+ - @ontrails/topographer@1.0.0-beta.28
66
+ - @ontrails/tracing@1.0.0-beta.28
67
+ - @ontrails/warden@1.0.0-beta.28
68
+ - @ontrails/wayfinder@1.0.0-beta.28
69
+
70
+ ## 1.0.0-beta.27
71
+
72
+ ### Patch Changes
73
+
74
+ - a4727ec: Sync Bun lockfile workspace metadata during package versioning so generated release PRs cannot carry stale first-party package versions.
75
+ - @ontrails/commander@1.0.0-beta.27
76
+ - @ontrails/adapter-kit@1.0.0-beta.27
77
+ - @ontrails/cli@1.0.0-beta.27
78
+ - @ontrails/config@1.0.0-beta.27
79
+ - @ontrails/core@1.0.0-beta.27
80
+ - @ontrails/http@1.0.0-beta.27
81
+ - @ontrails/mcp@1.0.0-beta.27
82
+ - @ontrails/observe@1.0.0-beta.27
83
+ - @ontrails/permits@1.0.0-beta.27
84
+ - @ontrails/regrade@1.0.0-beta.27
85
+ - @ontrails/topographer@1.0.0-beta.27
86
+ - @ontrails/tracing@1.0.0-beta.27
87
+ - @ontrails/warden@1.0.0-beta.27
88
+ - @ontrails/wayfinder@1.0.0-beta.27
89
+
90
+ ## 1.0.0-beta.26
91
+
92
+ ### Patch Changes
93
+
94
+ - 40cd7b4: Add a release-pack coherence guard that runs packed package validation for generated release branches and package release metadata changes.
95
+ - 1307568: Centralize Trails config module path conventions, move local config overrides to root `trails.config.local.*`, scaffold the matching gitignore entries, and load project-local Warden rules from `.trails/rules.ts` or `.trails/rules/`.
96
+ - 0fe873a: Normalize generated project guidance and scaffold ignores around the root `trails.lock` and committed `.trails/` control model.
97
+ - 38cd9d6: Add a shared Trails config file loader that treats `trails.config.ts` as the natural primary while supporting JSON, JSONC, YAML, and TOML peer formats. Release and Warden config loading now consume the same loader and local overrides can be authored as data files.
98
+ - f8403c4: Collapse normal topo compilation onto one root `trails.lock` envelope that embeds the TopoGraph, hash, and summary while keeping legacy `.trails/trails.lock` plus `.trails/topo.lock` readers for migration compatibility.
99
+ - 371d19e: Move the default `trails.db` location to the per-user Trails state store, expose deterministic state-store path helpers, stop scaffolding disposable `.trails/cache` and `.trails/state` directories, and update topo-store documentation for the global-state substrate.
100
+ - Updated dependencies [4e75b85]
101
+ - Updated dependencies [1307568]
102
+ - Updated dependencies [ef09e46]
103
+ - Updated dependencies [38cd9d6]
104
+ - Updated dependencies [f8403c4]
105
+ - Updated dependencies [371d19e]
106
+ - Updated dependencies [ff48e41]
107
+ - @ontrails/regrade@1.0.0-beta.26
108
+ - @ontrails/config@1.0.0-beta.26
109
+ - @ontrails/core@1.0.0-beta.26
110
+ - @ontrails/warden@1.0.0-beta.26
111
+ - @ontrails/topographer@1.0.0-beta.26
112
+ - @ontrails/wayfinder@1.0.0-beta.26
113
+ - @ontrails/tracing@1.0.0-beta.26
114
+ - @ontrails/commander@1.0.0-beta.26
115
+ - @ontrails/adapter-kit@1.0.0-beta.26
116
+ - @ontrails/cli@1.0.0-beta.26
117
+ - @ontrails/http@1.0.0-beta.26
118
+ - @ontrails/mcp@1.0.0-beta.26
119
+ - @ontrails/observe@1.0.0-beta.26
120
+ - @ontrails/permits@1.0.0-beta.26
121
+
122
+ ## 1.0.0-beta.25
123
+
124
+ ### Minor Changes
125
+
126
+ - b9a7d8a: Add generated release PR policy automation with managed publish/channel/release
127
+ labels, stack-boundary source evidence, and inverse active-changeset release
128
+ fact validation.
129
+
130
+ ### Patch Changes
131
+
132
+ - 578731d: `trails doctor` now returns the underlying validation error when the app topo is invalid, instead of crashing with a redacted "Internal server error". The diagnostic command reports the diagnosis: validation failures surface with their category, message, and (with the commander detail rendering) the issue list.
133
+ - c5258ea: Fix the scaffolded AGENTS.md layer guidance to say "cross-cutting trail wrapping" — the cross→compose vocabulary cutover had renamed the standard English collocation, so every generated app shipped the nonsense phrase "compose-cutting".
134
+ - b991263: Retire the package-owned `regrade.downstream.report` trail wrapper so the Trails operator app owns the public Regrade surface while `@ontrails/regrade` exposes the reusable engine APIs and report schema.
135
+ - c75c6cc: Collapse the duplicate `diff` trail into the canonical `survey.diff` contract while keeping `trails diff` available as a CLI route alias.
136
+ - 7b7cd6a: Centralize the Trails operator root-directory and fresh-app lease preamble so topo-reading commands share the same load/release flow.
137
+ - c36aca9: Preserve existing Result error boundaries directly and widen Warden pass-through
138
+ coaching beyond trail blazes.
139
+ - c1bc0d3: Add the `wayfind.outline` source-navigation trail and expose it through the Trails CLI and MCP surfaces.
140
+ - 0d213b1: Enrich compact `wayfind outline --review` text with existing trail intent, schema, and example-count facts when saved graph artifacts are available.
141
+ - dbf4ff4: Emit structured CLI error envelopes for JSON/JSONL command failures and map compile-time Trails DB lock contention to a retryable timeout instead of a generic internal error.
142
+ - 8e1c2ff: Wire adapter and error fact selection into the unified `trails wayfind` command.
143
+ - da39b89: Add the unified `trails wayfind` navigation command over targets, filters, and
144
+ views, and remove the old `wayfind find` search alias during the v1 Wayfinder
145
+ surface cutover.
146
+ - 2059666: Add relational `trails wayfind` flags for downstream, upstream, and nearby graph navigation.
147
+ - 2c08afe: Expose MCP trail graph fact resources and enable them for the Trails operator MCP surface.
148
+ - 4b538d1: Start the `trails wayfind --source live` cutover by routing live overview and ID lookup through the fresh app survey path.
149
+ - dd98701: Update CLI and agent guidance to teach the unified Wayfinder navigation surface and live-source bridge.
150
+ - f1e6efa: Expand the Wayfinder dogfood smoke to exercise the unified navigation command shape.
151
+ - 60fa8f5: Expose the saved graph diff as a distinct `wayfind diff` CLI command and MCP tool.
152
+ - a8e4dc3: Clean up the Wayfinder navigation grammar before RC, including explicit pattern/query/file selectors, target-bound dependency and impact flags, drift-first provenance fields, stricter fires declaration diagnostics, and updated operator dogfood coverage.
153
+ - a528239: Keep Wayfinder artifact drift aligned with rejected and force-annotated topo compiles.
154
+ - de79459: Expand Wayfinder dogfood smoke coverage across demo graph facts, relation views, and artifact provenance failures.
155
+ - f757cd7: Publish Regrade's downstream report and AST rewrite APIs, and expose a dry-run
156
+ by default `trails regrade` operator command with explicit apply mode.
157
+ - 9bcf34e: Add trail-owned CLI command projection metadata and serialize resolved command
158
+ route facts for downstream tools.
159
+ - f7d97fc: Expose resolved CLI command routes through schema helpers, the Trails operator
160
+ schema command, and Wayfinder trail contract output.
161
+ - 59d10da: Dogfood CLI command route aliases through the Trails operator, saved Topographer artifacts, and Wayfinder contract inspection.
162
+ - df13faf: Tighten Wayfinder navigation review findings: carry adapter filters into included adapter facts, keep live-source outline off the operator MCP surface until host-root binding exists, make unknown MCP resources protocol errors, route secondary Wayfinder graph populations through unified flags, and keep undeclared string `ctx.compose()` calls as Warden errors.
163
+ - Updated dependencies [60caabf]
164
+ - Updated dependencies [a9fdbc7]
165
+ - Updated dependencies [f8fd6ca]
166
+ - Updated dependencies [b991263]
167
+ - Updated dependencies [0fcc42b]
168
+ - Updated dependencies [c36aca9]
169
+ - Updated dependencies [c1bc0d3]
170
+ - Updated dependencies [f556559]
171
+ - Updated dependencies [75417bb]
172
+ - Updated dependencies [6250729]
173
+ - Updated dependencies [d73c38e]
174
+ - Updated dependencies [3befcf1]
175
+ - Updated dependencies [dbf4ff4]
176
+ - Updated dependencies [14dc577]
177
+ - Updated dependencies [4f48166]
178
+ - Updated dependencies [2d9e73a]
179
+ - Updated dependencies [da39b89]
180
+ - Updated dependencies [2c08afe]
181
+ - Updated dependencies [f1e6efa]
182
+ - Updated dependencies [f1e6efa]
183
+ - Updated dependencies [f1e6efa]
184
+ - Updated dependencies [a8e4dc3]
185
+ - Updated dependencies [a528239]
186
+ - Updated dependencies [f757cd7]
187
+ - Updated dependencies [a4f9cf6]
188
+ - Updated dependencies [9bcf34e]
189
+ - Updated dependencies [1d3ae74]
190
+ - Updated dependencies [f7d97fc]
191
+ - Updated dependencies [00c0cf8]
192
+ - Updated dependencies [59d10da]
193
+ - Updated dependencies [b313c58]
194
+ - Updated dependencies [f245fa0]
195
+ - Updated dependencies [d9c6e50]
196
+ - Updated dependencies [f1e6efa]
197
+ - Updated dependencies [caff950]
198
+ - Updated dependencies [df13faf]
199
+ - @ontrails/commander@1.0.0-beta.25
200
+ - @ontrails/mcp@1.0.0-beta.25
201
+ - @ontrails/warden@1.0.0-beta.25
202
+ - @ontrails/regrade@1.0.0-beta.25
203
+ - @ontrails/core@1.0.0-beta.25
204
+ - @ontrails/http@1.0.0-beta.25
205
+ - @ontrails/topographer@1.0.0-beta.25
206
+ - @ontrails/wayfinder@1.0.0-beta.25
207
+ - @ontrails/cli@1.0.0-beta.25
208
+ - @ontrails/adapter-kit@1.0.0-beta.25
209
+ - @ontrails/observe@1.0.0-beta.25
210
+ - @ontrails/permits@1.0.0-beta.25
211
+ - @ontrails/tracing@1.0.0-beta.25
212
+
213
+ ## 1.0.0-beta.24
214
+
215
+ ### Patch Changes
216
+
217
+ - dac49c2: Restore caller-facing direct input for `trails run` so positional JSON,
218
+ `--input-json`, and `--input` payloads map to the target trail input unless
219
+ callers explicitly use the `input` wrapper for control-field collisions.
220
+ - @ontrails/commander@1.0.0-beta.24
221
+ - @ontrails/adapter-kit@1.0.0-beta.24
222
+ - @ontrails/cli@1.0.0-beta.24
223
+ - @ontrails/core@1.0.0-beta.24
224
+ - @ontrails/http@1.0.0-beta.24
225
+ - @ontrails/mcp@1.0.0-beta.24
226
+ - @ontrails/observe@1.0.0-beta.24
227
+ - @ontrails/permits@1.0.0-beta.24
228
+ - @ontrails/topographer@1.0.0-beta.24
229
+ - @ontrails/tracing@1.0.0-beta.24
230
+ - @ontrails/warden@1.0.0-beta.24
231
+ - @ontrails/wayfinder@1.0.0-beta.24
232
+
233
+ ## 1.0.0-beta.23
234
+
235
+ ### Patch Changes
236
+
237
+ - 7c037a0: Allow `trails release check` to pass as a no-op in generated single-package apps
238
+ that do not declare package workspaces.
239
+ - Updated dependencies [9c5ecdc]
240
+ - @ontrails/http@1.0.0-beta.23
241
+ - @ontrails/commander@1.0.0-beta.23
242
+ - @ontrails/adapter-kit@1.0.0-beta.23
243
+ - @ontrails/cli@1.0.0-beta.23
244
+ - @ontrails/core@1.0.0-beta.23
245
+ - @ontrails/mcp@1.0.0-beta.23
246
+ - @ontrails/observe@1.0.0-beta.23
247
+ - @ontrails/permits@1.0.0-beta.23
248
+ - @ontrails/topographer@1.0.0-beta.23
249
+ - @ontrails/tracing@1.0.0-beta.23
250
+ - @ontrails/warden@1.0.0-beta.23
251
+ - @ontrails/wayfinder@1.0.0-beta.23
252
+
253
+ ## 1.0.0-beta.22
254
+
255
+ ### Patch Changes
256
+
257
+ - cdee4d0: Emit formatter-clean fresh scaffold files so generated apps pass their own
258
+ `format:check` script before any manual cleanup.
259
+ - @ontrails/commander@1.0.0-beta.22
260
+ - @ontrails/adapter-kit@1.0.0-beta.22
261
+ - @ontrails/cli@1.0.0-beta.22
262
+ - @ontrails/core@1.0.0-beta.22
263
+ - @ontrails/http@1.0.0-beta.22
264
+ - @ontrails/mcp@1.0.0-beta.22
265
+ - @ontrails/observe@1.0.0-beta.22
266
+ - @ontrails/permits@1.0.0-beta.22
267
+ - @ontrails/topographer@1.0.0-beta.22
268
+ - @ontrails/tracing@1.0.0-beta.22
269
+ - @ontrails/warden@1.0.0-beta.22
270
+ - @ontrails/wayfinder@1.0.0-beta.22
271
+
272
+ ## 1.0.0-beta.21
273
+
274
+ ### Minor Changes
275
+
276
+ - bb5a219: Add the public `create.versions` trail (`trails create versions`). Scaffold dependency version derivation graduates from `scripts/sync-scaffold-versions.ts` into the `create` surface: check mode verifies `apps/trails/src/scaffold-versions.generated.ts` is current, write mode regenerates it, and the root script remains as a thin compatibility wrapper.
277
+
278
+ ### Patch Changes
279
+
280
+ - 4c0041c: Expose `wayfind.errors` and `wayfind.adapters` as read-only direct tools on the Trails operator MCP surface.
281
+ - 4cca012: Add the `wayfind.errors` graph-read trail and expose it through the Trails CLI for local error-fact inspection.
282
+ - 708b861: Expose `wayfind.adapters` over adapter-kit fact reports and add it to the Trails operator CLI Wayfinder surface.
283
+ - b6579b8: Expose selected Wayfinder graph-read queries through the local `trails wayfind` CLI command group for dogfooding saved topo artifacts.
284
+ - 52e15bc: Repair fresh app loading so mirrored workspace modules can resolve first-party workspace packages and their installed package dependencies from the mirror.
285
+ - d4ec336: Add a repo-level Wayfinder dogfood smoke command that exercises the local
286
+ Trails CLI against exported operator topo artifacts.
287
+ - 0d1472a: Expose release rules config helpers from `@ontrails/trails/release` so
288
+ projects can compose release policy into `trails.config.ts`.
289
+ - 8f681ae: Move release rule evaluation into the Trails app package and export the
290
+ release check and public trail contract fact helpers from
291
+ `@ontrails/trails/release`.
292
+ - 9e77ae1: Expose release rule evaluation through the `trails release check` command and
293
+ the Trails MCP operator surface, with JSON output available through the shared
294
+ CLI output mode.
295
+ - fd676c4: Expose the native Bun release binding from `@ontrails/trails/release` and keep publish and registry scripts as compatibility wrappers.
296
+ - 0ccb3e5: Add `release.smoke` as the public Trails release confidence surface for packed artifact and Wayfinder dogfood checks.
297
+ - Updated dependencies [99523f2]
298
+ - Updated dependencies [5e301d2]
299
+ - Updated dependencies [4cca012]
300
+ - Updated dependencies [3caa263]
301
+ - Updated dependencies [708b861]
302
+ - Updated dependencies [5be032c]
303
+ - @ontrails/core@1.0.0-beta.21
304
+ - @ontrails/permits@1.0.0-beta.21
305
+ - @ontrails/topographer@1.0.0-beta.21
306
+ - @ontrails/wayfinder@1.0.0-beta.21
307
+ - @ontrails/adapter-kit@1.0.0-beta.21
308
+ - @ontrails/warden@1.0.0-beta.21
309
+ - @ontrails/commander@1.0.0-beta.21
310
+ - @ontrails/cli@1.0.0-beta.21
311
+ - @ontrails/http@1.0.0-beta.21
312
+ - @ontrails/mcp@1.0.0-beta.21
313
+ - @ontrails/observe@1.0.0-beta.21
314
+ - @ontrails/tracing@1.0.0-beta.21
315
+
316
+ ## 1.0.0-beta.20
317
+
318
+ ### Minor Changes
319
+
320
+ - 396136a: Add the Trails operator MCP entrypoint with deferred surface facets and cold-context resources.
321
+
322
+ ### Patch Changes
323
+
324
+ - 851a2a3: Derive trail caller and blaze input types from the authored input schema while keeping one public input contract.
325
+ - d89a889: Project selected Wayfinder graph-read trails into the Trails operator MCP surface alongside clearer first-class operator tools.
326
+ - f67cd2a: Document Wayfinder as a real graph-read query catalog instead of a shell-only
327
+ package, including MCP exposure guidance, agent skill guidance, and release
328
+ notes for the v0 catalog and its deferred non-goals.
329
+ - Updated dependencies [851a2a3]
330
+ - Updated dependencies [eee1307]
331
+ - Updated dependencies [9bec01c]
332
+ - Updated dependencies [accb9ec]
333
+ - Updated dependencies [8bc0708]
334
+ - Updated dependencies [6901776]
335
+ - Updated dependencies [f67cd2a]
336
+ - Updated dependencies [c65c465]
337
+ - Updated dependencies [38f62f8]
338
+ - Updated dependencies [b248d4a]
339
+ - Updated dependencies [5364df1]
340
+ - Updated dependencies [2067441]
341
+ - Updated dependencies [6c3296c]
342
+ - @ontrails/core@1.0.0-beta.20
343
+ - @ontrails/warden@1.0.0-beta.20
344
+ - @ontrails/topographer@1.0.0-beta.20
345
+ - @ontrails/adapter-kit@1.0.0-beta.20
346
+ - @ontrails/mcp@1.0.0-beta.20
347
+ - @ontrails/wayfinder@1.0.0-beta.20
348
+ - @ontrails/commander@1.0.0-beta.20
349
+ - @ontrails/cli@1.0.0-beta.20
350
+ - @ontrails/http@1.0.0-beta.20
351
+ - @ontrails/observe@1.0.0-beta.20
352
+ - @ontrails/permits@1.0.0-beta.20
353
+ - @ontrails/tracing@1.0.0-beta.20
354
+
355
+ ## 1.0.0-beta.19
356
+
357
+ ### Major Changes
358
+
359
+ - 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.
360
+ - 120caf5: Promote topo artifact commands to `trails compile` and `trails validate`.
361
+
362
+ ### Patch Changes
363
+
364
+ - 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.
365
+ - 14714b8: Add a beta.15 to beta.19 downstream migration guide (`docs/releases/beta15-to-beta19.md`) that ties together package install, CLI/MCP/HTTP surface decisions, public output schemas, contract testing, resource mocks / `unmockable`, error taxonomy, observability, Topographer artifact workflow, layer evolution, the `cross`→`compose` composition rename, trail-versioning runtime adoption, and adapter authoring. Linked from `docs/index.md` Release Notes and cross-references the focused migration guides under `docs/migration/`.
366
+ - 91328d3: Make `trails create` reruns reconcile existing scaffold files instead of overwriting present files and then failing on existing surfaces.
367
+ - 6471b73: Preserve the original `create.scaffold` Result boundary when `trails create` cannot scaffold a project.
368
+ - 51aac45: Add `entity.list` and `entity.delete` trails to the generated entity starter so fresh scaffolds model complete CRUD coverage.
369
+ - 5efa32c: Generate project-level `AGENTS.md` and `CLAUDE.md` guidance so new Trails apps
370
+ start with canonical agent instructions.
371
+ - 88c0316: Generate a contextual `README.md` for new Trails projects with first-run
372
+ commands, selected surfaces, starter notes, and agent guidance pointers.
373
+ - 99154d4: Generate `tsconfig.tests.json` in new Trails projects so root test files are
374
+ covered by editor TypeScript tooling without changing build output.
375
+ - 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.
376
+ - 4bc8a99: Clarify the Topographer artifact workflow around top-level `trails compile`, `trails validate`, and `trails diff` commands, including explicit diagnostics for retired `trails topo compile`, `trails topo verify`, and `trails topo check` attempts.
377
+ - 16cb740: Run examples and contract checks across live trail version entries, and project version-entry example coverage into topo and survey reports.
378
+ - 92e709b: Declare explicit permit scopes on mutating built-in CLI trails and scaffolded entity starter trails.
379
+
380
+ Preserve the resolved CLI permit on result callbacks so run-collision recovery can re-execute protected trails without losing authorization context.
381
+
382
+ - 1f48342: Preserve original Result error boundaries in CLI trails by returning existing Result failures directly instead of re-wrapping their errors.
383
+ - c14aa3a: Report structured entry and graph force audit details from `trails doctor`.
384
+ - 2df73cc: Configure scaffolded Trails projects to allow `TODO :::` fieldwork markers while keeping standard `TODO:` warning comments blocked.
385
+ - 7f50fe2: Add version lifecycle CLI trails for revising, deprecating, archiving, and diagnosing trail version entries.
386
+ - 653d1fc: Add a top-level `trails diff` command and extend TopoGraph diffs with version, marker, lifecycle status, support set, and force-event audit details.
387
+ - 2e76288: Add graph-only force event projection for forced compile break acceptance and block unforced breaking topo changes.
388
+ - 52e4e8f: Add the `@ontrails/trails` CLI package and core framework command scripts to newly scaffolded projects.
389
+ - 58be821: Generated projects now pin `@ontrails/*` packages to the exact scaffolded
390
+ package version instead of emitting caret prerelease ranges.
391
+ - da7cbcb: Generated projects now include a minimal `.trails/scaffold.json` provenance
392
+ breadcrumb recording the scaffold schema version, package version, starter
393
+ template, and generation timestamp.
394
+ - fc00aeb: Add adapter target conformance metadata and scaffold extracted HTTP adapters through `trails create adapter`.
395
+ - 1c975c3: Define the Warden fix-metadata contract (`WardenFix`, `WardenFixCapability`, `WardenFixClass`, `WardenFixSafety`, `WardenFixEdit`) with optional `fix` metadata on diagnostics and rule metadata, projected through the guide, manifest, markdown, and agent guidance. Export `wardenFixClasses`/`wardenFixSafeties` value arrays and surface the rule `fix` capability in the `warden.guide` trail output schema. Dormant until a rule declares it.
396
+ - d5d518e: Add `warden --fix` to apply safe source fixes. The executor applies only `safety: 'safe'` edits last-to-first, re-reading and rewriting affected files, while review-required, edit-less, and topo diagnostics stay reported but unapplied. The report surfaces applied, changed-file, and skipped counts.
397
+
398
+ Expose `fix` through the Trails app wrapper and mark the `warden` trail as write intent with explicit public access because `fix: true` mutates source files while the local governance command remains directly runnable.
399
+
400
+ - 678cb1c: Expose the shared adapter readiness engine through Warden's opt-in
401
+ `--adapter-check` diagnostics and the local `trails adapter check` authoring
402
+ workflow.
403
+ - 619cb15: Add a Warden rule (`no-destructured-compose`) that coaches trail blazes to call `ctx.compose(...)` directly instead of destructuring `compose` from the context.
404
+
405
+ Keep the generated `create` trail on the direct `ctx.compose(...)` shape so framework-authored trails follow the same composition guidance.
406
+
407
+ - Updated dependencies [bb81ffe]
408
+ - Updated dependencies [e41c382]
409
+ - Updated dependencies [ed5926b]
410
+ - Updated dependencies [a2f1825]
411
+ - Updated dependencies [a2f1825]
412
+ - Updated dependencies [1eb5bdc]
413
+ - Updated dependencies [f8d80b9]
414
+ - Updated dependencies [94a8380]
415
+ - Updated dependencies [94a8380]
416
+ - Updated dependencies [846a597]
417
+ - Updated dependencies [8638dae]
418
+ - Updated dependencies [8638dae]
419
+ - Updated dependencies [8638dae]
420
+ - Updated dependencies [f0f7e2f]
421
+ - Updated dependencies [223aaad]
422
+ - Updated dependencies [3125f4d]
423
+ - Updated dependencies [2494dc6]
424
+ - Updated dependencies [4bc8a99]
425
+ - Updated dependencies [120caf5]
426
+ - Updated dependencies [2d53717]
427
+ - Updated dependencies [16cb740]
428
+ - Updated dependencies [8894ecb]
429
+ - Updated dependencies [fdf7ec9]
430
+ - Updated dependencies [92e709b]
431
+ - Updated dependencies [d76be13]
432
+ - Updated dependencies [84f56a5]
433
+ - Updated dependencies [64fb15a]
434
+ - Updated dependencies [653d1fc]
435
+ - Updated dependencies [431b04c]
436
+ - Updated dependencies [2e76288]
437
+ - Updated dependencies [5d88104]
438
+ - Updated dependencies [f04a9ef]
439
+ - Updated dependencies [fc00aeb]
440
+ - Updated dependencies [1c975c3]
441
+ - Updated dependencies [48d5ff4]
442
+ - Updated dependencies [d5d518e]
443
+ - Updated dependencies [216bf10]
444
+ - Updated dependencies [ab1c77c]
445
+ - Updated dependencies [8ca5b85]
446
+ - Updated dependencies [4f43874]
447
+ - Updated dependencies [678cb1c]
448
+ - Updated dependencies [5874fd6]
449
+ - Updated dependencies [619cb15]
450
+ - Updated dependencies [4642268]
451
+ - Updated dependencies [9bab0cf]
452
+ - Updated dependencies [3ceeba8]
453
+ - Updated dependencies [beafd03]
454
+ - Updated dependencies [7b173e0]
455
+ - Updated dependencies [6e50e7b]
456
+ - Updated dependencies [48edf8d]
457
+ - Updated dependencies [12ffa3b]
458
+ - Updated dependencies [2f262f7]
459
+ - Updated dependencies [58b01f2]
460
+ - @ontrails/adapter-kit@1.0.0-beta.19
461
+ - @ontrails/core@1.0.0-beta.19
462
+ - @ontrails/cli@1.0.0-beta.19
463
+ - @ontrails/commander@1.0.0-beta.19
464
+ - @ontrails/http@1.0.0-beta.19
465
+ - @ontrails/mcp@1.0.0-beta.19
466
+ - @ontrails/topographer@1.0.0-beta.19
467
+ - @ontrails/warden@1.0.0-beta.19
468
+ - @ontrails/observe@1.0.0-beta.19
469
+ - @ontrails/tracing@1.0.0-beta.19
470
+ - @ontrails/permits@1.0.0-beta.19
471
+
472
+ ## 1.0.0-beta.18
473
+
474
+ ### Patch Changes
475
+
476
+ - Updated dependencies [c0b2948]
477
+ - Updated dependencies [fc3219c]
478
+ - Updated dependencies [bc2d327]
479
+ - Updated dependencies [bf44972]
480
+ - Updated dependencies [57c8672]
481
+ - Updated dependencies [510ea50]
482
+ - Updated dependencies [e0ae995]
483
+ - @ontrails/http@1.0.0-beta.18
484
+ - @ontrails/observe@1.0.0-beta.18
485
+ - @ontrails/tracing@1.0.0-beta.18
486
+ - @ontrails/commander@1.0.0-beta.18
487
+ - @ontrails/cli@1.0.0-beta.18
488
+ - @ontrails/core@1.0.0-beta.18
489
+ - @ontrails/mcp@1.0.0-beta.18
490
+ - @ontrails/permits@1.0.0-beta.18
491
+ - @ontrails/topographer@1.0.0-beta.18
492
+ - @ontrails/warden@1.0.0-beta.18
493
+
494
+ ## 1.0.0-beta.17
495
+
496
+ ### Patch Changes
497
+
498
+ - 41276d2: Expose a shipped surface projection inventory through survey output and trail detail reports.
499
+ - Updated dependencies [3dc8254]
500
+ - Updated dependencies [61497c5]
501
+ - @ontrails/core@1.0.0-beta.17
502
+ - @ontrails/cli@1.0.0-beta.17
503
+ - @ontrails/commander@1.0.0-beta.17
504
+ - @ontrails/http@1.0.0-beta.17
505
+ - @ontrails/mcp@1.0.0-beta.17
506
+ - @ontrails/observe@1.0.0-beta.17
507
+ - @ontrails/permits@1.0.0-beta.17
508
+ - @ontrails/topographer@1.0.0-beta.17
509
+ - @ontrails/tracing@1.0.0-beta.17
510
+ - @ontrails/warden@1.0.0-beta.17
511
+
512
+ ## 1.0.0-beta.16
513
+
514
+ ### Major Changes
515
+
516
+ - abc8c68: Move the brief capability report from the bare `survey` flag surface to the role-anchored `survey.brief` trail.
517
+ - 04e2a2e: Move saved contract diffing from the bare `survey` flag surface to the `survey.diff` trail, with optional `against` targets and `breakingOnly` filtering.
518
+ - ed171d5: Split `trails survey` detail inspection into role-anchored `survey.trail`, `survey.resource`, and `survey.signal` trails while keeping bare `survey <id>` as an all-kinds lookup. Remove the temporary `survey --openapi` and `topo.show` CLI shapes. CLI command projection now supports executable parent commands with positional arguments alongside child commands.
519
+ - de30d6c: Introduce `topo.compile` as the canonical trail for writing `.trails` lockfile
520
+ and surface artifacts, remove the `survey --generate` mode, and update drift
521
+ guidance to point at the compile command.
522
+ - 938f005: Cut CLI topo compile and survey diff surfaces over to the lock v3 artifact family. `topo.compile` now reports `topoPath` for `.trails/topo.lock`, survey diff accepts explicit `topo.lock` files and directories containing `topo.lock`, and new scaffolds no longer ignore committed root lock artifacts.
523
+ - 10eae9a: Migrate the Trails workspace to the documented `.trails/` layout: committed `.lock` files at the workspace root, ignored `cache/` for rebuildable derived data, ignored `state/` for mutable runtime state, and `.trails/config.local.{ts,js}` for local overrides. The default SQLite path is now `.trails/state/trails.db`. Workspace bootstrap creates only `cache/` and `state/` — the legacy `dev/` and `generated/` subdirectories are no longer created. Dev reset cleans both the new `.trails/state/` paths and legacy `.trails/trails.db*` and `.trails/dev/tracing.db*` paths for one cycle. Scaffold and workspace gitignores reflect the new layout.
524
+
525
+ Workspace bootstrap is now owned by a single canonical source in `@ontrails/core`. The package exposes `ensureTrailsWorkspace()`, `WORKSPACE_GITIGNORE_CONTENT`, and `WORKSPACE_GITIGNORE_LINES`. `@ontrails/config` no longer exports its own `ensureWorkspace` (consumers should import from `@ontrails/core`). `trails create` now writes `.trails/.gitignore` during scaffolding so a fresh-scaffolded project's initial commit includes the workspace gitignore (resolves TRL-703).
526
+
527
+ ### Minor Changes
528
+
529
+ - a18a25d: Update `trails warden` to use the shared `@ontrails/warden` command surface and final Sprint 1 flags.
530
+
531
+ The integrated CLI now projects `--ci`, `--pre-push`, `--depth`, `--fail-on`, `--strict`, `--format`, `--lock`, `--drafts`, `--apps`, `--no-lock-mutation`, and the local Warden aliases into the same runner used by the package `warden` bin. The old `lintOnly`, `driftOnly`, and `tier` inputs are replaced by `--depth` and `--lock` semantics.
532
+
533
+ - 3b5697a: Add the `run` trail family to `apps/trails` for direct trail invocation by ID. `trails run <id> '<inline-json>'` resolves the trail in the current app's topo and executes it through the shared `run()` pipeline from `@ontrails/core`, returning a typed direct-invocation envelope. `run.examples` lists authored examples and `run.example` executes one named example with an actual-vs-expected comparison. Single-app resolution only on this branch; multi-app workspace resolution plus `--app` override land in TRL-406. Not-found maps to `Result.err(NotFoundError)` and CLI exit code 2 via the existing error taxonomy. Self-hosted: the trail family authors happy-path and not-found examples, exercised by `testExamples(app)`.
534
+ - fbd42fc: Unify structured CLI input around `--input <path|->` and `--input-json`.
535
+ `--input` reads JSON from a file path or from stdin when the value is `-`;
536
+ `--input-file`, `--stdin`, and the `structuredInputFieldByTrail` routing
537
+ option are removed. Structured payloads now merge directly into each trail's
538
+ typed input object, so `trails run` callers provide the inner trail payload
539
+ under the run trail's `input` field.
540
+ - 63d1aef: Add `--quiet` / `-q` flag to strip the `inner-trail-result` envelope from `trails run` stdout. On success, stdout becomes the inner value JSON only (no `{ kind, trailId, value }` wrapper). Composes with `--json` / `--jsonl` (those control format; `--quiet` controls envelope vs unwrapped). Wired as a global CLI flag via `outputModePreset()` so all commands surface it; the run-trail-specific unwrap logic lives in `apps/trails/src/cli.ts` next to the existing collision-recovery wrapper.
541
+ - 5a3c245: Add `run.example` for named example execution. It loads a named example, executes the inner trail with the example's input, and compares actual vs expected per the example's contract (`expected` deep-equal, `expectedMatch` partial-match, or `error` class match). Returns a structured `RunExampleComparison` envelope with input/expected/actual/match/diff. The CLI surface helper prints an OK summary on match (exit 0), or a diff and `ValidationError` on mismatch (exit 1). Unknown example names produce `NotFoundError` (exit 2) with the available examples listed.
542
+ - 93e9d44: Add `run.examples` for listing a trail's examples without executing. The split run family gives examples listing its own typed input and structured `RunExamplesListing` output (`{ kind: 'examples-listing', trailId, examples }`) instead of adding an `--examples` mode flag to `run`. The CLI surface helper formats text-mode tables (name + truncated input + outcome) and unwraps to a JSON/JSONL array when `--json`/`--jsonl` is set. Trails with no examples emit `No examples defined` (text) or `[]` (JSON). Unknown trail IDs still surface `NotFoundError` (exit code 2).
543
+ - 8f5bda0: Wire workspace topo discovery into the `run` trail with collision UX. `run` accepts an optional `app?: string` input that auto-projects as `--app <name>` on the CLI. Resolution flow: `--app` provided → use it; else if the trail ID is unambiguous in the workspace index → use the single owning app; else if colliding → return `Result.err(AmbiguousError)` whose message names the candidates and suggests `--app`. The CLI surface adds a TTY-aware bridge (`tryRecoverFromRunCollision`) that prompts via clack when stdin is a TTY and the trail returned an `AmbiguousError`, then re-executes with the chosen app. Non-TTY contexts surface the error and exit with code 1. Trail logic stays surface-agnostic; TTY detection and prompts live in the CLI bridge.
544
+ - c8caa5e: Wire the `--trace` flag for the `trails run` family. Adds `tracePreset()` to `@ontrails/cli` (registered via the `presets` option) and threads `'trace'` through `META_FLAG_CANDIDATES` so the flag is treated as CLI metadata (never routed into trail input). On activation, `apps/trails/src/cli.ts` installs a per-invocation memory sink before `surface()` runs and finalizes it in a `finally` block: the post-execution tree (rendered via `renderTraceTree` from TRL-411) goes to stderr; the result still goes to stdout. With `--trace --json`, regular `trails run <id>` emits a single JSON envelope on stdout that includes `tracing: TraceRecord[]`; `trails run example <id> <exampleName>` keeps its comparison envelope, and `trails run examples <id>` remains a metadata read. `--quiet` keeps the tree on stderr and the unwrapped value on stdout, while `--jsonl` streams items as before. Sink registration is per-invocation so concurrent runs don't bleed records.
545
+ - f4b90c9: Add `--watch` for the `trails run` family. File-system events are cheap wake-ups; the rerun gate compares the resolved trail's surface-map entry hash so edits only rerun when the public contract for the watched trail changes. New `watchPreset()` exposes the boolean flag; `'watch'` is added to `META_FLAG_CANDIDATES` so the flag never routes into trail input. The watch loop in `apps/trails/src/run-watch.ts` runs once, then sets up a debounced (`100ms`) `node:fs.watch` filtered to `.ts`/`.tsx`/`.js`/`.mjs`/`.cjs` extensions in the trail's source directory. SIGINT closes the watcher cleanly. A short startup warmup window (`150ms`) suppresses the macOS FSEvents replay event that would otherwise produce a phantom rerun on first invocation.
546
+ - 2a2e072: Compose `--watch` with the split `run example` command and `--trace` cleanly. Moves the `--trace` session install/finalize bracket inside `runSurfaceOnce` so each watch rerun gets a fresh memory sink and stderr tree (previously the sink was process-scoped and accumulated records across reruns, suppressing the per-rerun tree until SIGINT). Adds integration tests covering the example-comparison rerun loop, trace-record freshness across reruns, and error recovery (a thrown rerun does not exit the watch loop). Documents the TDD-in-terminal workflow in the Direct Invocation ADR draft.
547
+ - 85c39c4: Add shell completion infrastructure and trail-ID completion. New `apps/trails/src/completions.ts` exposes `renderCompletionScript('bash' | 'zsh' | 'fish', binName)` and `renderTrailIdCompletions(workspaceRoot, prefix)` (reads the workspace topo via `buildWorkspaceTrailIndex`). Two new trails register on the topo: `completions` (returns the completion script for a chosen shell) and `completions.__complete` (the dynamic suggestion endpoint that the static script delegates to at tab-press time). Per-shell logic lives in a `Record<CompletionShell, ScriptRenderer>` lookup; the dynamic dispatch table is keyed by subcommand so TRL-416 (example-name completion) lands as a new entry.
548
+ - 6f5bf81: Add example-name completion to the dynamic suggestion endpoint. When the user tab-completes the example-name argument in `trails run example <trail-id> <prefix>`, the completion returns the named trail's `examples` array (filtered by prefix, sorted). New `renderTrailExampleCompletions(workspaceRoot, trailId, prefix)` helper resolves the trail's owning app via the workspace index, loads the topo with `tryLoadFreshAppLease`, and derives examples via `deriveStructuredTrailExamples`. Recoverable load/lookup failures return typed `RecoverableCompletionError` values from the helper and are suppressed to `[]` only at the internal `completions.__complete` shell boundary so tab completion stays quiet.
549
+ - 3d4e921: Add `trails completions install [--shell bash|zsh|fish]` for installing the completion script to the standard per-shell location. This is a CLI bridge command, not a topo trail: it uses `renderCompletionScript`, auto-detects `$SHELL` when `--shell` is omitted, creates parent directories as needed, and writes to:
550
+
551
+ - bash → `~/.local/share/bash-completion/completions/trails`
552
+ - zsh → `~/.local/share/zsh/site-functions/_trails` (user must add to `$fpath` if not already)
553
+ - fish → `~/.config/fish/completions/trails.fish`
554
+
555
+ Output reports `{ shell, path, created, message }`. Idempotent — second run reports `created: false` and overwrites with the freshest script. Detection failure (missing/unsupported `$SHELL`) returns `Result.err(ValidationError)` with a message naming the supported shells. Test seam allows injecting `homeDir` and `shellEnv` so the trail never mutates global state.
556
+
557
+ - 863d473: Add three attachment scopes for typed layers — trail, surface, topo — with composition order **topo → surface → trail → blaze**. `TrailSpec` and `Trail` gain `layers?: readonly Layer[]` (default `[]`). `topo()` accepts `{ layers: [...] }` as the third options argument; the topo carries those layers and they reach the executor via `ExecuteTrailOptions.topoLayers`. The CLI's `surface()`/`createProgram()`/`deriveCliCommands` already supports a `layers` option; that now flows through `runTrailOnce` as `surfaceLayers`. The executor builds the layer chain `[...topoLayers, ...surfaceLayers, ...trail.layers, ...options.layers]` so topo wraps surface wraps trail wraps blaze (verified by composition-order tests at every level). Survey's `TrailDetailReport` adds `composedLayers: { topo, surface, trail }` so agents can introspect the layer chain per trail. Backward-compatible: every new field is optional with a non-undefined default; existing call sites are unchanged.
558
+ - 802fdfc: Rename Warden guide manifest rule grouping from `category` to `concern` so the
559
+ public JSON contract matches the source metadata field.
560
+ - f6fdc62: Add structured Warden remediation guidance to rule metadata, diagnostics, report output, and the `trails warden` result schema.
561
+ - a10ffa4: Add a Warden guide manifest projection and expose it through `trails warden guide` in markdown, agent-json, and manifest formats.
562
+
563
+ ### Patch Changes
564
+
565
+ - 73622ae: Thread `ResourceSpec.config` through the built-in auth resource. Resource config schemas that accept `undefined` now receive their parsed default when config values are omitted, and `authResource` can materialize the no-op or JWT adapter from typed config while preserving existing mock and override paths.
566
+ - 25f3c5c: Add the dedicated `@ontrails/commander` adapter package and move the Commander runtime out of the `@ontrails/cli/commander` subpath. Extend the repo-local package-source guardrails to cover adapter package source as the Commander runtime moves under `adapters/`.
567
+ - f20cb51: Update generated CLI scaffolds and current-facing docs to use the dedicated `@ontrails/commander` adapter package.
568
+ - 20d7a5c: Enforce the shared safe error projection policy for public error bodies, diagnostics, serialized payloads, and CLI stderr.
569
+ - e898cc4: Add repo-level Knip dead-code detection and remove stale internal exports and unused package dependencies surfaced by the new check.
570
+ - 200bece: BREAKING: rename auth connector vocabulary to adapter.
571
+
572
+ This stays on the current `1.0.0-beta` prerelease line: the package is part of
573
+ the fixed `@ontrails/*` beta group, so beta-breaking API renames advance the
574
+ next beta rather than opening a stable-major release line.
575
+
576
+ - `AuthConnector` -> `AuthAdapter`
577
+ - `authConnectorSchema` -> `authAdapterSchema`
578
+ - `JwtConnectorOptions` -> `JwtAdapterOptions`
579
+ - `createJwtConnector` -> `createJwtAdapter`
580
+ - auth resource config discriminant `{ connector: 'jwt' | 'none' }` -> `{ adapter: 'jwt' | 'none' }`
581
+
582
+ The `@ontrails/permits/jwt` subpath is unchanged. The internal `connectors/`
583
+ source directory becomes `adapters/`. See
584
+ `docs/migration/connector-to-adapter.md` for the full rename map.
585
+
586
+ The Trails CLI package updates its generated auth-resource configuration to use
587
+ the new `adapter` discriminant.
588
+
589
+ - 3395234: Move store adapter-binding helpers to `@ontrails/store/adapter-support` and topographer direct database/admin helpers to `@ontrails/topographer/backend-support`, keeping root exports focused on contract-level APIs.
590
+ - 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.
591
+ - 331e3a9: Relocate the topo-store public API from `@ontrails/core` to `@ontrails/topographer` per ADR-0042. Generic `trails-db` helpers (`openReadTrailsDb`, `openWriteTrailsDb`, `ensureSubsystemSchema`, `deriveTrailsDbPath`, `deriveTrailsDir`) stay in core because tracing and other subsystems share them.
592
+
593
+ Breaking pre-1.0 beta change. Update consumer imports:
594
+
595
+ ```diff
596
+ - import { topoStore, createTopoStore, createMockTopoStore, createTopoSnapshot, listTopoSnapshots, pinTopoSnapshot, unpinTopoSnapshot, createStoredTopoSnapshot, getStoredTopoExport, countTopoSnapshots, countPinnedSnapshots, countPrunableSnapshots, pruneUnpinnedSnapshots } from '@ontrails/core';
597
+ + import { topoStore, createTopoStore, createMockTopoStore, createTopoSnapshot, listTopoSnapshots, pinTopoSnapshot, unpinTopoSnapshot } from '@ontrails/topographer';
598
+ + import { createStoredTopoSnapshot, getStoredTopoExport, countTopoSnapshots, countPinnedSnapshots, countPrunableSnapshots, pruneUnpinnedSnapshots } from '@ontrails/topographer/backend-support';
599
+ ```
600
+
601
+ The same root move applies to types `ReadOnlyTopoStore`, `MockTopoStoreSeed`, `TopoSnapshot`, `TopoStoreRef`, `TopoStoreExportRecord`, `TopoStoreResourceRecord`, `TopoStoreTrailRecord`, `TopoStoreTrailDetailRecord`, `CreateTopoSnapshotInput`, and `ListTopoSnapshotsOptions`. The direct DB helper type `StoredTopoExport` moves to `@ontrails/topographer/backend-support`.
602
+
603
+ Core newly exports `activationSourceKey`, `projectActivationSourceDeclaration`, `activationSourceDeclarationSignature`, and the `ActivationSourceProjection` type — these were already used internally and are now part of the public surface so `@ontrails/topographer` (the only consumer that needs them) can import them through normal package channels.
604
+
605
+ - 4399fdb: Renamed `@ontrails/schema` to `@ontrails/topographer`. Mechanical rename only — no API changes. Update import sites from `@ontrails/schema` to `@ontrails/topographer`. See ADR-0042 for the durable graph substrate doctrine.
606
+ - dbd17db: Remove the unused legacy `@ontrails/logging` dependency from the Trails CLI app package.
607
+ - 2dd9cda: Promote ADR-0043 (Layer Evolution) from draft to accepted, amend it on 2026-05-04 to remove the briefly proposed `Middleware` split, and publish the Layer Evolution Migration Guide at `docs/migration/layer-evolution.md`.
608
+
609
+ Documentation-only change capturing the post-implementation state of the layer-evolution work shipped across TRL-471 through TRL-476: typed `Layer` primitive with optional `input` schema, three attachment scopes (trail, surface, topo), CLI/MCP/HTTP surface projection of layer inputs, removal of `authLayer`, `autoIterateLayer`, and `dateShortcutsLayer`, and warden coaching via `no-legacy-layer-imports` (error). The migration guide is the durable countermeasure to the vocabulary churn flagged in ADR-0043's tradeoffs.
610
+
611
+ - ed7f6f6: Expand topo-store and survey trail detail records with resolved TopoGraph contract facts for blind-agent review.
612
+ - fb10112: Polish Warden guidance projection by preserving labels in plain-text doc links
613
+ and reusing the shared diagnostic schema from the Trails CLI wrapper.
614
+ - 7a1d4a9: Rename the public resolved graph API from `SurfaceMap` to `TopoGraph`, including
615
+ the derive, hash, diff, and current graph artifact I/O helpers.
616
+ - 84f595a: Add lock v3 manifest and `topo.lock` I/O. `trails.lock` now reads as a compact v3 manifest that points at the serialized TopoGraph artifact, and legacy v2/hash-only lock inputs fail with a regenerate instruction.
617
+ - d2cb9ba: Rename topo-store export artifacts from surface-era names to TopoGraph names. The `topo_exports` table now stores `topo_graph`, `topo_graph_hash`, and `lock_manifest`, and backend-support export records expose `topoGraphJson`, `topoGraphHash`, and `lockManifestJson`.
618
+ - 8ddf5ff: Extend `runWarden` into the shared Warden orchestration entrypoint with effective config resolution, depth/fail thresholds, rule facets, and multi-topo report metadata.
619
+
620
+ Adapt the built-in `trails warden` wrapper to consume the readonly Warden report diagnostics contract without weakening its output schema.
621
+
622
+ - Updated dependencies [73622ae]
623
+ - Updated dependencies [e991a5b]
624
+ - Updated dependencies [25f3c5c]
625
+ - Updated dependencies [6300f70]
626
+ - Updated dependencies [d172013]
627
+ - Updated dependencies [c3fc5c3]
628
+ - Updated dependencies [20d7a5c]
629
+ - Updated dependencies [be5fb46]
630
+ - Updated dependencies [199304e]
631
+ - Updated dependencies [e898cc4]
632
+ - Updated dependencies [a8997ed]
633
+ - Updated dependencies [fe03945]
634
+ - Updated dependencies [2bf239e]
635
+ - Updated dependencies [200bece]
636
+ - Updated dependencies [e4beec9]
637
+ - Updated dependencies [3395234]
638
+ - Updated dependencies [d40430d]
639
+ - Updated dependencies [bcdc484]
640
+ - Updated dependencies [3f678d4]
641
+ - Updated dependencies [ed171d5]
642
+ - Updated dependencies [49c2e7d]
643
+ - Updated dependencies [de30d6c]
644
+ - Updated dependencies [331e3a9]
645
+ - Updated dependencies [c40865a]
646
+ - Updated dependencies [4399fdb]
647
+ - Updated dependencies [578e674]
648
+ - Updated dependencies [4b8d13b]
649
+ - Updated dependencies [4b8d13b]
650
+ - Updated dependencies [4b8d13b]
651
+ - Updated dependencies [4b8d13b]
652
+ - Updated dependencies [fbd42fc]
653
+ - Updated dependencies [63d1aef]
654
+ - Updated dependencies [6be2e95]
655
+ - Updated dependencies [819de09]
656
+ - Updated dependencies [be08686]
657
+ - Updated dependencies [112b9f2]
658
+ - Updated dependencies [893025e]
659
+ - Updated dependencies [ed888e2]
660
+ - Updated dependencies [2e05e27]
661
+ - Updated dependencies [9cdb0f2]
662
+ - Updated dependencies [c8caa5e]
663
+ - Updated dependencies [f4b90c9]
664
+ - Updated dependencies [eec5e9d]
665
+ - Updated dependencies [4e75129]
666
+ - Updated dependencies [47505fe]
667
+ - Updated dependencies [ebd4434]
668
+ - Updated dependencies [863d473]
669
+ - Updated dependencies [344f2f7]
670
+ - Updated dependencies [26f9ffd]
671
+ - Updated dependencies [66056ac]
672
+ - Updated dependencies [ad553a6]
673
+ - Updated dependencies [2dd9cda]
674
+ - Updated dependencies [b12e19b]
675
+ - Updated dependencies [ed7f6f6]
676
+ - Updated dependencies [fb10112]
677
+ - Updated dependencies [802fdfc]
678
+ - Updated dependencies [0bad534]
679
+ - Updated dependencies [bfabe09]
680
+ - Updated dependencies [7a1d4a9]
681
+ - Updated dependencies [84f595a]
682
+ - Updated dependencies [d2cb9ba]
683
+ - Updated dependencies [2cc05da]
684
+ - Updated dependencies [10eae9a]
685
+ - Updated dependencies [bbb1ea4]
686
+ - Updated dependencies [22c6c06]
687
+ - Updated dependencies [767eb41]
688
+ - Updated dependencies [82019a7]
689
+ - Updated dependencies [f6fdc62]
690
+ - Updated dependencies [a10ffa4]
691
+ - Updated dependencies [df9a7d0]
692
+ - Updated dependencies [7085f01]
693
+ - Updated dependencies [30a2c7e]
694
+ - Updated dependencies [81bffec]
695
+ - Updated dependencies [8ddf5ff]
696
+ - Updated dependencies [f5b6112]
697
+ - Updated dependencies [d675a53]
698
+ - @ontrails/core@1.0.0-beta.16
699
+ - @ontrails/cli@1.0.0-beta.16
700
+ - @ontrails/permits@1.0.0-beta.16
701
+ - @ontrails/commander@1.0.0-beta.16
702
+ - @ontrails/warden@1.0.0-beta.16
703
+ - @ontrails/observe@1.0.0-beta.16
704
+ - @ontrails/tracing@1.0.0-beta.16
705
+ - @ontrails/topographer@1.0.0-beta.16
706
+
707
+ ## 1.0.0-beta.15
708
+
709
+ ### Patch Changes
710
+
711
+ - 2003fa5: Prepare the Trails CLI for beta.15 release publishing: derive the CLI version from package metadata, scaffold publishable package ranges, add HTTP surface generation, include the scaffold toolchain dependencies, and avoid generating unsupported Warden flags.
712
+ - Updated dependencies [4ad6b25]
713
+ - @ontrails/core@1.0.0-beta.15
714
+ - @ontrails/cli@1.0.0-beta.15
715
+ - @ontrails/tracing@1.0.0-beta.15
716
+ - @ontrails/warden@1.0.0-beta.15
717
+ - @ontrails/observe@1.0.0-beta.15
718
+ - @ontrails/topographer@1.0.0-beta.15
719
+
720
+ ## 1.0.0-beta.14
721
+
722
+ ### Minor Changes
723
+
724
+ - 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.
725
+
726
+ ### Patch Changes
727
+
728
+ - Updated dependencies [69057e9]
729
+ - @ontrails/cli@1.0.0-beta.14
730
+ - @ontrails/core@1.0.0-beta.14
731
+ - @ontrails/logging@1.0.0-beta.14
732
+ - @ontrails/schema@1.0.0-beta.14
733
+ - @ontrails/tracker@1.0.0-beta.14
734
+ - @ontrails/warden@1.0.0-beta.14
735
+
736
+ ## 1.0.0-beta.13
737
+
738
+ ### Patch Changes
739
+
740
+ - Updated dependencies [6944147]
741
+ - Updated dependencies
742
+ - @ontrails/core@1.0.0-beta.13
743
+ - @ontrails/cli@1.0.0-beta.13
744
+ - @ontrails/schema@1.0.0-beta.13
745
+ - @ontrails/warden@1.0.0-beta.13
746
+ - @ontrails/logging@1.0.0-beta.13
747
+
748
+ ## 1.0.0-beta.12
749
+
750
+ ### Patch Changes
751
+
752
+ - Updated dependencies
753
+ - @ontrails/core@1.0.0-beta.12
754
+ - @ontrails/cli@1.0.0-beta.12
755
+ - @ontrails/logging@1.0.0-beta.12
756
+ - @ontrails/schema@1.0.0-beta.12
757
+ - @ontrails/warden@1.0.0-beta.12
758
+
759
+ ## 1.0.0-beta.11
760
+
761
+ ### Patch Changes
762
+
763
+ - Add services as a first-class primitive.
764
+
765
+ Services make infrastructure dependencies declarative, injectable, and governable. Define a service with `provision()`, declare it on a trail with `provisions: [db]`, and access it with `db.from(ctx)` or `ctx.provision()`.
766
+
767
+ **Core:** `provision()` factory, `ServiceSpec<T>`, `ServiceContext`, singleton resolution in `executeTrail`, in-flight creation dedup, `isService` guard, `findDuplicateServiceId`, topo service discovery and validation, `services` field on trail specs.
768
+
769
+ **Testing:** Auto-resolution of `mock` factories in `testAll`, `testExamples`, `testContracts`, and `testCrosses`. Explicit `services` overrides with correct precedence (`explicit > ctx.extensions > auto-mock`). Service mock propagation through crossing graphs.
770
+
771
+ **Warden:** `service-declarations` rule validates `db.from(ctx)` and `ctx.provision()` usage matches declared `provisions: [...]`. `service-exists` rule validates declared service IDs resolve in project context. Scope-aware AST walking skips nested function boundaries.
772
+
773
+ **Trailheads:** Service overrides thread through `run` and `trailhead` on CLI, MCP, and HTTP.
774
+
775
+ **Introspection:** Survey and trailhead map outputs include service graph. Topo exposes `.services`, `.getService()`, `.hasService()`, `.listServices()`, `.serviceIds()`, `.serviceCount`.
776
+
777
+ **Docs:** ADR-009 accepted. Unified services guide, updated vocabulary, getting-started, architecture, and package READMEs.
778
+
779
+ - Updated dependencies
780
+ - @ontrails/core@1.0.0-beta.11
781
+ - @ontrails/warden@1.0.0-beta.11
782
+ - @ontrails/cli@1.0.0-beta.11
783
+ - @ontrails/schema@1.0.0-beta.11
784
+ - @ontrails/logging@1.0.0-beta.11
785
+
786
+ ## 1.0.0-beta.10
787
+
788
+ ### Patch Changes
789
+
790
+ - Updated dependencies
791
+ - @ontrails/core@1.0.0-beta.10
792
+ - @ontrails/cli@1.0.0-beta.10
793
+ - @ontrails/warden@1.0.0-beta.10
794
+ - @ontrails/logging@1.0.0-beta.10
795
+ - @ontrails/schema@1.0.0-beta.10
796
+
797
+ ## 1.0.0-beta.9
798
+
799
+ ### Patch Changes
800
+
801
+ - Updated dependencies
802
+ - @ontrails/core@1.0.0-beta.9
803
+ - @ontrails/cli@1.0.0-beta.9
804
+ - @ontrails/schema@1.0.0-beta.9
805
+ - @ontrails/warden@1.0.0-beta.9
806
+ - @ontrails/logging@1.0.0-beta.9
807
+
808
+ ## 1.0.0-beta.8
809
+
810
+ ### Patch Changes
811
+
812
+ - Updated dependencies
813
+ - @ontrails/schema@1.0.0-beta.8
814
+ - @ontrails/cli@1.0.0-beta.8
815
+ - @ontrails/core@1.0.0-beta.8
816
+ - @ontrails/logging@1.0.0-beta.8
817
+ - @ontrails/warden@1.0.0-beta.8
818
+
819
+ ## 1.0.0-beta.7
820
+
821
+ ### Minor Changes
822
+
823
+ - HTTP trailhead and OpenAPI generation.
824
+
825
+ **http**: New `@ontrails/http` package — Hono-based HTTP connector. `trailhead()` derives routes from trail IDs, maps intent to HTTP verbs (read→GET, write→POST, destroy→DELETE), and maps error taxonomy to status codes. Returns the Hono instance.
826
+
827
+ **schema**: Add `generateOpenApiSpec(topo)` — generates a complete OpenAPI 3.1 spec from the topo. Each trail becomes an operation with path, method, schemas, and error responses derived from the contract.
828
+
829
+ **trails**: `trails survey --openapi` outputs the OpenAPI spec for any Trails app.
830
+
831
+ ### Patch Changes
832
+
833
+ - Updated dependencies
834
+ - @ontrails/schema@1.0.0-beta.7
835
+ - @ontrails/warden@1.0.0-beta.7
836
+ - @ontrails/cli@1.0.0-beta.7
837
+ - @ontrails/core@1.0.0-beta.7
838
+ - @ontrails/logging@1.0.0-beta.7
839
+
840
+ ## 1.0.0-beta.6
841
+
842
+ ### Patch Changes
843
+
844
+ - Updated dependencies
845
+ - @ontrails/core@1.0.0-beta.6
846
+ - @ontrails/warden@1.0.0-beta.6
847
+ - @ontrails/cli@1.0.0-beta.6
848
+ - @ontrails/logging@1.0.0-beta.6
849
+ - @ontrails/schema@1.0.0-beta.6
850
+
851
+ ## 1.0.0-beta.5
852
+
853
+ ### Patch Changes
854
+
855
+ - Updated dependencies
856
+ - @ontrails/core@1.0.0-beta.5
857
+ - @ontrails/warden@1.0.0-beta.5
858
+ - @ontrails/logging@1.0.0-beta.5
859
+ - @ontrails/schema@1.0.0-beta.5
860
+ - @ontrails/cli@1.0.0-beta.5
861
+
862
+ ## 1.0.0-beta.4
863
+
864
+ ### Major Changes
865
+
866
+ - API simplification: unified trail model, intent enum, run, metadata.
867
+
868
+ **BREAKING CHANGES:**
869
+
870
+ - `hike()` removed — use `trail()` with optional `crosses: [...]` field
871
+ - `follows` renamed to `crosses` (matching `ctx.cross()`)
872
+ - `topo.hikes` removed — single `topo.trails` map
873
+ - `kind: 'hike'` removed — everything is `kind: 'trail'`
874
+ - `readOnly`/`destructive` booleans replaced by `intent: 'read' | 'write' | 'destroy'`
875
+ - `implementation` field renamed to `run`
876
+ - `markers` field renamed to `metadata`
877
+ - `testHike` renamed to `testCrosses`, `HikeScenario` to `CrossScenario`
878
+ - `trailhead()` now returns the trailhead handle (`Command` for CLI, `Server` for MCP)
879
+
880
+ ### Patch Changes
881
+
882
+ - Updated dependencies
883
+ - @ontrails/core@1.0.0-beta.4
884
+ - @ontrails/cli@1.0.0-beta.4
885
+ - @ontrails/warden@1.0.0-beta.4
886
+ - @ontrails/schema@1.0.0-beta.4
887
+ - @ontrails/logging@1.0.0-beta.4
888
+
3
889
  ## 1.0.0-beta.3
4
890
 
5
891
  ### Patch Changes