@weftlet/toolkit 0.5.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 (73) 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/graph/authority.js +3 -0
  35. package/dist/graph/coverage.d.ts +8 -0
  36. package/dist/graph/coverage.js +96 -0
  37. package/dist/graph/document-role-description.d.ts +5 -0
  38. package/dist/graph/document-role-description.js +18 -0
  39. package/dist/graph/query.d.ts +2 -2
  40. package/dist/graph/query.js +22 -62
  41. package/dist/graph/rdf.js +11 -0
  42. package/dist/graph/shacl-shapes.js +26 -0
  43. package/dist/index.d.ts +5 -0
  44. package/dist/index.js +4 -0
  45. package/dist/interfaces/cli.js +18 -1
  46. package/dist/interfaces/document-coverage.d.ts +9 -0
  47. package/dist/interfaces/document-coverage.js +117 -0
  48. package/dist/repository/git.d.ts +11 -0
  49. package/dist/repository/git.js +38 -0
  50. package/dist/visualization/visualization.js +21 -6
  51. package/docs/ADR-017-shacl-validation-union.md +4 -0
  52. package/docs/ADR-021-identity-preflight-and-validation-timing.md +5 -2
  53. package/docs/ADR-022-release-documentation.md +44 -0
  54. package/docs/ADR-023-document-coverage-preview.md +64 -0
  55. package/docs/ADR-024-implementation-coverage.md +51 -0
  56. package/docs/ADR-025-document-classification.md +78 -0
  57. package/docs/ADR-026-traversal-hydration.md +94 -0
  58. package/docs/ADR-027-validation-closeout.md +155 -0
  59. package/docs/CONSUMER-TRIAL.md +1 -1
  60. package/docs/MIGRATING-TO-WEFTLET.md +1 -1
  61. package/docs/PROVIDERS.md +10 -1
  62. package/docs/RELEASE-1.0-PLAN.md +135 -23
  63. package/docs/RELEASING.md +46 -8
  64. package/docs/ROADMAP.md +41 -16
  65. package/docs/VALIDATION.md +312 -0
  66. package/docs/benchmarks/validation-2026-10-28/README.md +25 -0
  67. package/docs/benchmarks/validation-2026-10-28/large.json +1 -0
  68. package/docs/benchmarks/validation-2026-10-28/lifecycle.json +1 -0
  69. package/docs/benchmarks/validation-2026-10-28/native.json +1 -0
  70. package/docs/benchmarks/validation-2026-10-28/rich.json +1 -0
  71. package/docs/extraction-manifest.json +67 -17
  72. package/examples/generic-typescript/document-policy.json +9 -0
  73. package/package.json +7 -4
@@ -8,6 +8,318 @@ 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
+ ## T05 validation closeout, 2026-10-28
12
+
13
+ [ADR 027](ADR-027-validation-closeout.md) records the engineering decision to retain full direct
14
+ validation after public cold/repeat/changed-input, worker, exact-key, incremental-dependency and
15
+ Rust evaluations. No runtime validation code, shapes, policy, baseline, cache identity or production
16
+ dependency changed. No assertion/provenance/authority was dropped or promoted. All 79 original
17
+ source path/hash pairs are intact. The original 23-case SHACL corpus is shared with the optional
18
+ native probe; its original named-dataset equivalence assertions still pass.
19
+
20
+ [Raw reports](benchmarks/validation-2026-10-28/README.md) record 258 completed direct/worker cases
21
+ and 18 paired sample groups with identical verdicts/canonical input. Three-sample cold direct
22
+ medians at 10,000 facts are 2.86 seconds for unique identities and 5.67 seconds for dense source
23
+ metadata. Direct whole-process peak RSS reached 1.72 GiB; one worker case reached 2.99 GiB.
24
+ These are public fixture measurements, not private consumer performance or capacity guarantees.
25
+ The actual six-stage public extraction uses an offline runner through the Codex adapter and real
26
+ SCIP; all six semantic sources are reused on repeat. Prototype cancellation returns no accepted
27
+ verdict and attempts no publication. Exact-key costs/misses and a changed-facts-only false pass
28
+ support the decisions to keep full validation without introducing receipts or incrementality.
29
+
30
+ Rudof 0.3.35, Apache-2.0, was evaluated from its checksum-verified official Linux GNU binary
31
+ outside the repository. All 29 conformance/location cases agree; diagnostic counts differ on two
32
+ malformed citation cases, retained explicitly in the report. All 12 native timing cases complete,
33
+ with no clear overall file-transfer performance/resource benefit. The probe deliberately exits 1
34
+ for the diagnostic mismatch; it is not a passed replacement-equivalence gate. It is optional
35
+ development tooling, with no native binary download or dependency in package/CI installation.
36
+
37
+ The local build and **691 deterministic tests** (17 core + 674 toolkit), one optional OML skip,
38
+ architecture (14 advisory findings), inventory, licenses, release-documentation and fresh packed
39
+ npm/npx/consumer smoke all passed. Hosted Ubuntu also passed at `10082e2` in the
40
+ [push run](https://github.com/jchewitt/weftlet/actions/runs/40710918759) and
41
+ [PR run](https://github.com/jchewitt/weftlet/actions/runs/40710994196). Initial native Windows
42
+ checks passed the existing 561 tests but could not import the new benchmark: CRLF conversion of
43
+ its shebang triggered a Vitest syntax error. The same CRLF failure was reproduced locally;
44
+ removing the unnecessary shebangs from these Node-invoked scripts made all six study tests pass
45
+ with CRLF content. A final harness correction also preserves the extractor's original content
46
+ digest during timestamp-only scenarios. Those six checks pass locally. Corrected-head hosted
47
+ outcomes are tracked in [PR 46](https://github.com/jchewitt/weftlet/pull/46/checks).
48
+ No paid/live model, private TradePilot run, browser interaction, fresh-cloud restoration, npm upload
49
+ or official 1.0 acceptance is claimed. The next gate is the reviewed minor candidate, then genuine
50
+ consumer hydration/repeat acceptance and the separate official 1.0 release decision.
51
+
52
+ ## T07c traversal hydration, 2026-10-28
53
+
54
+ [ADR 026](ADR-026-traversal-hydration.md) connects canonical coverage and source classification to
55
+ opt-in `documentTraversal` hydration, its no-model plan, cache adoption and draft overlays.
56
+ Direct configurations retain their existing selection and identity. Validation sources receive
57
+ presence/reference evidence without model extraction. Coverage/read-limit/role-ambiguity and
58
+ semantic-budget failures stop new model work while retaining previous evidence. Ownership gaps
59
+ remain explicit diagnostics; neither source classification nor owner mappings approve assertions.
60
+
61
+ The local publication gate passed **685 deterministic tests** (17 core, 668 toolkit), including
62
+ 11 added regressions, and one optional OML skip. Inventory, licenses, release documentation and
63
+ fresh npm/npx/packed-consumer checks passed. Final small cache-adoption/read-limit-reporting edits
64
+ were followed by a rebuilt toolkit, all 32 affected integration/cache-adoption/CLI tests, governance
65
+ and inventory checks; the installed-package smoke was repeated against that rebuild. Governance
66
+ reports 14 advisory findings at existing finding locations, including the prior fixture-setup
67
+ clone signal. No architecture policy, baseline or exception was changed. All 79 original source
68
+ path/hash pairs are preserved.
69
+
70
+ Public tests use the unchanged Codex adapter with an offline prose parser through its real prompt,
71
+ JSON and citation checks, plus real SCIP, strict SHACL and lossless RDF projection. The six-stage
72
+ queue-boundary pipeline reaches downstream implementation/tests. An unchanged repeat reuses all
73
+ six eligible semantic sources, with identical snapshot identity and content digest; two validation
74
+ documents remain in the graph. Other regressions cover Codex activation/policy reuse without
75
+ artifact rewriting, actual module-provider isolation/reuse in workspace and user storage,
76
+ rename/delete/reachability, changed owners, incomplete draft coverage, saved-history queries and
77
+ current-diff rejection. Installed CLI hydration/query/repeat tests use a deterministic module,
78
+ real indexing and packaged assets; a blocked refresh preserves the committed head.
79
+
80
+ The chat's managed executor disconnected during development and later reconnected with the
81
+ uncommitted work intact. This is recovery of this workspace, not a fresh-cloud restoration test.
82
+ No live/paid model request, browser interaction, private TradePilot acceptance or npm publication
83
+ is claimed. [PR 44](https://github.com/jchewitt/weftlet/pull/44) merged at
84
+ `b44053f08e4342ec1502046acc5b85a0efd08ea1`. Exact feature head
85
+ `fd89410108e7be75524b54a4e02d53459afbcd20` passed both the
86
+ [push run](https://github.com/jchewitt/weftlet/actions/runs/40690845708) and the
87
+ [PR run](https://github.com/jchewitt/weftlet/actions/runs/40690905937). Hosted Ubuntu passed
88
+ all 685 deterministic tests and the full publication gate; native Windows passed all 561 selected
89
+ tests, inventory and licenses, including all new traversal hydration regressions. These are source
90
+ validation results, not a new npm release. Release PR 36 remains unmerged.
91
+ T05 performance/validation closeout remains the next engineering workstream, followed by the
92
+ reviewed minor candidate, consumer acceptance and the separate official 1.0 decision.
93
+
94
+ ## T07b document classification and evidence, 2026-10-27
95
+
96
+ [ADR 025](ADR-025-document-classification.md) records explicit document roles and SOT owner
97
+ mappings, the operation-level `documents plan --document-policy` input, and the public deterministic
98
+ document-evidence extractor. These are prospective APIs: current hydration selection, semantic
99
+ artifacts, configuration/extractor/assembly identities and historical snapshots remain unchanged.
100
+ Traversal-driven hydration and default validation-document separation remain T07c.
101
+
102
+ Public fixtures exercise real committed document/file extraction, empty validation documents,
103
+ reference definition/use citations, approved validation reports, unapproved owned plans, ambiguous
104
+ roles/owners, scope changes, renames/deletes and historical re-extraction. Presence and reference
105
+ facts remain inferred structural evidence; neither written “PASS” text nor an owner mapping creates
106
+ test-success evidence or approved assertions. Strict SHACL, exact RDF/SPARQL projection, API/MCP,
107
+ Markdown and HTML/SVG/DOT preserve per-fact roles, policy identity, ownership and provenance.
108
+
109
+ Preview and extraction checks use unavailable provider/adapter sentinels and retain source bytes,
110
+ Git index, hydration plans and seeded cache artifacts. Classification gaps are separate from the
111
+ preview's traversal/budget `ready` field. Independent review found that an approved validation
112
+ document must be ineligible as an intent owner, and that a frontier exceeding 10,000 discovered
113
+ documents must survive the classifier's per-call bound; both have focused regressions.
114
+
115
+ Local `pnpm context-graph:publication-check` passed: **674 deterministic tests** (17 core,
116
+ 657 toolkit), including 111 new regressions, and one optional OML skip. Release documentation,
117
+ inventory, licenses and fresh packed-consumer checks passed, including the new public policy and
118
+ document-evidence APIs, installed CLI policy loading, real SCIP, RDF/SHACL, rendering and MCP.
119
+ All 79 original source path/hash pairs are intact. Architecture checks passed with 14 advisories:
120
+ 13 existing findings and one new clone signal for independent Git test-fixture setup. Review found
121
+ shared setup mechanics, not duplicated product rules; no policy, debt baseline or exception changed.
122
+ Independent review found no remaining blocker after the two corrections above.
123
+
124
+ [PR 42](https://github.com/jchewitt/weftlet/pull/42) merged at
125
+ `6c59746118c910d850427c5c6c48e8b52eefcad7`. Exact feature head
126
+ `72f554cb9accd32b4b992581d06c685f7e5c0e54` passed hosted Ubuntu/native Windows in
127
+ [run 40557348341](https://github.com/jchewitt/weftlet/actions/runs/40557348341) and the
128
+ [independent PR run](https://github.com/jchewitt/weftlet/actions/runs/40557375964).
129
+ Ubuntu passed all 674 deterministic tests and the full publication gate. Windows passed all
130
+ 550 selected tests, inventory and licenses, including every new document-classification regression.
131
+
132
+ The first push-run Windows attempt passed 549/550 tests but hit the existing 60-second timeout
133
+ in the routing overlay rename/delete scenario. The independent PR run passed that scenario in
134
+ 21.9 seconds; the failed-job rerun passed it in 23.1 seconds and passed all 550 checks. Its prior
135
+ T10 run took 22.8 seconds. No code or deadline changed between attempts. The first stall's phase
136
+ and cause remain undiagnosed; these results do not establish a reproducible SHACL slowdown.
137
+
138
+ T07b is merged with minor changesets; publication remains separate and npm's last verified release
139
+ is 0.5.0. T07c and T05 closeout remain before the reviewed minor candidate and consumer acceptance.
140
+ No model/provider request, browser interaction or private consumer acceptance is claimed.
141
+
142
+ ## T10 implementation coverage reporting, 2026-10-27
143
+
144
+ The consumer reports returned code relationships with zero implementation coverage. The exact
145
+ installed version/output was requested; no private source or artifact was accessed. Public
146
+ regressions reproduced the defect with actual contract extraction (one production consumer counted
147
+ as zero) and real SCIP (eight production relationships counted as zero). [ADR 024](ADR-024-implementation-coverage.md)
148
+ records the reporting correction and metadata compatibility. It requires no hydration/model call
149
+ and leaves snapshot bytes, extraction/cache identities, evidence authority and ranking unchanged.
150
+
151
+ Focused public regressions cover real Git/extractors, strict SHACL, exact fact/provenance/authority
152
+ round trips, API/MCP/Markdown/HTML consistency, pagination and retained source diagnostics. Negative
153
+ cases distinguish document/model/test/runtime/draft facts from production implementation evidence.
154
+
155
+ Local `pnpm context-graph:publication-check` passed: 563 deterministic tests (17 core, 546 toolkit),
156
+ including 26 new coverage regressions, one optional OML skip, 13 existing advisory findings,
157
+ release documentation, inventory, licenses and fresh packed-consumer checks. The installed query
158
+ counts real SCIP production facts in both implementation and contract coverage; visualization uses
159
+ the same actual Context Pack. All 79 original source path/hash pairs are intact. Independent review
160
+ found no remaining blocker; Markdown and HTML share the coverage explanation and page-scoped wording.
161
+
162
+ [PR 40](https://github.com/jchewitt/weftlet/pull/40) merged at
163
+ `d3fe532f3c10869eee72a023c4682601559f0f9e`. Exact feature head
164
+ `d324a1c56a40d069dca3f5201ceb12b55fceecc2` passed hosted Ubuntu/native Windows in
165
+ [run 40541223960](https://github.com/jchewitt/weftlet/actions/runs/40541223960) and the
166
+ [PR run](https://github.com/jchewitt/weftlet/actions/runs/40541230905).
167
+ Ubuntu passed the full publication gate and all 563 deterministic tests. Windows passed all 439
168
+ selected tests plus inventory and licenses, including real SCIP and the new reporting regressions.
169
+ T10 is merged with patch changesets; npm publication remains separate. No private consumer
170
+ acceptance or model/provider request is claimed.
171
+
172
+ ## T07a prospective document coverage, 2026-10-27
173
+
174
+ Implemented after T06; no npm publication is claimed here. [ADR 023](ADR-023-document-coverage-preview.md)
175
+ records the standalone `documents plan` command/API, committed-link coverage and limits. Current
176
+ hydration selection, cache estimates and configuration/extractor/assembly identities are unchanged.
177
+
178
+ Focused tests exercise actual Markdown, Git objects and a public ten-document discovery → analysis
179
+ → admission → planning → execution → outcomes flow, with shared queue-contract links, cycles,
180
+ unapproved drafts and validation references. They distinguish prospective coverage from the actual
181
+ hydration plan, retain exact committed digests/citations, preserve authority, and verify no source
182
+ bodies, provider/adapter imports, cache/snapshot writes or checkout/index changes. Rename/delete
183
+ and historical refs, duplicate definitions, scope boundaries, unsafe paths, symlinks/submodules,
184
+ read-limit frontiers and complete closure above extraction budgets are covered. Native file
185
+ symlink privileges are not required by the Git boundary fixtures.
186
+
187
+ Local `pnpm context-graph:publication-check` passed: 537 deterministic tests (17 core,
188
+ 520 toolkit), including 96 new coverage cases, one optional OML skip, 13 unchanged advisory
189
+ architecture findings, release documentation, inventory, licenses and fresh packed-consumer checks.
190
+ The installed CLI/API produced matching prospective coverage digests and explicit read-limit
191
+ frontiers while the configured provider and adapter were unavailable. Existing real TypeScript
192
+ SCIP, RDF/SPARQL/SHACL, visualization and MCP checks also passed. All 79 original source
193
+ path/hash pairs are intact. Independent review found a `./` evidence-root labeling edge case;
194
+ the fix and both `.`/`./` regressions pass.
195
+
196
+ The first hosted Windows attempt passed 412 checks and failed one fixture setup: Git for Windows
197
+ rejects tab/newline paths even through `update-index`. The fixture now writes those nested Git
198
+ tree/commit objects directly, preserving unusual-path coverage without checkout or safety-setting
199
+ changes. All seven focused Git tests pass locally after this fixture-only correction.
200
+
201
+ [PR 38](https://github.com/jchewitt/weftlet/pull/38) merged at
202
+ `35de52e42b51728af43d9bb74cb9b338cf3c1ece`. Final feature head
203
+ `0969e109409aa6fb86827cb6a70ffdd0bcc34bc7` passed hosted Ubuntu and native Windows in
204
+ [run 40537179020](https://github.com/jchewitt/weftlet/actions/runs/40537179020) and the
205
+ [PR run](https://github.com/jchewitt/weftlet/actions/runs/40537186133).
206
+ Ubuntu passed all 537 deterministic tests and the full publication gate, with one optional OML
207
+ skip and 13 advisory findings. Windows passed all 413 selected tests, inventory and license checks,
208
+ including the corrected whitespace-path fixture. T07a is merged with a minor changeset;
209
+ the verified npm release remains 0.5.0.
210
+
211
+ A no-model self-repository probe started from `docs/RELEASE-1.0-PLAN.md` at committed source
212
+ `6a6a19cd8ba8c22c64c4158e38e0a3a57f350ab2`, with root `.` and the evaluation configuration.
213
+ It read the complete supported closure: 28 documents, 332,658 bytes and 208 link occurrences.
214
+ It correctly reported `ready: false`: all 28 candidates exceed the six-document budget, and
215
+ `docs/VALIDATION.md` exceeds the 65,536-byte per-source budget. No candidate was silently dropped.
216
+
217
+ This is document selection/coverage evidence, not extracted business-rule quality or new graph
218
+ relationships. Validation documents remain candidates in this preview; their separate deterministic
219
+ evidence path and traversal-driven extraction remain T07b/T07c. No model/provider request or npm
220
+ publication is claimed; the consumer's live ten-minute retry remains unrun.
221
+
222
+ ## T06 release-documentation consistency, 2026-10-27
223
+
224
+ Implemented after 0.5.0; publication remains separate. [ADR 022](ADR-022-release-documentation.md)
225
+ records the generated sections and explicit operational-document scope. The source/packed checks
226
+ use Node built-ins and run before publishing either package. Historical records, feature versions,
227
+ graph semantics, extraction identities and consumer caches are unchanged.
228
+
229
+ Focused checks passed: 33 release-documentation cases and three existing release-version cases.
230
+ They cover stale source/packed instructions, wrong package/archive/dependency versions, missing
231
+ documents, malformed markers, historical and CRLF preservation, multiline/inline examples,
232
+ dependency-free CLI operation from another cwd, and real Changesets patch/minor regeneration.
233
+ The actual release guide's marker-name explanation has its own regression. Independent review
234
+ also identified shared npx-cache reuse in the old smoke; the updated smoke isolates its npm cache,
235
+ requires both archive endpoints to be fetched, installs the documented archive pair and verifies
236
+ the resulting lockfile SHA-512 values against the prepared bytes.
237
+
238
+ Local `pnpm context-graph:publication-check` passed: 441 deterministic tests (17 core,
239
+ 424 toolkit), one optional OML skip, 13 unchanged advisory architecture findings, source and
240
+ packed documentation, inventory, licenses and fresh packed-consumer checks. The smoke fetched
241
+ both prepared packages through its isolated npm/npx cache, ran the checked setup/config commands,
242
+ and installed the documented archive pair with matching lockfile versions and SHA-512 values.
243
+ Existing real TypeScript SCIP, RDF/SPARQL/SHACL, visualization and MCP checks also passed.
244
+ Independent implementation/integration review found no remaining blocker. All 79 original
245
+ source path/hash pairs are intact. No model/provider request, private consumer run or public npm
246
+ publication is claimed by this checkpoint.
247
+
248
+ [PR 35](https://github.com/jchewitt/weftlet/pull/35) merged at
249
+ `eb7a234479801ac3bca0b27974b8f729aff1c13a`. Exact feature head
250
+ `33b9cd38355e483c11f7fec1fcaf02dfd222da38` passed hosted Ubuntu and native Windows checks in
251
+ [run 40528744057](https://github.com/jchewitt/weftlet/actions/runs/40528744057).
252
+ Windows includes the new documentation regressions; the full packed-consumer gate ran on Ubuntu.
253
+ T06 is merged with a patch changeset; the verified npm release remains 0.5.0.
254
+
255
+ ## 0.5.0 publication and installed-package acceptance, 2026-10-27
256
+
257
+ Published `@weftlet/core@0.5.0` and `@weftlet/toolkit@0.5.0` include T09
258
+ ten-minute timeout support and T05a identity preflight/validation phase timing.
259
+ `semantic.timeoutMs: 600000` is accepted; the default remains 120000. Retry limits,
260
+ cancellation, five-second authentication/discovery bounds and semantic artifact identities
261
+ are unchanged. This does not extend an outer CI/job timeout. The consumer's approved
262
+ ten-minute retry has **not run**; no live extraction result is claimed.
263
+
264
+ [Release PR 31](https://github.com/jchewitt/weftlet/pull/31) merged at
265
+ `55770d5ff83737131fcfd17ddba5b87dc22daca3`.
266
+ [Trusted publication run 40506053168](https://github.com/jchewitt/weftlet/actions/runs/40506053168)
267
+ completed preparation, publication and release records on attempt 1. Both versions are public
268
+ and tagged `latest`; downloaded registry archives are byte-identical to the reviewed archives.
269
+ npm provenance payloads identify the release commit and workflow attempt and match the archive
270
+ digests; this check does not claim separate cryptographic signature verification. The
271
+ [core](https://github.com/jchewitt/weftlet/releases/tag/%40weftlet/core%400.5.0) and
272
+ [toolkit](https://github.com/jchewitt/weftlet/releases/tag/%40weftlet/toolkit%400.5.0)
273
+ package tags and GitHub Releases resolve to the same commit. Hosted Ubuntu and Windows also
274
+ passed on that merged release commit in
275
+ [run 40506053117](https://github.com/jchewitt/weftlet/actions/runs/40506053117).
276
+
277
+ Completed upstream checks:
278
+
279
+ - Exact reviewed head `370f18a506a948c3148b50a3c3364383e1b88c32` passed `pnpm release:prepare`:
280
+ 408 deterministic tests (17 core, 391 toolkit), one optional OML skip, 13 unchanged advisory
281
+ architecture findings, inventory, licenses and fresh packed-consumer checks. Hosted Ubuntu and
282
+ Windows passed in [run 40504871916](https://github.com/jchewitt/weftlet/actions/runs/40504871916).
283
+ - Timeout fix [PR 33](https://github.com/jchewitt/weftlet/pull/33) merged at
284
+ `795c67a24c5fffdb9c5c4d0cd1edab0ea2ae14bf`; exact source head
285
+ `68be50451d522590a7fd9626c1f6d3edd1acf5ca` passed
286
+ [run 40504193435](https://github.com/jchewitt/weftlet/actions/runs/40504193435).
287
+ - Independent export review approved both archives: core 13 files/8,215 compressed bytes,
288
+ toolkit 218 files/254,008 compressed bytes. All 229 non-manifest files match reviewed
289
+ source/build bytes; 293 relative module references resolve. Compiled configuration contains
290
+ the 600000 ceiling, and T05a assets and exports are present. Core has no runtime dependencies;
291
+ toolkit requires core `^0.5.0`. Licenses/NOTICE/third-party attribution and all 79 original
292
+ source path/hash pairs are intact. No forbidden local-state entries or credential-signature
293
+ matches were found.
294
+ - Hosted artifact `12734837678` from release commit `55770d5ff83737131fcfd17ddba5b87dc22daca3`
295
+ contains package archives byte-identical to those independently reviewed locally.
296
+ - An offline Linux/Node 24.19.0 rehearsal installed the exact reviewed archives with lifecycle
297
+ scripts disabled. Its deterministic local provider received timeout 600000, with real SCIP
298
+ and full SHACL. It produced 54 total facts including 24 SCIP facts, and 53 impact-query facts.
299
+ Cold hydration extracted two artifacts; repeat hydration reused both with unchanged snapshot
300
+ identity, content digest and stored bytes. T05a positive/negative preflight and SHACL, exact
301
+ attribution, phase events and provider-unavailable saved queries/preview passed.
302
+ - Fresh public-registry installation passed on Linux/Node 24.19.0 with lifecycle scripts disabled.
303
+ Both lockfile registry URLs and SHA-512 values match the reviewed archives. The installed CLI
304
+ accepted 600000 and the deterministic module verified receiving it. The committed public fixture
305
+ produced 54 total facts, including two semantic facts, four contract consumers, 24 real SCIP facts and
306
+ two public adapter facts; the impact query returned 53 facts. Cold hydration extracted two
307
+ artifacts; repeat hydration extracted zero and reused both with identical snapshot identity,
308
+ content digest and stored bytes. Positive/negative preflight and full SHACL, exact attribution
309
+ without mutation, and phase events passed. Removing the provider module preserved no-model
310
+ preview and saved queries with no additional provider calls. Fixture commit:
311
+ `f61e05a8f437097ebc6eeb966f6eda2b8bb12008`; content digest:
312
+ `d975795c1324795ef4d144ca803d225c5059c229063c9f0514c006ed310378c4`.
313
+
314
+ The fixture does not run Codex/API requests, wait ten minutes or establish private consumer
315
+ acceptance. T06/T07 and broader T05 work remain open. Entries below are historical checkpoints;
316
+ their publication status and counts describe the time of each check.
317
+
318
+ | Package | Reviewed and public SHA-512 integrity |
319
+ | --- | --- |
320
+ | `@weftlet/core@0.5.0` | `sha512-JM+wBBaGQewwlEHtVDW1bBqMdeTNTnoR9JoqRkJ8t2onK4UPZsoEWho65wtX7UlPlIL/tu975VovJps9xmjuhA==` |
321
+ | `@weftlet/toolkit@0.5.0` | `sha512-7CgqoFX7qjTtK4SEX3+EYC30L0vE69H1gVGPLqbeSwVp176QIrAMA9qsjFzevdLVyPk/mLMp5of4vUXWyobITQ==` |
322
+
11
323
  ## Ten-minute timeout blocker, 2026-10-27
12
324
 
13
325
  The maintainer reports that published 0.4.0 rejects the approved `semantic.timeoutMs: 600000`.
@@ -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.
@@ -0,0 +1 @@
1
+ {"schemaVersion":1,"generatedAt":"2026-10-28T14:26:08.084Z","sourceDirtyPaths":[],"sourceCommit":"4e93837672f0f643bc3c82d747e1c6c01141d1e1","runtime":{"node":"v24.19.0","platform":"linux","arch":"x64"},"dependencies":{"n3":"2.7.2","shacl":"0.6.5"},"config":{"counts":[10000],"fixtures":["unique","document-rich"],"modes":["direct","worker"],"scenarios":["cold"],"samples":3,"deadlineMs":45000},"harnessDigests":{"run.mjs":"61bfca703370e3ea0c0448483f3af892998b745004753ca5872b15662fe4f32b","inputs.mjs":"4fa4c92afd84cfe1a634dccbb84e706a4e3f421f8458e594bd0223aff68ae526","execution.mjs":"17777d56f0d58605341cc64bcc5406b1d0906a1ef7e09d4f55079095d80c049f","measure.mjs":"e45f4b1e0f95343f6fe507d3c325e998de73bf89e1fdea66baa148bf328d8f82","worker.mjs":"8877589928da7201716dbfab542b9483e0d2a34591e5962303ea3560164e55c4","extracted.ts":"fe2c9eb7cb0b53769f0d09fdbf7bfc5ed37c51d51aa52f5c5acd4a54b71e845e"},"units":"All times milliseconds; RSS/heap bytes; maxRSS KiB. Whole process including imports, fixture, serialized data and validation; worker RSS includes parent.","methodology":"Fresh child per fixture/mode/sample. Forced GC before each measured case, outside timers. Full validation every time. Serialization/key hashing measured separately. Worker startup and structured-clone roundtrip included separately. Timer probe is responsiveness, not progress. No production cache/worker/incremental backend.","runs":[{"fixture":"unique","count":10000,"sample":1,"mode":"direct","scenarios":["cold"],"status":"complete","code":0,"signal":null,"deadlineMs":45000,"processElapsedMs":6821.657706999999,"cases":[{"scenario":"cold","factCount":10000,"nodeCount":20000,"quadCount":280003,"namedGraphCount":10000,"preflightPassed":true,"preflightMs":8.763063999999986,"constructionMs":896.5771599999999,"reusedGraphInstance":false,"serializationMs":622.651732,"keyHashMs":141.68629599999986,"canonicalDigest":"5bd5824130efc0f5a19d3e45d5586262765b66aaed5a57ceba3620c92fea1a26","exactKey":"9f07bc6f9d9bacad60b73726340fe59f47e9d1745ca23209ce453c2c8bebc7ed","contract":"ce239e54ef6d95ffa2961976cac3ce6a2923309e71366760ba65af11ae97bd45","validationMs":3221.107338,"validationPhases":[{"phase":"build-validation-union","status":"started","factCount":10000,"elapsedMs":0},{"phase":"build-validation-union","status":"completed","factCount":10000,"elapsedMs":1002},{"phase":"validate-shacl","status":"started","factCount":10000,"elapsedMs":0},{"phase":"validate-shacl","status":"completed","factCount":10000,"elapsedMs":2218}],"conforms":true,"issueCount":0,"verdictDigest":"7637f61ac594db05b25ec8b4773bb471c2dfdfc4600a97de27cb2acb8d033268","issuePaths":[],"serializationPreserved":true,"validationCpuMs":4393.02,"measuredMs":5664.9454160000005,"rssBeforeBytes":195448832,"rssAfterConstructionBytes":781459456,"rssAfterSerializationBytes":934445056,"rssAfterBytes":1706278912,"heapUsedAfterBytes":1517745280,"maxRssKiB":1713880,"parentRoundTripMs":5687.521685,"parentTimerDelayMs":5690.508562}],"startupMs":725.493946},{"fixture":"unique","count":10000,"sample":1,"mode":"worker","scenarios":["cold"],"status":"complete","code":0,"signal":null,"deadlineMs":45000,"processElapsedMs":6630.094840000001,"cases":[{"scenario":"cold","factCount":10000,"nodeCount":20000,"quadCount":280003,"namedGraphCount":10000,"preflightPassed":true,"preflightMs":12.590054999999893,"constructionMs":924.980838,"reusedGraphInstance":false,"serializationMs":677.5312119999999,"keyHashMs":113.96677799999998,"canonicalDigest":"5bd5824130efc0f5a19d3e45d5586262765b66aaed5a57ceba3620c92fea1a26","exactKey":"9f07bc6f9d9bacad60b73726340fe59f47e9d1745ca23209ce453c2c8bebc7ed","contract":"ce239e54ef6d95ffa2961976cac3ce6a2923309e71366760ba65af11ae97bd45","validationMs":2883.0375959999997,"validationPhases":[{"phase":"build-validation-union","status":"started","factCount":10000,"elapsedMs":0},{"phase":"build-validation-union","status":"completed","factCount":10000,"elapsedMs":725},{"phase":"validate-shacl","status":"started","factCount":10000,"elapsedMs":0},{"phase":"validate-shacl","status":"completed","factCount":10000,"elapsedMs":2156}],"conforms":true,"issueCount":0,"verdictDigest":"7637f61ac594db05b25ec8b4773bb471c2dfdfc4600a97de27cb2acb8d033268","issuePaths":[],"serializationPreserved":true,"validationCpuMs":3562.476,"measuredMs":5525.578434,"rssBeforeBytes":233730048,"rssAfterConstructionBytes":819884032,"rssAfterSerializationBytes":997019648,"rssAfterBytes":1510010880,"heapUsedAfterBytes":843054872,"maxRssKiB":1570304,"parentRoundTripMs":5585.680673999999,"parentTimerDelayMs":19.386888}],"startupMs":802.556464},{"fixture":"unique","count":10000,"sample":2,"mode":"direct","scenarios":["cold"],"status":"complete","code":0,"signal":null,"deadlineMs":45000,"processElapsedMs":6563.366361,"cases":[{"scenario":"cold","factCount":10000,"nodeCount":20000,"quadCount":280003,"namedGraphCount":10000,"preflightPassed":true,"preflightMs":8.547301000000061,"constructionMs":1070.095138,"reusedGraphInstance":false,"serializationMs":623.4454810000002,"keyHashMs":113.92051800000036,"canonicalDigest":"5bd5824130efc0f5a19d3e45d5586262765b66aaed5a57ceba3620c92fea1a26","exactKey":"9f07bc6f9d9bacad60b73726340fe59f47e9d1745ca23209ce453c2c8bebc7ed","contract":"ce239e54ef6d95ffa2961976cac3ce6a2923309e71366760ba65af11ae97bd45","validationMs":2859.9442809999996,"validationPhases":[{"phase":"build-validation-union","status":"started","factCount":10000,"elapsedMs":0},{"phase":"build-validation-union","status":"completed","factCount":10000,"elapsedMs":746},{"phase":"validate-shacl","status":"started","factCount":10000,"elapsedMs":0},{"phase":"validate-shacl","status":"completed","factCount":10000,"elapsedMs":2113}],"conforms":true,"issueCount":0,"verdictDigest":"7637f61ac594db05b25ec8b4773bb471c2dfdfc4600a97de27cb2acb8d033268","issuePaths":[],"serializationPreserved":true,"validationCpuMs":3535.735,"measuredMs":5423.421711,"rssBeforeBytes":195649536,"rssAfterConstructionBytes":784015360,"rssAfterSerializationBytes":935972864,"rssAfterBytes":1708658688,"heapUsedAfterBytes":1521688112,"maxRssKiB":1716188,"parentRoundTripMs":5443.625995,"parentTimerDelayMs":5447.797998}],"startupMs":717.979127},{"fixture":"unique","count":10000,"sample":2,"mode":"worker","scenarios":["cold"],"status":"complete","code":0,"signal":null,"deadlineMs":45000,"processElapsedMs":6564.048174,"cases":[{"scenario":"cold","factCount":10000,"nodeCount":20000,"quadCount":280003,"namedGraphCount":10000,"preflightPassed":true,"preflightMs":11.041952000000038,"constructionMs":939.602247,"reusedGraphInstance":false,"serializationMs":638.7708459999999,"keyHashMs":112.30213400000002,"canonicalDigest":"5bd5824130efc0f5a19d3e45d5586262765b66aaed5a57ceba3620c92fea1a26","exactKey":"9f07bc6f9d9bacad60b73726340fe59f47e9d1745ca23209ce453c2c8bebc7ed","contract":"ce239e54ef6d95ffa2961976cac3ce6a2923309e71366760ba65af11ae97bd45","validationMs":2811.6251569999995,"validationPhases":[{"phase":"build-validation-union","status":"started","factCount":10000,"elapsedMs":0},{"phase":"build-validation-union","status":"completed","factCount":10000,"elapsedMs":710},{"phase":"validate-shacl","status":"started","factCount":10000,"elapsedMs":0},{"phase":"validate-shacl","status":"completed","factCount":10000,"elapsedMs":2100}],"conforms":true,"issueCount":0,"verdictDigest":"7637f61ac594db05b25ec8b4773bb471c2dfdfc4600a97de27cb2acb8d033268","issuePaths":[],"serializationPreserved":true,"validationCpuMs":3437.92,"measuredMs":5391.264873,"rssBeforeBytes":233308160,"rssAfterConstructionBytes":819920896,"rssAfterSerializationBytes":995319808,"rssAfterBytes":1539338240,"heapUsedAfterBytes":784230536,"maxRssKiB":1603756,"parentRoundTripMs":5459.0642259999995,"parentTimerDelayMs":20.748784999999998}],"startupMs":851.816007},{"fixture":"unique","count":10000,"sample":3,"mode":"direct","scenarios":["cold"],"status":"complete","code":0,"signal":null,"deadlineMs":45000,"processElapsedMs":6557.774013999999,"cases":[{"scenario":"cold","factCount":10000,"nodeCount":20000,"quadCount":280003,"namedGraphCount":10000,"preflightPassed":true,"preflightMs":12.831038000000035,"constructionMs":994.716051,"reusedGraphInstance":false,"serializationMs":645.085378,"keyHashMs":111.20544199999995,"canonicalDigest":"5bd5824130efc0f5a19d3e45d5586262765b66aaed5a57ceba3620c92fea1a26","exactKey":"9f07bc6f9d9bacad60b73726340fe59f47e9d1745ca23209ce453c2c8bebc7ed","contract":"ce239e54ef6d95ffa2961976cac3ce6a2923309e71366760ba65af11ae97bd45","validationMs":2835.951343,"validationPhases":[{"phase":"build-validation-union","status":"started","factCount":10000,"elapsedMs":0},{"phase":"build-validation-union","status":"completed","factCount":10000,"elapsedMs":725},{"phase":"validate-shacl","status":"started","factCount":10000,"elapsedMs":0},{"phase":"validate-shacl","status":"completed","factCount":10000,"elapsedMs":2109}],"conforms":true,"issueCount":0,"verdictDigest":"7637f61ac594db05b25ec8b4773bb471c2dfdfc4600a97de27cb2acb8d033268","issuePaths":[],"serializationPreserved":true,"validationCpuMs":3528.422,"measuredMs":5349.073455,"rssBeforeBytes":196014080,"rssAfterConstructionBytes":785858560,"rssAfterSerializationBytes":937222144,"rssAfterBytes":1708736512,"heapUsedAfterBytes":1522672464,"maxRssKiB":1716292,"parentRoundTripMs":5376.368321,"parentTimerDelayMs":5378.659012}],"startupMs":756.587221},{"fixture":"unique","count":10000,"sample":3,"mode":"worker","scenarios":["cold"],"status":"complete","code":0,"signal":null,"deadlineMs":45000,"processElapsedMs":6469.482438999999,"cases":[{"scenario":"cold","factCount":10000,"nodeCount":20000,"quadCount":280003,"namedGraphCount":10000,"preflightPassed":true,"preflightMs":11.935782999999901,"constructionMs":860.3412209999999,"reusedGraphInstance":false,"serializationMs":643.3238970000002,"keyHashMs":111.71670499999982,"canonicalDigest":"5bd5824130efc0f5a19d3e45d5586262765b66aaed5a57ceba3620c92fea1a26","exactKey":"9f07bc6f9d9bacad60b73726340fe59f47e9d1745ca23209ce453c2c8bebc7ed","contract":"ce239e54ef6d95ffa2961976cac3ce6a2923309e71366760ba65af11ae97bd45","validationMs":2830.209614,"validationPhases":[{"phase":"build-validation-union","status":"started","factCount":10000,"elapsedMs":0},{"phase":"build-validation-union","status":"completed","factCount":10000,"elapsedMs":719},{"phase":"validate-shacl","status":"started","factCount":10000,"elapsedMs":0},{"phase":"validate-shacl","status":"completed","factCount":10000,"elapsedMs":2109}],"conforms":true,"issueCount":0,"verdictDigest":"7637f61ac594db05b25ec8b4773bb471c2dfdfc4600a97de27cb2acb8d033268","issuePaths":[],"serializationPreserved":true,"validationCpuMs":3499.408,"measuredMs":5324.824342,"rssBeforeBytes":238292992,"rssAfterConstructionBytes":847454208,"rssAfterSerializationBytes":999796736,"rssAfterBytes":1499840512,"heapUsedAfterBytes":843868136,"maxRssKiB":1555436,"parentRoundTripMs":5389.260332,"parentTimerDelayMs":22.52812599999993}],"startupMs":813.0137239999999},{"fixture":"document-rich","count":10000,"sample":1,"mode":"direct","scenarios":["cold"],"status":"complete","code":0,"signal":null,"deadlineMs":45000,"processElapsedMs":9246.805686,"cases":[{"scenario":"cold","factCount":10000,"nodeCount":50,"quadCount":240203,"namedGraphCount":10000,"preflightPassed":true,"preflightMs":8.973736999999915,"constructionMs":945.319089,"reusedGraphInstance":false,"serializationMs":673.2502029999998,"keyHashMs":107.50001100000009,"canonicalDigest":"a5c36aabdba3ccc6c8e938697f3f73cd9caa366db471354b21344537b0d9e2b2","exactKey":"7a13cb8a1e605c1bf16ec4883897aaa2d9205a831ed0076a1df9ec534ede0d39","contract":"ce239e54ef6d95ffa2961976cac3ce6a2923309e71366760ba65af11ae97bd45","validationMs":5654.607669000001,"validationPhases":[{"phase":"build-validation-union","status":"started","factCount":10000,"elapsedMs":0},{"phase":"build-validation-union","status":"completed","factCount":10000,"elapsedMs":537},{"phase":"validate-shacl","status":"started","factCount":10000,"elapsedMs":0},{"phase":"validate-shacl","status":"completed","factCount":10000,"elapsedMs":5115}],"conforms":true,"issueCount":0,"verdictDigest":"7637f61ac594db05b25ec8b4773bb471c2dfdfc4600a97de27cb2acb8d033268","issuePaths":[],"serializationPreserved":true,"validationCpuMs":6535.288,"measuredMs":8136.515172999999,"rssBeforeBytes":203538432,"rssAfterConstructionBytes":931328000,"rssAfterSerializationBytes":1094602752,"rssAfterBytes":1777664000,"heapUsedAfterBytes":1592677376,"maxRssKiB":1784876,"parentRoundTripMs":8160.707279,"parentTimerDelayMs":8162.246778999999}],"startupMs":735.8435049999999},{"fixture":"document-rich","count":10000,"sample":1,"mode":"worker","scenarios":["cold"],"status":"complete","code":0,"signal":null,"deadlineMs":45000,"processElapsedMs":9605.594285000006,"cases":[{"scenario":"cold","factCount":10000,"nodeCount":50,"quadCount":240203,"namedGraphCount":10000,"preflightPassed":true,"preflightMs":5.953120000000126,"constructionMs":973.3887770000001,"reusedGraphInstance":false,"serializationMs":668.337008,"keyHashMs":107.94188600000007,"canonicalDigest":"a5c36aabdba3ccc6c8e938697f3f73cd9caa366db471354b21344537b0d9e2b2","exactKey":"7a13cb8a1e605c1bf16ec4883897aaa2d9205a831ed0076a1df9ec534ede0d39","contract":"ce239e54ef6d95ffa2961976cac3ce6a2923309e71366760ba65af11ae97bd45","validationMs":5929.199133000001,"validationPhases":[{"phase":"build-validation-union","status":"started","factCount":10000,"elapsedMs":0},{"phase":"build-validation-union","status":"completed","factCount":10000,"elapsedMs":704},{"phase":"validate-shacl","status":"started","factCount":10000,"elapsedMs":0},{"phase":"validate-shacl","status":"completed","factCount":10000,"elapsedMs":5222}],"conforms":true,"issueCount":0,"verdictDigest":"7637f61ac594db05b25ec8b4773bb471c2dfdfc4600a97de27cb2acb8d033268","issuePaths":[],"serializationPreserved":true,"validationCpuMs":7593.211,"measuredMs":8407.123813,"rssBeforeBytes":258461696,"rssAfterConstructionBytes":1012281344,"rssAfterSerializationBytes":1175539712,"rssAfterBytes":1730912256,"heapUsedAfterBytes":1432126368,"maxRssKiB":1739196,"parentRoundTripMs":8484.694172,"parentTimerDelayMs":22.037147000000004}],"startupMs":812.819397},{"fixture":"document-rich","count":10000,"sample":2,"mode":"direct","scenarios":["cold"],"status":"complete","code":0,"signal":null,"deadlineMs":45000,"processElapsedMs":9372.732576999995,"cases":[{"scenario":"cold","factCount":10000,"nodeCount":50,"quadCount":240203,"namedGraphCount":10000,"preflightPassed":true,"preflightMs":6.117657000000008,"constructionMs":1133.5045339999997,"reusedGraphInstance":false,"serializationMs":645.421898,"keyHashMs":106.8481999999999,"canonicalDigest":"a5c36aabdba3ccc6c8e938697f3f73cd9caa366db471354b21344537b0d9e2b2","exactKey":"7a13cb8a1e605c1bf16ec4883897aaa2d9205a831ed0076a1df9ec534ede0d39","contract":"ce239e54ef6d95ffa2961976cac3ce6a2923309e71366760ba65af11ae97bd45","validationMs":5667.495636999999,"validationPhases":[{"phase":"build-validation-union","status":"started","factCount":10000,"elapsedMs":0},{"phase":"build-validation-union","status":"completed","factCount":10000,"elapsedMs":558},{"phase":"validate-shacl","status":"started","factCount":10000,"elapsedMs":0},{"phase":"validate-shacl","status":"completed","factCount":10000,"elapsedMs":5106}],"conforms":true,"issueCount":0,"verdictDigest":"7637f61ac594db05b25ec8b4773bb471c2dfdfc4600a97de27cb2acb8d033268","issuePaths":[],"serializationPreserved":true,"validationCpuMs":6570.28,"measuredMs":8272.424175,"rssBeforeBytes":198664192,"rssAfterConstructionBytes":928133120,"rssAfterSerializationBytes":1089122304,"rssAfterBytes":1792905216,"heapUsedAfterBytes":1588377680,"maxRssKiB":1799732,"parentRoundTripMs":8293.881053000001,"parentTimerDelayMs":8294.079672}],"startupMs":758.7274259999999},{"fixture":"document-rich","count":10000,"sample":2,"mode":"worker","scenarios":["cold"],"status":"complete","code":0,"signal":null,"deadlineMs":45000,"processElapsedMs":11847.863222999993,"cases":[{"scenario":"cold","factCount":10000,"nodeCount":50,"quadCount":240203,"namedGraphCount":10000,"preflightPassed":true,"preflightMs":6.208343999999897,"constructionMs":990.092836,"reusedGraphInstance":false,"serializationMs":608.1350770000004,"keyHashMs":108.87641200000007,"canonicalDigest":"a5c36aabdba3ccc6c8e938697f3f73cd9caa366db471354b21344537b0d9e2b2","exactKey":"7a13cb8a1e605c1bf16ec4883897aaa2d9205a831ed0076a1df9ec534ede0d39","contract":"ce239e54ef6d95ffa2961976cac3ce6a2923309e71366760ba65af11ae97bd45","validationMs":7877.2863959999995,"validationPhases":[{"phase":"build-validation-union","status":"started","factCount":10000,"elapsedMs":0},{"phase":"build-validation-union","status":"completed","factCount":10000,"elapsedMs":597},{"phase":"validate-shacl","status":"started","factCount":10000,"elapsedMs":0},{"phase":"validate-shacl","status":"completed","factCount":10000,"elapsedMs":7277}],"conforms":true,"issueCount":0,"verdictDigest":"7637f61ac594db05b25ec8b4773bb471c2dfdfc4600a97de27cb2acb8d033268","issuePaths":[],"serializationPreserved":true,"validationCpuMs":14465.563,"measuredMs":10487.542690999999,"rssBeforeBytes":264941568,"rssAfterConstructionBytes":1023188992,"rssAfterSerializationBytes":1157357568,"rssAfterBytes":3155808256,"heapUsedAfterBytes":1677044752,"maxRssKiB":3131756,"parentRoundTripMs":10565.212324,"parentTimerDelayMs":21.39384199999995}],"startupMs":847.9719680000001},{"fixture":"document-rich","count":10000,"sample":3,"mode":"direct","scenarios":["cold"],"status":"complete","code":0,"signal":null,"deadlineMs":45000,"processElapsedMs":9134.687158999994,"cases":[{"scenario":"cold","factCount":10000,"nodeCount":50,"quadCount":240203,"namedGraphCount":10000,"preflightPassed":true,"preflightMs":5.656853999999953,"constructionMs":911.825285,"reusedGraphInstance":false,"serializationMs":632.9224189999998,"keyHashMs":105.19697200000019,"canonicalDigest":"a5c36aabdba3ccc6c8e938697f3f73cd9caa366db471354b21344537b0d9e2b2","exactKey":"7a13cb8a1e605c1bf16ec4883897aaa2d9205a831ed0076a1df9ec534ede0d39","contract":"ce239e54ef6d95ffa2961976cac3ce6a2923309e71366760ba65af11ae97bd45","validationMs":5704.032765999999,"validationPhases":[{"phase":"build-validation-union","status":"started","factCount":10000,"elapsedMs":0},{"phase":"build-validation-union","status":"completed","factCount":10000,"elapsedMs":541},{"phase":"validate-shacl","status":"started","factCount":10000,"elapsedMs":0},{"phase":"validate-shacl","status":"completed","factCount":10000,"elapsedMs":5161}],"conforms":true,"issueCount":0,"verdictDigest":"7637f61ac594db05b25ec8b4773bb471c2dfdfc4600a97de27cb2acb8d033268","issuePaths":[],"serializationPreserved":true,"validationCpuMs":6617.606,"measuredMs":8064.530886999999,"rssBeforeBytes":206147584,"rssAfterConstructionBytes":935682048,"rssAfterSerializationBytes":1096269824,"rssAfterBytes":1780424704,"heapUsedAfterBytes":1593388936,"maxRssKiB":1787568,"parentRoundTripMs":8087.546810000001,"parentTimerDelayMs":8089.188373}],"startupMs":708.7574510000001},{"fixture":"document-rich","count":10000,"sample":3,"mode":"worker","scenarios":["cold"],"status":"complete","code":0,"signal":null,"deadlineMs":45000,"processElapsedMs":9589.764985000002,"cases":[{"scenario":"cold","factCount":10000,"nodeCount":50,"quadCount":240203,"namedGraphCount":10000,"preflightPassed":true,"preflightMs":6.146398999999974,"constructionMs":943.276404,"reusedGraphInstance":false,"serializationMs":660.7974669999999,"keyHashMs":111.09408899999971,"canonicalDigest":"a5c36aabdba3ccc6c8e938697f3f73cd9caa366db471354b21344537b0d9e2b2","exactKey":"7a13cb8a1e605c1bf16ec4883897aaa2d9205a831ed0076a1df9ec534ede0d39","contract":"ce239e54ef6d95ffa2961976cac3ce6a2923309e71366760ba65af11ae97bd45","validationMs":5912.765316,"validationPhases":[{"phase":"build-validation-union","status":"started","factCount":10000,"elapsedMs":0},{"phase":"build-validation-union","status":"completed","factCount":10000,"elapsedMs":547},{"phase":"validate-shacl","status":"started","factCount":10000,"elapsedMs":0},{"phase":"validate-shacl","status":"completed","factCount":10000,"elapsedMs":5363}],"conforms":true,"issueCount":0,"verdictDigest":"7637f61ac594db05b25ec8b4773bb471c2dfdfc4600a97de27cb2acb8d033268","issuePaths":[],"serializationPreserved":true,"validationCpuMs":7993.737,"measuredMs":8364.487652,"rssBeforeBytes":258076672,"rssAfterConstructionBytes":1007435776,"rssAfterSerializationBytes":1169039360,"rssAfterBytes":1848094720,"heapUsedAfterBytes":1445015368,"maxRssKiB":1855716,"parentRoundTripMs":8443.819346,"parentTimerDelayMs":21.508170999999948}],"startupMs":817.314277}],"comparisons":[{"key":"unique:10000:1","status":"exact-verdict-and-data-match"},{"key":"unique:10000:2","status":"exact-verdict-and-data-match"},{"key":"unique:10000:3","status":"exact-verdict-and-data-match"},{"key":"document-rich:10000:1","status":"exact-verdict-and-data-match"},{"key":"document-rich:10000:2","status":"exact-verdict-and-data-match"},{"key":"document-rich:10000:3","status":"exact-verdict-and-data-match"}],"cancellation":{"phase":"validate-shacl","requested":true,"exitCode":1,"verdictObserved":false,"acceptedConformance":false,"terminationMs":21.963174999997136,"processMs":1145.2241189999913,"publicationAttempted":false}}