@weftlet/toolkit 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +149 -14
  2. package/dist/application/cache-adoption.d.ts +2 -1
  3. package/dist/application/cache-adoption.js +12 -5
  4. package/dist/application/document-coverage.d.ts +28 -0
  5. package/dist/application/document-coverage.js +58 -0
  6. package/dist/application/document-overlay.d.ts +14 -0
  7. package/dist/application/document-overlay.js +31 -0
  8. package/dist/application/extraction-identity.d.ts +2 -1
  9. package/dist/application/extraction-identity.js +7 -0
  10. package/dist/application/hydration-inputs.d.ts +15 -0
  11. package/dist/application/hydration-inputs.js +55 -0
  12. package/dist/application/hydration-plan.d.ts +7 -0
  13. package/dist/application/hydration-plan.js +18 -5
  14. package/dist/application/hydrator.d.ts +2 -0
  15. package/dist/application/hydrator.js +40 -18
  16. package/dist/application/overlay.d.ts +3 -1
  17. package/dist/application/overlay.js +29 -9
  18. package/dist/application/saved-evidence.d.ts +2 -2
  19. package/dist/application/semantic-run.d.ts +3 -0
  20. package/dist/application/semantic-scope.d.ts +1 -1
  21. package/dist/application/semantic-scope.js +2 -2
  22. package/dist/configuration/cache.js +13 -1
  23. package/dist/configuration/config.d.ts +2 -0
  24. package/dist/configuration/config.js +6 -1
  25. package/dist/configuration/document-traversal.d.ts +7 -0
  26. package/dist/configuration/document-traversal.js +13 -0
  27. package/dist/extraction/canonical-document-links.d.ts +28 -0
  28. package/dist/extraction/canonical-document-links.js +95 -0
  29. package/dist/extraction/document-classification.d.ts +44 -0
  30. package/dist/extraction/document-classification.js +161 -0
  31. package/dist/extraction/document-evidence.d.ts +21 -0
  32. package/dist/extraction/document-evidence.js +83 -0
  33. package/dist/extraction/document-traversal.d.ts +76 -0
  34. package/dist/extraction/document-traversal.js +210 -0
  35. package/dist/extraction/document.d.ts +3 -1
  36. package/dist/extraction/document.js +3 -1
  37. package/dist/graph/authority.js +3 -0
  38. package/dist/graph/coverage.d.ts +8 -0
  39. package/dist/graph/coverage.js +96 -0
  40. package/dist/graph/document-role-description.d.ts +5 -0
  41. package/dist/graph/document-role-description.js +18 -0
  42. package/dist/graph/identity-preflight.d.ts +57 -0
  43. package/dist/graph/identity-preflight.js +71 -0
  44. package/dist/graph/query.d.ts +2 -2
  45. package/dist/graph/query.js +22 -62
  46. package/dist/graph/rdf.d.ts +4 -1
  47. package/dist/graph/rdf.js +21 -6
  48. package/dist/graph/shacl-shapes.js +26 -0
  49. package/dist/graph/validation-progress.d.ts +14 -0
  50. package/dist/graph/validation-progress.js +18 -0
  51. package/dist/index.d.ts +7 -0
  52. package/dist/index.js +6 -0
  53. package/dist/interfaces/cli.js +29 -5
  54. package/dist/interfaces/document-coverage.d.ts +9 -0
  55. package/dist/interfaces/document-coverage.js +117 -0
  56. package/dist/repository/git.d.ts +11 -0
  57. package/dist/repository/git.js +38 -0
  58. package/dist/visualization/visualization.js +21 -6
  59. package/docs/ADR-017-shacl-validation-union.md +4 -0
  60. package/docs/ADR-018-operational-semantic-cache.md +2 -2
  61. package/docs/ADR-019-semantic-failure-diagnostics.md +2 -2
  62. package/docs/ADR-020-canonical-physical-file-producers.md +2 -2
  63. package/docs/ADR-021-identity-preflight-and-validation-timing.md +84 -0
  64. package/docs/ADR-022-release-documentation.md +44 -0
  65. package/docs/ADR-023-document-coverage-preview.md +64 -0
  66. package/docs/ADR-024-implementation-coverage.md +51 -0
  67. package/docs/ADR-025-document-classification.md +78 -0
  68. package/docs/ADR-026-traversal-hydration.md +94 -0
  69. package/docs/ADR-027-validation-closeout.md +155 -0
  70. package/docs/CONSUMER-TRIAL.md +1 -1
  71. package/docs/MIGRATING-TO-WEFTLET.md +1 -1
  72. package/docs/PROVIDERS.md +17 -1
  73. package/docs/RELEASE-1.0-PLAN.md +177 -48
  74. package/docs/RELEASING.md +46 -8
  75. package/docs/ROADMAP.md +59 -28
  76. package/docs/VALIDATION.md +451 -0
  77. package/docs/benchmarks/validation-2026-10-28/README.md +25 -0
  78. package/docs/benchmarks/validation-2026-10-28/large.json +1 -0
  79. package/docs/benchmarks/validation-2026-10-28/lifecycle.json +1 -0
  80. package/docs/benchmarks/validation-2026-10-28/native.json +1 -0
  81. package/docs/benchmarks/validation-2026-10-28/rich.json +1 -0
  82. package/docs/extraction-manifest.json +73 -17
  83. package/examples/generic-typescript/document-policy.json +9 -0
  84. package/package.json +7 -4
@@ -1,15 +1,26 @@
1
1
  # Consumer hardening and the 1.0 release plan
2
2
 
3
- Status: maintainer-directed work; release checkpoint on 2026-10-26 after verified 0.3.0 publication.
4
- **New adoption blocker: T08, deterministic physical-file kind conflicts.** This takes release
5
- priority over the remaining planned increments; T04 was completed first as requested.
6
- The report concerned `@weftlet/toolkit@0.2.0`. **T01's upstream patch shipped in 0.2.1**;
7
- genuine consumer acceptance remains pending. T02 and T05's focused cold-validation optimization
8
- shipped in 0.3.0. T03 and T04 are implemented in development source after that release. Broader T05
9
- follow-ups and T06 and T07 remain open. These tasks improve setup, reuse, diagnostics and document coverage
10
- without expanding the consumer's migration. An official 1.0
11
- follows this work and genuine consumer acceptance, with its exact release scope reviewed when
12
- the evidence is available.
3
+ Status: maintainer-directed work; release checkpoint on 2026-10-27 after verified 0.5.0 publication.
4
+ **T08's upstream deterministic physical-file fix has shipped; the maintainer reports the consumer
5
+ updated and working on 2026-10-27. Detailed full hydration/repeat evidence remains pending.** T04 was completed before
6
+ the T08 fix as requested.
7
+
8
+ **T09 shipped in 0.5.0:** the configuration accepts `semantic.timeoutMs: 600000`,
9
+ alongside T05a identity preflight and validation phase timing. The two-minute default is unchanged.
10
+ The consumer's approved ten-minute retry has not run; that outcome remains separate acceptance.
11
+
12
+ The original report concerned `@weftlet/toolkit@0.2.0`. T01's upstream document-identity patch
13
+ shipped in 0.2.1; T02 and T05's focused cold-validation optimization shipped in 0.3.0.
14
+ T03 operational cache reuse, T04 semantic failure diagnostics and T08's public core file factory
15
+ shipped in 0.4.0. T09 and T05a shipped in 0.5.0. T06 documentation consistency is implemented
16
+ for the next release. T07a prospective coverage is implemented separately from hydration;
17
+ T07b classification and deterministic document evidence merged in PR 42 after local/hosted checks
18
+ and independent review. T07c hydration/cache integration merged in PR 44 with local and hosted checks passed;
19
+ T05's remaining engineering evaluation is recorded in
20
+ [ADR 027](ADR-027-validation-closeout.md), retaining full direct validation after measurements.
21
+ Complete source/release checks, publish a reviewed minor candidate, validate it in TradePilot,
22
+ then review and publish official 1.0. These
23
+ release/consumer gates are separate from the engineering count; none is already accepted.
13
24
 
14
25
  This is the near-term release task list. The [Weftlet 2.0 product plan](WEFTLET-2.0-PLAN.md)
15
26
  remains a separate future direction for generation, approvals, a companion website and hosted
@@ -36,21 +47,58 @@ integration. Consumer acceptance is reported separately from upstream determinis
36
47
 
37
48
  | ID | Task | Priority/status | Dependencies and release boundary |
38
49
  | --- | --- | --- | --- |
39
- | **T08** | Canonical physical-file kinds and public adapter factory | **Merged; local and hosted Ubuntu/Windows checks passed; release pending** | Neutral contract consumers conflict with test Evidence; consumer framework migration remains separately required |
50
+ | **T10** | Correct implementation coverage for returned code relationships | **Merged after T07a; local/hosted checks passed; publication pending** | Separate evidence counts from display groups; preserve facts, authority, ranking and saved snapshots; scope gaps to returned page |
51
+ | **T09** | Accept the approved ten-minute extraction timeout | **Shipped in 0.5.0; consumer ten-minute retry unrun** | Raise only the config ceiling to 600000; preserve defaults/cache/retry behavior; consumer retry has not run |
52
+ | **T08** | Canonical physical-file kinds and public adapter factory | **Shipped in 0.4.0; consumer reported working; detailed acceptance pending** | Public core factory and neutral producers agree; record consumer commit, adapter tests and full hydration/repeat evidence |
40
53
  | **T01** | Coherent repository-document identity and kind | **Upstream patch shipped in 0.2.1; consumer acceptance pending** | SHACL and assertions preserved; genuine consumer re-run is still required |
41
54
  | **T02** | No-model hydration/setup preview | Shipped in 0.3.0 | Shared selection/cache inspection, human/JSON plans; extend with T07 traversal coverage |
42
- | **T03** | Artifact reuse across operational configuration changes | Merged; local and hosted Ubuntu/Windows checks passed; unreleased | Built-in Codex user artifacts share five operational changes; custom providers remain conservative; exact legacy recovery without model calls |
43
- | **T04** | Actionable, privacy-safe timeout diagnostics | Merged; local and hosted Ubuntu/Windows checks passed; unreleased | Safe source IDs, settled counts, failure classification and T02/T03 recovery; no extraction/cache identity change |
44
- | **T05** | Early identity checks and validation progress/profiling | **Cold-validation fix shipped in 0.3.0; consumer acceptance pending** | Full validation preserved; early checks, detailed progress and validation reuse remain open |
45
- | **T06** | Packaged release-documentation consistency | Open; README version pins removed in 0.2.1 | Automated archive/version consistency check remains to be implemented |
46
- | **T07** | Coverage-aware traversal from SOT/roadmap entry points | Planned bounded feature work | Use canonical identity from T01, preview from T02 and incremental reuse from T03; split selection/classification/extraction changes |
47
-
48
- T02 and the focused T05 fix passed local publication checks and hosted Ubuntu/Windows checks,
49
- then shipped in [0.3.0](https://github.com/jchewitt/weftlet/releases/tag/%40weftlet/toolkit%400.3.0).
50
- Registry archives match the independently reviewed export; source commit, provenance and release
51
- tags are recorded in [validation](VALIDATION.md). T03, T04, T06 and T07 remain independently
52
- useful increments, separate from the optional platform work. A genuine consumer hydration and
53
- repeat against the current release remain required; upstream fixtures do not establish that result.
55
+ | **T03** | Artifact reuse across operational configuration changes | Shipped in 0.4.0 | Built-in Codex user artifacts share five operational changes; custom providers remain conservative; exact legacy recovery without model calls |
56
+ | **T04** | Actionable, privacy-safe timeout diagnostics | Shipped in 0.4.0 | Safe source IDs, settled counts, failure classification and T02/T03 recovery; no extraction/cache identity change |
57
+ | **T05** | Early identity checks and validation progress/profiling | **Cold fix shipped in 0.3.0; T05a in 0.5.0; engineering closeout evaluated in ADR 027** | Cold/repeat/edits, worker, reuse, incremental and Rust evaluated; retain full direct validation; private consumer acceptance required |
58
+ | **T06** | Packaged release-documentation consistency | **Implemented after 0.5.0; publication pending** | Generated current sections, checked actual tarballs, historical records preserved, fresh documented installation commands |
59
+ | **T07** | Coverage-aware traversal from SOT/roadmap entry points | **T07a merged; T07b merged with local/hosted checks and review passed; T07c merged with local/hosted checks passed** | Committed closure, source roles/ownership, validation separation and draft invalidation implemented; npm publication pending |
60
+
61
+ T02 and the focused T05 fix shipped in 0.3.0; T03, T04 and T08 shipped in
62
+ [0.4.0](https://github.com/jchewitt/weftlet/releases/tag/%40weftlet/toolkit%400.4.0), following
63
+ local/hosted checks, independent archive review and fresh packed/public-registry installation.
64
+ T09 timeout support and T05a identity preflight/phase timing shipped in
65
+ [0.5.0](https://github.com/jchewitt/weftlet/releases/tag/%40weftlet/toolkit%400.5.0).
66
+ Source, registry integrity, provenance and release tags are recorded in [validation](VALIDATION.md).
67
+ T05 closeout measurements and decisions are recorded in ADR 027; T06 and T07 are implemented for the next candidate.
68
+ The consumer must migrate its framework adapter to the public core factory, then complete full
69
+ hydration and repeat reuse; upstream fixtures do not establish that result.
70
+
71
+ ## T10 — Correct implementation coverage reporting
72
+
73
+ The consumer reports code relationships accompanied by zero implementation coverage. Actual public
74
+ contract-extractor and SCIP reproductions confirm that exclusive display-group counts caused the
75
+ false gap. [ADR 024](ADR-024-implementation-coverage.md) separates coverage from presentation,
76
+ retains evidence authority and scopes absence to the returned page. Existing snapshots can be queried
77
+ with the fix without hydration or model work. The exact consumer package/output was requested;
78
+ the public reproduction does not claim a completed private consumer acceptance run.
79
+
80
+ The fix merged in [PR 40](https://github.com/jchewitt/weftlet/pull/40), with local publication checks
81
+ and hosted Ubuntu/native Windows validation. Exact evidence and release status are recorded in
82
+ [validation](VALIDATION.md). T05 performance/validation closeout
83
+ remains separate; this reporting correction does not activate document traversal in hydration.
84
+
85
+ ## T09 — Accept the approved ten-minute extraction timeout
86
+
87
+ Shipped in 0.5.0: `semantic.timeoutMs` accepts integers from 1 through 600000.
88
+ The default remains 120000; retry policy, cancellation,
89
+ authentication/discovery bounds and compatible artifact identities are unchanged. This is a
90
+ per-attempt Codex limit or whole-module-execution limit, not an overall hydration or CI timeout.
91
+
92
+ For recovery, upgrade both `@weftlet/core` and `@weftlet/toolkit` to 0.5.0,
93
+ set `semantic.timeoutMs: 600000`, and run `hydrate --plan` with the same committed ref and scope
94
+ as the interrupted run. Then rerun ordinary hydration, preserving compatible artifacts and
95
+ avoiding forced re-extraction. Follow [provider limits and reuse](PROVIDERS.md#limits-and-reuse).
96
+
97
+ Boundary, provider propagation, cancellation, cache reuse and packed/public-registry consumer checks passed;
98
+ release evidence is in [validation](VALIDATION.md). The consumer's approved ten-minute retry
99
+ has **not run**. No ten-minute wall-clock execution, paid/model call or private acceptance is
100
+ claimed by these deterministic upstream checks. T06/T07 are now implemented with publication
101
+ pending; T05 engineering evaluation is recorded separately in ADR 027.
54
102
 
55
103
  ## T08 — Resolve deterministic physical-file kind conflicts
56
104
 
@@ -64,12 +112,12 @@ routes physical-file producers through one policy, preserves strict SHACL/proven
64
112
  and distinguishes historical graph versions from current validation. Public tests include real
65
113
  SCIP and actual extractor composition, plus negative overlay validation without routing.
66
114
 
67
- Release requires local publication checks, hosted Ubuntu/Windows checks, reviewed archives and
68
- fresh installed-package verification. Consumer acceptance then requires the published packages
69
- plus its own framework adapter migration and composed Prisma/DI/decorator spec/test regressions,
70
- followed by full hydration and repeat reuse. Neither an upstream-only release nor a local-only
71
- adapter patch closes both ownership boundaries. Do not rewrite semantic caches or force model
72
- work to work around the proven deterministic defect.
115
+ The 0.4.0 release passed local publication checks, hosted Ubuntu/Windows checks, independent archive
116
+ review and fresh packed/public-registry installation. Consumer acceptance still requires the
117
+ published packages plus its own framework adapter migration and composed Prisma/DI/decorator
118
+ spec/test regressions, followed by full hydration and repeat reuse.
119
+ Neither an upstream-only release nor a local-only adapter patch closes both ownership boundaries.
120
+ Do not rewrite semantic caches or force model work to work around the proven deterministic defect.
73
121
 
74
122
  ## T01 — Resolve repository-document identity conflicts
75
123
 
@@ -110,7 +158,9 @@ Upstream completion evidence:
110
158
  [validation record](VALIDATION.md) for commits, checks and result boundaries.
111
159
 
112
160
  The private consumer has not yet supplied a successful full hydration/repeat with the identity
113
- patch. Use the current 0.3.0 release, which also includes the cold-validation improvement.
161
+ patch. Use both 0.5.0 packages and migrate the framework adapter
162
+ to the public core factory; this release retains the cold-validation/T08 fixes and adds T09
163
+ timeout support and T05a identity preflight/phase timing.
114
164
  Upstream publication and regression success do not close that acceptance gate or diagnose the
115
165
  separate full-graph validation latency observation.
116
166
 
@@ -126,9 +176,9 @@ Missing or unsupported-only selectors and bounded agent omissions remain visible
126
176
  incomplete plans need review and exit 1. They do not introduce new hydration gates that would
127
177
  break deletion of the last document. Budget, duplicate-ID and corrupt/unavailable cache errors
128
178
  block planning checks without truncating selected sources. An explicit empty source list selects
129
- none. Requested refs now govern agent scope; corrected snapshots use graph-v6 while valid 0.2.1
130
- semantic artifacts remain reusable. T03's operational cache changes and T07's traversal/default
131
- validation-document separation remain separate work.
179
+ none. Requested refs govern agent scope. Release 0.3.0 introduced graph-v6; 0.4.0 advances assembly
180
+ to graph-v7 for T08 while compatible semantic artifacts remain reusable. T03 operational cache
181
+ reuse shipped in 0.4.0; T07 traversal/default validation-document separation remains open.
132
182
 
133
183
  Acceptance:
134
184
 
@@ -143,8 +193,8 @@ Acceptance:
143
193
 
144
194
  ## T03 — Reuse valid artifacts after operational changes
145
195
 
146
- Merged in [PR 22](https://github.com/jchewitt/weftlet/pull/22) after 0.3.0, with local publication
147
- and hosted Ubuntu/Windows checks passing. This source checkpoint does not claim npm publication.
196
+ Shipped in 0.4.0 after merging [PR 22](https://github.com/jchewitt/weftlet/pull/22) and passing
197
+ local publication and hosted Ubuntu/Windows checks; release evidence is in [validation](VALIDATION.md).
148
198
  [ADR 018](ADR-018-operational-semantic-cache.md) separates built-in Codex user artifacts from
149
199
  full snapshot profiles. Timeout, retry, concurrency and document/byte limits can change without
150
200
  hiding completed artifacts. Model/policy/authentication descriptors and unknown fields remain
@@ -179,8 +229,8 @@ Acceptance:
179
229
 
180
230
  ## T04 — Explain timeouts and recovery
181
231
 
182
- Merged in [PR 25](https://github.com/jchewitt/weftlet/pull/25) after 0.3.0, with local publication
183
- and hosted Ubuntu/Windows checks passing. This development checkpoint does not claim npm publication.
232
+ Shipped in 0.4.0 after merging [PR 25](https://github.com/jchewitt/weftlet/pull/25) and passing
233
+ local publication and hosted Ubuntu/Windows checks; release evidence is in [validation](VALIDATION.md).
184
234
  [ADR 019](ADR-019-semantic-failure-diagnostics.md) records opaque source IDs and explicit local
185
235
  preview mapping, final counts after active workers settle, safe typed errors and recovery.
186
236
  Concurrent sibling cancellation preserves the initiating failure. Completed writes stay counted
@@ -205,17 +255,27 @@ Acceptance:
205
255
 
206
256
  ## T05 — Detect inexpensive conflicts early and explain validation work
207
257
 
258
+ T05a shipped [early identity attribution and phase timing](ADR-021-identity-preflight-and-validation-timing.md)
259
+ in 0.5.0 after local and hosted Ubuntu/Windows checks and independent archive review.
260
+ Hydration and overlays reject all conflicting subject/object kinds before RDF construction;
261
+ opaque default reports have explicit local detail opt-in.
262
+ Completed semantic artifacts and prior snapshots remain intact. Valid preflight results still
263
+ require full SHACL. Timings report actual phase boundaries, not in-phase heartbeat or percentage.
264
+ This does not close the broader evaluation/reuse/backend items below or establish the consumer's
265
+ full-run performance.
266
+
208
267
  The implementation uses JavaScript on Node:
209
268
  `rdf-validate-shacl` validates an in-memory N3 dataset. Hydration constructs and validates the
210
269
  entire assembled graph, including when semantic artifacts were reused. There is no persistent
211
270
  GraphDB backend or incremental validation. Querying a saved snapshot does not rerun SHACL.
212
271
 
213
- The maintainer reports that validation pushes the consumer's overall generation beyond its
272
+ The maintainer originally reported that validation pushed the consumer's overall generation beyond its
214
273
  30-minute timeout, preventing snapshot publication and making adoption unusable. That report made
215
274
  cold validation a release priority ahead of the remaining 1.0 work. Upstream has measured a specific
216
275
  named-graph lookup cost in public synthetic fixtures, but has not measured that consumer graph or
217
276
  diagnosed its complete timeout. The focused cold-validation fix shipped in 0.3.0, ahead of the
218
- remaining 1.0 tasks. Consumer acceptance remains pending; broader T05 items stay open.
277
+ remaining 1.0 tasks. The consumer is now reported working after 0.4.0; exact performance and
278
+ repeat-hydration acceptance evidence remains unrecorded. ADR 027 records the broader engineering evaluation.
219
279
 
220
280
  [ADR 017](ADR-017-shacl-validation-union.md) records the implemented cold-validation optimization:
221
281
  build a temporary union of every SPO triple for the same validator/shapes, while keeping original
@@ -226,15 +286,15 @@ took 0.467 seconds. A 10,000-fact unique-node union case used about 1.3 GiB proc
226
286
  are synthetic phase measurements, not a private consumer reproduction or end-to-end guarantee.
227
287
 
228
288
  The focused change still validates the whole graph each time. It does not add Rust, GraphDB,
229
- incremental validation or a validation-result cache. Early checks and broader observability/reuse
230
- remain follow-ups rather than reasons to delay the cold-path fix. Native code or a database does
289
+ incremental validation or a validation-result cache. T05a now adds early checks and phase timing;
290
+ worker progress and reuse remain unsupported, with the decision evaluated in ADR 027. Native code or a database does
231
291
  not by itself establish faster or correct incremental SHACL.
232
292
 
233
293
  Acceptance:
234
294
 
235
- - Early errors identify the conflicting identity/kinds and relevant evidence using the configured
236
- privacy policy. Preserve all underlying assertions for diagnosis; early checks are not a
237
- substitute for RDF/SHACL validation.
295
+ - Early errors identify the conflicting identity/kinds and relevant evidence through opaque
296
+ defaults and explicit local detail opt-in. Preserve all underlying assertions for diagnosis;
297
+ early checks are not a substitute for RDF/SHACL validation.
238
298
  - Report elapsed time and honest progress for long validation. Current phase boundaries remain
239
299
  the supported progress signal: the synchronous validator blocks same-thread timers. Evaluate
240
300
  bounded worker execution before promising an in-phase heartbeat or cancellation; never display
@@ -259,12 +319,27 @@ Acceptance:
259
319
  failure must preserve the prior snapshot. Keep model-independent profiling separate from live
260
320
  extraction performance and from the reported two-fact correctness defect.
261
321
 
322
+ The bounded closeout is recorded in [ADR 027](ADR-027-validation-closeout.md): 258 public
323
+ direct/worker cases cover cold/repeat/rebuilt and changed inputs; all 18 paired sample groups
324
+ match exact verdicts and data. Dense metadata and 10,000-fact memory measurements justified a
325
+ Rudof 0.3.35 evaluation: all 29 conformance/location cases agree, two diagnostic multiplicities
326
+ differ, and 12 native timings establish no clear overall file-transfer benefit. Retain direct full
327
+ validation. No cache, worker, incremental or native runtime capability is delivered. Exact-key
328
+ costs/misses and a changed-facts-only counterexample support the reuse/incremental decisions.
329
+ Consumer performance acceptance remains required; public fixtures do not silently replace it.
330
+
262
331
  ## T06 — Keep packaged documentation consistent with the release
263
332
 
264
- The consumer installed 0.2.0 while its packaged README still named 0.1.2 and some archive examples
265
- used 0.1.1. Release 0.2.1 removes the README version pins; immutable 0.2.0 archives retain their
266
- original text. The automated release-documentation consistency check remains open. Add that
267
- repeatable check rather than relying on manual edits alone.
333
+ Implemented after 0.5.0, with [ADR 022](ADR-022-release-documentation.md) defining the checked
334
+ scope. Changesets regenerates current-version sections in both READMEs and the release guide.
335
+ The dependency-free checker verifies source instructions and both actual tarballs before
336
+ publication; the fresh-consumer smoke exercises the checked pinned commands and archive pair
337
+ with an isolated npm/npx cache. Historical records and feature-introduction versions stay intact.
338
+ Source validation is recorded in [validation](VALIDATION.md); no new npm release is claimed here.
339
+
340
+ The original consumer installed 0.2.0 while its README still named 0.1.2 and some archive examples
341
+ used 0.1.1. Release 0.2.1 removed README version pins. T06 adds automation and replaces the release
342
+ guide's stale 0.2.1 current-install example. Immutable earlier archives retain their original text.
268
343
 
269
344
  Acceptance:
270
345
 
@@ -289,6 +364,39 @@ traversal. Classify sources/claims explicitly; flag rules without clear SOT owne
289
364
  their inferred/unreviewed state. Validation documents are excluded from product-intent extraction
290
365
  by default and retained through a separately classified validation-evidence path.
291
366
 
367
+ Delivery increments:
368
+
369
+ 1. **T07a implemented:** committed Markdown-link selection and an opt-in, no-model coverage preview: canonical targets,
370
+ cycles/deduplication, ambiguous or unresolved links, exclusions and explicit budget status.
371
+ Label this as prospective coverage until it drives hydration; existing hydration-plan documents
372
+ and cache estimates must continue to describe actual execution inputs. The current graph linker
373
+ also recognizes bare/code paths and is not itself a canonical traversal policy.
374
+ 2. **T07b merged with local/hosted checks and review passed:** explicit roles/ownership and separate
375
+ deterministic document presence/reference evidence. Optional per-fact metadata survives RDF,
376
+ query and viewer projection without changing canonical Document identities. Reaching an owner
377
+ does not approve a child or assertion; direct-source hydration remains unchanged.
378
+ 3. **T07c merged with local/hosted checks passed:** opt-in hydration integration, incremental artifact reuse and cross-source linkage, with
379
+ delete/rename handling and positive/negative real-extractor fixtures. Coverage failures stop
380
+ new model work without discarding completed artifacts or the last valid snapshot.
381
+
382
+ [ADR 023](ADR-023-document-coverage-preview.md) records the T07a public API and `documents plan`
383
+ command. Entry points, document roots and read limits are operation arguments, with existing
384
+ semantic budgets used only for comparison. No configuration/cache identity or hydration selection
385
+ is changed. [PR 38](https://github.com/jchewitt/weftlet/pull/38) merged T07a with hosted Ubuntu
386
+ and native Windows checks; exact source validation is recorded in [validation](VALIDATION.md).
387
+ No npm publication is claimed by implementation status.
388
+
389
+ [ADR 025](ADR-025-document-classification.md) records T07b's shared classification contract
390
+ and standalone deterministic document-evidence API. `documents plan --document-policy <json-file>`
391
+ reads an operation-time sidecar; it adds no hydration configuration. The top-level `ready` checks
392
+ traversal/budgets, while `classification.complete` independently reports role/ownership gaps.
393
+ A resolved owner must be available, approved and an unambiguous intent source; an approved
394
+ validation/plan/reference or ambiguous-role owner is ineligible. Neither ownership nor links
395
+ transfer approval. Presence and references retain validation documents even without semantic
396
+ artifacts or outgoing links, without asserting test success. T07c now invokes these APIs from explicitly configured hydration and overlays; validation
397
+ evidence is preserved separately from semantic source selection. [ADR 026](ADR-026-traversal-hydration.md)
398
+ records cache compatibility, coverage gates, draft invalidation and source/assertion authority.
399
+
292
400
  Acceptance:
293
401
 
294
402
  - Split delivery into canonical selection/traversal, role/ownership classification and semantic
@@ -333,5 +441,26 @@ Before calling the consumer migration accepted or publishing 1.0:
333
441
  5. Review the changelog, compatibility/migration guidance and remaining known issues, then use the
334
442
  normal reviewed version PR and trusted-publishing workflow. No 1.0 publication is claimed now.
335
443
 
444
+ For the reviewed minor candidate, retain a private consumer bundle and share only a sanitized
445
+ summary using the [consumer trial](CONSUMER-TRIAL.md):
446
+
447
+ - Record both package versions, consumer/adapter SHA, platform/provider/model, configuration and
448
+ source scope; verify the no-model plan's roles, ownership, exclusions and budgets match execution.
449
+ - Complete genuine full hydration and SHACL publication with the approved timeout, then repeat
450
+ unchanged inputs: zero new extraction, expected reuse and unchanged snapshot identity/content.
451
+ Record total and phase timing; the ten-minute extraction limit does not extend an outer job deadline.
452
+ - Retain actual MCP requests/responses and continuations for predeclared changes, including a queue
453
+ boundary. Review downstream consumers, contracts, implementations/tests and page-scoped coverage;
454
+ a display group or a missing returned fact must not be mistaken for complete repository coverage.
455
+ - Independently inspect citations and semantic usefulness: misses, irrelevant results, conflicting
456
+ claims, ownership gaps and misleading authority. Structural conformance is not a semantic-quality pass.
457
+ - Check browser interaction against the same JSON pack/snapshot using the
458
+ [browser checklist](ENVIRONMENT-VALIDATION.md#browser-run-through-browser-mcp); keep deferred or
459
+ untested environments explicit. Preserve saved queries and prior snapshots during a failed refresh.
460
+
461
+ Keep raw snapshots, artifacts, configuration and transcripts with the private consumer; do not
462
+ export credentials or private product content. Upstream fixtures and a published candidate do not
463
+ replace these consumer results or authorize an automatic 1.0 release.
464
+
336
465
  The patch's upstream pass is necessary but does not replace consumer acceptance. Track follow-up
337
466
  results without auditing or refactoring the source application's business logic from this repository.
package/docs/RELEASING.md CHANGED
@@ -41,14 +41,14 @@ preparation route; native Windows has focused CI coverage. See [validation](VALI
41
41
  need an npm release can omit a changeset.
42
42
  2. On main pushes, **Release version PR** opens or updates a bot PR. Core and toolkit are a fixed
43
43
  release group: a release of either advances both to the same version. The PR contains package
44
- versions, dependency/lockfile updates, changelogs, a generated `.changeset/release-plan.json`,
44
+ versions, dependency/lockfile updates, changelogs, generated current-version documentation, a `.changeset/release-plan.json`,
45
45
  and an updated extraction inventory. Original source hashes remain unchanged.
46
46
  3. Review the version PR and its checks, then merge it. This commits the versions to `main`
47
47
  **before** npm publication. Do not manually bump manifests or edit the generated plan.
48
48
  4. The plan change triggers **Weftlet release**. It validates and prepares both archives, publishes
49
49
  core followed by toolkit using npm trusted publishing, then verifies registry integrity.
50
- 5. After both versions are verified, a separate job creates tags such as `@weftlet/core@0.2.1`
51
- and `@weftlet/toolkit@0.2.1`, plus corresponding GitHub Releases, at that exact source commit.
50
+ 5. After both versions are verified, a separate job creates package-specific version tags
51
+ and corresponding GitHub Releases at that exact source commit.
52
52
  Existing tags are never moved. The publication job does not commit back to main.
53
53
 
54
54
  The bot uses GitHub's built-in token, not a personal access token. GitHub may require Settings →
@@ -95,7 +95,7 @@ pnpm install --frozen-lockfile
95
95
  pnpm context-graph:publication-check
96
96
  ```
97
97
 
98
- It runs build, deterministic tests, architecture, inventory, licenses and a fresh packed-consumer
98
+ It runs release-documentation checks, build, deterministic tests, architecture, inventory, licenses and a fresh packed-consumer
99
99
  smoke. The smoke exercises setup/config, automatic core installation, real TypeScript SCIP,
100
100
  RDF/SHACL, visualization and MCP. No live model or public npm upload is invoked.
101
101
 
@@ -104,6 +104,8 @@ resolves workspace ranges, dry-runs unpublished versions and records source comm
104
104
  SHA-512 integrity in `.release/manifest.json`. Review the manifest, tarball file lists and extraction
105
105
  inventory. Preparation refuses pending changesets and stale release plans. It requires a clean
106
106
  checkout. An existing npm version must match exactly; different bytes stop the release.
107
+ Both actual archives must also pass the documentation checks before preparation completes and
108
+ again before publication starts.
107
109
 
108
110
  Actions → **Weftlet release** → **Run workflow** remains available on main. Leave **publish**
109
111
  unchecked for preparation only, or select it for an intentional release of the committed plan.
@@ -118,6 +120,31 @@ tokens are rejected and npm configuration is isolated. `npm whoami` is skipped b
118
120
  validate trusted publishing. npm verifies the identity and creates provenance. There is no token
119
121
  fallback. JavaScript pnpm and standalone `@pnpm/exe` are supported for local tooling.
120
122
 
123
+ ## Keeping installation documentation current
124
+
125
+ The manifests own versions for this checkout/archive; registry publication is a separate fact.
126
+ Changesets versioning regenerates the sections between `weftlet:release:start` and
127
+ `weftlet:release:end` in both package READMEs and this guide. Do not edit those sections by hand.
128
+ To check them or regenerate after a deliberate template change:
129
+
130
+ ```sh
131
+ pnpm docs:release:check
132
+ pnpm docs:release:update
133
+ pnpm inventory:update
134
+ ```
135
+
136
+ The checker also covers active installation examples in these files, the migration guide and
137
+ the consumer-trial guide. Keep current explicit pins in sync; unpinned setup remains supported.
138
+ An intentionally historical installation example uses a fenced block with info
139
+ `sh weftlet-history` and explanatory historical prose. Feature-introduction versions and
140
+ validation/changelog history do not become current version requirements.
141
+
142
+ The publication gate checks actual packed manifests and documentation, including required
143
+ documents and the toolkit/core version relationship. Its fresh-consumer smoke installs the
144
+ documented archive pair and runs checked setup/validation argument arrays; Markdown is never
145
+ executed as shell code. See [ADR 022](ADR-022-release-documentation.md) for the checked scope
146
+ and limits. This does not establish that a prepared version is already on npm.
147
+
121
148
  ## Delayed visibility and failed releases
122
149
 
123
150
  Publication is sequential, not atomic across packages. Registry visibility and integrity of core
@@ -157,7 +184,8 @@ record job is the normal route.
157
184
 
158
185
  ## Inspecting and consuming releases
159
186
 
160
- Package-specific tags identify the exact published source, for example:
187
+ Package-specific tags identify the exact published source. This historical inspection example
188
+ selects the earlier 0.2.1 release:
161
189
 
162
190
  ```sh
163
191
  git fetch --tags
@@ -167,13 +195,23 @@ git switch --detach '@weftlet/toolkit@0.2.1'
167
195
  Tags support inspection and reproduction, not mutation of npm history. To roll a consumer back,
168
196
  install an earlier published version; fixes to a release need a new changeset/version.
169
197
 
170
- Verify a new public release in a fresh disposable project, substituting its version:
198
+ <!-- weftlet:release:start -->
199
+ These instructions use the package versions in this checkout/archive, not a claim about npm's latest tag.
200
+
201
+ Verify the matching public version in a fresh disposable project after publication:
171
202
 
172
203
  ```sh
173
204
  npm init -y
174
- npx --yes @weftlet/toolkit@0.2.1 init --yes
175
- npx --yes @weftlet/toolkit@0.2.1 config validate
205
+ npx --yes @weftlet/toolkit@0.6.0 init --yes
206
+ npx --yes @weftlet/toolkit@0.6.0 config validate
207
+ ```
208
+
209
+ For local installation, use both prepared archives from the same reviewed release:
210
+
211
+ ```sh
212
+ npm install --save-dev "/path/to/weftlet/.release/weftlet-core-0.6.0.tgz" "/path/to/weftlet/.release/weftlet-toolkit-0.6.0.tgz"
176
213
  ```
214
+ <!-- weftlet:release:end -->
177
215
 
178
216
  Check registry hashes, transitive core resolution and provenance. Deprecating the previous
179
217
  `@launch-echo` names is a separate action after replacement verification; never unpublish them.
package/docs/ROADMAP.md CHANGED
@@ -1,21 +1,47 @@
1
1
  # Delivery roadmap
2
2
 
3
- Release checkpoint: 2026-10-26, after verified 0.3.0 publication. Evidence is recorded in
4
- [validation](VALIDATION.md); this roadmap is not a live registry status.
3
+ Release checkpoint: 2026-10-27, after verified 0.5.0 publication.
4
+ Evidence is recorded in [validation](VALIDATION.md); this roadmap is not a live registry status.
5
5
 
6
6
  Project: `jchewitt/weftlet`. Extraction provenance is recorded in the
7
7
  [source inventory](SOURCE-INVENTORY.md).
8
8
 
9
+ T09 shipped in 0.5.0 with T05a work, accepting the consumer's approved
10
+ `semantic.timeoutMs: 600000`. The default remains 120000 and retry/cancellation behavior is
11
+ unchanged. The consumer's actual ten-minute retry has not run; upstream installation and
12
+ deterministic checks do not establish that outcome. See [provider limits and recovery](PROVIDERS.md#limits-and-reuse).
13
+
9
14
  Forward direction is captured in the [Weftlet 2.0 product plan](WEFTLET-2.0-PLAN.md):
10
15
  consumer hardening, cited code-derived drafts, scoped approvals and reconciliation, an optional
11
16
  review website, source publication, managed AI and guided setup. “2.0” is a planning label;
12
- the verified release at this checkpoint is 0.3.0. The received consumer findings are tracked in the
17
+ the verified release at this checkpoint is 0.5.0. The received consumer findings are tracked in the
13
18
  [consumer hardening and 1.0 task list](RELEASE-1.0-PLAN.md): the document-identity patch is
14
19
  published and passes upstream checks; genuine consumer acceptance remains pending. T02's
15
- no-model preview and T05's cold-validation improvement shipped in 0.3.0. Operational cache reuse
16
- and timeout diagnostics are development increments; document coverage and other acceptance work
17
- remain open before official 1.0.
18
- The 2.0 plan distinguishes proposed work from delivered capability.
20
+ no-model preview and T05's cold-validation improvement shipped in 0.3.0. T03 operational cache
21
+ reuse, T04 timeout diagnostics and T08 deterministic physical-file consistency shipped in 0.4.0.
22
+ T09 timeout support and T05a identity preflight/phase timing shipped in 0.5.0.
23
+ T06 [release-documentation consistency](ADR-022-release-documentation.md) is implemented for the
24
+ next release: generated current examples, actual archive checks and fresh documented installation.
25
+ T07a [prospective document coverage](ADR-023-document-coverage-preview.md) is implemented separately
26
+ from hydration. It follows committed Markdown links and reports coverage/budget gaps without
27
+ model calls or graph writes. T07b [document roles and ownership](ADR-025-document-classification.md)
28
+ and the standalone deterministic document-evidence API merged in PR 42 after local/hosted checks
29
+ and independent review. `documents plan --document-policy` accepts an operation-time JSON sidecar;
30
+ classification completeness is separate from traversal/budget readiness. Ownership never transfers
31
+ approval. T07c [traversal hydration](ADR-026-traversal-hydration.md) connects these APIs through
32
+ explicit configuration, a shared no-model plan, compatible artifact reuse and draft invalidation.
33
+ Direct-mode configuration retains its existing behavior; validation sources are excluded from
34
+ model work in traversal mode. T07c merged in PR 44 after local and hosted Ubuntu/Windows checks;
35
+ exact evidence is in [validation](VALIDATION.md). npm publication remains pending.
36
+ T10 [implementation coverage reporting](ADR-024-implementation-coverage.md) is merged for the next
37
+ release: actual code relationships can count as both contract and implementation evidence while
38
+ display groups remain stable. Existing snapshots benefit without hydration; gaps are page-scoped.
39
+ T05 [performance/validation closeout](ADR-027-validation-closeout.md) records the remaining
40
+ engineering evaluations: cold/repeat/changed inputs, worker isolation, exact-result reuse,
41
+ incremental dependencies and a bounded Rust comparison. Retain full direct validation; no worker,
42
+ cache, incremental or native runtime capability is claimed. Complete source/release checks, publish
43
+ a reviewed minor candidate, validate it in TradePilot, then review official 1.0. The candidate and consumer/final release gates remain
44
+ separate acceptance work; the 2.0 plan remains a separate future direction.
19
45
 
20
46
  The maintainer reported SHACL pushing generation past a 30-minute timeout before graph
21
47
  publication. T02 and the focused T05 optimization shipped together in 0.3.0 through
@@ -32,25 +58,30 @@ in one temporary validation graph, preserving the same shapes and canonical name
32
58
  Bounded public experiments measured substantial cold-path improvement, alongside about 1.3 GiB
33
59
  RSS in the prototype at 10,000 unique-node facts; the production harness including serialization
34
60
  peaked near 1.6 GiB. They do not reproduce the private consumer's overall timeout.
35
- Early checks, in-phase progress, result reuse and incremental validation remain open; no Rust
36
- engine, graph database or validation-result cache is introduced by this focused release.
37
-
38
- [T03 operational cache reuse](ADR-018-operational-semantic-cache.md) is merged with local and
39
- hosted checks passing and is not part of published 0.3.0. Built-in Codex user
40
- artifacts can survive changes to timeout/retry/concurrency/document/byte limits while snapshots
41
- retain their full configuration identity. Exact legacy reads and explicit no-model adoption
42
- preserve prior artifacts; custom providers remain conservative.
43
- [T04 diagnostics](ADR-019-semantic-failure-diagnostics.md) add safe failure reports, opaque source
44
- mapping and accurate settled progress without changing extraction/cache identity. T04 is merged
45
- with local and hosted Ubuntu/Windows checks passing; release remains pending. Broader T05 and
46
- T06/T07 work remain open.
47
-
48
- A subsequent 0.3.0 consumer report makes [T08 physical-file kind consistency](ADR-020-canonical-physical-file-producers.md)
49
- the next release priority. Its neutral contract consumer fix and public core factory are merged
50
- with deterministic producer adoption, version guards and passing local/hosted Ubuntu/Windows
51
- checks. Publication is pending; the consumer's framework adapter migration and full acceptance
52
- remain consumer-owned.
53
- This fix preserves semantic artifacts and does not reinterpret model assertions to hide conflicts.
61
+ T05a shipped [early identity checks and phase timing](ADR-021-identity-preflight-and-validation-timing.md)
62
+ in 0.5.0 after local/hosted checks and independent archive review. Full validation remains mandatory.
63
+ In-phase worker progress, result reuse and incremental validation remain unsupported. ADR 027
64
+ records 258 direct/worker cases and 29 native correctness cases, with full graph/data preservation.
65
+ The Rust file-transfer prototype showed no clear overall performance/resource advantage and
66
+ differed on diagnostic multiplicity in two cases. Full direct validation remains the evaluated
67
+ choice; private consumer performance acceptance remains required. No Rust engine, graph database
68
+ or validation-result cache is introduced into the runtime.
69
+
70
+ [T03 operational cache reuse](ADR-018-operational-semantic-cache.md) shipped in 0.4.0. Built-in
71
+ Codex user artifacts can survive changes to timeout/retry/concurrency/document/byte limits while
72
+ snapshots retain their full configuration identity. Exact legacy reads and explicit no-model
73
+ adoption preserve prior artifacts; custom providers remain conservative.
74
+ [T04 diagnostics](ADR-019-semantic-failure-diagnostics.md) shipped in the same release, adding
75
+ safe failure reports, opaque source mapping and settled progress without changing extraction/cache
76
+ identity. T05 engineering evaluation is recorded; T06 and T07 implementation are pending candidate publication.
77
+
78
+ [T08 physical-file kind consistency](ADR-020-canonical-physical-file-producers.md) also shipped in
79
+ 0.4.0 after local/hosted Ubuntu/Windows checks, independent archive review and fresh packed and
80
+ public-registry installation. The public core factory and deterministic producers share one policy
81
+ under strict SHACL. Historical snapshots remain queryable, with version guards for current validation.
82
+ On 2026-10-27 the maintainer reported the consumer updated and working; exact adapter and full
83
+ hydration/repeat evidence remain unrecorded. This fix preserves semantic artifacts and
84
+ does not reinterpret model assertions to hide conflicts.
54
85
 
55
86
  | Milestone | Delivered and checked | Remaining limits |
56
87
  | --- | --- | --- |
@@ -138,8 +169,8 @@ preparation/publication under `@launch-echo`; the maintainer completed the 0.1.0
138
169
  source-application reintegration remain outside the authorized scope. See [release instructions](RELEASING.md).
139
170
 
140
171
  The maintainer authorized the Weftlet migration on 2026-10-21. Both `@weftlet/core` and
141
- `@weftlet/toolkit` are published at 0.3.0 through GitHub OIDC; the publication and verification
142
- record is in [validation](VALIDATION.md). Changesets prepares reviewed version PRs for the fixed package group;
172
+ `@weftlet/toolkit` use GitHub OIDC publication; current and historical publication/verification
173
+ records are in [validation](VALIDATION.md). Changesets prepares reviewed version PRs for the fixed package group;
143
174
  merging a release plan triggers publication and package-specific tags/GitHub Releases.
144
175
  See [ADR 009](ADR-009-release-automation.md) and [release instructions](RELEASING.md).
145
176
  Earlier Tently packages remain available and undeprecated.