@weftlet/toolkit 0.3.0 → 0.5.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 (68) hide show
  1. package/README.md +26 -1
  2. package/dist/application/application.js +7 -4
  3. package/dist/application/cache-adoption.d.ts +43 -0
  4. package/dist/application/cache-adoption.js +129 -0
  5. package/dist/application/extraction-identity.d.ts +6 -0
  6. package/dist/application/extraction-identity.js +15 -0
  7. package/dist/application/hydration-failure.d.ts +41 -0
  8. package/dist/application/hydration-failure.js +43 -0
  9. package/dist/application/hydration-plan.d.ts +4 -7
  10. package/dist/application/hydration-plan.js +7 -15
  11. package/dist/application/hydrator.d.ts +5 -5
  12. package/dist/application/hydrator.js +37 -52
  13. package/dist/application/overlay.d.ts +3 -1
  14. package/dist/application/overlay.js +13 -4
  15. package/dist/application/saved-evidence.d.ts +6 -3
  16. package/dist/application/saved-evidence.js +7 -1
  17. package/dist/application/semantic-artifact-store.d.ts +4 -0
  18. package/dist/application/semantic-artifact-store.js +7 -0
  19. package/dist/application/semantic-run.d.ts +32 -0
  20. package/dist/application/semantic-run.js +111 -0
  21. package/dist/application/semantic-scope.d.ts +13 -0
  22. package/dist/application/semantic-scope.js +12 -0
  23. package/dist/application/snapshot-checks.d.ts +2 -1
  24. package/dist/application/snapshot-checks.js +8 -1
  25. package/dist/configuration/cache.d.ts +6 -0
  26. package/dist/configuration/cache.js +18 -0
  27. package/dist/configuration/config.js +1 -1
  28. package/dist/extraction/document.js +1 -1
  29. package/dist/extraction/providers.js +10 -3
  30. package/dist/extraction/repository-nodes.d.ts +2 -3
  31. package/dist/extraction/repository-nodes.js +5 -11
  32. package/dist/extraction/routing.d.ts +1 -1
  33. package/dist/extraction/routing.js +3 -6
  34. package/dist/extraction/semantic-cache.d.ts +1 -0
  35. package/dist/extraction/semantic-cache.js +9 -2
  36. package/dist/extraction/semantic-diagnostics.d.ts +9 -0
  37. package/dist/extraction/semantic-diagnostics.js +15 -0
  38. package/dist/extraction/semantic.d.ts +5 -1
  39. package/dist/extraction/semantic.js +39 -6
  40. package/dist/extraction/static.d.ts +13 -5
  41. package/dist/extraction/static.js +8 -15
  42. package/dist/governance/governance.js +11 -7
  43. package/dist/graph/identity-preflight.d.ts +57 -0
  44. package/dist/graph/identity-preflight.js +71 -0
  45. package/dist/graph/query.js +2 -0
  46. package/dist/graph/rdf.d.ts +4 -1
  47. package/dist/graph/rdf.js +10 -6
  48. package/dist/graph/validation-progress.d.ts +14 -0
  49. package/dist/graph/validation-progress.js +18 -0
  50. package/dist/index.d.ts +5 -0
  51. package/dist/index.js +5 -0
  52. package/dist/interfaces/cli.js +52 -22
  53. package/dist/storage/storage.d.ts +7 -1
  54. package/dist/storage/storage.js +15 -3
  55. package/dist/visualization/visualization.js +1 -0
  56. package/docs/ADR-016-hydration-preview.md +1 -1
  57. package/docs/ADR-017-shacl-validation-union.md +1 -1
  58. package/docs/ADR-018-operational-semantic-cache.md +100 -0
  59. package/docs/ADR-019-semantic-failure-diagnostics.md +82 -0
  60. package/docs/ADR-020-canonical-physical-file-producers.md +97 -0
  61. package/docs/ADR-021-identity-preflight-and-validation-timing.md +81 -0
  62. package/docs/PROVIDERS.md +58 -1
  63. package/docs/RELEASE-1.0-PLAN.md +100 -34
  64. package/docs/RELEASING.md +4 -2
  65. package/docs/ROADMAP.md +40 -15
  66. package/docs/VALIDATION.md +351 -4
  67. package/docs/extraction-manifest.json +50 -23
  68. package/package.json +2 -2
package/docs/PROVIDERS.md CHANGED
@@ -83,10 +83,17 @@ continue using their ChatGPT login; this change does not provision or copy accou
83
83
  ## Limits and reuse
84
84
 
85
85
  Defaults are at most 8 documents per hydration, 64 KiB per source, a 120-second timeout per
86
- request, no retries, and the configured concurrency (validated at 1–4). Source budgets are checked
86
+ Codex attempt (or module execution), no retries, and the configured concurrency (validated at 1–4). Source budgets are checked
87
87
  before any model call. `maxDocuments`, `maxSourceBytes`, `timeoutMs`, and `retries` may be configured
88
88
  within validated limits. Review scope and cost before raising them; these byte/document limits
89
89
  are not dollar or token estimates. Ask the operator before substantial paid runs.
90
+ Starting with 0.5.0, `semantic.timeoutMs` accepts integer values from 1 through **600000**
91
+ (ten minutes); 0.4.0 and earlier reject values above 300000. The default remains 120000.
92
+ For the approved ten-minute retry, set `"timeoutMs": 600000` inside the existing `semantic`
93
+ configuration, preview reuse with `hydrate --plan`, then rerun hydration without forcing
94
+ re-extraction. The limit applies to each Codex attempt, or the whole module execution, rather
95
+ than the entire hydration. Codex authentication/discovery checks retain their separate five-second
96
+ bounds. This setting does not raise a CI job's overall timeout or change retry policy.
90
97
  Only explicit transient exit status 75 is retryable, at most twice; authentication, invalid
91
98
  output, cancellation and ambiguous failures are not retried. Ctrl-C cancels live CLI extraction.
92
99
  Indexing cancellation is checked between phases, not inside the indexer process.
@@ -96,6 +103,56 @@ digest/stable ID, extractor/adapter/ontology versions, confidence threshold and
96
103
  Unchanged artifacts are reused; forced revisions are separate. Failures never replace a valid
97
104
  snapshot. Progress shows phase and counts on stderr, with no document text or paths.
98
105
 
106
+ Starting with 0.4.0, T04 adds opaque source IDs, source elapsed times and structured semantic
107
+ failure reports. With that version or newer installed, retain the same committed ref and any
108
+ agent scope options as the failed run:
109
+
110
+ ```sh
111
+ pnpm exec weftlet hydrate --config /path/to/project/context-graph.config.json --ref <commit> --plan --json
112
+ pnpm exec weftlet hydrate --config /path/to/project/context-graph.config.json --ref <commit> --json --quiet
113
+ ```
114
+
115
+ The first command makes no model calls and maps each `sourceId` to its local document path. Review
116
+ that preview before sharing it. The second performs hydration: semantic failures exit nonzero,
117
+ leave stdout empty and emit JSON on stderr. Omit `--quiet` for progress; omit `--json` for a safe
118
+ human failure summary. Successful hydration still prints its result on stdout. JSON failure
119
+ reporting covers semantic processing, not every configuration/indexing/validation failure.
120
+
121
+ Reports distinguish timeout, cancellation, unavailable infrastructure, provider failure, invalid
122
+ output, unresolved mappings, low confidence and cache problems. Completed/extracted/reused counts include active writes that finished
123
+ before workers settled. `remaining` includes failed, cancelled and not-started sources; consult
124
+ preview for future extraction estimates. Cancellation between sources has no failed `sourceId`.
125
+ Source elapsed time includes cache checks and retries and may exceed the per-attempt limit;
126
+ module timeout includes import/factory/extraction. No defaults or retry rules change.
127
+
128
+ For a timeout, review `semantic.timeoutMs` and preview again before retrying without
129
+ `--force-semantic`. Completed forced revisions remain stored but are not automatically reused by
130
+ an ordinary rerun or a new forced run. Custom provider configuration changes remain conservative.
131
+ See [ADR 019](ADR-019-semantic-failure-diagnostics.md) for reporting and privacy boundaries.
132
+
133
+ Starting with 0.4.0, built-in Codex semantic artifacts are separate from user
134
+ snapshot profiles. Changing `timeoutMs`, `retries`, `concurrency`, `maxDocuments` or
135
+ `maxSourceBytes` can reuse completed artifacts; selection budgets are still enforced. Snapshot
136
+ configuration digests remain complete and saved snapshots are not accepted as current merely
137
+ because their artifacts were reused. Workspace cache paths and custom-provider identities remain
138
+ unchanged. See [ADR 018](ADR-018-operational-semantic-cache.md) for exact isolation and recovery rules.
139
+
140
+ If an older user-cache run was interrupted and its configuration has already changed, retain an
141
+ exact copy of the previous configuration in its original directory. Its original `repositoryRoot`
142
+ must still resolve to the same checkout; editing that field changes the old profile identity.
143
+ With 0.4.0 or newer installed:
144
+
145
+ ```sh
146
+ pnpm exec weftlet cache adopt --config /path/to/project/context-graph.config.json --from-config /path/to/project/previous-context-graph.config.json --ref HEAD --dry-run
147
+ pnpm exec weftlet cache adopt --config /path/to/project/context-graph.config.json --from-config /path/to/project/previous-context-graph.config.json --ref HEAD
148
+ ```
149
+
150
+ For an agent-scoped run, supply the same `--owner-doc`, `--task` or `--capability` selection used
151
+ for hydration. The JSON report shows what was retained and what still needs extraction. Adoption
152
+ makes no model calls and changes no snapshots or source files. Incompatible configurations are
153
+ refused; unrelated cache profiles are never scanned. Corrupt/conflicting artifacts are reported
154
+ and retained. This command is not present in published 0.3.0.
155
+
99
156
  For a trusted local provider module, set `provider: "module"`, `providerModule` to a local path
100
157
  (relative to the repository root) or installed package, and `providerIdentity` to its exact
101
158
  declared version. Packages resolve from the consumer repository using ESM import conditions.
@@ -1,13 +1,20 @@
1
1
  # Consumer hardening and the 1.0 release plan
2
2
 
3
- Status: maintainer-directed work; source checkpoint on 2026-10-26 before the planned 0.3.0 release.
4
- The report concerned `@weftlet/toolkit@0.2.0`. **T01's upstream patch shipped in 0.2.1**;
5
- genuine consumer acceptance remains pending. T02 is merged and awaits release. T05's focused
6
- cold-validation optimization is implemented in development source, with validation/release pending;
7
- its broader follow-ups and T03, T04, T06 and T07 remain open. These tasks improve setup, reuse, diagnostics and document coverage
8
- without expanding the consumer's migration. An official 1.0
9
- follows this work and genuine consumer acceptance, with its exact release scope reviewed when
10
- the evidence is available.
3
+ Status: maintainer-directed work; release checkpoint on 2026-10-26 after verified 0.4.0 publication.
4
+ **T08's upstream deterministic physical-file fix has shipped; the maintainer reports the consumer
5
+ updated and working on 2026-10-27. Detailed full hydration/repeat evidence remains pending.** T04 was completed before
6
+ the T08 fix as requested.
7
+
8
+ **Release priority T09:** 0.4.0 rejects the approved ten-minute extraction timeout. Support for
9
+ `semantic.timeoutMs: 600000` is implemented for the next release alongside ready T05a work;
10
+ the consumer's ten-minute retry has not run. This bounded blocker precedes T06/T07.
11
+
12
+ The original report concerned `@weftlet/toolkit@0.2.0`. T01's upstream document-identity patch
13
+ shipped in 0.2.1; T02 and T05's focused cold-validation optimization shipped in 0.3.0.
14
+ T03 operational cache reuse, T04 semantic failure diagnostics and T08's public core file factory
15
+ shipped in 0.4.0. Broader T05 follow-ups, T06 documentation consistency and T07 document coverage
16
+ remain open. Official 1.0 follows the agreed remaining scope and genuine consumer acceptance,
17
+ with its exact release scope reviewed when the evidence is available.
11
18
 
12
19
  This is the near-term release task list. The [Weftlet 2.0 product plan](WEFTLET-2.0-PLAN.md)
13
20
  remains a separate future direction for generation, approvals, a companion website and hosted
@@ -34,20 +41,42 @@ integration. Consumer acceptance is reported separately from upstream determinis
34
41
 
35
42
  | ID | Task | Priority/status | Dependencies and release boundary |
36
43
  | --- | --- | --- | --- |
44
+ | **T09** | Accept the approved ten-minute extraction timeout | **Source fix implemented; release pending** | Raise only the config ceiling to 600000; preserve defaults/cache/retry behavior; consumer retry has not run |
45
+ | **T08** | Canonical physical-file kinds and public adapter factory | **Shipped in 0.4.0; consumer reported working; detailed acceptance pending** | Public core factory and neutral producers agree; record consumer commit, adapter tests and full hydration/repeat evidence |
37
46
  | **T01** | Coherent repository-document identity and kind | **Upstream patch shipped in 0.2.1; consumer acceptance pending** | SHACL and assertions preserved; genuine consumer re-run is still required |
38
- | **T02** | No-model hydration/setup preview | Merged in PR #18; not published in 0.2.1 | Shared selection/cache inspection, human/JSON plans; extend with T07 traversal coverage |
39
- | **T03** | Artifact reuse across operational configuration changes | Planned efficiency work | Preserve T01's semantic identity separation; keep snapshot/config identity distinct from reusable artifact identity |
40
- | **T04** | Actionable, privacy-safe timeout diagnostics | Planned diagnostics work | Use stable source identifiers and run progress; document recovery with T02/T03 |
41
- | **T05** | Early identity checks and validation progress/profiling | **Adoption blocker; cold-validation fix in source** | Validate and release union-projection optimization now; early checks, detailed progress and validation reuse remain open |
47
+ | **T02** | No-model hydration/setup preview | Shipped in 0.3.0 | Shared selection/cache inspection, human/JSON plans; extend with T07 traversal coverage |
48
+ | **T03** | Artifact reuse across operational configuration changes | Shipped in 0.4.0 | Built-in Codex user artifacts share five operational changes; custom providers remain conservative; exact legacy recovery without model calls |
49
+ | **T04** | Actionable, privacy-safe timeout diagnostics | Shipped in 0.4.0 | Safe source IDs, settled counts, failure classification and T02/T03 recovery; no extraction/cache identity change |
50
+ | **T05** | Early identity checks and validation progress/profiling | **Cold fix shipped in 0.3.0; T05a merged with local/hosted checks passing, unreleased** | Full validation preserved; worker progress, reuse and broader profiling remain separate |
42
51
  | **T06** | Packaged release-documentation consistency | Open; README version pins removed in 0.2.1 | Automated archive/version consistency check remains to be implemented |
43
52
  | **T07** | Coverage-aware traversal from SOT/roadmap entry points | Planned bounded feature work | Use canonical identity from T01, preview from T02 and incremental reuse from T03; split selection/classification/extraction changes |
44
53
 
45
- T02 passed the local publication checks and hosted Ubuntu/Windows checks before
46
- [PR #18](https://github.com/jchewitt/weftlet/pull/18) merged. Prioritize the focused T05 performance
47
- release following the maintainer's reported timeout; do not wait for the remaining 1.0 features.
48
- T03, T04, T06 and T07 remain independently useful increments. Keep them
49
- separate from the optional platform work. Publication follows the normal release process; no new
50
- npm release is claimed for T02. Normal release checks apply to every shipped increment.
54
+ T02 and the focused T05 fix shipped in 0.3.0; T03, T04 and T08 shipped in
55
+ [0.4.0](https://github.com/jchewitt/weftlet/releases/tag/%40weftlet/toolkit%400.4.0), following
56
+ local/hosted checks, independent archive review and fresh packed/public-registry installation.
57
+ Source, registry integrity, provenance and release tags are recorded in [validation](VALIDATION.md).
58
+ Broader T05, T06 and T07 remain bounded follow-ups.
59
+ The consumer must migrate its framework adapter to the public core factory, then complete full
60
+ hydration and repeat reuse; upstream fixtures do not establish that result.
61
+
62
+ ## T08 — Resolve deterministic physical-file kind conflicts
63
+
64
+ The consumer reports 120 IDs reproduced by actual 0.3.0 deterministic producers: 34 neutral
65
+ contract-only, 57 local-framework-only and 29 overlapping. This is separate from T01's repository
66
+ document identity defect and does not diagnose semantic-cache corruption or business-rule drift.
67
+
68
+ [ADR 020](ADR-020-canonical-physical-file-producers.md) records the public core factory, producer
69
+ audit, deterministic version changes and preserved semantic-cache boundary. The upstream fix
70
+ routes physical-file producers through one policy, preserves strict SHACL/provenance/authority,
71
+ and distinguishes historical graph versions from current validation. Public tests include real
72
+ SCIP and actual extractor composition, plus negative overlay validation without routing.
73
+
74
+ The 0.4.0 release passed local publication checks, hosted Ubuntu/Windows checks, independent archive
75
+ review and fresh packed/public-registry installation. Consumer acceptance still requires the
76
+ published packages plus its own framework adapter migration and composed Prisma/DI/decorator
77
+ spec/test regressions, followed by full hydration and repeat reuse.
78
+ Neither an upstream-only release nor a local-only adapter patch closes both ownership boundaries.
79
+ Do not rewrite semantic caches or force model work to work around the proven deterministic defect.
51
80
 
52
81
  ## T01 — Resolve repository-document identity conflicts
53
82
 
@@ -87,13 +116,15 @@ Upstream completion evidence:
87
116
  snapshot identity/content on artifact reuse, without live model calls. See the detailed
88
117
  [validation record](VALIDATION.md) for commits, checks and result boundaries.
89
118
 
90
- The private consumer has not yet supplied a successful full hydration/repeat against 0.2.1.
119
+ The private consumer has not yet supplied a successful full hydration/repeat with the identity
120
+ patch. Use both 0.4.0 packages and migrate the framework adapter to the public core factory;
121
+ this release retains the cold-validation improvement and adds the T08 deterministic producer fix.
91
122
  Upstream publication and regression success do not close that acceptance gate or diagnose the
92
123
  separate full-graph validation latency observation.
93
124
 
94
125
  ## T02 — Preview scope and work without calling a model
95
126
 
96
- Implemented in development source: `hydrate --plan` renders a human summary and `--json` returns
127
+ Shipped in 0.3.0: `hydrate --plan` renders a human summary and `--json` returns
97
128
  the structured plan. This feature is not in published 0.2.1. Shared source selection and identity
98
129
  logic report selected documents and sizes, inclusion reasons, configured role/source approval,
99
130
  unreviewed assertion status, artifact reuse/extraction estimates and document/per-source byte limits.
@@ -103,9 +134,9 @@ Missing or unsupported-only selectors and bounded agent omissions remain visible
103
134
  incomplete plans need review and exit 1. They do not introduce new hydration gates that would
104
135
  break deletion of the last document. Budget, duplicate-ID and corrupt/unavailable cache errors
105
136
  block planning checks without truncating selected sources. An explicit empty source list selects
106
- none. Requested refs now govern agent scope; corrected snapshots use graph-v6 while valid 0.2.1
107
- semantic artifacts remain reusable. T03's operational cache changes and T07's traversal/default
108
- validation-document separation remain separate work.
137
+ none. Requested refs govern agent scope. Release 0.3.0 introduced graph-v6; 0.4.0 advances assembly
138
+ to graph-v7 for T08 while compatible semantic artifacts remain reusable. T03 operational cache
139
+ reuse shipped in 0.4.0; T07 traversal/default validation-document separation remains open.
109
140
 
110
141
  Acceptance:
111
142
 
@@ -120,6 +151,20 @@ Acceptance:
120
151
 
121
152
  ## T03 — Reuse valid artifacts after operational changes
122
153
 
154
+ Shipped in 0.4.0 after merging [PR 22](https://github.com/jchewitt/weftlet/pull/22) and passing
155
+ local publication and hosted Ubuntu/Windows checks; release evidence is in [validation](VALIDATION.md).
156
+ [ADR 018](ADR-018-operational-semantic-cache.md) separates built-in Codex user artifacts from
157
+ full snapshot profiles. Timeout, retry, concurrency and document/byte limits can change without
158
+ hiding completed artifacts. Model/policy/authentication descriptors and unknown fields remain
159
+ identity inputs; custom providers retain their full configuration contract. Workspace cache
160
+ paths and existing 0.2.1/0.3.0 artifact identities remain unchanged.
161
+
162
+ Planning reads the exact compatible legacy profile without writing. Hydration can retain a
163
+ validated copy atomically. Explicit `cache adopt --from-config` and its read-only `--dry-run`
164
+ recover expected committed-source keys after settings were already changed; no unrelated profiles
165
+ are scanned and no providers or snapshots are initialized. Agent scope and budget/coverage
166
+ reporting match the hydration preview. Current-diff checks still reject old-configuration snapshots.
167
+
123
168
  The consumer reported that changing only a timeout selected a different cache profile and made
124
169
  completed extractions unavailable for reuse. Investigate both storage-location selection and
125
170
  artifact key construction. Separate operational controls from semantic-output identity, while
@@ -136,10 +181,22 @@ Acceptance:
136
181
  - Preserve force-extraction semantics, concurrent-writer safety, isolation between consumers,
137
182
  credentials and private cache contents. Record reuse and reasons for a miss without secrets.
138
183
  - Test interrupted work followed by a changed timeout: valid completed artifacts are reused,
139
- incomplete/invalid ones are re-extracted, and source provenance remains correct.
184
+ missing/incomplete artifacts are extracted, and source provenance remains correct. Corrupt
185
+ complete artifacts stay intact and require explicit forced refresh or operator repair;
186
+ they are not silently overwritten or treated as misses.
140
187
 
141
188
  ## T04 — Explain timeouts and recovery
142
189
 
190
+ Shipped in 0.4.0 after merging [PR 25](https://github.com/jchewitt/weftlet/pull/25) and passing
191
+ local publication and hosted Ubuntu/Windows checks; release evidence is in [validation](VALIDATION.md).
192
+ [ADR 019](ADR-019-semantic-failure-diagnostics.md) records opaque source IDs and explicit local
193
+ preview mapping, final counts after active workers settle, safe typed errors and recovery.
194
+ Concurrent sibling cancellation preserves the initiating failure. Completed writes stay counted
195
+ as completed; cancellation between sources reports no failing source. The CLI supports semantic
196
+ failure JSON on stderr with `hydrate --json --quiet`, leaving protocol/success stdout untouched.
197
+ Provider loading problems and unknown provider errors are distinct. Timeout defaults, extraction
198
+ identities, cache formulas, saved queries and full graph validation remain unchanged.
199
+
143
200
  Report a privacy-safe source identifier, phase, elapsed time, configured limit and completed/
144
201
  remaining counts when extraction times out. Explain which completed artifacts can be retained
145
202
  and how to inspect the plan or adjust a bound before retrying. The documented two-minute default
@@ -156,17 +213,26 @@ Acceptance:
156
213
 
157
214
  ## T05 — Detect inexpensive conflicts early and explain validation work
158
215
 
216
+ T05a implements [early identity attribution and phase timing](ADR-021-identity-preflight-and-validation-timing.md)
217
+ after 0.4.0, merged with local and hosted Ubuntu/Windows checks passing but not yet published.
218
+ Hydration and overlays reject all conflicting subject/object kinds before RDF construction;
219
+ opaque default reports have explicit local detail opt-in.
220
+ Completed semantic artifacts and prior snapshots remain intact. Valid preflight results still
221
+ require full SHACL. Timings report actual phase boundaries, not in-phase heartbeat or percentage.
222
+ This does not close the broader evaluation/reuse/backend items below or claim publication.
223
+
159
224
  The implementation uses JavaScript on Node:
160
225
  `rdf-validate-shacl` validates an in-memory N3 dataset. Hydration constructs and validates the
161
226
  entire assembled graph, including when semantic artifacts were reused. There is no persistent
162
227
  GraphDB backend or incremental validation. Querying a saved snapshot does not rerun SHACL.
163
228
 
164
- The maintainer reports that validation pushes the consumer's overall generation beyond its
165
- 30-minute timeout, preventing snapshot publication and making adoption unusable. This is now
166
- a release blocker, not an optional observability improvement. Upstream has measured a specific
229
+ The maintainer originally reported that validation pushed the consumer's overall generation beyond its
230
+ 30-minute timeout, preventing snapshot publication and making adoption unusable. That report made
231
+ cold validation a release priority ahead of the remaining 1.0 work. Upstream has measured a specific
167
232
  named-graph lookup cost in public synthetic fixtures, but has not measured that consumer graph or
168
- diagnosed its complete timeout. Ship the focused performance release once its correctness and
169
- improvement are demonstrated, ahead of the remaining 1.0 tasks.
233
+ diagnosed its complete timeout. The focused cold-validation fix shipped in 0.3.0, ahead of the
234
+ remaining 1.0 tasks. The consumer is now reported working after 0.4.0; exact performance and
235
+ repeat-hydration acceptance evidence remains unrecorded. Broader T05 items stay open.
170
236
 
171
237
  [ADR 017](ADR-017-shacl-validation-union.md) records the implemented cold-validation optimization:
172
238
  build a temporary union of every SPO triple for the same validator/shapes, while keeping original
@@ -177,15 +243,15 @@ took 0.467 seconds. A 10,000-fact unique-node union case used about 1.3 GiB proc
177
243
  are synthetic phase measurements, not a private consumer reproduction or end-to-end guarantee.
178
244
 
179
245
  The focused change still validates the whole graph each time. It does not add Rust, GraphDB,
180
- incremental validation or a validation-result cache. Early checks and broader observability/reuse
181
- remain follow-ups rather than reasons to delay the cold-path fix. Native code or a database does
246
+ incremental validation or a validation-result cache. T05a now adds early checks and phase timing;
247
+ worker progress and broader observability/reuse remain follow-ups. Native code or a database does
182
248
  not by itself establish faster or correct incremental SHACL.
183
249
 
184
250
  Acceptance:
185
251
 
186
- - Early errors identify the conflicting identity/kinds and relevant evidence using the configured
187
- privacy policy. Preserve all underlying assertions for diagnosis; early checks are not a
188
- substitute for RDF/SHACL validation.
252
+ - Early errors identify the conflicting identity/kinds and relevant evidence through opaque
253
+ defaults and explicit local detail opt-in. Preserve all underlying assertions for diagnosis;
254
+ early checks are not a substitute for RDF/SHACL validation.
189
255
  - Report elapsed time and honest progress for long validation. Current phase boundaries remain
190
256
  the supported progress signal: the synchronous validator blocks same-thread timers. Evaluate
191
257
  bounded worker execution before promising an in-phase heartbeat or cancellation; never display
package/docs/RELEASING.md CHANGED
@@ -1,7 +1,9 @@
1
1
  # Weftlet npm releases
2
2
 
3
- `@weftlet/core@0.2.1` and `@weftlet/toolkit@0.2.1` are published through GitHub OIDC.
4
- [Run 40382864083](https://github.com/jchewitt/weftlet/actions/runs/40382864083) completed
3
+ `@weftlet/core` and `@weftlet/toolkit` are published through GitHub OIDC. The latest verified
4
+ release checkpoint is recorded in [validation](VALIDATION.md); the following are historical
5
+ publication records. For release 0.2.1,
6
+ [run 40382864083](https://github.com/jchewitt/weftlet/actions/runs/40382864083) completed
5
7
  preparation, publication and release records on its first attempt at commit
6
8
  `5d1db91bf19ed493a20849b2d0f92d3aeac35dfe`. Registry archives match the reviewed archives;
7
9
  provenance and package tags identify that commit. A fresh public-registry installation passes
package/docs/ROADMAP.md CHANGED
@@ -1,26 +1,31 @@
1
1
  # Delivery roadmap
2
2
 
3
- Source checkpoint: 2026-10-26, before the planned 0.3.0 release. Publication evidence is
4
- recorded separately in [validation](VALIDATION.md); this roadmap is not a live registry status.
3
+ Release checkpoint: 2026-10-26, after verified 0.4.0 publication. Evidence is recorded in
4
+ [validation](VALIDATION.md); this roadmap is not a live registry status.
5
5
 
6
6
  Project: `jchewitt/weftlet`. Extraction provenance is recorded in the
7
7
  [source inventory](SOURCE-INVENTORY.md).
8
8
 
9
+ Current release priority: the consumer's approved ten-minute retry is blocked by 0.4.0's
10
+ five-minute configuration ceiling. T09 raises the accepted timeout to 600000 ms and will ship
11
+ with ready T05a work. The actual consumer retry has not run; this does not change default limits.
12
+
9
13
  Forward direction is captured in the [Weftlet 2.0 product plan](WEFTLET-2.0-PLAN.md):
10
14
  consumer hardening, cited code-derived drafts, scoped approvals and reconciliation, an optional
11
15
  review website, source publication, managed AI and guided setup. “2.0” is a planning label;
12
- the published packages are 0.2.1. The received consumer findings are tracked in the
16
+ the verified release at this checkpoint is 0.4.0. The received consumer findings are tracked in the
13
17
  [consumer hardening and 1.0 task list](RELEASE-1.0-PLAN.md): the document-identity patch is
14
18
  published and passes upstream checks; genuine consumer acceptance remains pending. T02's
15
- no-model preview is implemented in development source but is not in published 0.2.1. Cache reuse,
16
- diagnostics and document coverage remain open before official 1.0 acceptance.
17
- The 2.0 plan distinguishes proposed work from delivered capability.
19
+ no-model preview and T05's cold-validation improvement shipped in 0.3.0. T03 operational cache
20
+ reuse, T04 timeout diagnostics and T08 deterministic physical-file consistency shipped in 0.4.0.
21
+ Document coverage, broader validation follow-ups and genuine consumer acceptance remain open
22
+ before official 1.0. The 2.0 plan distinguishes proposed work from delivered capability.
18
23
 
19
- T05 now blocks adoption: the maintainer reports SHACL pushing generation past a 30-minute
20
- timeout before graph publication. T02 merged in [PR #18](https://github.com/jchewitt/weftlet/pull/18)
21
- after local and hosted Ubuntu/Windows checks. The focused T05 cold-validation optimization is
22
- implemented in development source, awaiting validation/release; the other 1.0 features must not
23
- delay it. Neither increment is in the published 0.2.1 packages.
24
+ The maintainer reported SHACL pushing generation past a 30-minute timeout before graph
25
+ publication. T02 and the focused T05 optimization shipped together in 0.3.0 through
26
+ [release PR #19](https://github.com/jchewitt/weftlet/pull/19), following local and hosted
27
+ Ubuntu/Windows checks and independent source/archive review. A genuine consumer re-run is
28
+ still required; the remaining 1.0 features did not delay this performance release.
24
29
 
25
30
  [Hydration planning](ADR-016-hydration-preview.md) shares committed selection and semantic cache
26
31
  identity with execution, reports human/JSON scope and work estimates, and preserves source versus
@@ -29,9 +34,29 @@ still checks the complete in-memory N3 graph on each hydration; saved queries do
29
34
  validation. [The T05 union optimization](ADR-017-shacl-validation-union.md) indexes all SPO triples
30
35
  in one temporary validation graph, preserving the same shapes and canonical named evidence.
31
36
  Bounded public experiments measured substantial cold-path improvement, alongside about 1.3 GiB
32
- RSS at 10,000 unique-node facts. They do not reproduce the private consumer's overall timeout.
33
- Early checks, in-phase progress, result reuse and incremental validation remain open; no Rust
34
- engine, graph database or validation-result cache is introduced by this focused release.
37
+ RSS in the prototype at 10,000 unique-node facts; the production harness including serialization
38
+ peaked near 1.6 GiB. They do not reproduce the private consumer's overall timeout.
39
+ T05a adds [early identity checks and phase timing](ADR-021-identity-preflight-and-validation-timing.md)
40
+ after 0.4.0, merged with local/hosted checks passing and publication pending. Full validation
41
+ remains mandatory. In-phase worker progress, result reuse and incremental validation remain
42
+ open; no Rust engine, graph database or
43
+ validation-result cache is introduced by these increments.
44
+
45
+ [T03 operational cache reuse](ADR-018-operational-semantic-cache.md) shipped in 0.4.0. Built-in
46
+ Codex user artifacts can survive changes to timeout/retry/concurrency/document/byte limits while
47
+ snapshots retain their full configuration identity. Exact legacy reads and explicit no-model
48
+ adoption preserve prior artifacts; custom providers remain conservative.
49
+ [T04 diagnostics](ADR-019-semantic-failure-diagnostics.md) shipped in the same release, adding
50
+ safe failure reports, opaque source mapping and settled progress without changing extraction/cache
51
+ identity. Broader T05 and T06/T07 work remain open.
52
+
53
+ [T08 physical-file kind consistency](ADR-020-canonical-physical-file-producers.md) also shipped in
54
+ 0.4.0 after local/hosted Ubuntu/Windows checks, independent archive review and fresh packed and
55
+ public-registry installation. The public core factory and deterministic producers share one policy
56
+ under strict SHACL. Historical snapshots remain queryable, with version guards for current validation.
57
+ On 2026-10-27 the maintainer reported the consumer updated and working; exact adapter and full
58
+ hydration/repeat evidence remain unrecorded. This fix preserves semantic artifacts and
59
+ does not reinterpret model assertions to hide conflicts.
35
60
 
36
61
  | Milestone | Delivered and checked | Remaining limits |
37
62
  | --- | --- | --- |
@@ -119,7 +144,7 @@ preparation/publication under `@launch-echo`; the maintainer completed the 0.1.0
119
144
  source-application reintegration remain outside the authorized scope. See [release instructions](RELEASING.md).
120
145
 
121
146
  The maintainer authorized the Weftlet migration on 2026-10-21. Both `@weftlet/core` and
122
- `@weftlet/toolkit` are published at 0.2.1 through GitHub OIDC; the publication and verification
147
+ `@weftlet/toolkit` are published at 0.3.0 through GitHub OIDC; the publication and verification
123
148
  record is in [validation](VALIDATION.md). Changesets prepares reviewed version PRs for the fixed package group;
124
149
  merging a release plan triggers publication and package-specific tags/GitHub Releases.
125
150
  See [ADR 009](ADR-009-release-automation.md) and [release instructions](RELEASING.md).