@weftlet/toolkit 0.5.0 → 0.6.1

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 (82) hide show
  1. package/README.md +139 -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.js +26 -14
  15. package/dist/application/overlay.js +26 -8
  16. package/dist/application/saved-evidence.d.ts +2 -2
  17. package/dist/application/semantic-scope.d.ts +1 -1
  18. package/dist/application/semantic-scope.js +2 -2
  19. package/dist/configuration/cache.js +13 -1
  20. package/dist/configuration/config.d.ts +2 -0
  21. package/dist/configuration/config.js +5 -0
  22. package/dist/configuration/document-traversal.d.ts +7 -0
  23. package/dist/configuration/document-traversal.js +13 -0
  24. package/dist/extraction/canonical-document-links.d.ts +28 -0
  25. package/dist/extraction/canonical-document-links.js +95 -0
  26. package/dist/extraction/document-classification.d.ts +44 -0
  27. package/dist/extraction/document-classification.js +161 -0
  28. package/dist/extraction/document-evidence.d.ts +21 -0
  29. package/dist/extraction/document-evidence.js +83 -0
  30. package/dist/extraction/document-traversal.d.ts +76 -0
  31. package/dist/extraction/document-traversal.js +210 -0
  32. package/dist/extraction/document.d.ts +3 -1
  33. package/dist/extraction/document.js +3 -1
  34. package/dist/extraction/ontology.js +2 -2
  35. package/dist/extraction/static.js +25 -20
  36. package/dist/graph/authority.js +3 -0
  37. package/dist/graph/coverage.d.ts +8 -0
  38. package/dist/graph/coverage.js +96 -0
  39. package/dist/graph/document-role-description.d.ts +5 -0
  40. package/dist/graph/document-role-description.js +18 -0
  41. package/dist/graph/query.d.ts +2 -2
  42. package/dist/graph/query.js +22 -62
  43. package/dist/graph/rdf.js +11 -0
  44. package/dist/graph/shacl-shapes.js +26 -0
  45. package/dist/index.d.ts +5 -0
  46. package/dist/index.js +4 -0
  47. package/dist/infrastructure/artifact-paths.d.ts +4 -0
  48. package/dist/infrastructure/artifact-paths.js +14 -0
  49. package/dist/interfaces/cli.js +18 -1
  50. package/dist/interfaces/document-coverage.d.ts +9 -0
  51. package/dist/interfaces/document-coverage.js +117 -0
  52. package/dist/repository/git.d.ts +11 -0
  53. package/dist/repository/git.js +38 -0
  54. package/dist/storage/storage.js +41 -13
  55. package/dist/visualization/visualization.js +21 -6
  56. package/docs/ADR-017-shacl-validation-union.md +4 -0
  57. package/docs/ADR-021-identity-preflight-and-validation-timing.md +5 -2
  58. package/docs/ADR-022-release-documentation.md +44 -0
  59. package/docs/ADR-023-document-coverage-preview.md +64 -0
  60. package/docs/ADR-024-implementation-coverage.md +51 -0
  61. package/docs/ADR-025-document-classification.md +78 -0
  62. package/docs/ADR-026-traversal-hydration.md +94 -0
  63. package/docs/ADR-027-validation-closeout.md +155 -0
  64. package/docs/ADR-028-bounded-artifact-paths.md +58 -0
  65. package/docs/CONSUMER-TRIAL.md +7 -5
  66. package/docs/GRAPHIFY-EVALUATION.md +70 -0
  67. package/docs/MIGRATING-TO-WEFTLET.md +1 -1
  68. package/docs/PRE-1.0-BASELINE.md +94 -0
  69. package/docs/PROVIDERS.md +10 -1
  70. package/docs/RELEASE-1.0-PLAN.md +145 -23
  71. package/docs/RELEASING.md +46 -8
  72. package/docs/ROADMAP.md +48 -16
  73. package/docs/VALIDATION.md +390 -0
  74. package/docs/assessments/pre-1.0-2026-10-28.json +200 -0
  75. package/docs/benchmarks/validation-2026-10-28/README.md +25 -0
  76. package/docs/benchmarks/validation-2026-10-28/large.json +1 -0
  77. package/docs/benchmarks/validation-2026-10-28/lifecycle.json +1 -0
  78. package/docs/benchmarks/validation-2026-10-28/native.json +1 -0
  79. package/docs/benchmarks/validation-2026-10-28/rich.json +1 -0
  80. package/docs/extraction-manifest.json +78 -20
  81. package/examples/generic-typescript/document-policy.json +9 -0
  82. package/package.json +7 -4
@@ -8,6 +8,396 @@ The milestone entries below record the original cloud checks. Subsequent
8
8
  establishes live Codex success on Windows and the full deterministic checks on WSL,
9
9
  while identifying remaining native Windows issues.
10
10
 
11
+ ## Physical artifact filename fix, 2026-10-28
12
+
13
+ The consumer requested bounded physical artifact/temp names while retaining logical snapshot
14
+ identity and provenance. [ADR 028](ADR-028-bounded-artifact-paths.md) records the fix and migration
15
+ boundary. The public traversal → unchanged repeat → clean-comparison regression reproduced an
16
+ overlong SCIP staging basename before the change and passes locally after it. Physical names are
17
+ bounded; full IDs, cited facts, cache keys and content digests remain unchanged. Legacy saved files
18
+ remain readable and immutable. The same traversal test and added storage cases run in native
19
+ Windows CI. Local release checks passed: build, 698 deterministic tests (17 core + 681 toolkit;
20
+ one optional OML integration skipped), architecture with 14 advisory findings, inventory,
21
+ licenses and fresh packed-consumer smoke. Hosted outcomes and patch publication are pending
22
+ at this source revision.
23
+
24
+ This is a focused consumer blocker ahead of [B1–B6](PRE-1.0-BASELINE.md). No private consumer
25
+ rerun, paid/model work or live optional OML compilation is claimed.
26
+
27
+ ## Business-context baseline assessment, 2026-10-28
28
+
29
+ The maintainer requested checks for business relationships across asynchronous/stored-data
30
+ boundaries, progressive agent exploration and multiple service/client projects in a monorepo.
31
+ [The assessment and new task list](PRE-1.0-BASELINE.md) explicitly extend the original T01–T10
32
+ scope; the historical completion statements below concern that original list.
33
+
34
+ Against unchanged runtime at `9b4acffe1c4d35f9fd2f91132c576f8934658677`, 24 existing focused
35
+ tests and three new public acceptance tests pass on Linux, Node 24.19.0 / pnpm 10.18.2.
36
+ [Recorded results](assessments/pre-1.0-2026-10-28.json) identify test files, cases, source hashes
37
+ and commands. The new fixture uses real Git, SCIP, semantic-provider plumbing, RDF/SHACL and
38
+ the application/MCP facade. Its small deterministic prose parser is not a live model.
39
+
40
+ The control already reads the two disconnected services' documents. Adding only a documented
41
+ stored-data handoff makes downstream implementations and tests reachable while retaining both
42
+ freshness rules and excluding a same-label unrelated domain. One changed document is extracted,
43
+ four are reused; the next repeat reuses all five with unchanged identity/content. Small result
44
+ pages exhaust to the larger scan exactly; focused follow-up works and depth truncation stays
45
+ explicit. Workspace aliases resolve a shared re-exported contract across API and TSX files.
46
+
47
+ These are mechanism passes. They do not establish actual broker/database delivery, automatic
48
+ rule compatibility or function binding, autonomous-agent usefulness, Expo/service builds, live
49
+ semantic quality or private TradePilot acceptance. Exact-node exploration remains open.
50
+ Graphify source/document review is pinned in [the evaluation note](GRAPHIFY-EVALUATION.md);
51
+ no comparative benchmark, new runtime dependency or backend replacement is claimed.
52
+
53
+ ## Published 0.6.0 acceptance candidate, 2026-10-28
54
+
55
+ Both `@weftlet/core@0.6.0` and `@weftlet/toolkit@0.6.0` are published and were verified as
56
+ the registry `latest` versions. [Release PR 36](https://github.com/jchewitt/weftlet/pull/36)
57
+ merged at `b4c808b9221c5c82f9f7326a310e966d1fee2888`; package versions were committed to main
58
+ before publication. [Release run 40742010093](https://github.com/jchewitt/weftlet/actions/runs/40742010093)
59
+ completed preparation, both trusted npm uploads and GitHub release records on its first attempt.
60
+ No npm token was supplied to this cloud. Public provenance statements and both package-specific
61
+ Git tags identify that exact source commit; both GitHub Releases exist.
62
+
63
+ The version PR's exact head `944b66a7ac9d119b650b7341dc982e12ea45a75b` passed
64
+ [hosted Ubuntu and Windows checks](https://github.com/jchewitt/weftlet/actions/runs/40715307427).
65
+ Frozen local installation/build, package preparation and dry runs passed before merging. Reviewed
66
+ exports contain 13 files in core and 252 in toolkit, including applicable license notices and no
67
+ source history, credentials, caches or native benchmark binary. All 79 original source path/hash
68
+ pairs remain intact. Downloaded public npm archives match the reviewed local archives and the
69
+ workflow's prepared archives byte for byte:
70
+
71
+ | Package | Verified SHA-512 integrity |
72
+ | --- | --- |
73
+ | `@weftlet/core@0.6.0` | `sha512-2o2WO4DyhudgcsGQ//j0mXfXBvyqBHoYPnI52ZiqZSr5qqjCayw7njsRqCxOEIL6dseUYoICsnlkSYrRSDHKKw==` |
74
+ | `@weftlet/toolkit@0.6.0` | `sha512-d7Q9gNdpwWUdkJLhGtY6xpi+gfg3CsLM5BqJqmVH9xgNwtc5e5kDpTwMSv4jq/+gybiXbQOOSsI7x7c+m1W1xA==` |
75
+
76
+ A fresh public-registry consumer on Linux / Node 24.19.0 installed both exact versions, ran the
77
+ documented npx initialization and config validation, imported public APIs, checked canonical file
78
+ nodes, lossless RDF projection, SPARQL and positive/negative strict SHACL, and initialized MCP.
79
+ `impact.scan` discovery and honest missing-snapshot reporting passed without model calls. This
80
+ registry smoke is separate from the release gate's full deterministic/packed-consumer checks;
81
+ neither is a private TradePilot hydration, live model-quality evaluation or browser interaction.
82
+
83
+ T06, T07 and T10 are now available in the published candidate, alongside the T05 evaluation and
84
+ earlier fixes. The planned 1.0 engineering work is complete. TradePilot should use these published
85
+ versions for the [consumer acceptance checklist](RELEASE-1.0-PLAN.md#official-10-acceptance);
86
+ official 1.0 remains conditional on that acceptance and any resulting blocker fixes. Previously
87
+ tentative browser/live-auth work remains explicitly separate. No 1.0 release is claimed.
88
+
89
+ ## T05 validation closeout, 2026-10-28
90
+
91
+ [ADR 027](ADR-027-validation-closeout.md) records the engineering decision to retain full direct
92
+ validation after public cold/repeat/changed-input, worker, exact-key, incremental-dependency and
93
+ Rust evaluations. No runtime validation code, shapes, policy, baseline, cache identity or production
94
+ dependency changed. No assertion/provenance/authority was dropped or promoted. All 79 original
95
+ source path/hash pairs are intact. The original 23-case SHACL corpus is shared with the optional
96
+ native probe; its original named-dataset equivalence assertions still pass.
97
+
98
+ [Raw reports](benchmarks/validation-2026-10-28/README.md) record 258 completed direct/worker cases
99
+ and 18 paired sample groups with identical verdicts/canonical input. Three-sample cold direct
100
+ medians at 10,000 facts are 2.86 seconds for unique identities and 5.67 seconds for dense source
101
+ metadata. Direct whole-process peak RSS reached 1.72 GiB; one worker case reached 2.99 GiB.
102
+ These are public fixture measurements, not private consumer performance or capacity guarantees.
103
+ The actual six-stage public extraction uses an offline runner through the Codex adapter and real
104
+ SCIP; all six semantic sources are reused on repeat. Prototype cancellation returns no accepted
105
+ verdict and attempts no publication. Exact-key costs/misses and a changed-facts-only false pass
106
+ support the decisions to keep full validation without introducing receipts or incrementality.
107
+
108
+ Rudof 0.3.35, Apache-2.0, was evaluated from its checksum-verified official Linux GNU binary
109
+ outside the repository. All 29 conformance/location cases agree; diagnostic counts differ on two
110
+ malformed citation cases, retained explicitly in the report. All 12 native timing cases complete,
111
+ with no clear overall file-transfer performance/resource benefit. The probe deliberately exits 1
112
+ for the diagnostic mismatch; it is not a passed replacement-equivalence gate. It is optional
113
+ development tooling, with no native binary download or dependency in package/CI installation.
114
+
115
+ The local build and **691 deterministic tests** (17 core + 674 toolkit), one optional OML skip,
116
+ architecture (14 advisory findings), inventory, licenses, release-documentation and fresh packed
117
+ npm/npx/consumer smoke all passed. Hosted Ubuntu also passed at `10082e2` in the
118
+ [push run](https://github.com/jchewitt/weftlet/actions/runs/40710918759) and
119
+ [PR run](https://github.com/jchewitt/weftlet/actions/runs/40710994196). Initial native Windows
120
+ checks passed the existing 561 tests but could not import the new benchmark: CRLF conversion of
121
+ its shebang triggered a Vitest syntax error. The same CRLF failure was reproduced locally;
122
+ removing the unnecessary shebangs from these Node-invoked scripts made all six study tests pass
123
+ with CRLF content. A final harness correction also preserves the extractor's original content
124
+ digest during timestamp-only scenarios. Those six checks pass locally. Corrected-head hosted
125
+ outcomes are tracked in [PR 46](https://github.com/jchewitt/weftlet/pull/46/checks).
126
+ No paid/live model, private TradePilot run, browser interaction, fresh-cloud restoration, npm upload
127
+ or official 1.0 acceptance is claimed. The next gate is the reviewed minor candidate, then genuine
128
+ consumer hydration/repeat acceptance and the separate official 1.0 release decision.
129
+
130
+ ## T07c traversal hydration, 2026-10-28
131
+
132
+ [ADR 026](ADR-026-traversal-hydration.md) connects canonical coverage and source classification to
133
+ opt-in `documentTraversal` hydration, its no-model plan, cache adoption and draft overlays.
134
+ Direct configurations retain their existing selection and identity. Validation sources receive
135
+ presence/reference evidence without model extraction. Coverage/read-limit/role-ambiguity and
136
+ semantic-budget failures stop new model work while retaining previous evidence. Ownership gaps
137
+ remain explicit diagnostics; neither source classification nor owner mappings approve assertions.
138
+
139
+ The local publication gate passed **685 deterministic tests** (17 core, 668 toolkit), including
140
+ 11 added regressions, and one optional OML skip. Inventory, licenses, release documentation and
141
+ fresh npm/npx/packed-consumer checks passed. Final small cache-adoption/read-limit-reporting edits
142
+ were followed by a rebuilt toolkit, all 32 affected integration/cache-adoption/CLI tests, governance
143
+ and inventory checks; the installed-package smoke was repeated against that rebuild. Governance
144
+ reports 14 advisory findings at existing finding locations, including the prior fixture-setup
145
+ clone signal. No architecture policy, baseline or exception was changed. All 79 original source
146
+ path/hash pairs are preserved.
147
+
148
+ Public tests use the unchanged Codex adapter with an offline prose parser through its real prompt,
149
+ JSON and citation checks, plus real SCIP, strict SHACL and lossless RDF projection. The six-stage
150
+ queue-boundary pipeline reaches downstream implementation/tests. An unchanged repeat reuses all
151
+ six eligible semantic sources, with identical snapshot identity and content digest; two validation
152
+ documents remain in the graph. Other regressions cover Codex activation/policy reuse without
153
+ artifact rewriting, actual module-provider isolation/reuse in workspace and user storage,
154
+ rename/delete/reachability, changed owners, incomplete draft coverage, saved-history queries and
155
+ current-diff rejection. Installed CLI hydration/query/repeat tests use a deterministic module,
156
+ real indexing and packaged assets; a blocked refresh preserves the committed head.
157
+
158
+ The chat's managed executor disconnected during development and later reconnected with the
159
+ uncommitted work intact. This is recovery of this workspace, not a fresh-cloud restoration test.
160
+ No live/paid model request, browser interaction, private TradePilot acceptance or npm publication
161
+ is claimed. [PR 44](https://github.com/jchewitt/weftlet/pull/44) merged at
162
+ `b44053f08e4342ec1502046acc5b85a0efd08ea1`. Exact feature head
163
+ `fd89410108e7be75524b54a4e02d53459afbcd20` passed both the
164
+ [push run](https://github.com/jchewitt/weftlet/actions/runs/40690845708) and the
165
+ [PR run](https://github.com/jchewitt/weftlet/actions/runs/40690905937). Hosted Ubuntu passed
166
+ all 685 deterministic tests and the full publication gate; native Windows passed all 561 selected
167
+ tests, inventory and licenses, including all new traversal hydration regressions. These are source
168
+ validation results, not a new npm release. Release PR 36 remains unmerged.
169
+ T05 performance/validation closeout remains the next engineering workstream, followed by the
170
+ reviewed minor candidate, consumer acceptance and the separate official 1.0 decision.
171
+
172
+ ## T07b document classification and evidence, 2026-10-27
173
+
174
+ [ADR 025](ADR-025-document-classification.md) records explicit document roles and SOT owner
175
+ mappings, the operation-level `documents plan --document-policy` input, and the public deterministic
176
+ document-evidence extractor. These are prospective APIs: current hydration selection, semantic
177
+ artifacts, configuration/extractor/assembly identities and historical snapshots remain unchanged.
178
+ Traversal-driven hydration and default validation-document separation remain T07c.
179
+
180
+ Public fixtures exercise real committed document/file extraction, empty validation documents,
181
+ reference definition/use citations, approved validation reports, unapproved owned plans, ambiguous
182
+ roles/owners, scope changes, renames/deletes and historical re-extraction. Presence and reference
183
+ facts remain inferred structural evidence; neither written “PASS” text nor an owner mapping creates
184
+ test-success evidence or approved assertions. Strict SHACL, exact RDF/SPARQL projection, API/MCP,
185
+ Markdown and HTML/SVG/DOT preserve per-fact roles, policy identity, ownership and provenance.
186
+
187
+ Preview and extraction checks use unavailable provider/adapter sentinels and retain source bytes,
188
+ Git index, hydration plans and seeded cache artifacts. Classification gaps are separate from the
189
+ preview's traversal/budget `ready` field. Independent review found that an approved validation
190
+ document must be ineligible as an intent owner, and that a frontier exceeding 10,000 discovered
191
+ documents must survive the classifier's per-call bound; both have focused regressions.
192
+
193
+ Local `pnpm context-graph:publication-check` passed: **674 deterministic tests** (17 core,
194
+ 657 toolkit), including 111 new regressions, and one optional OML skip. Release documentation,
195
+ inventory, licenses and fresh packed-consumer checks passed, including the new public policy and
196
+ document-evidence APIs, installed CLI policy loading, real SCIP, RDF/SHACL, rendering and MCP.
197
+ All 79 original source path/hash pairs are intact. Architecture checks passed with 14 advisories:
198
+ 13 existing findings and one new clone signal for independent Git test-fixture setup. Review found
199
+ shared setup mechanics, not duplicated product rules; no policy, debt baseline or exception changed.
200
+ Independent review found no remaining blocker after the two corrections above.
201
+
202
+ [PR 42](https://github.com/jchewitt/weftlet/pull/42) merged at
203
+ `6c59746118c910d850427c5c6c48e8b52eefcad7`. Exact feature head
204
+ `72f554cb9accd32b4b992581d06c685f7e5c0e54` passed hosted Ubuntu/native Windows in
205
+ [run 40557348341](https://github.com/jchewitt/weftlet/actions/runs/40557348341) and the
206
+ [independent PR run](https://github.com/jchewitt/weftlet/actions/runs/40557375964).
207
+ Ubuntu passed all 674 deterministic tests and the full publication gate. Windows passed all
208
+ 550 selected tests, inventory and licenses, including every new document-classification regression.
209
+
210
+ The first push-run Windows attempt passed 549/550 tests but hit the existing 60-second timeout
211
+ in the routing overlay rename/delete scenario. The independent PR run passed that scenario in
212
+ 21.9 seconds; the failed-job rerun passed it in 23.1 seconds and passed all 550 checks. Its prior
213
+ T10 run took 22.8 seconds. No code or deadline changed between attempts. The first stall's phase
214
+ and cause remain undiagnosed; these results do not establish a reproducible SHACL slowdown.
215
+
216
+ T07b is merged with minor changesets; publication remains separate and npm's last verified release
217
+ is 0.5.0. T07c and T05 closeout remain before the reviewed minor candidate and consumer acceptance.
218
+ No model/provider request, browser interaction or private consumer acceptance is claimed.
219
+
220
+ ## T10 implementation coverage reporting, 2026-10-27
221
+
222
+ The consumer reports returned code relationships with zero implementation coverage. The exact
223
+ installed version/output was requested; no private source or artifact was accessed. Public
224
+ regressions reproduced the defect with actual contract extraction (one production consumer counted
225
+ as zero) and real SCIP (eight production relationships counted as zero). [ADR 024](ADR-024-implementation-coverage.md)
226
+ records the reporting correction and metadata compatibility. It requires no hydration/model call
227
+ and leaves snapshot bytes, extraction/cache identities, evidence authority and ranking unchanged.
228
+
229
+ Focused public regressions cover real Git/extractors, strict SHACL, exact fact/provenance/authority
230
+ round trips, API/MCP/Markdown/HTML consistency, pagination and retained source diagnostics. Negative
231
+ cases distinguish document/model/test/runtime/draft facts from production implementation evidence.
232
+
233
+ Local `pnpm context-graph:publication-check` passed: 563 deterministic tests (17 core, 546 toolkit),
234
+ including 26 new coverage regressions, one optional OML skip, 13 existing advisory findings,
235
+ release documentation, inventory, licenses and fresh packed-consumer checks. The installed query
236
+ counts real SCIP production facts in both implementation and contract coverage; visualization uses
237
+ the same actual Context Pack. All 79 original source path/hash pairs are intact. Independent review
238
+ found no remaining blocker; Markdown and HTML share the coverage explanation and page-scoped wording.
239
+
240
+ [PR 40](https://github.com/jchewitt/weftlet/pull/40) merged at
241
+ `d3fe532f3c10869eee72a023c4682601559f0f9e`. Exact feature head
242
+ `d324a1c56a40d069dca3f5201ceb12b55fceecc2` passed hosted Ubuntu/native Windows in
243
+ [run 40541223960](https://github.com/jchewitt/weftlet/actions/runs/40541223960) and the
244
+ [PR run](https://github.com/jchewitt/weftlet/actions/runs/40541230905).
245
+ Ubuntu passed the full publication gate and all 563 deterministic tests. Windows passed all 439
246
+ selected tests plus inventory and licenses, including real SCIP and the new reporting regressions.
247
+ T10 is merged with patch changesets; npm publication remains separate. No private consumer
248
+ acceptance or model/provider request is claimed.
249
+
250
+ ## T07a prospective document coverage, 2026-10-27
251
+
252
+ Implemented after T06; no npm publication is claimed here. [ADR 023](ADR-023-document-coverage-preview.md)
253
+ records the standalone `documents plan` command/API, committed-link coverage and limits. Current
254
+ hydration selection, cache estimates and configuration/extractor/assembly identities are unchanged.
255
+
256
+ Focused tests exercise actual Markdown, Git objects and a public ten-document discovery → analysis
257
+ → admission → planning → execution → outcomes flow, with shared queue-contract links, cycles,
258
+ unapproved drafts and validation references. They distinguish prospective coverage from the actual
259
+ hydration plan, retain exact committed digests/citations, preserve authority, and verify no source
260
+ bodies, provider/adapter imports, cache/snapshot writes or checkout/index changes. Rename/delete
261
+ and historical refs, duplicate definitions, scope boundaries, unsafe paths, symlinks/submodules,
262
+ read-limit frontiers and complete closure above extraction budgets are covered. Native file
263
+ symlink privileges are not required by the Git boundary fixtures.
264
+
265
+ Local `pnpm context-graph:publication-check` passed: 537 deterministic tests (17 core,
266
+ 520 toolkit), including 96 new coverage cases, one optional OML skip, 13 unchanged advisory
267
+ architecture findings, release documentation, inventory, licenses and fresh packed-consumer checks.
268
+ The installed CLI/API produced matching prospective coverage digests and explicit read-limit
269
+ frontiers while the configured provider and adapter were unavailable. Existing real TypeScript
270
+ SCIP, RDF/SPARQL/SHACL, visualization and MCP checks also passed. All 79 original source
271
+ path/hash pairs are intact. Independent review found a `./` evidence-root labeling edge case;
272
+ the fix and both `.`/`./` regressions pass.
273
+
274
+ The first hosted Windows attempt passed 412 checks and failed one fixture setup: Git for Windows
275
+ rejects tab/newline paths even through `update-index`. The fixture now writes those nested Git
276
+ tree/commit objects directly, preserving unusual-path coverage without checkout or safety-setting
277
+ changes. All seven focused Git tests pass locally after this fixture-only correction.
278
+
279
+ [PR 38](https://github.com/jchewitt/weftlet/pull/38) merged at
280
+ `35de52e42b51728af43d9bb74cb9b338cf3c1ece`. Final feature head
281
+ `0969e109409aa6fb86827cb6a70ffdd0bcc34bc7` passed hosted Ubuntu and native Windows in
282
+ [run 40537179020](https://github.com/jchewitt/weftlet/actions/runs/40537179020) and the
283
+ [PR run](https://github.com/jchewitt/weftlet/actions/runs/40537186133).
284
+ Ubuntu passed all 537 deterministic tests and the full publication gate, with one optional OML
285
+ skip and 13 advisory findings. Windows passed all 413 selected tests, inventory and license checks,
286
+ including the corrected whitespace-path fixture. T07a is merged with a minor changeset;
287
+ the verified npm release remains 0.5.0.
288
+
289
+ A no-model self-repository probe started from `docs/RELEASE-1.0-PLAN.md` at committed source
290
+ `6a6a19cd8ba8c22c64c4158e38e0a3a57f350ab2`, with root `.` and the evaluation configuration.
291
+ It read the complete supported closure: 28 documents, 332,658 bytes and 208 link occurrences.
292
+ It correctly reported `ready: false`: all 28 candidates exceed the six-document budget, and
293
+ `docs/VALIDATION.md` exceeds the 65,536-byte per-source budget. No candidate was silently dropped.
294
+
295
+ This is document selection/coverage evidence, not extracted business-rule quality or new graph
296
+ relationships. Validation documents remain candidates in this preview; their separate deterministic
297
+ evidence path and traversal-driven extraction remain T07b/T07c. No model/provider request or npm
298
+ publication is claimed; the consumer's live ten-minute retry remains unrun.
299
+
300
+ ## T06 release-documentation consistency, 2026-10-27
301
+
302
+ Implemented after 0.5.0; publication remains separate. [ADR 022](ADR-022-release-documentation.md)
303
+ records the generated sections and explicit operational-document scope. The source/packed checks
304
+ use Node built-ins and run before publishing either package. Historical records, feature versions,
305
+ graph semantics, extraction identities and consumer caches are unchanged.
306
+
307
+ Focused checks passed: 33 release-documentation cases and three existing release-version cases.
308
+ They cover stale source/packed instructions, wrong package/archive/dependency versions, missing
309
+ documents, malformed markers, historical and CRLF preservation, multiline/inline examples,
310
+ dependency-free CLI operation from another cwd, and real Changesets patch/minor regeneration.
311
+ The actual release guide's marker-name explanation has its own regression. Independent review
312
+ also identified shared npx-cache reuse in the old smoke; the updated smoke isolates its npm cache,
313
+ requires both archive endpoints to be fetched, installs the documented archive pair and verifies
314
+ the resulting lockfile SHA-512 values against the prepared bytes.
315
+
316
+ Local `pnpm context-graph:publication-check` passed: 441 deterministic tests (17 core,
317
+ 424 toolkit), one optional OML skip, 13 unchanged advisory architecture findings, source and
318
+ packed documentation, inventory, licenses and fresh packed-consumer checks. The smoke fetched
319
+ both prepared packages through its isolated npm/npx cache, ran the checked setup/config commands,
320
+ and installed the documented archive pair with matching lockfile versions and SHA-512 values.
321
+ Existing real TypeScript SCIP, RDF/SPARQL/SHACL, visualization and MCP checks also passed.
322
+ Independent implementation/integration review found no remaining blocker. All 79 original
323
+ source path/hash pairs are intact. No model/provider request, private consumer run or public npm
324
+ publication is claimed by this checkpoint.
325
+
326
+ [PR 35](https://github.com/jchewitt/weftlet/pull/35) merged at
327
+ `eb7a234479801ac3bca0b27974b8f729aff1c13a`. Exact feature head
328
+ `33b9cd38355e483c11f7fec1fcaf02dfd222da38` passed hosted Ubuntu and native Windows checks in
329
+ [run 40528744057](https://github.com/jchewitt/weftlet/actions/runs/40528744057).
330
+ Windows includes the new documentation regressions; the full packed-consumer gate ran on Ubuntu.
331
+ T06 is merged with a patch changeset; the verified npm release remains 0.5.0.
332
+
333
+ ## 0.5.0 publication and installed-package acceptance, 2026-10-27
334
+
335
+ Published `@weftlet/core@0.5.0` and `@weftlet/toolkit@0.5.0` include T09
336
+ ten-minute timeout support and T05a identity preflight/validation phase timing.
337
+ `semantic.timeoutMs: 600000` is accepted; the default remains 120000. Retry limits,
338
+ cancellation, five-second authentication/discovery bounds and semantic artifact identities
339
+ are unchanged. This does not extend an outer CI/job timeout. The consumer's approved
340
+ ten-minute retry has **not run**; no live extraction result is claimed.
341
+
342
+ [Release PR 31](https://github.com/jchewitt/weftlet/pull/31) merged at
343
+ `55770d5ff83737131fcfd17ddba5b87dc22daca3`.
344
+ [Trusted publication run 40506053168](https://github.com/jchewitt/weftlet/actions/runs/40506053168)
345
+ completed preparation, publication and release records on attempt 1. Both versions are public
346
+ and tagged `latest`; downloaded registry archives are byte-identical to the reviewed archives.
347
+ npm provenance payloads identify the release commit and workflow attempt and match the archive
348
+ digests; this check does not claim separate cryptographic signature verification. The
349
+ [core](https://github.com/jchewitt/weftlet/releases/tag/%40weftlet/core%400.5.0) and
350
+ [toolkit](https://github.com/jchewitt/weftlet/releases/tag/%40weftlet/toolkit%400.5.0)
351
+ package tags and GitHub Releases resolve to the same commit. Hosted Ubuntu and Windows also
352
+ passed on that merged release commit in
353
+ [run 40506053117](https://github.com/jchewitt/weftlet/actions/runs/40506053117).
354
+
355
+ Completed upstream checks:
356
+
357
+ - Exact reviewed head `370f18a506a948c3148b50a3c3364383e1b88c32` passed `pnpm release:prepare`:
358
+ 408 deterministic tests (17 core, 391 toolkit), one optional OML skip, 13 unchanged advisory
359
+ architecture findings, inventory, licenses and fresh packed-consumer checks. Hosted Ubuntu and
360
+ Windows passed in [run 40504871916](https://github.com/jchewitt/weftlet/actions/runs/40504871916).
361
+ - Timeout fix [PR 33](https://github.com/jchewitt/weftlet/pull/33) merged at
362
+ `795c67a24c5fffdb9c5c4d0cd1edab0ea2ae14bf`; exact source head
363
+ `68be50451d522590a7fd9626c1f6d3edd1acf5ca` passed
364
+ [run 40504193435](https://github.com/jchewitt/weftlet/actions/runs/40504193435).
365
+ - Independent export review approved both archives: core 13 files/8,215 compressed bytes,
366
+ toolkit 218 files/254,008 compressed bytes. All 229 non-manifest files match reviewed
367
+ source/build bytes; 293 relative module references resolve. Compiled configuration contains
368
+ the 600000 ceiling, and T05a assets and exports are present. Core has no runtime dependencies;
369
+ toolkit requires core `^0.5.0`. Licenses/NOTICE/third-party attribution and all 79 original
370
+ source path/hash pairs are intact. No forbidden local-state entries or credential-signature
371
+ matches were found.
372
+ - Hosted artifact `12734837678` from release commit `55770d5ff83737131fcfd17ddba5b87dc22daca3`
373
+ contains package archives byte-identical to those independently reviewed locally.
374
+ - An offline Linux/Node 24.19.0 rehearsal installed the exact reviewed archives with lifecycle
375
+ scripts disabled. Its deterministic local provider received timeout 600000, with real SCIP
376
+ and full SHACL. It produced 54 total facts including 24 SCIP facts, and 53 impact-query facts.
377
+ Cold hydration extracted two artifacts; repeat hydration reused both with unchanged snapshot
378
+ identity, content digest and stored bytes. T05a positive/negative preflight and SHACL, exact
379
+ attribution, phase events and provider-unavailable saved queries/preview passed.
380
+ - Fresh public-registry installation passed on Linux/Node 24.19.0 with lifecycle scripts disabled.
381
+ Both lockfile registry URLs and SHA-512 values match the reviewed archives. The installed CLI
382
+ accepted 600000 and the deterministic module verified receiving it. The committed public fixture
383
+ produced 54 total facts, including two semantic facts, four contract consumers, 24 real SCIP facts and
384
+ two public adapter facts; the impact query returned 53 facts. Cold hydration extracted two
385
+ artifacts; repeat hydration extracted zero and reused both with identical snapshot identity,
386
+ content digest and stored bytes. Positive/negative preflight and full SHACL, exact attribution
387
+ without mutation, and phase events passed. Removing the provider module preserved no-model
388
+ preview and saved queries with no additional provider calls. Fixture commit:
389
+ `f61e05a8f437097ebc6eeb966f6eda2b8bb12008`; content digest:
390
+ `d975795c1324795ef4d144ca803d225c5059c229063c9f0514c006ed310378c4`.
391
+
392
+ The fixture does not run Codex/API requests, wait ten minutes or establish private consumer
393
+ acceptance. T06/T07 and broader T05 work remain open. Entries below are historical checkpoints;
394
+ their publication status and counts describe the time of each check.
395
+
396
+ | Package | Reviewed and public SHA-512 integrity |
397
+ | --- | --- |
398
+ | `@weftlet/core@0.5.0` | `sha512-JM+wBBaGQewwlEHtVDW1bBqMdeTNTnoR9JoqRkJ8t2onK4UPZsoEWho65wtX7UlPlIL/tu975VovJps9xmjuhA==` |
399
+ | `@weftlet/toolkit@0.5.0` | `sha512-7CgqoFX7qjTtK4SEX3+EYC30L0vE69H1gVGPLqbeSwVp176QIrAMA9qsjFzevdLVyPk/mLMp5of4vUXWyobITQ==` |
400
+
11
401
  ## Ten-minute timeout blocker, 2026-10-27
12
402
 
13
403
  The maintainer reports that published 0.4.0 rejects the approved `semantic.timeoutMs: 600000`.
@@ -0,0 +1,200 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "date": "2026-10-28",
4
+ "runtimeSourceCommit": "9b4acffe1c4d35f9fd2f91132c576f8934658677",
5
+ "releaseSourceCommit": "b4c808b9221c5c82f9f7326a310e966d1fee2888",
6
+ "packageVersions": {
7
+ "@weftlet/core": "0.6.0",
8
+ "@weftlet/toolkit": "0.6.0"
9
+ },
10
+ "environment": {
11
+ "os": "Linux",
12
+ "node": "24.19.0",
13
+ "pnpm": "10.18.2"
14
+ },
15
+ "fixtureProvider": {
16
+ "path": "tests/fixtures/business-context-provider.mjs",
17
+ "sha256": "4261c3261ca2959c89bdec73eda0f6aa5c40ffcb75db4aa64442f67534d8b2f7",
18
+ "mode": "deterministic public prose grammar; no model requests"
19
+ },
20
+ "boundaries": [
21
+ "New test files use unchanged runtime from the recorded source commit.",
22
+ "Real Git and TypeScript SCIP; actual application hydration, RDF/SHACL and MCP facade.",
23
+ "No live provider, actual broker/database execution, service build or private consumer acceptance.",
24
+ "No automatic business compatibility verdict or exact-function binding established.",
25
+ "No autonomous agent trial or new MCP transport exercise.",
26
+ "Graphify source review is separate; no comparative execution."
27
+ ],
28
+ "runs": [
29
+ {
30
+ "name": "existing-regressions",
31
+ "command": "pnpm exec vitest run tests/rdf.test.ts tests/routing.test.ts src/extraction/routing.test.ts src/extraction/scip-project.test.ts src/graph/query.test.ts",
32
+ "success": true,
33
+ "passed": 24,
34
+ "failed": 0,
35
+ "pending": 0,
36
+ "suites": [
37
+ {
38
+ "path": "tests/rdf.test.ts",
39
+ "sha256": "2b0f0fd6314ac28d4c64422d5650d56b540c9d391adab5eac0d24ed06a592397",
40
+ "status": "passed",
41
+ "cases": [
42
+ {
43
+ "name": "unified evidence graph extracts public prose and real TypeScript across queue boundaries, with SPARQL/projection equivalence",
44
+ "status": "passed"
45
+ }
46
+ ]
47
+ },
48
+ {
49
+ "path": "tests/routing.test.ts",
50
+ "sha256": "bac6081701ada81f422e1b7641a212a3f51b0c44a94bc88deb93d610b4a65c34",
51
+ "status": "passed",
52
+ "cases": [
53
+ {
54
+ "name": "committed routing declarations in independent repositories links a typed upstream change across an explicit boundary without shared-channel cross products",
55
+ "status": "passed"
56
+ },
57
+ {
58
+ "name": "committed routing declarations in independent repositories replaces routing edges for source renames/deletions and routing-manifest edits/deletions in drafts",
59
+ "status": "passed"
60
+ },
61
+ {
62
+ "name": "committed routing declarations in independent repositories preserves the last valid saved graph when a committed routing manifest is malformed or absent",
63
+ "status": "passed"
64
+ }
65
+ ]
66
+ },
67
+ {
68
+ "path": "src/extraction/routing.test.ts",
69
+ "sha256": "7b72aefa770bd217435220fa85bf21d5297e01cbf5e23d3765aed549b9300681",
70
+ "status": "passed",
71
+ "cases": [
72
+ {
73
+ "name": "committed routing declarations joins document, test and production endpoints with actual neutral file and document facts",
74
+ "status": "passed"
75
+ },
76
+ {
77
+ "name": "committed routing declarations extracts exact cited bindings with inferred authority while ignoring dirty declarations",
78
+ "status": "passed"
79
+ },
80
+ {
81
+ "name": "committed routing declarations keeps binding, scope, case and repository identities separate despite equal channel labels",
82
+ "status": "passed"
83
+ },
84
+ {
85
+ "name": "committed routing declarations suppresses every duplicate scoped binding across files, including identical duplicates",
86
+ "status": "passed"
87
+ },
88
+ {
89
+ "name": "committed routing declarations does not guess case, extensions or directories, and suppresses the complete missing-endpoint pair",
90
+ "status": "passed"
91
+ },
92
+ {
93
+ "name": "committed routing declarations reads Unicode and spaced paths exactly from a nested repository root despite Git quoting",
94
+ "status": "passed"
95
+ },
96
+ {
97
+ "name": "committed routing declarations accepts executable blobs but rejects committed symlink modes without creating host symlinks",
98
+ "status": "passed"
99
+ },
100
+ {
101
+ "name": "committed routing declarations invalidates deleted or renamed endpoints until the mapping is updated, leaving historical results intact",
102
+ "status": "passed"
103
+ },
104
+ {
105
+ "name": "committed routing declarations fails closed on missing source files except explicit draft deletion diagnostics",
106
+ "status": "passed"
107
+ },
108
+ {
109
+ "name": "committed routing declarations rejects malformed, ambiguous and unsupported schemas or path forms",
110
+ "status": "passed"
111
+ },
112
+ {
113
+ "name": "committed routing declarations enforces file-count, combined declaration-count and source-byte bounds",
114
+ "status": "passed"
115
+ }
116
+ ]
117
+ },
118
+ {
119
+ "path": "src/extraction/scip-project.test.ts",
120
+ "sha256": "8a92ffd963ca5818c102aec3487ea21405d75bbaf593b13e2256b6f5a1914b23",
121
+ "status": "passed",
122
+ "cases": [
123
+ {
124
+ "name": "links committed workspace contracts and excluded tests through real SCIP, preserving dirty bytes and rename/delete boundaries",
125
+ "status": "passed"
126
+ },
127
+ {
128
+ "name": "fails before indexing on absent aliases, empty/oversized scopes and reserved generated paths",
129
+ "status": "passed"
130
+ }
131
+ ]
132
+ },
133
+ {
134
+ "path": "src/graph/query.test.ts",
135
+ "sha256": "7b6653f767c2e7445ec19f0cafc9d3fe97494ae139835ec63d335a7210e62c6c",
136
+ "status": "passed",
137
+ "cases": [
138
+ {
139
+ "name": "impact scan facade rejects snapshot traversal before the service can read outside snapshot storage",
140
+ "status": "passed"
141
+ },
142
+ {
143
+ "name": "impact scan facade returns the same bounded Context Pack through the application service used by CLI and MCP",
144
+ "status": "passed"
145
+ },
146
+ {
147
+ "name": "impact scan facade keeps skill command names aligned with the MCP facade and generic template",
148
+ "status": "passed"
149
+ },
150
+ {
151
+ "name": "impact scan facade expands changed code files through symbols without traversing the project hub",
152
+ "status": "passed"
153
+ },
154
+ {
155
+ "name": "impact scan facade returns the broader Fulfillment policy, PM, execution, worker, and validation purpose chain",
156
+ "status": "passed"
157
+ },
158
+ {
159
+ "name": "impact scan facade uses the owner document as the traversal anchor and task terms to rank connected context",
160
+ "status": "passed"
161
+ },
162
+ {
163
+ "name": "impact scan facade shows observed runtime behavior beside declared intent and flags unmapped observations",
164
+ "status": "passed"
165
+ }
166
+ ]
167
+ }
168
+ ]
169
+ },
170
+ {
171
+ "name": "business-context-acceptance",
172
+ "command": "pnpm exec vitest run tests/business-context-acceptance.test.ts",
173
+ "success": true,
174
+ "passed": 3,
175
+ "failed": 0,
176
+ "pending": 0,
177
+ "suites": [
178
+ {
179
+ "path": "tests/business-context-acceptance.test.ts",
180
+ "sha256": "c5e196db080cc798dc3abb21fb2cdb4ac3ecb07b4307cc3aa6764f04f60bb9cb",
181
+ "status": "passed",
182
+ "cases": [
183
+ {
184
+ "name": "public business-context acceptance boundaries bridges isolated service code only after the stored-data handoff is documented, retaining both rules and authority",
185
+ "status": "passed"
186
+ },
187
+ {
188
+ "name": "public business-context acceptance boundaries supports bounded MCP-facade pagination and focused follow-up without hiding depth exhaustion",
189
+ "status": "passed"
190
+ },
191
+ {
192
+ "name": "public business-context acceptance boundaries resolves shared contracts across separate workspace packages and TSX, with source and repeat identity intact",
193
+ "status": "passed"
194
+ }
195
+ ]
196
+ }
197
+ ]
198
+ }
199
+ ]
200
+ }
@@ -0,0 +1,25 @@
1
+ # T05 validation measurements, 2026-10-28
2
+
3
+ See [ADR 027](../../ADR-027-validation-closeout.md) for decisions, units, methodology and limits.
4
+ These files are public metric reports, not graph snapshots. They contain no private consumer data.
5
+
6
+ | Report | Command after `pnpm build` | Source identity |
7
+ | --- | --- | --- |
8
+ | [lifecycle.json](lifecycle.json) | `node scripts/validation-benchmark/run.mjs --counts 2000 --samples 3` | Runtime `174f2ae`; harness subsequently committed at `3a7e24d`, per-file hashes in report. That version selected pipeline/shared/unique and ten scenarios. |
9
+ | [rich.json](rich.json) | `node scripts/validation-benchmark/run.mjs --counts 2000 --fixtures document-rich --samples 3` | Base `3a7e24d` plus recorded dirty harness paths, subsequently committed at `4e93837`. Adds manifest-only and dense metadata cases. |
10
+ | [large.json](large.json) | `node scripts/validation-benchmark/run.mjs --counts 10000 --fixtures unique,document-rich --samples 3 --scenarios cold` | Clean harness commit `4e93837`. |
11
+ | [native.json](native.json) | `node --import tsx scripts/validation-benchmark/native.ts /explicit/path/to/rudof` | Base `4e93837` plus recorded probe/fixture paths; exact probe and shared-fixture SHA-256 recorded. |
12
+
13
+ For the first report with the current harness, explicitly select
14
+ `--fixtures pipeline,shared,unique --scenarios cold,repeat,rebuild,insert,update,delete,rename,invalid-confidence,invalid-shared-kind,repair-delete`.
15
+ The current default additionally includes dense metadata and manifest-only inputs. Tests contain
16
+ no latency thresholds. All measurements use public synthetic inputs or the actual public pipeline
17
+ extractor fixture; no paid/model work is performed. Reports preserve all completed case outcomes.
18
+
19
+ The optional native probe requires Linux, Python 3 and the explicit official
20
+ [`rudof_0.3.35_x86_64_linux_gnu` release asset](https://github.com/rudof-project/rudof/releases/tag/0.3.35).
21
+ SHA-256: `d9d230e27e594ab5d7927cc021fbdc8b907a014cebfa13722a5521a65ce9ff66`.
22
+ The script does not download/install it. The experiment exits **1** because two diagnostic-count
23
+ comparisons differ, even though all 29 conformance/location comparisons and all 12 timing cases
24
+ complete as expected. That is an explicitly recorded compatibility gap, not an accepted replacement
25
+ or a successful exact-parity gate. No native binary/service is required for tests or package use.