@ontrails/warden 1.0.0-beta.2 → 1.0.0-beta.22
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 +508 -6
- package/README.md +77 -26
- package/bin/warden.ts +50 -0
- package/package.json +27 -5
- package/src/adapter-check.ts +136 -0
- package/src/ast.ts +28 -0
- package/src/cli.ts +1374 -103
- package/src/command.ts +953 -0
- package/src/config.ts +184 -0
- package/src/draft.ts +22 -0
- package/src/drift.ts +106 -22
- package/src/fix.ts +120 -0
- package/src/formatters.ts +79 -9
- package/src/guide.ts +245 -0
- package/src/index.ts +206 -14
- package/src/project-context.ts +163 -0
- package/src/resolve.ts +530 -0
- package/src/rules/activation-orphan.ts +97 -0
- package/src/rules/ast.ts +3176 -85
- package/src/rules/circular-refs.ts +154 -0
- package/src/rules/composes-declarations.ts +704 -0
- package/src/rules/context-no-surface-types.ts +68 -8
- package/src/rules/contour-exists.ts +251 -0
- package/src/rules/contour-ids.ts +15 -0
- package/src/rules/dead-internal-trail.ts +154 -0
- package/src/rules/draft-file-marking.ts +160 -0
- package/src/rules/draft-visible-debt.ts +87 -0
- package/src/rules/error-mapping-completeness.ts +288 -0
- package/src/rules/example-valid.ts +401 -0
- package/src/rules/fires-declarations.ts +758 -0
- package/src/rules/implementation-returns-result.ts +1265 -95
- package/src/rules/incomplete-accessor-for-standard-op.ts +272 -0
- package/src/rules/incomplete-crud.ts +580 -0
- package/src/rules/index.ts +219 -18
- package/src/rules/intent-propagation.ts +127 -0
- package/src/rules/layer-field-name-drift.ts +96 -0
- package/src/rules/metadata.ts +654 -0
- package/src/rules/missing-reconcile.ts +98 -0
- package/src/rules/missing-visibility.ts +110 -0
- package/src/rules/no-destructured-compose.ts +192 -0
- package/src/rules/no-dev-permit-in-source.ts +99 -0
- package/src/rules/no-direct-implementation-call.ts +7 -7
- package/src/rules/no-legacy-layer-imports.ts +211 -0
- package/src/rules/no-native-error-result.ts +111 -0
- package/src/rules/no-redundant-result-error-wrap.ts +331 -0
- package/src/rules/no-retired-cross-vocabulary.ts +194 -0
- package/src/rules/no-sync-result-assumption.ts +1134 -99
- package/src/rules/no-throw-in-detour-recover.ts +225 -0
- package/src/rules/no-throw-in-implementation.ts +10 -9
- package/src/rules/no-top-level-surface.ts +389 -0
- package/src/rules/on-references-exist.ts +194 -0
- package/src/rules/orphaned-signal.ts +150 -0
- package/src/rules/owner-projection-parity.ts +146 -0
- package/src/rules/permit-governance.ts +25 -0
- package/src/rules/public-export-example-coverage.ts +553 -0
- package/src/rules/public-internal-deep-imports.ts +517 -0
- package/src/rules/public-output-schema.ts +29 -0
- package/src/rules/public-union-output-discriminants.ts +150 -0
- package/src/rules/read-intent-fires.ts +187 -0
- package/src/rules/reference-exists.ts +98 -0
- package/src/rules/registry-names.ts +145 -0
- package/src/rules/resolved-import-boundary.ts +146 -0
- package/src/rules/resource-declarations.ts +704 -0
- package/src/rules/resource-exists.ts +179 -0
- package/src/rules/resource-id-grammar.ts +65 -0
- package/src/rules/resource-mock-coverage.ts +115 -0
- package/src/rules/scan.ts +38 -25
- package/src/rules/scheduled-destroy-intent.ts +44 -0
- package/src/rules/signal-graph-coaching.ts +191 -0
- package/src/rules/specs.ts +9 -5
- package/src/rules/static-resource-accessor-preference.ts +657 -0
- package/src/rules/surface-facet-coherence.ts +370 -0
- package/src/rules/trail-versioning-source.ts +1094 -0
- package/src/rules/trail-versioning-topo.ts +172 -0
- package/src/rules/types.ts +270 -6
- package/src/rules/unmaterialized-activation-source.ts +84 -0
- package/src/rules/unreachable-detour-shadowing.ts +344 -0
- package/src/rules/valid-describe-refs.ts +160 -32
- package/src/rules/valid-detour-contract.ts +78 -0
- package/src/rules/warden-export-symmetry.ts +533 -0
- package/src/rules/warden-rules-use-ast.ts +996 -0
- package/src/rules/webhook-route-collision.ts +243 -0
- package/src/trails/activation-orphan.trail.ts +84 -0
- package/src/trails/circular-refs.trail.ts +29 -0
- package/src/trails/composes-declarations.trail.ts +22 -0
- package/src/trails/context-no-surface-types.trail.ts +21 -0
- package/src/trails/contour-exists.trail.ts +21 -0
- package/src/trails/dead-internal-trail.trail.ts +26 -0
- package/src/trails/deprecation-without-guidance.trail.ts +21 -0
- package/src/trails/draft-file-marking.trail.ts +16 -0
- package/src/trails/draft-visible-debt.trail.ts +16 -0
- package/src/trails/error-mapping-completeness.trail.ts +29 -0
- package/src/trails/example-valid.trail.ts +25 -0
- package/src/trails/fires-declarations.trail.ts +23 -0
- package/src/trails/fork-without-preserved-blaze.trail.ts +31 -0
- package/src/trails/implementation-returns-result.trail.ts +20 -0
- package/src/trails/incomplete-accessor-for-standard-op.trail.ts +76 -0
- package/src/trails/incomplete-crud.trail.ts +39 -0
- package/src/trails/index.ts +78 -0
- package/src/trails/intent-propagation.trail.ts +30 -0
- package/src/trails/layer-field-name-drift.trail.ts +39 -0
- package/src/trails/marker-schema-unsupported.trail.ts +23 -0
- package/src/trails/missing-reconcile.trail.ts +33 -0
- package/src/trails/missing-visibility.trail.ts +22 -0
- package/src/trails/no-destructured-compose.trail.ts +44 -0
- package/src/trails/no-dev-permit-in-source.trail.ts +16 -0
- package/src/trails/no-direct-implementation-call.trail.ts +16 -0
- package/src/trails/no-legacy-layer-imports.trail.ts +41 -0
- package/src/trails/no-native-error-result.trail.ts +18 -0
- package/src/trails/no-redundant-result-error-wrap.trail.ts +55 -0
- package/src/trails/no-retired-cross-vocabulary.trail.ts +42 -0
- package/src/trails/no-sync-result-assumption.trail.ts +19 -0
- package/src/trails/no-throw-in-detour-recover.trail.ts +24 -0
- package/src/trails/no-throw-in-implementation.trail.ts +20 -0
- package/src/trails/no-top-level-surface.trail.ts +43 -0
- package/src/trails/on-references-exist.trail.ts +21 -0
- package/src/trails/orphaned-signal.trail.ts +36 -0
- package/src/trails/owner-projection-parity.trail.ts +26 -0
- package/src/trails/pending-force.trail.ts +21 -0
- package/src/trails/permit-governance.trail.ts +51 -0
- package/src/trails/prefer-schema-inference.trail.ts +21 -0
- package/src/trails/public-export-example-coverage.trail.ts +16 -0
- package/src/trails/public-internal-deep-imports.trail.ts +94 -0
- package/src/trails/public-output-schema.trail.ts +55 -0
- package/src/trails/public-union-output-discriminants.trail.ts +33 -0
- package/src/trails/read-intent-fires.trail.ts +20 -0
- package/src/trails/reference-exists.trail.ts +25 -0
- package/src/trails/resolved-import-boundary.trail.ts +109 -0
- package/src/trails/resource-declarations.trail.ts +25 -0
- package/src/trails/resource-exists.trail.ts +27 -0
- package/src/trails/resource-id-grammar.trail.ts +39 -0
- package/src/trails/resource-mock-coverage.trail.ts +40 -0
- package/src/trails/run.ts +162 -0
- package/src/trails/scheduled-destroy-intent.trail.ts +56 -0
- package/src/trails/schema.ts +194 -0
- package/src/trails/signal-graph-coaching.trail.ts +77 -0
- package/src/trails/static-resource-accessor-preference.trail.ts +25 -0
- package/src/trails/surface-facet-coherence.trail.ts +25 -0
- package/src/trails/topo.ts +6 -0
- package/src/trails/unmaterialized-activation-source.trail.ts +72 -0
- package/src/trails/unreachable-detour-shadowing.trail.ts +45 -0
- package/src/trails/valid-describe-refs.trail.ts +18 -0
- package/src/trails/valid-detour-contract.trail.ts +71 -0
- package/src/trails/version-gap.trail.ts +35 -0
- package/src/trails/version-pinned-compose.trail.ts +23 -0
- package/src/trails/version-without-examples.trail.ts +38 -0
- package/src/trails/warden-export-symmetry.trail.ts +16 -0
- package/src/trails/warden-rules-use-ast.trail.ts +45 -0
- package/src/trails/webhook-route-collision.trail.ts +50 -0
- package/src/trails/wrap-rule.ts +213 -0
- package/src/workspaces.ts +238 -0
- package/.turbo/turbo-build.log +0 -1
- package/.turbo/turbo-lint.log +0 -3
- package/.turbo/turbo-typecheck.log +0 -1
- package/dist/cli.d.ts +0 -46
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -221
- package/dist/cli.js.map +0 -1
- package/dist/drift.d.ts +0 -26
- package/dist/drift.d.ts.map +0 -1
- package/dist/drift.js +0 -27
- package/dist/drift.js.map +0 -1
- package/dist/formatters.d.ts +0 -29
- package/dist/formatters.d.ts.map +0 -1
- package/dist/formatters.js +0 -87
- package/dist/formatters.js.map +0 -1
- package/dist/index.d.ts +0 -26
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -26
- package/dist/index.js.map +0 -1
- package/dist/rules/ast.d.ts +0 -41
- package/dist/rules/ast.d.ts.map +0 -1
- package/dist/rules/ast.js +0 -163
- package/dist/rules/ast.js.map +0 -1
- package/dist/rules/context-no-surface-types.d.ts +0 -12
- package/dist/rules/context-no-surface-types.d.ts.map +0 -1
- package/dist/rules/context-no-surface-types.js +0 -96
- package/dist/rules/context-no-surface-types.js.map +0 -1
- package/dist/rules/implementation-returns-result.d.ts +0 -13
- package/dist/rules/implementation-returns-result.d.ts.map +0 -1
- package/dist/rules/implementation-returns-result.js +0 -231
- package/dist/rules/implementation-returns-result.js.map +0 -1
- package/dist/rules/index.d.ts +0 -22
- package/dist/rules/index.d.ts.map +0 -1
- package/dist/rules/index.js +0 -41
- package/dist/rules/index.js.map +0 -1
- package/dist/rules/no-direct-impl-in-route.d.ts +0 -12
- package/dist/rules/no-direct-impl-in-route.d.ts.map +0 -1
- package/dist/rules/no-direct-impl-in-route.js +0 -46
- package/dist/rules/no-direct-impl-in-route.js.map +0 -1
- package/dist/rules/no-direct-implementation-call.d.ts +0 -12
- package/dist/rules/no-direct-implementation-call.d.ts.map +0 -1
- package/dist/rules/no-direct-implementation-call.js +0 -39
- package/dist/rules/no-direct-implementation-call.js.map +0 -1
- package/dist/rules/no-sync-result-assumption.d.ts +0 -6
- package/dist/rules/no-sync-result-assumption.d.ts.map +0 -1
- package/dist/rules/no-sync-result-assumption.js +0 -98
- package/dist/rules/no-sync-result-assumption.js.map +0 -1
- package/dist/rules/no-throw-in-detour-target.d.ts +0 -12
- package/dist/rules/no-throw-in-detour-target.d.ts.map +0 -1
- package/dist/rules/no-throw-in-detour-target.js +0 -87
- package/dist/rules/no-throw-in-detour-target.js.map +0 -1
- package/dist/rules/no-throw-in-implementation.d.ts +0 -9
- package/dist/rules/no-throw-in-implementation.d.ts.map +0 -1
- package/dist/rules/no-throw-in-implementation.js +0 -34
- package/dist/rules/no-throw-in-implementation.js.map +0 -1
- package/dist/rules/prefer-schema-inference.d.ts +0 -7
- package/dist/rules/prefer-schema-inference.d.ts.map +0 -1
- package/dist/rules/prefer-schema-inference.js +0 -86
- package/dist/rules/prefer-schema-inference.js.map +0 -1
- package/dist/rules/scan.d.ts +0 -8
- package/dist/rules/scan.d.ts.map +0 -1
- package/dist/rules/scan.js +0 -32
- package/dist/rules/scan.js.map +0 -1
- package/dist/rules/specs.d.ts +0 -29
- package/dist/rules/specs.d.ts.map +0 -1
- package/dist/rules/specs.js +0 -192
- package/dist/rules/specs.js.map +0 -1
- package/dist/rules/structure.d.ts +0 -13
- package/dist/rules/structure.d.ts.map +0 -1
- package/dist/rules/structure.js +0 -142
- package/dist/rules/structure.js.map +0 -1
- package/dist/rules/types.d.ts +0 -52
- package/dist/rules/types.d.ts.map +0 -1
- package/dist/rules/types.js +0 -2
- package/dist/rules/types.js.map +0 -1
- package/dist/rules/valid-describe-refs.d.ts +0 -7
- package/dist/rules/valid-describe-refs.d.ts.map +0 -1
- package/dist/rules/valid-describe-refs.js +0 -51
- package/dist/rules/valid-describe-refs.js.map +0 -1
- package/dist/rules/valid-detour-refs.d.ts +0 -6
- package/dist/rules/valid-detour-refs.d.ts.map +0 -1
- package/dist/rules/valid-detour-refs.js +0 -116
- package/dist/rules/valid-detour-refs.js.map +0 -1
- package/src/__tests__/cli.test.ts +0 -198
- package/src/__tests__/drift.test.ts +0 -74
- package/src/__tests__/formatters.test.ts +0 -157
- package/src/__tests__/implementation-returns-result.test.ts +0 -75
- package/src/__tests__/no-direct-implementation-call.test.ts +0 -83
- package/src/__tests__/no-sync-result-assumption.test.ts +0 -85
- package/src/__tests__/no-throw-in-detour-target.test.ts +0 -78
- package/src/__tests__/prefer-schema-inference.test.ts +0 -84
- package/src/__tests__/rules.test.ts +0 -188
- package/src/__tests__/valid-describe-refs.test.ts +0 -60
- package/src/rules/no-direct-impl-in-route.ts +0 -77
- package/src/rules/no-throw-in-detour-target.ts +0 -150
- package/src/rules/valid-detour-refs.ts +0 -187
- package/tsconfig.json +0 -9
- package/tsconfig.tsbuildinfo +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,507 @@
|
|
|
1
1
|
# @ontrails/warden
|
|
2
2
|
|
|
3
|
+
## 1.0.0-beta.22
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- @ontrails/adapter-kit@1.0.0-beta.22
|
|
8
|
+
- @ontrails/cli@1.0.0-beta.22
|
|
9
|
+
- @ontrails/core@1.0.0-beta.22
|
|
10
|
+
- @ontrails/permits@1.0.0-beta.22
|
|
11
|
+
- @ontrails/store@1.0.0-beta.22
|
|
12
|
+
- @ontrails/topographer@1.0.0-beta.22
|
|
13
|
+
|
|
14
|
+
## 1.0.0-beta.21
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- 5be032c: Add the repo-local `public-export-example-coverage` Warden rule (and its `publicExportExampleCoverageTrail` wrapper), graduating `scripts/check-public-api-examples.ts` into governed rule coverage. The rule anchors to this repository's five public surface package barrels via the rule module's own on-disk location, so it stays silent in consumer repositories.
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- Updated dependencies [99523f2]
|
|
23
|
+
- Updated dependencies [3caa263]
|
|
24
|
+
- @ontrails/core@1.0.0-beta.21
|
|
25
|
+
- @ontrails/permits@1.0.0-beta.21
|
|
26
|
+
- @ontrails/topographer@1.0.0-beta.21
|
|
27
|
+
- @ontrails/adapter-kit@1.0.0-beta.21
|
|
28
|
+
- @ontrails/cli@1.0.0-beta.21
|
|
29
|
+
- @ontrails/store@1.0.0-beta.21
|
|
30
|
+
|
|
31
|
+
## 1.0.0-beta.20
|
|
32
|
+
|
|
33
|
+
### Minor Changes
|
|
34
|
+
|
|
35
|
+
- 8bc0708: Add surface facet coherence diagnostics for selector overlap, visibility widening acknowledgements, dynamic selectors, and description hygiene.
|
|
36
|
+
|
|
37
|
+
### Patch Changes
|
|
38
|
+
|
|
39
|
+
- 851a2a3: Derive trail caller and blaze input types from the authored input schema while keeping one public input contract.
|
|
40
|
+
- 6901776: Add a Warden rule and safe-fix metadata for rewriting retired cross vocabulary to compose vocabulary.
|
|
41
|
+
- Updated dependencies [851a2a3]
|
|
42
|
+
- Updated dependencies [eee1307]
|
|
43
|
+
- Updated dependencies [b248d4a]
|
|
44
|
+
- @ontrails/core@1.0.0-beta.20
|
|
45
|
+
- @ontrails/store@1.0.0-beta.20
|
|
46
|
+
- @ontrails/topographer@1.0.0-beta.20
|
|
47
|
+
- @ontrails/adapter-kit@1.0.0-beta.20
|
|
48
|
+
- @ontrails/cli@1.0.0-beta.20
|
|
49
|
+
- @ontrails/permits@1.0.0-beta.20
|
|
50
|
+
|
|
51
|
+
## 1.0.0-beta.19
|
|
52
|
+
|
|
53
|
+
### Major Changes
|
|
54
|
+
|
|
55
|
+
- 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.
|
|
56
|
+
|
|
57
|
+
### Minor Changes
|
|
58
|
+
|
|
59
|
+
- 120caf5: Promote topo artifact commands to `trails compile` and `trails validate`.
|
|
60
|
+
- 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.
|
|
61
|
+
- 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.
|
|
62
|
+
|
|
63
|
+
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.
|
|
64
|
+
|
|
65
|
+
### Patch Changes
|
|
66
|
+
|
|
67
|
+
- f8d80b9: Refresh current-facing compose vocabulary in package documentation after the composition cutover.
|
|
68
|
+
- f0f7e2f: Avoid draft-marker false positives when a packed Warden install scans the Trails framework source tree from a different package location.
|
|
69
|
+
- 64fb15a: Add Warden rules for trail version lifecycle guidance, version gaps, marker-safe schemas, pinned composes, examples, and pending force audit events.
|
|
70
|
+
- 5d88104: Polish Trails blaze terminology across package docs and Warden guidance.
|
|
71
|
+
- 48d5ff4: Attach term-rewrite fix metadata to the `no-legacy-layer-imports` rule, marking it review-required with no mechanical edits (the legacy layers were removed, not renamed) so `warden --fix` reports but never auto-applies the migration.
|
|
72
|
+
- 216bf10: Fix a false `dead-internal-trail` warning by unioning file-local compose evidence with the project-context compose set, so same-file composition in scanned-but-unregistered packages is recognized.
|
|
73
|
+
- 678cb1c: Expose the shared adapter readiness engine through Warden's opt-in
|
|
74
|
+
`--adapter-check` diagnostics and the local `trails adapter check` authoring
|
|
75
|
+
workflow.
|
|
76
|
+
- 5874fd6: Preserve diagnostic fix metadata through Warden rule trail outputs.
|
|
77
|
+
- 619cb15: Add a Warden rule (`no-destructured-compose`) that coaches trail blazes to call `ctx.compose(...)` directly instead of destructuring `compose` from the context.
|
|
78
|
+
|
|
79
|
+
Keep the generated `create` trail on the direct `ctx.compose(...)` shape so framework-authored trails follow the same composition guidance.
|
|
80
|
+
|
|
81
|
+
- 4642268: Make the standalone `warden --help` entry point print CLI help instead of running Warden with an unknown-option diagnostic.
|
|
82
|
+
- 9bab0cf: Follow schema aliases when detecting hidden optional wrappers in version marker
|
|
83
|
+
schemas.
|
|
84
|
+
- 3ceeba8: Expand marker-schema-unsupported diagnostics to catch Zod schema constructs that
|
|
85
|
+
runtime marker derivation rejects.
|
|
86
|
+
- beafd03: Add a warning for blazes that re-wrap an existing Result error with Result.err(result.error) instead of returning the original Result.
|
|
87
|
+
- 7b173e0: Warn when a `resource('id', { ... })` definition declares neither a `mock` factory nor an explicit `unmockable` reason, so `testAll(app)` can provision it without production configuration (common pitfall #10).
|
|
88
|
+
- 6e50e7b: Recognize Result-returning helper provenance when helpers use an imported Result type alias.
|
|
89
|
+
- 48edf8d: Expose shared Warden source scan-target predicates so downstream consumers can
|
|
90
|
+
preserve the CLI runner's test and declaration-file filtering before invoking
|
|
91
|
+
Warden-owned rules directly.
|
|
92
|
+
- 12ffa3b: Align Warden signal-rule trail examples so producer trails call `ctx.fire()` for their declared signals.
|
|
93
|
+
- 2f262f7: Improve Warden diagnostics so names-only findings teach the canonical fix instead of only naming the violation.
|
|
94
|
+
- 58b01f2: Warn when topo export modules open Trails surfaces at module top level.
|
|
95
|
+
- Updated dependencies [bb81ffe]
|
|
96
|
+
- Updated dependencies [e41c382]
|
|
97
|
+
- Updated dependencies [a2f1825]
|
|
98
|
+
- Updated dependencies [a2f1825]
|
|
99
|
+
- Updated dependencies [1eb5bdc]
|
|
100
|
+
- Updated dependencies [f8d80b9]
|
|
101
|
+
- Updated dependencies [846a597]
|
|
102
|
+
- Updated dependencies [223aaad]
|
|
103
|
+
- Updated dependencies [3125f4d]
|
|
104
|
+
- Updated dependencies [2494dc6]
|
|
105
|
+
- Updated dependencies [4bc8a99]
|
|
106
|
+
- Updated dependencies [120caf5]
|
|
107
|
+
- Updated dependencies [2d53717]
|
|
108
|
+
- Updated dependencies [16cb740]
|
|
109
|
+
- Updated dependencies [8894ecb]
|
|
110
|
+
- Updated dependencies [fdf7ec9]
|
|
111
|
+
- Updated dependencies [92e709b]
|
|
112
|
+
- Updated dependencies [d76be13]
|
|
113
|
+
- Updated dependencies [84f56a5]
|
|
114
|
+
- Updated dependencies [653d1fc]
|
|
115
|
+
- Updated dependencies [431b04c]
|
|
116
|
+
- Updated dependencies [2e76288]
|
|
117
|
+
- Updated dependencies [5d88104]
|
|
118
|
+
- Updated dependencies [f04a9ef]
|
|
119
|
+
- Updated dependencies [fc00aeb]
|
|
120
|
+
- Updated dependencies [ab1c77c]
|
|
121
|
+
- Updated dependencies [4f43874]
|
|
122
|
+
- Updated dependencies [678cb1c]
|
|
123
|
+
- @ontrails/adapter-kit@1.0.0-beta.19
|
|
124
|
+
- @ontrails/core@1.0.0-beta.19
|
|
125
|
+
- @ontrails/cli@1.0.0-beta.19
|
|
126
|
+
- @ontrails/store@1.0.0-beta.19
|
|
127
|
+
- @ontrails/topographer@1.0.0-beta.19
|
|
128
|
+
- @ontrails/permits@1.0.0-beta.19
|
|
129
|
+
|
|
130
|
+
## 1.0.0-beta.18
|
|
131
|
+
|
|
132
|
+
### Patch Changes
|
|
133
|
+
|
|
134
|
+
- @ontrails/cli@1.0.0-beta.18
|
|
135
|
+
- @ontrails/core@1.0.0-beta.18
|
|
136
|
+
- @ontrails/permits@1.0.0-beta.18
|
|
137
|
+
- @ontrails/store@1.0.0-beta.18
|
|
138
|
+
- @ontrails/topographer@1.0.0-beta.18
|
|
139
|
+
|
|
140
|
+
## 1.0.0-beta.17
|
|
141
|
+
|
|
142
|
+
### Patch Changes
|
|
143
|
+
|
|
144
|
+
- Updated dependencies [3dc8254]
|
|
145
|
+
- Updated dependencies [61497c5]
|
|
146
|
+
- @ontrails/core@1.0.0-beta.17
|
|
147
|
+
- @ontrails/cli@1.0.0-beta.17
|
|
148
|
+
- @ontrails/permits@1.0.0-beta.17
|
|
149
|
+
- @ontrails/store@1.0.0-beta.17
|
|
150
|
+
- @ontrails/topographer@1.0.0-beta.17
|
|
151
|
+
|
|
152
|
+
## 1.0.0-beta.16
|
|
153
|
+
|
|
154
|
+
### Minor Changes
|
|
155
|
+
|
|
156
|
+
- e991a5b: Add generic enum value aliases for CLI flags and migrate Warden command aliases onto the shared alias model.
|
|
157
|
+
- 2e05e27: Add `--dev-permit` for local-development synthetic full-access. New `devPermitPreset()` exposes a boolean flag; when set, the CLI synthesizes a `BasePermit` (`id: 'dev-permit'`, scopes enumerated from every declared scope across the topo) and overlays it on `ctx.permit`. Mutually exclusive with `--permit` and `--token` — any combination fails with `ValidationError` listing the conflicting flags. New Warden rule `no-dev-permit-in-source` flags any committed source file containing `--dev-permit` as an error, with a tight allow-list (`packages/cli/src/flags.ts`, `packages/cli/src/build.ts`, the rule itself). The Warden runner still scans test TypeScript files for this literal while keeping unrelated source rules filtered out of tests. Apps that import `authResource`/`authLayer` are unaffected.
|
|
158
|
+
- ad553a6: Add one warden rule coaching against the removed legacy layer API. `no-legacy-layer-imports` (error) flags any source-string reference to `authLayer`, `autoIterateLayer`, or `dateShortcutsLayer` and points the developer at the migration paths (CLI surface derivation for pagination/date-shortcuts; intrinsic permit enforcement for auth). Allow-list covers the migration notes in `packages/cli/src/{pagination,date-shortcuts}.ts` and the rule's own files. The rule is classified `lifecycle: temporary` with a `retireWhen` string tying it to the legacy layer migration window. Trail count bumps 45 → 46.
|
|
159
|
+
- 802fdfc: Rename Warden guide manifest rule grouping from `category` to `concern` so the
|
|
160
|
+
public JSON contract matches the source metadata field.
|
|
161
|
+
- 22c6c06: Accept ADR-0041 Unified Observability and ship the first activation and
|
|
162
|
+
observability primitives it depends on: activation trace records, topo-level
|
|
163
|
+
observe configuration, webhook activation materialization, signal/webhook
|
|
164
|
+
warden coaching, the `@ontrails/observe` package, sink composition, and
|
|
165
|
+
zero-dependency observe sinks.
|
|
166
|
+
- 767eb41: Ship the default `warden` bin from `@ontrails/warden` and migrate the old private `apps/ci` runner into the package-local CLI surface.
|
|
167
|
+
|
|
168
|
+
The new bin supports `--ci`, `--pre-push`, `--depth`, `--fail-on`, `--strict`, `--format`, `--lock`, `--drafts`, `--apps`, and the Sprint 1 standalone aliases. CI output now uses the package Warden formatters directly, so GitHub annotations and JSON payloads follow the `@ontrails/warden` report shape instead of the retired `apps/ci` wrapper shape.
|
|
169
|
+
|
|
170
|
+
- 82019a7: Export `wardenConfigSchema` for composing Warden options into `trails.config.ts`.
|
|
171
|
+
- f6fdc62: Add structured Warden remediation guidance to rule metadata, diagnostics, report output, and the `trails warden` result schema.
|
|
172
|
+
- a10ffa4: Add a Warden guide manifest projection and expose it through `trails warden guide` in markdown, agent-json, and manifest formats.
|
|
173
|
+
- 7085f01: Add a Warden topo-aware rule that requires public MCP/HTTP surface-eligible trails to declare output schemas.
|
|
174
|
+
- 8ddf5ff: Extend `runWarden` into the shared Warden orchestration entrypoint with effective config resolution, depth/fail thresholds, rule facets, and multi-topo report metadata.
|
|
175
|
+
|
|
176
|
+
Adapt the built-in `trails warden` wrapper to consume the readonly Warden report diagnostics contract without weakening its output schema.
|
|
177
|
+
|
|
178
|
+
- f5b6112: Add an advisory Warden rule that prefers static resource helpers over dynamic context resource lookups when the resource definition is already in scope.
|
|
179
|
+
|
|
180
|
+
### Patch Changes
|
|
181
|
+
|
|
182
|
+
- c3fc5c3: Move previously root-exported helper contracts out of `src/internal/*` to stable core module homes, document their public boundary, and guard the public barrel against future internal re-exports.
|
|
183
|
+
- e898cc4: Add repo-level Knip dead-code detection and remove stale internal exports and unused package dependencies surfaced by the new check.
|
|
184
|
+
- 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.
|
|
185
|
+
- 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.
|
|
186
|
+
- de30d6c: Introduce `topo.compile` as the canonical trail for writing `.trails` lockfile
|
|
187
|
+
and surface artifacts, remove the `survey --generate` mode, and update drift
|
|
188
|
+
guidance to point at the compile command.
|
|
189
|
+
- 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.
|
|
190
|
+
|
|
191
|
+
Breaking pre-1.0 beta change. Update consumer imports:
|
|
192
|
+
|
|
193
|
+
```diff
|
|
194
|
+
- import { topoStore, createTopoStore, createMockTopoStore, createTopoSnapshot, listTopoSnapshots, pinTopoSnapshot, unpinTopoSnapshot, createStoredTopoSnapshot, getStoredTopoExport, countTopoSnapshots, countPinnedSnapshots, countPrunableSnapshots, pruneUnpinnedSnapshots } from '@ontrails/core';
|
|
195
|
+
+ import { topoStore, createTopoStore, createMockTopoStore, createTopoSnapshot, listTopoSnapshots, pinTopoSnapshot, unpinTopoSnapshot } from '@ontrails/topographer';
|
|
196
|
+
+ import { createStoredTopoSnapshot, getStoredTopoExport, countTopoSnapshots, countPinnedSnapshots, countPrunableSnapshots, pruneUnpinnedSnapshots } from '@ontrails/topographer/backend-support';
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
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`.
|
|
200
|
+
|
|
201
|
+
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.
|
|
202
|
+
|
|
203
|
+
- 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.
|
|
204
|
+
- 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`.
|
|
205
|
+
|
|
206
|
+
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.
|
|
207
|
+
|
|
208
|
+
- fb10112: Polish Warden guidance projection by preserving labels in plain-text doc links
|
|
209
|
+
and reusing the shared diagnostic schema from the Trails CLI wrapper.
|
|
210
|
+
- bfabe09: Suppress static resource accessor warnings when a string lookup resolves to a
|
|
211
|
+
resource variable name shadowed inside `blaze`.
|
|
212
|
+
- 7a1d4a9: Rename the public resolved graph API from `SurfaceMap` to `TopoGraph`, including
|
|
213
|
+
the derive, hash, diff, and current graph artifact I/O helpers.
|
|
214
|
+
- 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.
|
|
215
|
+
- 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`.
|
|
216
|
+
- 2cc05da: Harden Warden drift checks for lock v3 manifests. Malformed legacy lock files and manifests without the `topo.lock` artifact now report blocked drift with a regenerate instruction instead of throwing or silently passing.
|
|
217
|
+
- df9a7d0: Add project-aware public export-map governance for @ontrails workspace docs,
|
|
218
|
+
imports, root barrels, and bin-only package surfaces.
|
|
219
|
+
- 30a2c7e: Add the resolver-backed `resolved-import-boundary` Warden rule for cross-package import boundary enforcement.
|
|
220
|
+
- 81bffec: Add Warden import-resolution substrate backed by `oxc-resolver`.
|
|
221
|
+
- d675a53: Omit `topoNames` from Warden reports when no topo targets were governed, matching the optional report contract.
|
|
222
|
+
- Updated dependencies [73622ae]
|
|
223
|
+
- Updated dependencies [e991a5b]
|
|
224
|
+
- Updated dependencies [25f3c5c]
|
|
225
|
+
- Updated dependencies [6300f70]
|
|
226
|
+
- Updated dependencies [d172013]
|
|
227
|
+
- Updated dependencies [c3fc5c3]
|
|
228
|
+
- Updated dependencies [20d7a5c]
|
|
229
|
+
- Updated dependencies [be5fb46]
|
|
230
|
+
- Updated dependencies [199304e]
|
|
231
|
+
- Updated dependencies [e898cc4]
|
|
232
|
+
- Updated dependencies [2bf239e]
|
|
233
|
+
- Updated dependencies [200bece]
|
|
234
|
+
- Updated dependencies [e4beec9]
|
|
235
|
+
- Updated dependencies [3395234]
|
|
236
|
+
- Updated dependencies [bcdc484]
|
|
237
|
+
- Updated dependencies [6300f70]
|
|
238
|
+
- Updated dependencies [3f678d4]
|
|
239
|
+
- Updated dependencies [ed171d5]
|
|
240
|
+
- Updated dependencies [49c2e7d]
|
|
241
|
+
- Updated dependencies [de30d6c]
|
|
242
|
+
- Updated dependencies [331e3a9]
|
|
243
|
+
- Updated dependencies [c40865a]
|
|
244
|
+
- Updated dependencies [4399fdb]
|
|
245
|
+
- Updated dependencies [4b8d13b]
|
|
246
|
+
- Updated dependencies [4b8d13b]
|
|
247
|
+
- Updated dependencies [4b8d13b]
|
|
248
|
+
- Updated dependencies [fbd42fc]
|
|
249
|
+
- Updated dependencies [63d1aef]
|
|
250
|
+
- Updated dependencies [6be2e95]
|
|
251
|
+
- Updated dependencies [819de09]
|
|
252
|
+
- Updated dependencies [be08686]
|
|
253
|
+
- Updated dependencies [112b9f2]
|
|
254
|
+
- Updated dependencies [893025e]
|
|
255
|
+
- Updated dependencies [ed888e2]
|
|
256
|
+
- Updated dependencies [2e05e27]
|
|
257
|
+
- Updated dependencies [c8caa5e]
|
|
258
|
+
- Updated dependencies [f4b90c9]
|
|
259
|
+
- Updated dependencies [eec5e9d]
|
|
260
|
+
- Updated dependencies [4e75129]
|
|
261
|
+
- Updated dependencies [47505fe]
|
|
262
|
+
- Updated dependencies [ebd4434]
|
|
263
|
+
- Updated dependencies [863d473]
|
|
264
|
+
- Updated dependencies [344f2f7]
|
|
265
|
+
- Updated dependencies [26f9ffd]
|
|
266
|
+
- Updated dependencies [66056ac]
|
|
267
|
+
- Updated dependencies [b12e19b]
|
|
268
|
+
- Updated dependencies [ed7f6f6]
|
|
269
|
+
- Updated dependencies [0bad534]
|
|
270
|
+
- Updated dependencies [7a1d4a9]
|
|
271
|
+
- Updated dependencies [84f595a]
|
|
272
|
+
- Updated dependencies [d2cb9ba]
|
|
273
|
+
- Updated dependencies [10eae9a]
|
|
274
|
+
- Updated dependencies [bbb1ea4]
|
|
275
|
+
- Updated dependencies [22c6c06]
|
|
276
|
+
- Updated dependencies [df9a7d0]
|
|
277
|
+
- @ontrails/core@1.0.0-beta.16
|
|
278
|
+
- @ontrails/cli@1.0.0-beta.16
|
|
279
|
+
- @ontrails/permits@1.0.0-beta.16
|
|
280
|
+
- @ontrails/store@1.0.0-beta.16
|
|
281
|
+
- @ontrails/topographer@1.0.0-beta.16
|
|
282
|
+
|
|
283
|
+
## 1.0.0-beta.15
|
|
284
|
+
|
|
285
|
+
### Minor Changes
|
|
286
|
+
|
|
287
|
+
- 4ad6b25: Lexicon rename cleanup (ADR-0023). Breaking for `@ontrails/core`, `@ontrails/cli`, and `@ontrails/tracing` at the boundary; internal-only churn for `@ontrails/warden`.
|
|
288
|
+
|
|
289
|
+
- **core**: the topo store schema renames `topo_provisions` / `topo_trail_provisions` → `topo_resources` / `topo_trail_resources` and `provision_count` → `resource_count`. Schema version bumped v4→v5. Stores still carrying the legacy schema are detected on open, dropped, and recreated from the new DDL — previous topo saves are cleared. Stored-data helpers `listTopoStoreProvisions` / `getTopoStoreProvision` / `readProvisionUsage` / `mapProvisionRow` renamed to their `resource` counterparts. TS row types `TopoTrailProvisionRow` / `TopoProvisionRow` renamed to `TopoTrailResourceRow` / `TopoResourceRow`.
|
|
290
|
+
- **cli**: CLI output mode env vars are now derived from the topo name per ADR-0023. Legacy globals `TRAILS_JSON` / `TRAILS_JSONL` are no longer honored — a topo named `stash` reads `STASH_JSON` / `STASH_JSONL`. `ActionResultContext` gains a `topoName: string` field; `resolveOutputMode(flags, topoName)` takes a topo name argument.
|
|
291
|
+
- **tracing**: legacy `.trails/dev/tracker.db` migration path removed. Any user still running a pre-rename beta build with a `tracker.db` should delete it or migrate before upgrading.
|
|
292
|
+
- **warden**: internal-only rename of `provisionDeclarations` / `provisionExists` rules and their trails to `resourceDeclarations` / `resourceExists`. No behavior change.
|
|
293
|
+
|
|
294
|
+
### Patch Changes
|
|
295
|
+
|
|
296
|
+
- Updated dependencies [4ad6b25]
|
|
297
|
+
- @ontrails/core@1.0.0-beta.15
|
|
298
|
+
- @ontrails/permits@1.0.0-beta.15
|
|
299
|
+
- @ontrails/topographer@1.0.0-beta.15
|
|
300
|
+
|
|
301
|
+
## 1.0.0-beta.14
|
|
302
|
+
|
|
303
|
+
### Minor Changes
|
|
304
|
+
|
|
305
|
+
- 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.
|
|
306
|
+
|
|
307
|
+
### Patch Changes
|
|
308
|
+
|
|
309
|
+
- Updated dependencies [69057e9]
|
|
310
|
+
- @ontrails/core@1.0.0-beta.14
|
|
311
|
+
- @ontrails/schema@1.0.0-beta.14
|
|
312
|
+
|
|
313
|
+
## 1.0.0-beta.13
|
|
314
|
+
|
|
315
|
+
### Minor Changes
|
|
316
|
+
|
|
317
|
+
- Trail-native vocabulary cutover. Breaking API field renames across all packages:
|
|
318
|
+
|
|
319
|
+
- Trail spec: `run:` → `blaze:`, `follow:` → `crosses:`, `services:` → `provisions:`, `metadata:` → `meta:`, `emits:` → `signals:`
|
|
320
|
+
- Runtime: `ctx.follow()` → `ctx.cross()`, `ctx.emit()` → `ctx.signal()`, `ctx.signal` (abort) → `ctx.abortSignal`
|
|
321
|
+
- Entry points: `blaze(app)` → `trailhead(app)`
|
|
322
|
+
- Package rename: `@ontrails/crumbs` → `@ontrails/tracker`
|
|
323
|
+
- Wrapper types: `Layer` → `Gate`, `layers`/`middleware` → `gates`
|
|
324
|
+
- Transport: `surface` → `trailhead`, `adapter` → `connector`
|
|
325
|
+
|
|
326
|
+
### Patch Changes
|
|
327
|
+
|
|
328
|
+
- Updated dependencies [6944147]
|
|
329
|
+
- Updated dependencies
|
|
330
|
+
- @ontrails/core@1.0.0-beta.13
|
|
331
|
+
- @ontrails/schema@1.0.0-beta.13
|
|
332
|
+
|
|
333
|
+
## 1.0.0-beta.12
|
|
334
|
+
|
|
335
|
+
### Patch Changes
|
|
336
|
+
|
|
337
|
+
- Updated dependencies
|
|
338
|
+
- @ontrails/core@1.0.0-beta.12
|
|
339
|
+
- @ontrails/schema@1.0.0-beta.12
|
|
340
|
+
|
|
341
|
+
## 1.0.0-beta.11
|
|
342
|
+
|
|
343
|
+
### Minor Changes
|
|
344
|
+
|
|
345
|
+
- Add provisions as a first-class primitive.
|
|
346
|
+
|
|
347
|
+
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()`.
|
|
348
|
+
|
|
349
|
+
**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.
|
|
350
|
+
|
|
351
|
+
**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.
|
|
352
|
+
|
|
353
|
+
**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.
|
|
354
|
+
|
|
355
|
+
**Trailheads:** Provision overrides thread through `run` and `trailhead` on CLI, MCP, and HTTP.
|
|
356
|
+
|
|
357
|
+
**Introspection:** Survey and trailhead map outputs include provision graph. Topo exposes `.provisions`, `.getProvision()`, `.hasProvision()`, `.listProvisions()`, `.provisionIds()`, `.provisionCount`.
|
|
358
|
+
|
|
359
|
+
**Docs:** ADR-009 accepted. Unified services guide, updated vocabulary, getting-started, architecture, and package READMEs.
|
|
360
|
+
|
|
361
|
+
### Patch Changes
|
|
362
|
+
|
|
363
|
+
- Updated dependencies
|
|
364
|
+
- @ontrails/core@1.0.0-beta.11
|
|
365
|
+
- @ontrails/schema@1.0.0-beta.11
|
|
366
|
+
|
|
367
|
+
## 1.0.0-beta.10
|
|
368
|
+
|
|
369
|
+
### Patch Changes
|
|
370
|
+
|
|
371
|
+
- Cleanup and hardening pass across all packages.
|
|
372
|
+
|
|
373
|
+
**core**: Deduplicate `RunOptions` as type alias of `ExecuteTrailOptions`. Replace `TrailContext` index signature with typed `extensions` field for type safety. Deep-merge `extensions` in `executeTrail` context resolution. Remove unused `Trailhead` type and proof-of-concept files from published package.
|
|
374
|
+
|
|
375
|
+
**cli**: Remove vestigial `kind` checks from build. Run `validateTopo()` automatically in `trailhead()` with opt-out via `validate: false`.
|
|
376
|
+
|
|
377
|
+
**http**: Remove vestigial `kind` checks from build. Run `validateTopo()` automatically in `trailhead()` with opt-out.
|
|
378
|
+
|
|
379
|
+
**mcp**: Remove vestigial `kind` checks from build. Run `validateTopo()` automatically in `trailhead()` with opt-out.
|
|
380
|
+
|
|
381
|
+
**warden**: Project-aware rule context preserved in trail wrappers.
|
|
382
|
+
|
|
383
|
+
- Updated dependencies
|
|
384
|
+
- @ontrails/core@1.0.0-beta.10
|
|
385
|
+
- @ontrails/schema@1.0.0-beta.10
|
|
386
|
+
|
|
387
|
+
## 1.0.0-beta.9
|
|
388
|
+
|
|
389
|
+
### Minor Changes
|
|
390
|
+
|
|
391
|
+
- Consolidated improvements across all trailhead packages.
|
|
392
|
+
|
|
393
|
+
**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.
|
|
394
|
+
|
|
395
|
+
**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.
|
|
396
|
+
|
|
397
|
+
**mcp**: Return `Result` from `buildMcpTools()` on collision instead of throwing.
|
|
398
|
+
|
|
399
|
+
**cli**: Verify exception catching via centralized `executeTrail`.
|
|
400
|
+
|
|
401
|
+
**testing**: Cross-context awareness improvements.
|
|
402
|
+
|
|
403
|
+
**warden**: Refactor rules as composable trails with examples.
|
|
404
|
+
|
|
405
|
+
**schema**: Error code and empty body fixes.
|
|
406
|
+
|
|
407
|
+
### Patch Changes
|
|
408
|
+
|
|
409
|
+
- Updated dependencies
|
|
410
|
+
- @ontrails/core@1.0.0-beta.9
|
|
411
|
+
- @ontrails/schema@1.0.0-beta.9
|
|
412
|
+
|
|
413
|
+
## 1.0.0-beta.8
|
|
414
|
+
|
|
415
|
+
### Patch Changes
|
|
416
|
+
|
|
417
|
+
- Updated dependencies
|
|
418
|
+
- @ontrails/schema@1.0.0-beta.8
|
|
419
|
+
- @ontrails/core@1.0.0-beta.8
|
|
420
|
+
|
|
421
|
+
## 1.0.0-beta.7
|
|
422
|
+
|
|
423
|
+
### Patch Changes
|
|
424
|
+
|
|
425
|
+
- Updated dependencies
|
|
426
|
+
- @ontrails/schema@1.0.0-beta.7
|
|
427
|
+
- @ontrails/core@1.0.0-beta.7
|
|
428
|
+
|
|
429
|
+
## 1.0.0-beta.6
|
|
430
|
+
|
|
431
|
+
### Patch Changes
|
|
432
|
+
|
|
433
|
+
- Fix Codex review findings on type-utils and cross-declarations.
|
|
434
|
+
|
|
435
|
+
**core**: `inputOf()`/`outputOf()` now preserve the exact Zod schema subtype instead of widening to `z.ZodType`.
|
|
436
|
+
|
|
437
|
+
**warden**: `cross-declarations` rule now recognizes single-object trail overload, detects any context parameter name (not just `ctx`), matches destructured `cross()` calls, resolves const identifiers in `crosses` arrays, and restricts blaze body extraction to top-level config properties.
|
|
438
|
+
|
|
439
|
+
- Updated dependencies
|
|
440
|
+
- @ontrails/core@1.0.0-beta.6
|
|
441
|
+
- @ontrails/schema@1.0.0-beta.6
|
|
442
|
+
|
|
443
|
+
## 1.0.0-beta.5
|
|
444
|
+
|
|
445
|
+
### Minor Changes
|
|
446
|
+
|
|
447
|
+
- Type utilities and cross-declarations warden rule.
|
|
448
|
+
|
|
449
|
+
**core**: Add `TrailInput<T>`, `TrailOutput<T>` utility types and `inputOf()`, `outputOf()` runtime schema accessors.
|
|
450
|
+
|
|
451
|
+
**warden**: Add `cross-declarations` rule — statically analyzes `ctx.cross()` calls against declared `crosses: [...]` arrays. Errors on undeclared calls, warns on unused declarations.
|
|
452
|
+
|
|
453
|
+
### Patch Changes
|
|
454
|
+
|
|
455
|
+
- Updated dependencies
|
|
456
|
+
- @ontrails/core@1.0.0-beta.5
|
|
457
|
+
- @ontrails/schema@1.0.0-beta.5
|
|
458
|
+
|
|
459
|
+
## 1.0.0-beta.4
|
|
460
|
+
|
|
461
|
+
### Major Changes
|
|
462
|
+
|
|
463
|
+
- API simplification: unified trail model, intent enum, run, metadata.
|
|
464
|
+
|
|
465
|
+
**BREAKING CHANGES:**
|
|
466
|
+
|
|
467
|
+
- `hike()` removed — use `trail()` with optional `crosses: [...]` field
|
|
468
|
+
- `follows` renamed to `crosses` (matching `ctx.cross()`)
|
|
469
|
+
- `topo.hikes` removed — single `topo.trails` map
|
|
470
|
+
- `kind: 'hike'` removed — everything is `kind: 'trail'`
|
|
471
|
+
- `readOnly`/`destructive` booleans replaced by `intent: 'read' | 'write' | 'destroy'`
|
|
472
|
+
- `implementation` field renamed to `run`
|
|
473
|
+
- `markers` field renamed to `metadata`
|
|
474
|
+
- `testHike` renamed to `testCrosses`, `HikeScenario` to `CrossScenario`
|
|
475
|
+
- `trailhead()` now returns the trailhead handle (`Command` for CLI, `Server` for MCP)
|
|
476
|
+
|
|
477
|
+
### Patch Changes
|
|
478
|
+
|
|
479
|
+
- Updated dependencies
|
|
480
|
+
- @ontrails/core@1.0.0-beta.4
|
|
481
|
+
- @ontrails/schema@1.0.0-beta.4
|
|
482
|
+
|
|
483
|
+
## 1.0.0-beta.3
|
|
484
|
+
|
|
485
|
+
### Minor Changes
|
|
486
|
+
|
|
487
|
+
- Bug fixes across all trailhead packages found via parallel Codex review.
|
|
488
|
+
|
|
489
|
+
**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.
|
|
490
|
+
|
|
491
|
+
**cli**: Switch trailhead to parseAsync for proper async error handling, add boolean flag negation (--no-flag), and strict number parsing that rejects partial input.
|
|
492
|
+
|
|
493
|
+
**mcp**: Align BlobRef with core (including ReadableStream support) and detect tool-name collisions after normalization.
|
|
494
|
+
|
|
495
|
+
**testing**: Include hikes in testContracts validation, with cross-context awareness.
|
|
496
|
+
|
|
497
|
+
**warden**: Collect hike detour targets, validate detour refs in hike specs, and stop implementation-returns-result from walking into nested function bodies.
|
|
498
|
+
|
|
499
|
+
### Patch Changes
|
|
500
|
+
|
|
501
|
+
- Updated dependencies
|
|
502
|
+
- @ontrails/core@1.0.0-beta.3
|
|
503
|
+
- @ontrails/schema@1.0.0-beta.3
|
|
504
|
+
|
|
3
505
|
## 1.0.0-beta.2
|
|
4
506
|
|
|
5
507
|
### Patch Changes
|
|
@@ -27,13 +529,13 @@
|
|
|
27
529
|
|
|
28
530
|
- Initial v1 beta release of the Trails framework.
|
|
29
531
|
|
|
30
|
-
- **@ontrails/core** — Result type, error taxonomy, trail/hike/
|
|
31
|
-
- **@ontrails/cli** — CLI
|
|
32
|
-
- **@ontrails/mcp** — MCP
|
|
33
|
-
- **@ontrails/logging** — Structured logging, sinks, formatters, LogTape
|
|
34
|
-
- **@ontrails/testing** — testAll, testExamples, testTrail, testHike, testContracts, testDetours,
|
|
532
|
+
- **@ontrails/core** — Result type, error taxonomy, trail/hike/signal/topo, validateTopo, validateInput/Output, deriveFields, patterns, redaction, branded types, resilience
|
|
533
|
+
- **@ontrails/cli** — CLI trailhead connector, Commander integration, flag derivation
|
|
534
|
+
- **@ontrails/mcp** — MCP trailhead connector, tool generation, annotations, progress bridge
|
|
535
|
+
- **@ontrails/logging** — Structured logging, sinks, formatters, LogTape connector
|
|
536
|
+
- **@ontrails/testing** — testAll, testExamples, testTrail, testHike, testContracts, testDetours, trailhead harnesses
|
|
35
537
|
- **@ontrails/warden** — AST-based code convention rules via oxc-parser, drift detection, CI formatters
|
|
36
|
-
- **@ontrails/schema** —
|
|
538
|
+
- **@ontrails/schema** — Trailhead map generation, hashing, semantic diffing
|
|
37
539
|
|
|
38
540
|
### Patch Changes
|
|
39
541
|
|