@weftlet/toolkit 0.2.0 → 0.3.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.
- package/README.md +69 -3
- package/dist/application/agent-context.d.ts +3 -1
- package/dist/application/agent-context.js +15 -6
- package/dist/application/hydration-plan.d.ts +57 -0
- package/dist/application/hydration-plan.js +79 -0
- package/dist/application/hydrator.js +12 -16
- package/dist/extraction/document.js +1 -6
- package/dist/extraction/providers.js +2 -2
- package/dist/extraction/repository-nodes.d.ts +7 -0
- package/dist/extraction/repository-nodes.js +20 -0
- package/dist/extraction/semantic-cache.d.ts +12 -0
- package/dist/extraction/semantic-cache.js +59 -0
- package/dist/extraction/semantic-identity.d.ts +7 -0
- package/dist/extraction/semantic-identity.js +29 -0
- package/dist/extraction/semantic-sources.d.ts +27 -0
- package/dist/extraction/semantic-sources.js +35 -0
- package/dist/extraction/semantic.js +27 -21
- package/dist/graph/rdf.d.ts +1 -1
- package/dist/graph/rdf.js +13 -28
- package/dist/graph/shacl-shapes.d.ts +5 -0
- package/dist/graph/shacl-shapes.js +27 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/interfaces/cli.js +47 -3
- package/dist/repository/git.d.ts +1 -1
- package/dist/repository/git.js +5 -1
- package/docs/ADR-015-repository-document-identity.md +57 -0
- package/docs/ADR-016-hydration-preview.md +91 -0
- package/docs/ADR-017-shacl-validation-union.md +102 -0
- package/docs/CONSUMER-TRIAL.md +6 -5
- package/docs/RELEASE-1.0-PLAN.md +288 -0
- package/docs/RELEASING.md +27 -8
- package/docs/ROADMAP.md +32 -2
- package/docs/VALIDATION.md +202 -0
- package/docs/WEFTLET-2.0-PLAN.md +283 -0
- package/docs/extraction-manifest.json +29 -12
- package/package.json +3 -2
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
# Consumer hardening and the 1.0 release plan
|
|
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.
|
|
11
|
+
|
|
12
|
+
This is the near-term release task list. The [Weftlet 2.0 product plan](WEFTLET-2.0-PLAN.md)
|
|
13
|
+
remains a separate future direction for generation, approvals, a companion website and hosted
|
|
14
|
+
AI. None of those platform features is a dependency of the fixes here.
|
|
15
|
+
|
|
16
|
+
## Reported evidence and boundaries
|
|
17
|
+
|
|
18
|
+
The consumer reported a cold extraction in which two source documents referred to the same
|
|
19
|
+
repository Markdown document. Semantic assertions gave that one repository-path identity
|
|
20
|
+
different node kinds, `Component` and `Document`. An isolated, unchanged two-fact graph failed
|
|
21
|
+
the public RDF validator's single-kind constraint. The references describe the same document;
|
|
22
|
+
this is an extraction identity conflict, not evidence of conflicting product intent.
|
|
23
|
+
|
|
24
|
+
The consumer stopped its larger hydration after independently proving that failure. No full-run
|
|
25
|
+
SHACL result or published snapshot is claimed. Several minutes spent in the larger validation
|
|
26
|
+
phase is a separate observation; the two-fact reproduction does not diagnose its latency.
|
|
27
|
+
Fresh-install checks and the package/adapter boundary were reported as successful.
|
|
28
|
+
|
|
29
|
+
Private source paths, assertions, artifacts and application data remain with the consumer.
|
|
30
|
+
Upstream work uses public-safe reproductions and preserves the original application's existing
|
|
31
|
+
integration. Consumer acceptance is reported separately from upstream deterministic tests.
|
|
32
|
+
|
|
33
|
+
## Task list and order
|
|
34
|
+
|
|
35
|
+
| ID | Task | Priority/status | Dependencies and release boundary |
|
|
36
|
+
| --- | --- | --- | --- |
|
|
37
|
+
| **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 |
|
|
42
|
+
| **T06** | Packaged release-documentation consistency | Open; README version pins removed in 0.2.1 | Automated archive/version consistency check remains to be implemented |
|
|
43
|
+
| **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
|
+
|
|
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.
|
|
51
|
+
|
|
52
|
+
## T01 — Resolve repository-document identity conflicts
|
|
53
|
+
|
|
54
|
+
Define and enforce a coherent ID/kind policy for repository document references across semantic
|
|
55
|
+
and deterministic extraction. A prompt instruction alone is insufficient when separately valid
|
|
56
|
+
model outputs can conflict after assembly. Preserve both source assertions and their citations,
|
|
57
|
+
source authority and assertion-review state. Retain single-kind SHACL validation; do not discard
|
|
58
|
+
an assertion or relax the shape to conceal the conflict.
|
|
59
|
+
|
|
60
|
+
Acceptance:
|
|
61
|
+
|
|
62
|
+
- A public regression has two committed documents referring to the same Markdown document,
|
|
63
|
+
with one provider assertion labeling it `Component` and the other `Document` under the same
|
|
64
|
+
repository-path identity. Both assertions survive under the coherent policy and align with
|
|
65
|
+
deterministic document links; the assembled graph passes RDF/SHACL validation.
|
|
66
|
+
- Verify subject and object references, preserved provenance and unreviewed/inferred assertion
|
|
67
|
+
authority. Other incompatible identities remain diagnosable rather than silently merged away.
|
|
68
|
+
- Version the relevant extractor/prompt/cache identity so incompatible old artifacts cannot
|
|
69
|
+
satisfy a fresh extraction. Test a fresh build, subsequent artifact reuse and unchanged
|
|
70
|
+
snapshot identity/content on repeat input. Keep historical saved snapshots readable and unchanged.
|
|
71
|
+
- Run the normal deterministic/publication gate and a fresh installed-package smoke. Publish
|
|
72
|
+
the patch, then request a genuine consumer re-run against the recorded inputs; do not infer
|
|
73
|
+
consumer acceptance from the upstream fixture.
|
|
74
|
+
|
|
75
|
+
Upstream completion evidence:
|
|
76
|
+
|
|
77
|
+
- [Fix PR #15](https://github.com/jchewitt/weftlet/pull/15) implements the policy in
|
|
78
|
+
[ADR 015](ADR-015-repository-document-identity.md), with public cross-document regressions and
|
|
79
|
+
fresh/cache-reuse coverage. [Release PR #16](https://github.com/jchewitt/weftlet/pull/16)
|
|
80
|
+
advances the fixed core/toolkit group to 0.2.1.
|
|
81
|
+
- [Release run 40382864083](https://github.com/jchewitt/weftlet/actions/runs/40382864083)
|
|
82
|
+
completed preparation, publication and release records on its first attempt at commit
|
|
83
|
+
`5d1db91bf19ed493a20849b2d0f92d3aeac35dfe`. Required checks included 227 deterministic tests,
|
|
84
|
+
12 advisory architecture findings, fresh packed-consumer checks and hosted Ubuntu/Windows CI.
|
|
85
|
+
- Registry archives, provenance and tags match the reviewed release. A fresh public-registry
|
|
86
|
+
consumer passes the two-document regression, real SCIP, RDF/SHACL, queries and unchanged
|
|
87
|
+
snapshot identity/content on artifact reuse, without live model calls. See the detailed
|
|
88
|
+
[validation record](VALIDATION.md) for commits, checks and result boundaries.
|
|
89
|
+
|
|
90
|
+
The private consumer has not yet supplied a successful full hydration/repeat against 0.2.1.
|
|
91
|
+
Upstream publication and regression success do not close that acceptance gate or diagnose the
|
|
92
|
+
separate full-graph validation latency observation.
|
|
93
|
+
|
|
94
|
+
## T02 — Preview scope and work without calling a model
|
|
95
|
+
|
|
96
|
+
Implemented in development source: `hydrate --plan` renders a human summary and `--json` returns
|
|
97
|
+
the structured plan. This feature is not in published 0.2.1. Shared source selection and identity
|
|
98
|
+
logic report selected documents and sizes, inclusion reasons, configured role/source approval,
|
|
99
|
+
unreviewed assertion status, artifact reuse/extraction estimates and document/per-source byte limits.
|
|
100
|
+
See [ADR 016](ADR-016-hydration-preview.md) and [validation](VALIDATION.md).
|
|
101
|
+
|
|
102
|
+
Missing or unsupported-only selectors and bounded agent omissions remain visible as warnings;
|
|
103
|
+
incomplete plans need review and exit 1. They do not introduce new hydration gates that would
|
|
104
|
+
break deletion of the last document. Budget, duplicate-ID and corrupt/unavailable cache errors
|
|
105
|
+
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.
|
|
109
|
+
|
|
110
|
+
Acceptance:
|
|
111
|
+
|
|
112
|
+
- Preview calls no provider and performs no extraction, indexing, snapshot publication or active
|
|
113
|
+
checkout mutation. Distinguish unavailable/corrupt cache entries from known reusable artifacts.
|
|
114
|
+
- Identify the commit, configuration and selection assumptions; a later changed input can
|
|
115
|
+
invalidate the estimate. Report uncertainty explicitly instead of promising a cache hit.
|
|
116
|
+
- Test empty/no-document scope, cold and warm artifacts, missing sources, budget violations and
|
|
117
|
+
semantic-identity changes. Provide machine-readable output and a concise human summary.
|
|
118
|
+
- With T07, show complete inclusion/exclusion reasons, unresolved links, ownership/classification
|
|
119
|
+
gaps, coverage and budget effects before any model call. Do not silently trim the selection.
|
|
120
|
+
|
|
121
|
+
## T03 — Reuse valid artifacts after operational changes
|
|
122
|
+
|
|
123
|
+
The consumer reported that changing only a timeout selected a different cache profile and made
|
|
124
|
+
completed extractions unavailable for reuse. Investigate both storage-location selection and
|
|
125
|
+
artifact key construction. Separate operational controls from semantic-output identity, while
|
|
126
|
+
retaining complete configuration metadata on snapshots and queries.
|
|
127
|
+
|
|
128
|
+
Acceptance:
|
|
129
|
+
|
|
130
|
+
- Changing supported operational settings such as timeout does not hide or invalidate an
|
|
131
|
+
otherwise reusable extraction. Explicitly classify each setting rather than assuming all
|
|
132
|
+
non-source changes are harmless; retain provider-specific extension behavior.
|
|
133
|
+
- Changing source bytes/identity, model or relevant model settings, prompt/schema/extractor/
|
|
134
|
+
ontology identity, or other output-affecting policy invalidates reuse as required. T01's new
|
|
135
|
+
identity must not accidentally reuse old conflicting artifacts.
|
|
136
|
+
- Preserve force-extraction semantics, concurrent-writer safety, isolation between consumers,
|
|
137
|
+
credentials and private cache contents. Record reuse and reasons for a miss without secrets.
|
|
138
|
+
- 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.
|
|
140
|
+
|
|
141
|
+
## T04 — Explain timeouts and recovery
|
|
142
|
+
|
|
143
|
+
Report a privacy-safe source identifier, phase, elapsed time, configured limit and completed/
|
|
144
|
+
remaining counts when extraction times out. Explain which completed artifacts can be retained
|
|
145
|
+
and how to inspect the plan or adjust a bound before retrying. The documented two-minute default
|
|
146
|
+
was insufficient for the reported workload; that observation alone does not select a new default.
|
|
147
|
+
|
|
148
|
+
Acceptance:
|
|
149
|
+
|
|
150
|
+
- Use a stable opaque identifier by default, with an explicit local mapping or opt-in detail for
|
|
151
|
+
identifying the source. Avoid leaking source text, full prompts, credentials or provider stderr.
|
|
152
|
+
- Distinguish extraction timeout, cancellation, provider failure and infrastructure problems.
|
|
153
|
+
Preserve completed artifacts and the last valid published snapshot.
|
|
154
|
+
- Test timeout/cancellation during a multi-source run, accurate progress counts, safe recovery
|
|
155
|
+
instructions and secret-free logs. MCP protocol stdout remains clean.
|
|
156
|
+
|
|
157
|
+
## T05 — Detect inexpensive conflicts early and explain validation work
|
|
158
|
+
|
|
159
|
+
The implementation uses JavaScript on Node:
|
|
160
|
+
`rdf-validate-shacl` validates an in-memory N3 dataset. Hydration constructs and validates the
|
|
161
|
+
entire assembled graph, including when semantic artifacts were reused. There is no persistent
|
|
162
|
+
GraphDB backend or incremental validation. Querying a saved snapshot does not rerun SHACL.
|
|
163
|
+
|
|
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
|
|
167
|
+
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.
|
|
170
|
+
|
|
171
|
+
[ADR 017](ADR-017-shacl-validation-union.md) records the implemented cold-validation optimization:
|
|
172
|
+
build a temporary union of every SPO triple for the same validator/shapes, while keeping original
|
|
173
|
+
named assertion graphs canonical for queries and serialization. It removes repeated wildcard
|
|
174
|
+
lookups across one graph per fact. In a bounded single-run public 2,000-fact unique-node case,
|
|
175
|
+
the original SHACL path took 31.502 seconds; union construction took 0.153 seconds and SHACL
|
|
176
|
+
took 0.467 seconds. A 10,000-fact unique-node union case used about 1.3 GiB process RSS. These
|
|
177
|
+
are synthetic phase measurements, not a private consumer reproduction or end-to-end guarantee.
|
|
178
|
+
|
|
179
|
+
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
|
|
182
|
+
not by itself establish faster or correct incremental SHACL.
|
|
183
|
+
|
|
184
|
+
Acceptance:
|
|
185
|
+
|
|
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.
|
|
189
|
+
- Report elapsed time and honest progress for long validation. Current phase boundaries remain
|
|
190
|
+
the supported progress signal: the synchronous validator blocks same-thread timers. Evaluate
|
|
191
|
+
bounded worker execution before promising an in-phase heartbeat or cancellation; never display
|
|
192
|
+
a fabricated completion percentage when the validator exposes no meaningful denominator.
|
|
193
|
+
- Record reproducible public-fixture sizes, fact/node counts, runtime versions, wall time and
|
|
194
|
+
resource observations for construction and validation separately. Separate measured bottlenecks
|
|
195
|
+
from hypotheses; include repeated identical input and small changed-input cases.
|
|
196
|
+
- Demonstrate improved cold full-graph validation, because reusing a previous validation result
|
|
197
|
+
cannot unblock a first graph that has never completed. Keep private consumer acceptance and
|
|
198
|
+
the overall generation timeout separate from synthetic validator-only benchmarks.
|
|
199
|
+
- Evaluate reuse of a successful conformance result only when validated graph content, shapes,
|
|
200
|
+
validator version and applicable policy/semantics match. This reuse must not make historical
|
|
201
|
+
evidence satisfy current-diff freshness, scope or provenance requirements.
|
|
202
|
+
- Evaluate dependency-aware incremental validation with insertions, updates, deletions, renames,
|
|
203
|
+
affected relationships and global constraints. Revalidate the complete affected scope or fall
|
|
204
|
+
back to full validation when it cannot be bounded safely; changed nodes alone are insufficient.
|
|
205
|
+
- Benchmark a suitable native/Rust-backed validator or optional persistent graph database if
|
|
206
|
+
measurements justify a candidate. Compare supported SHACL behavior, positive/negative parity,
|
|
207
|
+
installation, licensing, portability and maintenance cost. T02 adds no backend migration, and
|
|
208
|
+
this evaluation does not commit the standalone toolkit to a mandatory service.
|
|
209
|
+
- Any optimized validation/projection path has equivalence tests, including negative cases;
|
|
210
|
+
failure must preserve the prior snapshot. Keep model-independent profiling separate from live
|
|
211
|
+
extraction performance and from the reported two-fact correctness defect.
|
|
212
|
+
|
|
213
|
+
## T06 — Keep packaged documentation consistent with the release
|
|
214
|
+
|
|
215
|
+
The consumer installed 0.2.0 while its packaged README still named 0.1.2 and some archive examples
|
|
216
|
+
used 0.1.1. Release 0.2.1 removes the README version pins; immutable 0.2.0 archives retain their
|
|
217
|
+
original text. The automated release-documentation consistency check remains open. Add that
|
|
218
|
+
repeatable check rather than relying on manual edits alone.
|
|
219
|
+
|
|
220
|
+
Acceptance:
|
|
221
|
+
|
|
222
|
+
- Distinguish current setup/version statements and executable installation examples from valid
|
|
223
|
+
historical release evidence. Do not rewrite historical versions indiscriminately.
|
|
224
|
+
- Validate current instructions against the actual prepared core/toolkit versions and tarball
|
|
225
|
+
contents before publication. Test both mismatches and intentionally historical references.
|
|
226
|
+
- Define how versioning updates or generates current-release documentation so normal Changesets
|
|
227
|
+
bumps cannot silently leave it stale. Verify installation examples from fresh packed output.
|
|
228
|
+
|
|
229
|
+
## T07 — Traverse canonical documents with explicit coverage and authority
|
|
230
|
+
|
|
231
|
+
Start from configured SOT and master-roadmap entry points and recursively follow supported
|
|
232
|
+
canonical Markdown links to owner/task documents. Resolve against the chosen repository commit,
|
|
233
|
+
with cycle detection, canonical identities and deduplication. Report missing, ambiguous, outside-
|
|
234
|
+
scope or unsupported links instead of inventing targets or automatically fetching external URLs.
|
|
235
|
+
|
|
236
|
+
Extract requirements, business rules, constraints and cross-feature dependencies while retaining
|
|
237
|
+
source citations and explicit ownership. Reaching a document through a link does not approve it.
|
|
238
|
+
Routine implementation checklists and inferred plans cannot become approved intent through
|
|
239
|
+
traversal. Classify sources/claims explicitly; flag rules without clear SOT ownership and retain
|
|
240
|
+
their inferred/unreviewed state. Validation documents are excluded from product-intent extraction
|
|
241
|
+
by default and retained through a separately classified validation-evidence path.
|
|
242
|
+
|
|
243
|
+
Acceptance:
|
|
244
|
+
|
|
245
|
+
- Split delivery into canonical selection/traversal, role/ownership classification and semantic
|
|
246
|
+
extraction/linkage increments. Keep the existing direct-source configuration usable.
|
|
247
|
+
- The T02 preview exposes entry points, traversed paths, inclusion/exclusion reasons, roles,
|
|
248
|
+
approval/ownership state, unresolved links and exact budget/coverage limits without model calls.
|
|
249
|
+
- Support cycles, shared targets, relative links/fragments and rename/delete cases without
|
|
250
|
+
duplicate extraction. Test cross-feature owner/task references and validation documents,
|
|
251
|
+
including mixed or ambiguous content that needs explicit classification.
|
|
252
|
+
- Compute the necessary selection before scheduling model work. If limits prevent full requested
|
|
253
|
+
coverage, stop or require an explicit narrower scope/budget decision; never silently truncate
|
|
254
|
+
dependencies to fit a document count. Persist incomplete coverage and its reason where relevant.
|
|
255
|
+
- Reuse unchanged extraction artifacts incrementally. Recompute reachability/classification when
|
|
256
|
+
links or configuration change; invalidate affected relationships and preserve removed-source
|
|
257
|
+
history. Partial failures retain completed artifacts and the last valid snapshot.
|
|
258
|
+
- Prove cross-source linkage using extracted public prose and real code relationships, with
|
|
259
|
+
missing links, ambiguous ownership, conflicting claims and false cross-domain matches as
|
|
260
|
+
negative cases. Separate deterministic fixtures from budgeted live-provider evaluation.
|
|
261
|
+
|
|
262
|
+
## Official 1.0 acceptance
|
|
263
|
+
|
|
264
|
+
With T01's upstream patch published, work through T02–T07 in bounded increments and record implementation
|
|
265
|
+
PRs and validation evidence here or in the linked validation record. Review the exact 1.0 scope
|
|
266
|
+
against completed evidence; any deferral needs an explicit maintainer decision and must remain
|
|
267
|
+
visible rather than being treated as done. The companion website, hosted AI and broader 2.0
|
|
268
|
+
product plan remain separate.
|
|
269
|
+
|
|
270
|
+
Before calling the consumer migration accepted or publishing 1.0:
|
|
271
|
+
|
|
272
|
+
1. Confirm the patched identity policy in a genuine consumer hydration, including completed full
|
|
273
|
+
graph validation and snapshot publication, querying and an unchanged repeat. Keep provider
|
|
274
|
+
details, source scope and remaining gaps explicit; the consumer performs its own application work.
|
|
275
|
+
2. Verify no-model scope preview, budget/coverage reporting, operational cache reuse and recovery
|
|
276
|
+
diagnostics against the implemented task scope. Exercise SOT traversal and authority separation
|
|
277
|
+
with public fixtures and reviewed consumer evidence.
|
|
278
|
+
3. Pass supported-platform build/tests, fresh packed and public-registry installation, real
|
|
279
|
+
TypeScript indexing, RDF/SHACL, CLI/MCP, provenance and source-inventory checks. Check packaged
|
|
280
|
+
release instructions before publishing the exact reviewed archives.
|
|
281
|
+
4. Record independently assessed usefulness and semantic-quality limits. Preserve the distinction
|
|
282
|
+
between deterministic checks, live-provider tests, browser checks and private consumer results.
|
|
283
|
+
Existing untested environments or deferred capabilities remain explicitly labeled.
|
|
284
|
+
5. Review the changelog, compatibility/migration guidance and remaining known issues, then use the
|
|
285
|
+
normal reviewed version PR and trusted-publishing workflow. No 1.0 publication is claimed now.
|
|
286
|
+
|
|
287
|
+
The patch's upstream pass is necessary but does not replace consumer acceptance. Track follow-up
|
|
288
|
+
results without auditing or refactoring the source application's business logic from this repository.
|
package/docs/RELEASING.md
CHANGED
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
# Weftlet npm releases
|
|
2
2
|
|
|
3
|
-
`@weftlet/core@0.1
|
|
4
|
-
|
|
5
|
-
|
|
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
|
|
5
|
+
preparation, publication and release records on its first attempt at commit
|
|
6
|
+
`5d1db91bf19ed493a20849b2d0f92d3aeac35dfe`. Registry archives match the reviewed archives;
|
|
7
|
+
provenance and package tags identify that commit. A fresh public-registry installation passes
|
|
8
|
+
the identity regression, real SCIP/RDF/SHACL, querying and repeat artifact reuse without live
|
|
9
|
+
model calls. [Fix PR #15](https://github.com/jchewitt/weftlet/pull/15) and
|
|
10
|
+
[release PR #16](https://github.com/jchewitt/weftlet/pull/16) record the change. Genuine consumer
|
|
11
|
+
acceptance remains pending in the [1.0 plan](RELEASE-1.0-PLAN.md); detailed upstream evidence
|
|
12
|
+
is in [validation](VALIDATION.md).
|
|
13
|
+
|
|
14
|
+
The earlier 0.2.0 release also used GitHub OIDC.
|
|
15
|
+
[Run 40344526047](https://github.com/jchewitt/weftlet/actions/runs/40344526047) completed at
|
|
16
|
+
commit `ffe7f1d81f0421b35220bd7ba5b1555246c7a0e1`, including registry integrity checks,
|
|
17
|
+
package tags and GitHub Releases. The first attempt published core, then toolkit publication
|
|
18
|
+
stopped with Sigstore `TLOG_CREATE_ENTRY_ERROR` HTTP 409. Re-running failed jobs on the same
|
|
19
|
+
workflow restored the prepared archives and acceptance receipt; attempt 2 completed without
|
|
20
|
+
changing versions. See [validation](VALIDATION.md) for the verification record.
|
|
21
|
+
|
|
22
|
+
The first automatic release, 0.1.2, completed in
|
|
23
|
+
[run 39672652013](https://github.com/jchewitt/weftlet/actions/runs/39672652013),
|
|
24
|
+
including package tags and GitHub Releases at commit `3d8d1f38a9e70b38178921cdabf5e8714c417c1c`. The first trusted
|
|
6
25
|
publication passed in [run 39661957651](https://github.com/jchewitt/weftlet/actions/runs/39661957651)
|
|
7
26
|
from commit `720a5f964fe3cb6c438be6d22b4aa8b4ad44de17`, with matching registry archive integrity,
|
|
8
27
|
npm provenance and a fresh public CLI installation. Earlier Weftlet and `@launch-echo` releases
|
|
@@ -26,8 +45,8 @@ preparation route; native Windows has focused CI coverage. See [validation](VALI
|
|
|
26
45
|
**before** npm publication. Do not manually bump manifests or edit the generated plan.
|
|
27
46
|
4. The plan change triggers **Weftlet release**. It validates and prepares both archives, publishes
|
|
28
47
|
core followed by toolkit using npm trusted publishing, then verifies registry integrity.
|
|
29
|
-
5. After both versions are verified, a separate job creates tags such as `@weftlet/core@0.1
|
|
30
|
-
and `@weftlet/toolkit@0.1
|
|
48
|
+
5. After both versions are verified, a separate job creates tags such as `@weftlet/core@0.2.1`
|
|
49
|
+
and `@weftlet/toolkit@0.2.1`, plus corresponding GitHub Releases, at that exact source commit.
|
|
31
50
|
Existing tags are never moved. The publication job does not commit back to main.
|
|
32
51
|
|
|
33
52
|
The bot uses GitHub's built-in token, not a personal access token. GitHub may require Settings →
|
|
@@ -140,7 +159,7 @@ Package-specific tags identify the exact published source, for example:
|
|
|
140
159
|
|
|
141
160
|
```sh
|
|
142
161
|
git fetch --tags
|
|
143
|
-
git switch --detach '@weftlet/toolkit@0.1
|
|
162
|
+
git switch --detach '@weftlet/toolkit@0.2.1'
|
|
144
163
|
```
|
|
145
164
|
|
|
146
165
|
Tags support inspection and reproduction, not mutation of npm history. To roll a consumer back,
|
|
@@ -150,8 +169,8 @@ Verify a new public release in a fresh disposable project, substituting its vers
|
|
|
150
169
|
|
|
151
170
|
```sh
|
|
152
171
|
npm init -y
|
|
153
|
-
npx --yes @weftlet/toolkit@0.
|
|
154
|
-
npx --yes @weftlet/toolkit@0.
|
|
172
|
+
npx --yes @weftlet/toolkit@0.2.1 init --yes
|
|
173
|
+
npx --yes @weftlet/toolkit@0.2.1 config validate
|
|
155
174
|
```
|
|
156
175
|
|
|
157
176
|
Check registry hashes, transitive core resolution and provenance. Deprecating the previous
|
package/docs/ROADMAP.md
CHANGED
|
@@ -1,8 +1,38 @@
|
|
|
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.
|
|
5
|
+
|
|
3
6
|
Project: `jchewitt/weftlet`. Extraction provenance is recorded in the
|
|
4
7
|
[source inventory](SOURCE-INVENTORY.md).
|
|
5
8
|
|
|
9
|
+
Forward direction is captured in the [Weftlet 2.0 product plan](WEFTLET-2.0-PLAN.md):
|
|
10
|
+
consumer hardening, cited code-derived drafts, scoped approvals and reconciliation, an optional
|
|
11
|
+
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
|
|
13
|
+
[consumer hardening and 1.0 task list](RELEASE-1.0-PLAN.md): the document-identity patch is
|
|
14
|
+
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.
|
|
18
|
+
|
|
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
|
+
|
|
25
|
+
[Hydration planning](ADR-016-hydration-preview.md) shares committed selection and semantic cache
|
|
26
|
+
identity with execution, reports human/JSON scope and work estimates, and preserves source versus
|
|
27
|
+
assertion authority. It performs no model work or graph writes. The current JavaScript validator
|
|
28
|
+
still checks the complete in-memory N3 graph on each hydration; saved queries do not repeat
|
|
29
|
+
validation. [The T05 union optimization](ADR-017-shacl-validation-union.md) indexes all SPO triples
|
|
30
|
+
in one temporary validation graph, preserving the same shapes and canonical named evidence.
|
|
31
|
+
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.
|
|
35
|
+
|
|
6
36
|
| Milestone | Delivered and checked | Remaining limits |
|
|
7
37
|
| --- | --- | --- |
|
|
8
38
|
| 1. Standalone | Explicit committed inventory, core/toolkit boundary, public examples, build/tests, packed independent consumer and real TypeScript indexing | GitHub exported; both @launch-echo packages published at 0.1.0 and public installation verified |
|
|
@@ -89,8 +119,8 @@ preparation/publication under `@launch-echo`; the maintainer completed the 0.1.0
|
|
|
89
119
|
source-application reintegration remain outside the authorized scope. See [release instructions](RELEASING.md).
|
|
90
120
|
|
|
91
121
|
The maintainer authorized the Weftlet migration on 2026-10-21. Both `@weftlet/core` and
|
|
92
|
-
`@weftlet/toolkit` are published at 0.1
|
|
93
|
-
|
|
122
|
+
`@weftlet/toolkit` are published at 0.2.1 through GitHub OIDC; the publication and verification
|
|
123
|
+
record is in [validation](VALIDATION.md). Changesets prepares reviewed version PRs for the fixed package group;
|
|
94
124
|
merging a release plan triggers publication and package-specific tags/GitHub Releases.
|
|
95
125
|
See [ADR 009](ADR-009-release-automation.md) and [release instructions](RELEASING.md).
|
|
96
126
|
Earlier Tently packages remain available and undeprecated.
|
package/docs/VALIDATION.md
CHANGED
|
@@ -8,6 +8,208 @@ 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 cold SHACL validation improvement, 2026-10-26
|
|
12
|
+
|
|
13
|
+
Implemented in development source following the T02 preview merge. Published npm packages
|
|
14
|
+
remain 0.2.1 until a separately recorded release succeeds. [ADR 017](ADR-017-shacl-validation-union.md)
|
|
15
|
+
records the measured graph-wildcard lookup cost and the temporary all-triples union used by the
|
|
16
|
+
unchanged JavaScript SHACL validator. The canonical named dataset and every assertion remain intact.
|
|
17
|
+
|
|
18
|
+
Public synthetic production measurements use Linux/Node 24.19.0, N3 2.7.2 and
|
|
19
|
+
rdf-validate-shacl 0.6.5. Each case ran once in a fresh child process with a 45-second hard deadline:
|
|
20
|
+
|
|
21
|
+
| Facts / topology | Nodes / original quads | Canonical construction | Production validation, including union | Whole-process maximum RSS |
|
|
22
|
+
| --- | --- | ---: | ---: | ---: |
|
|
23
|
+
| 2,000 unique | 4,000 / 56,003 | 0.194 s | 0.779 s | 490 MiB |
|
|
24
|
+
| 10,000 unique | 20,000 / 280,003 | 1.091 s | 2.920 s | 1,638 MiB |
|
|
25
|
+
|
|
26
|
+
Both production cases conform and retain the exact before/after serialized dataset digest.
|
|
27
|
+
The original-path public experiment measured 31.502 seconds of SHACL for the 2,000-fact unique
|
|
28
|
+
case; its 5,000-fact shared case produced no verdict before the 45-second process deadline.
|
|
29
|
+
The ADR records those separate prototype measurements and their boundaries. These are single-run
|
|
30
|
+
measurements, not latency guarantees or a reproduction of the consumer's complete 30-minute run.
|
|
31
|
+
Memory includes libraries, fixture generation and before/after serialization; the production
|
|
32
|
+
harness peaked near 1.6 GiB at 10,000 unique facts. Its legacy comparison also reparses a second
|
|
33
|
+
named store, so its RSS must not be treated as an old-versus-new production memory comparison.
|
|
34
|
+
|
|
35
|
+
Reproduce from a built source checkout with
|
|
36
|
+
`pnpm benchmark:shacl --counts 2000,10000 --topologies unique --modes optimized`.
|
|
37
|
+
The bounded harness records runtime, build hashes, sizes, phase timings, conformance and
|
|
38
|
+
serialization preservation. It exercises the public production validator; no private-store mutation,
|
|
39
|
+
provider call or private consumer data is used. A small paired legacy/optimized smoke agreed;
|
|
40
|
+
a 1 ms deadline probe killed the children and correctly reported no verdict.
|
|
41
|
+
|
|
42
|
+
Local `pnpm context-graph:publication-check` passes: 264 deterministic tests (1 core,
|
|
43
|
+
263 toolkit), one optional OML skip, 12 existing advisory architecture findings, source inventory,
|
|
44
|
+
licenses and fresh packed-consumer CLI/npx/MCP, preview, real SCIP, RDF/SPARQL/SHACL and viewer
|
|
45
|
+
checks. All 79 original source path/hash pairs remain unchanged. No architecture baseline or
|
|
46
|
+
exception was added. The new internal shape module is required in the packed runtime inventory.
|
|
47
|
+
|
|
48
|
+
The 25 new regressions compare complete normalized diagnostics with direct validation of the
|
|
49
|
+
original named dataset. Cases cover empty/duplicate input, kinds, authorities, confidence and
|
|
50
|
+
citation bounds/types/order, empty provenance fields and colliding fact IDs. Separate assertions
|
|
51
|
+
preserve exact serialization, named-graph attributes/citations/review state and `facts()` through
|
|
52
|
+
repeated validation. A 2,200-fact case detects the invalid final assertion without timing gates.
|
|
53
|
+
The existing full hydration integration still verifies that failed SHACL preserves the last head.
|
|
54
|
+
The shape Turtle is byte-for-byte unchanged from the T02 merge; no shape or assertion was dropped.
|
|
55
|
+
|
|
56
|
+
Hosted checks and release status remain pending at this source checkpoint.
|
|
57
|
+
Early identity preflight, in-phase progress, validation-result reuse and incremental validation
|
|
58
|
+
remain separate work. Each hydration still performs full SHACL before publishing; saved queries
|
|
59
|
+
do not repeat validation. Private consumer full hydration/repeat acceptance remains pending.
|
|
60
|
+
|
|
61
|
+
## T02 no-model hydration preview, 2026-10-26
|
|
62
|
+
|
|
63
|
+
Implemented in development source; published npm packages remain 0.2.1. See
|
|
64
|
+
[ADR-016](ADR-016-hydration-preview.md) for source, cache and readiness semantics.
|
|
65
|
+
|
|
66
|
+
[PR 18](https://github.com/jchewitt/weftlet/pull/18) merged at
|
|
67
|
+
`63c70f85b26a6cc60f8bc0615a86f6042a61ecd0`. Its final head
|
|
68
|
+
`6711362f9ff234d65ac3101dcf3ec0b0033519ec` passed hosted Ubuntu and Windows checks in
|
|
69
|
+
[run 40400487168](https://github.com/jchewitt/weftlet/actions/runs/40400487168) and
|
|
70
|
+
[run 40400478490](https://github.com/jchewitt/weftlet/actions/runs/40400478490).
|
|
71
|
+
An earlier Ubuntu run exposed a temporary-fixture cleanup race; disabling automatic Git
|
|
72
|
+
maintenance in that fixture and bounded cleanup retries resolved it before merge.
|
|
73
|
+
|
|
74
|
+
- Local `pnpm context-graph:publication-check` passed: 239 deterministic tests (1 core,
|
|
75
|
+
238 toolkit), one optional OML skip, 12 advisory architecture findings, inventory, licenses
|
|
76
|
+
and fresh packed-consumer checks. No additional architecture baseline or exception was added.
|
|
77
|
+
- Ten independent-repository planner cases cover exact committed bytes despite dirty/untracked
|
|
78
|
+
files, unchanged Git index and filesystem hashes, approved sources versus unreviewed assertions,
|
|
79
|
+
explicit evidence-root classification, empty selection, cold/warm/forced cache, malformed or
|
|
80
|
+
unreadable artifacts, output-digest corruption, budgets, duplicate IDs, missing selectors and
|
|
81
|
+
historical agent selection with explicit omissions. The warm test independently checks the
|
|
82
|
+
literal released 0.2.1 key formula, then verifies actual SemanticHydrator reuse.
|
|
83
|
+
- Two real-process CLI cases cover human/JSON output, blocked and warning-only exit codes,
|
|
84
|
+
historical refs and force preview. Side-effecting provider/adapter modules are never imported;
|
|
85
|
+
unavailable Codex/SCIP/OML configuration does not prevent planning. Source bodies/raw provider
|
|
86
|
+
output are excluded from the plan. No snapshot or artifact directory is created by preview.
|
|
87
|
+
- Existing hydration rename/delete tests still pass, including removal of the last document.
|
|
88
|
+
Explicit empty semantic scope now performs zero semantic extraction even with committed docs
|
|
89
|
+
present. New graph-v6 snapshots remain distinct from old assemblies; valid semantic cache keys
|
|
90
|
+
and output digests retain the 0.2.1 contract.
|
|
91
|
+
- A fresh packed consumer exercises installed `hydrate --plan --json` with absent provider and
|
|
92
|
+
repository adapter modules, selects its committed document, reports one expected extraction,
|
|
93
|
+
and creates no graph storage. The public planner export and every runtime helper are present.
|
|
94
|
+
The remaining installed smoke covers real SCIP, RDF/SPARQL/SHACL, visualization and MCP.
|
|
95
|
+
- Independent review found and resolved an initial selector-gating regression: unmatched selectors
|
|
96
|
+
are warnings, preserving deletion behavior. Incomplete preview scope needs review and exits 1;
|
|
97
|
+
it does not establish a new execution policy. No blocking review finding remains.
|
|
98
|
+
|
|
99
|
+
No paid/live model call, npm publication or private source-application change was made for T02.
|
|
100
|
+
Recursive document coverage and operational-config cache reuse remain separate. This increment
|
|
101
|
+
does not optimize SHACL. The maintainer's report that validation pushes generation past a
|
|
102
|
+
30-minute timeout makes [T05](RELEASE-1.0-PLAN.md#t05--detect-inexpensive-conflicts-early-and-explain-validation-work)
|
|
103
|
+
the next focused release priority; no consumer timing diagnosis is claimed here.
|
|
104
|
+
|
|
105
|
+
## Weftlet 0.2.1 document identity patch, 2026-10-26
|
|
106
|
+
|
|
107
|
+
The public reproduction confirms the reported 0.2.0 defect: two unchanged semantic
|
|
108
|
+
assertions give one repository document ID different kinds and fail single-kind SHACL.
|
|
109
|
+
[ADR-015](ADR-015-repository-document-identity.md) records the canonical identity policy,
|
|
110
|
+
cache contract and immutable snapshot migration. The consumer follow-ups are tracked in
|
|
111
|
+
the [1.0 plan](RELEASE-1.0-PLAN.md).
|
|
112
|
+
|
|
113
|
+
[Fix PR 15](https://github.com/jchewitt/weftlet/pull/15) was validated at
|
|
114
|
+
`42ba9b79dc0562a412cd5a048e42b77234530d94` by both hosted Ubuntu/Windows runs
|
|
115
|
+
[40381728487](https://github.com/jchewitt/weftlet/actions/runs/40381728487) and
|
|
116
|
+
[40381772577](https://github.com/jchewitt/weftlet/actions/runs/40381772577).
|
|
117
|
+
[Release PR 16](https://github.com/jchewitt/weftlet/pull/16) advanced both package versions
|
|
118
|
+
to 0.2.1. Its exact head `da07772110d4c762e3178a7345b426263e14a22f` passed local
|
|
119
|
+
`pnpm release:prepare` and the explicitly dispatched
|
|
120
|
+
[Ubuntu/Windows checks](https://github.com/jchewitt/weftlet/actions/runs/40382270147).
|
|
121
|
+
The bot PR's separate automatic run required GitHub approval; the dispatched run tested
|
|
122
|
+
that same commit and completed successfully.
|
|
123
|
+
|
|
124
|
+
[Trusted-publishing run 40382864083](https://github.com/jchewitt/weftlet/actions/runs/40382864083)
|
|
125
|
+
completed on attempt 1 at merged commit `5d1db91bf19ed493a20849b2d0f92d3aeac35dfe`.
|
|
126
|
+
Both public npm `latest` tags resolve to 0.2.1. Package tags `@weftlet/core@0.2.1`
|
|
127
|
+
and `@weftlet/toolkit@0.2.1`, plus their GitHub Releases, identify that exact commit.
|
|
128
|
+
Main's package versions match the publication.
|
|
129
|
+
|
|
130
|
+
- Local `pnpm context-graph:publication-check` passed: 227 deterministic tests (1 core,
|
|
131
|
+
226 toolkit), one optional OML skip, 12 advisory architecture findings, inventory,
|
|
132
|
+
licenses and a fresh packed-consumer CLI/npx/MCP, real SCIP and RDF/SHACL smoke.
|
|
133
|
+
- The new public regression uses two committed source documents and a deterministic
|
|
134
|
+
module provider that reproduces the conflicting classifications. Both semantic facts
|
|
135
|
+
retain their citations, confidence and separate source/assertion authority; deterministic
|
|
136
|
+
document links and SPARQL join the canonical document. Real TypeScript indexing and
|
|
137
|
+
SHACL pass. Fresh extraction reports 2 extracted/0 reused; repeat reports 0/2 with
|
|
138
|
+
identical snapshot identity/content digest. Raw provider output is preserved byte for byte.
|
|
139
|
+
- Seeded artifacts using the released 0.2.0 cache-key formula are not reused or overwritten.
|
|
140
|
+
Historical graph-v4 snapshot bytes remain unchanged and readable. Subject references
|
|
141
|
+
normalize too; unrelated concept-kind conflicts still fail SHACL. A missing document
|
|
142
|
+
mentioned in plain prose retains a cited implementation-gap diagnostic.
|
|
143
|
+
- Independent review found and resolved that missing-path diagnostic regression. No blocking
|
|
144
|
+
findings remained. All 79 original imported source paths and source hashes are preserved.
|
|
145
|
+
- Independent release review inspected the actual core/toolkit archives (11/184 file entries),
|
|
146
|
+
generated versions, changelogs and plan. Runtime assets, public examples and licenses/notices
|
|
147
|
+
are present; no Git history, credentials, caches or private consumer report data were included.
|
|
148
|
+
The packed toolkit dependency is `@weftlet/core: ^0.2.1`.
|
|
149
|
+
- Public npm archives match the hosted prepared archives and locally reviewed archives byte
|
|
150
|
+
for byte. Public SLSA provenance subjects match the SHA-512 archive hashes and identify this
|
|
151
|
+
source commit, repository, `publish.yml` and workflow attempt. This checks provenance content
|
|
152
|
+
and source identity, not a separate cryptographic signature audit.
|
|
153
|
+
- A fresh Linux/Node 24.19.0 public-registry consumer installed only toolkit 0.2.1 directly
|
|
154
|
+
(`npm install --ignore-scripts`); core resolved transitively to 0.2.1. Both package-lock
|
|
155
|
+
registry URLs and integrity hashes matched the reviewed archives. The installed CLI
|
|
156
|
+
initialized and validated an independent public fixture with two source documents. A
|
|
157
|
+
deterministic provider reproduced the legacy conflicting classifications: hydration retained
|
|
158
|
+
2 semantic facts within 17 total facts, including 4 real SCIP facts, and SHACL conformed.
|
|
159
|
+
Cold hydration extracted 2/reused 0; the repeat extracted 0/reused 2 with unchanged snapshot
|
|
160
|
+
identity, content digest and bytes. Impact returned 17 facts and SPARQL returned the four
|
|
161
|
+
canonical document references. Saved queries still worked after the provider was disabled.
|
|
162
|
+
No live model call was made.
|
|
163
|
+
|
|
164
|
+
These are deterministic upstream checks, not live semantic-quality or private consumer
|
|
165
|
+
acceptance results. The consumer's full hydration was stopped after its isolated reproduction;
|
|
166
|
+
no complete consumer SHACL verdict or published snapshot is claimed. Full-graph validation
|
|
167
|
+
latency remains a separate investigation. The first refresh requires new semantic extraction;
|
|
168
|
+
historical cache/snapshot files should be retained. T01's upstream patch is published, while
|
|
169
|
+
genuine consumer acceptance and the remaining T02–T07 work are still pending.
|
|
170
|
+
|
|
171
|
+
## Weftlet 0.2.0 publication, 2026-10-26
|
|
172
|
+
|
|
173
|
+
The maintainer authorized publication of both packages. [Release PR 4](https://github.com/jchewitt/weftlet/pull/4)
|
|
174
|
+
committed their `0.2.0` versions to main at `ffe7f1d81f0421b35220bd7ba5b1555246c7a0e1`.
|
|
175
|
+
[Trusted-publishing run 40344526047](https://github.com/jchewitt/weftlet/actions/runs/40344526047)
|
|
176
|
+
completed successfully on attempt 2. Both npm `latest` tags resolve to `0.2.0`.
|
|
177
|
+
|
|
178
|
+
- Exact release-PR head `a818ee6312f6970015cea66f55cf6bb2cc62e363` passed the
|
|
179
|
+
[dispatched Ubuntu/Windows checks](https://github.com/jchewitt/weftlet/actions/runs/40042137308).
|
|
180
|
+
Local `pnpm release:prepare` also passed 222 deterministic tests, one optional OML skip,
|
|
181
|
+
12 advisory architecture findings, inventory, licenses and fresh packed-consumer checks.
|
|
182
|
+
The publication workflow repeated preparation at the merged source commit.
|
|
183
|
+
- Independent review checked the generated release plan, versions/changelogs, all 79 original
|
|
184
|
+
source identities and the actual archives. Core contains 11 entries and toolkit 179;
|
|
185
|
+
runtime assets, public examples and licenses/notices are present. No credentials, Git history,
|
|
186
|
+
caches or generated graph snapshots were included. Toolkit's packed core dependency is `^0.2.0`.
|
|
187
|
+
- Both public npm tarballs match the hosted prepared archives byte for byte, and those hashes
|
|
188
|
+
match the locally reviewed archives. Public SLSA provenance subjects match their SHA-512
|
|
189
|
+
digests and reference this exact commit, repository and `publish.yml` workflow. This checks
|
|
190
|
+
provenance content and source identity; it is not a separate cryptographic signature audit.
|
|
191
|
+
- Attempt 1 published and verified core, then toolkit's provenance submission failed with
|
|
192
|
+
`TLOG_CREATE_ENTRY_ERROR` / HTTP 409 for an equivalent transparency-log entry. The core
|
|
193
|
+
acceptance receipt and original archives were retained. Registry state was inspected before
|
|
194
|
+
rerunning only failed jobs in the same run. Attempt 2 completed toolkit publication using the
|
|
195
|
+
unchanged version/archives; core was already present. No provenance setting was disabled.
|
|
196
|
+
- Package tags `@weftlet/core@0.2.0` and `@weftlet/toolkit@0.2.0`, and their public GitHub
|
|
197
|
+
Releases, point to `ffe7f1d81f0421b35220bd7ba5b1555246c7a0e1`. The release records contain
|
|
198
|
+
the verified archive digests. Main's package versions agree with npm.
|
|
199
|
+
- A fresh public-registry consumer on Linux / Node 24.19.0 installed only
|
|
200
|
+
`@weftlet/toolkit@0.2.0` directly (`npm install --ignore-scripts`); core resolved transitively
|
|
201
|
+
to `0.2.0`. Both lockfile registry URLs and integrity hashes match the prepared archives.
|
|
202
|
+
CLI init/configuration and the npm-exec launcher passed. Real TypeScript indexing produced
|
|
203
|
+
15 SCIP facts within 22 total facts; the impact query returned 22 and SHACL conformed.
|
|
204
|
+
Repeat hydration preserved snapshot identity/content. Saved queries preserved snapshot bytes
|
|
205
|
+
and labeled excluded working edits. MCP initialized, discovered `impact.scan`, returned a
|
|
206
|
+
bounded 20-fact response and reported a missing snapshot as an error. No semantic documents
|
|
207
|
+
were selected: both hydrations extracted/reused zero artifacts, so this does not establish
|
|
208
|
+
model extraction or semantic artifact reuse.
|
|
209
|
+
|
|
210
|
+
Live model/authentication quality, browser interaction and genuine fresh-task cloud restoration
|
|
211
|
+
remain separate. No source application was changed and no live model call was made for release.
|
|
212
|
+
|
|
11
213
|
## Development workspace recovery, 2026-10-23
|
|
12
214
|
|
|
13
215
|
The existing Codex development workspace became executable again at repository commit
|