@weftlet/toolkit 0.1.1 → 0.2.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 +39 -3
- package/THIRD_PARTY_NOTICES.md +33 -0
- package/dist/application/hydrator.js +18 -5
- package/dist/application/overlay.js +46 -9
- package/dist/application/saved-evidence.d.ts +1 -0
- package/dist/configuration/config.d.ts +4 -0
- package/dist/configuration/config.js +12 -0
- package/dist/configuration/scip-project.d.ts +9 -0
- package/dist/configuration/scip-project.js +40 -0
- package/dist/extraction/codex-auth.js +9 -2
- package/dist/extraction/codex-command.d.ts +8 -0
- package/dist/extraction/codex-command.js +81 -0
- package/dist/extraction/document-references.d.ts +18 -0
- package/dist/extraction/document-references.js +94 -0
- package/dist/extraction/document.d.ts +9 -2
- package/dist/extraction/document.js +44 -46
- package/dist/extraction/module-request.d.ts +3 -0
- package/dist/extraction/module-request.js +25 -0
- package/dist/extraction/routing.d.ts +14 -0
- package/dist/extraction/routing.js +151 -0
- package/dist/extraction/scip-project.d.ts +3 -0
- package/dist/extraction/scip-project.js +33 -0
- package/dist/extraction/semantic-process.js +17 -5
- package/dist/extraction/semantic.js +13 -2
- package/dist/extraction/static.d.ts +7 -3
- package/dist/extraction/static.js +15 -9
- package/dist/graph/query.js +21 -34
- package/dist/graph/ranking.d.ts +10 -0
- package/dist/graph/ranking.js +85 -0
- package/dist/interfaces/doctor.js +12 -3
- package/docs/ADR-002-saved-evidence.md +7 -1
- package/docs/ADR-003-draft-overlays.md +6 -0
- package/docs/ADR-004-rdf-query-path.md +6 -0
- package/docs/ADR-006-provider-boundaries.md +5 -0
- package/docs/ADR-008-weftlet-packages.md +2 -1
- package/docs/ADR-009-release-automation.md +39 -0
- package/docs/ADR-010-committed-source-indexing.md +77 -0
- package/docs/ADR-011-explicit-document-links.md +48 -0
- package/docs/ADR-012-impact-ranking.md +50 -0
- package/docs/ADR-013-relative-module-requests.md +58 -0
- package/docs/ADR-014-routing-declarations.md +108 -0
- package/docs/CONSUMER-TRIAL.md +165 -0
- package/docs/ENVIRONMENT-VALIDATION.md +9 -0
- package/docs/IMPACT-EVALUATION.md +363 -0
- package/docs/PROVIDERS.md +30 -2
- package/docs/RELEASING.md +128 -116
- package/docs/ROADMAP.md +49 -8
- package/docs/SOURCE-INVENTORY.md +10 -0
- package/docs/VALIDATION.md +394 -0
- package/docs/VIEWER.md +5 -0
- package/docs/extraction-manifest.json +104 -16
- package/package.json +9 -3
package/docs/RELEASING.md
CHANGED
|
@@ -1,146 +1,158 @@
|
|
|
1
1
|
# Weftlet npm releases
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
3
|
+
`@weftlet/core@0.1.2` and `@weftlet/toolkit@0.1.2` are published. The first automatic
|
|
4
|
+
release completed in [run 39672652013](https://github.com/jchewitt/weftlet/actions/runs/39672652013),
|
|
5
|
+
including package tags and GitHub Releases at commit `3d8d1f38a9e70b38178921cdabf5e8714c417c1c`. Their first trusted
|
|
6
|
+
publication passed in [run 39661957651](https://github.com/jchewitt/weftlet/actions/runs/39661957651)
|
|
7
|
+
from commit `720a5f964fe3cb6c438be6d22b4aa8b4ad44de17`, with matching registry archive integrity,
|
|
8
|
+
npm provenance and a fresh public CLI installation. Earlier Weftlet and `@launch-echo` releases
|
|
9
|
+
remain available and undeprecated. GitHub and npm owner names need not match.
|
|
10
|
+
|
|
11
|
+
Live Codex authentication follow-up remains tentative and non-blocking, as accepted by the
|
|
12
|
+
maintainer. Deterministic release checks still apply. Linux/WSL is the validated full release
|
|
13
|
+
preparation route; native Windows has focused CI coverage. See [validation](VALIDATION.md).
|
|
14
|
+
|
|
15
|
+
## Normal development and release
|
|
16
|
+
|
|
17
|
+
1. For a change that should ship, run `pnpm changeset`, choose patch/minor/major and write a short
|
|
18
|
+
user-facing description. Commit the generated Markdown with the change. The bump type is a
|
|
19
|
+
contributor decision, not inferred from commit messages. Documentation-only work that does not
|
|
20
|
+
need an npm release can omit a changeset.
|
|
21
|
+
2. On main pushes, **Release version PR** opens or updates a bot PR. Core and toolkit are a fixed
|
|
22
|
+
release group: a release of either advances both to the same version. The PR contains package
|
|
23
|
+
versions, dependency/lockfile updates, changelogs, a generated `.changeset/release-plan.json`,
|
|
24
|
+
and an updated extraction inventory. Original source hashes remain unchanged.
|
|
25
|
+
3. Review the version PR and its checks, then merge it. This commits the versions to `main`
|
|
26
|
+
**before** npm publication. Do not manually bump manifests or edit the generated plan.
|
|
27
|
+
4. The plan change triggers **Weftlet release**. It validates and prepares both archives, publishes
|
|
28
|
+
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.2`
|
|
30
|
+
and `@weftlet/toolkit@0.1.2`, plus corresponding GitHub Releases, at that exact source commit.
|
|
31
|
+
Existing tags are never moved. The publication job does not commit back to main.
|
|
32
|
+
|
|
33
|
+
The bot uses GitHub's built-in token, not a personal access token. GitHub may require Settings →
|
|
34
|
+
Actions → General → Workflow permissions → **Allow GitHub Actions to create and approve pull
|
|
35
|
+
requests**. The workflow grants its own explicit permissions; the repository default need not
|
|
36
|
+
be changed to write. The bot creates PRs; it does not approve or merge them. Since commits made
|
|
37
|
+
with `GITHUB_TOKEN` do not trigger ordinary PR workflows, it explicitly dispatches `check.yml`
|
|
38
|
+
on the release PR branch. Inspect the checks for the current PR commit before merging.
|
|
39
|
+
|
|
40
|
+
Versioning is automatic once changesets are supplied; publication remains dependent on passing
|
|
41
|
+
checks and configured environment rules. A failed publish can temporarily leave main ahead of
|
|
42
|
+
npm. Retry that release at the same commit/version instead of generating another bump.
|
|
43
|
+
|
|
44
|
+
## npm trust and GitHub environment
|
|
45
|
+
|
|
46
|
+
Trust is configured separately for both [core](https://www.npmjs.com/package/@weftlet/core) and
|
|
47
|
+
[toolkit](https://www.npmjs.com/package/@weftlet/toolkit), with these settings:
|
|
20
48
|
|
|
21
49
|
| npm setting | Value |
|
|
22
50
|
| --- | --- |
|
|
23
51
|
| Organization or user | `jchewitt` |
|
|
24
52
|
| Repository | `weftlet` |
|
|
25
|
-
| Workflow filename | `publish.yml`
|
|
53
|
+
| Workflow filename | `publish.yml` |
|
|
26
54
|
| Environment name | `npm-release` |
|
|
27
|
-
| Allowed action |
|
|
55
|
+
| Allowed action | Direct `npm publish` enabled |
|
|
28
56
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
name alone: an automatically created environment has
|
|
33
|
-
no review protection until you configure it. No npm token secret is required for OIDC publication.
|
|
34
|
-
Keep npm account 2FA enabled. The package's repository metadata already identifies `jchewitt/weftlet`.
|
|
57
|
+
The automation retains this identity, so existing npm trust needs no change. Keep npm account
|
|
58
|
+
2FA enabled. No npm token secret is required. If configuring a new trust relationship, consult
|
|
59
|
+
[npm's current requirements](https://docs.npmjs.com/trusted-publishers/), including its initial-use deadline.
|
|
35
60
|
|
|
36
|
-
npm
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
61
|
+
`npm-release` is a GitHub deployment environment, not a machine or npm account. Its existing
|
|
62
|
+
configuration has no required reviewer or branch rules. The workflow itself requires main.
|
|
63
|
+
To add an approval pause, configure a required reviewer and main-only deployment branches under
|
|
64
|
+
Settings → Environments → npm-release. A sole maintainer approving their own releases must leave
|
|
65
|
+
**Prevent self-review** unchecked. The workflow honors those rules if configured; its YAML name
|
|
66
|
+
alone does not create review protection.
|
|
40
67
|
|
|
41
|
-
##
|
|
68
|
+
## Validation and manual preparation
|
|
42
69
|
|
|
43
|
-
Use Node 24 and pnpm 10.18.2
|
|
44
|
-
subsequent content changes require a new version for the affected packages. Update the lockfile
|
|
45
|
-
when changing workspace dependency versions. Never overwrite or republish an existing version.
|
|
70
|
+
Use Node 24 and pnpm 10.18.2. The full gate can run during ordinary development without a release plan:
|
|
46
71
|
|
|
47
72
|
```sh
|
|
48
|
-
nvm install
|
|
49
|
-
nvm use
|
|
50
73
|
pnpm install --frozen-lockfile
|
|
51
|
-
pnpm
|
|
74
|
+
pnpm context-graph:publication-check
|
|
52
75
|
```
|
|
53
76
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
77
|
+
It runs build, deterministic tests, architecture, inventory, licenses and a fresh packed-consumer
|
|
78
|
+
smoke. The smoke exercises setup/config, automatic core installation, real TypeScript SCIP,
|
|
79
|
+
RDF/SHACL, visualization and MCP. No live model or public npm upload is invoked.
|
|
80
|
+
|
|
81
|
+
After the generated release PR is committed, `pnpm release:prepare` also packs both packages,
|
|
82
|
+
resolves workspace ranges, dry-runs unpublished versions and records source commit, versions and
|
|
83
|
+
SHA-512 integrity in `.release/manifest.json`. Review the manifest, tarball file lists and extraction
|
|
84
|
+
inventory. Preparation refuses pending changesets and stale release plans. It requires a clean
|
|
85
|
+
checkout. An existing npm version must match exactly; different bytes stop the release.
|
|
86
|
+
|
|
87
|
+
Actions → **Weftlet release** → **Run workflow** remains available on main. Leave **publish**
|
|
88
|
+
unchecked for preparation only, or select it for an intentional release of the committed plan.
|
|
89
|
+
The preparation job has read-only repository permissions and no OIDC permission. Its uploaded
|
|
90
|
+
`weftlet-release-N` artifact (`N` is the run attempt) is the exact publication input. The publish
|
|
91
|
+
job installs no project dependencies and performs no build. It alone has `id-token: write`;
|
|
92
|
+
the separate release-record job has `contents: write` and no npm publishing permission.
|
|
93
|
+
|
|
94
|
+
Actions and npm are pinned; npm 11.21.1 is used for OIDC. OIDC preconditions require the expected
|
|
95
|
+
repository, main, a push/manual trigger, hosted runner and OIDC request variables. Ambient npm
|
|
96
|
+
tokens are rejected and npm configuration is isolated. `npm whoami` is skipped because it cannot
|
|
97
|
+
validate trusted publishing. npm verifies the identity and creates provenance. There is no token
|
|
98
|
+
fallback. JavaScript pnpm and standalone `@pnpm/exe` are supported for local tooling.
|
|
99
|
+
|
|
100
|
+
## Delayed visibility and failed releases
|
|
101
|
+
|
|
102
|
+
Publication is sequential, not atomic across packages. Registry visibility and integrity of core
|
|
103
|
+
are checked before toolkit is uploaded. An identical existing release is skipped. Only HTTP 404
|
|
104
|
+
is treated as pending; authentication, network and integrity failures stop publication.
|
|
105
|
+
|
|
106
|
+
After npm accepts an upload, the publisher writes a package/integrity-specific `.accepted.json`
|
|
107
|
+
receipt and polls public metadata up to 21 times, 15 seconds apart. It never intentionally uploads
|
|
108
|
+
an accepted version again. A process interruption between acceptance and receipt writing still
|
|
109
|
+
requires inspection of npm state.
|
|
110
|
+
|
|
111
|
+
For a failed GitHub run, use **Re-run failed jobs** on the original run. Each attempt saves
|
|
112
|
+
`weftlet-publication-state-N` with exact archives and receipts, even on failure. The next attempt
|
|
113
|
+
restores the latest earlier receipt artifact from that same run before publishing. Artifact lookup
|
|
114
|
+
errors, expired latest receipts or ambiguous state fail instead of silently discarding evidence.
|
|
115
|
+
Artifacts are retained for 30 days. Release-record creation is also idempotent: a retry completes
|
|
116
|
+
missing records without moving tags or duplicating releases.
|
|
117
|
+
|
|
118
|
+
Do not start a new workflow run while an accepted package is still processing: different runs do
|
|
119
|
+
not share receipts. If artifacts expired, inspect npm and recover the original archives/receipts
|
|
120
|
+
before proceeding. Do not bump versions to hide a partially published release. Once both versions
|
|
121
|
+
are visible, exact integrity checks make retries safe. A newly prepared archive that differs from
|
|
122
|
+
the original is an error, even if its package version is the same.
|
|
123
|
+
|
|
124
|
+
For authorized local recovery, restore the original `.release/` at its manifest's commit, then:
|
|
58
125
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
126
|
+
```sh
|
|
127
|
+
npm login --registry=https://registry.npmjs.org
|
|
128
|
+
pnpm release:publish
|
|
129
|
+
```
|
|
63
130
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
131
|
+
Use an interactive terminal for npm browser/2FA challenges. Local publication uses normal login
|
|
132
|
+
and disables CI provenance. `WEFTLET_NPM_TOKEN` (legacy `TENTLY_NPM_TOKEN`) remains available for
|
|
133
|
+
an explicitly authorized token environment; never commit tokens or pass them to the OIDC workflow.
|
|
134
|
+
Local publication does not create GitHub tags/releases automatically; the verified workflow's
|
|
135
|
+
record job is the normal route.
|
|
67
136
|
|
|
68
|
-
##
|
|
137
|
+
## Inspecting and consuming releases
|
|
69
138
|
|
|
70
|
-
|
|
139
|
+
Package-specific tags identify the exact published source, for example:
|
|
71
140
|
|
|
72
141
|
```sh
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
pnpm release:publish
|
|
142
|
+
git fetch --tags
|
|
143
|
+
git switch --detach '@weftlet/toolkit@0.1.2'
|
|
76
144
|
```
|
|
77
145
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
For an authorized token environment, `WEFTLET_NPM_TOKEN` is supported through a temporary,
|
|
83
|
-
restricted-permission npm configuration containing only the literal variable reference. Legacy
|
|
84
|
-
`TENTLY_NPM_TOKEN` remains accepted if the new variable is absent. Never paste tokens in chat,
|
|
85
|
-
commit them, or provide either token to the trusted-publishing workflow. No cloud secret is needed
|
|
86
|
-
when publication happens from the maintainer's authenticated WSL session.
|
|
87
|
-
|
|
88
|
-
## GitHub trusted publication
|
|
89
|
-
|
|
90
|
-
The workflow `.github/workflows/publish.yml` is manually dispatched, main-branch only, and serialized.
|
|
91
|
-
It does not run on pushes or pull requests. From GitHub Actions → **Weftlet release** → **Run workflow**:
|
|
92
|
-
|
|
93
|
-
1. Select `main`. Leave **publish** unchecked for preparation only. Review the uploaded
|
|
94
|
-
`weftlet-release` artifact and manifest in the run summary.
|
|
95
|
-
2. For an intentional release, select **publish**. The preparation job runs again on that exact
|
|
96
|
-
commit, without publishing credentials. Inspect that run's artifact before approving its
|
|
97
|
-
`npm-release` deployment; a different run's archive is not the approval target.
|
|
98
|
-
3. After configured environment approval, the publish job checks out the same source, downloads
|
|
99
|
-
those artifacts and runs `node scripts/release.mjs --publish --auth=oidc`. It does not install
|
|
100
|
-
project dependencies or rebuild the packages. Only this job has `id-token: write`.
|
|
101
|
-
|
|
102
|
-
Actions are pinned to commits. Neither job restores a dependency cache. OIDC mode requires a
|
|
103
|
-
GitHub-hosted runner, the expected repository/ref/manual trigger and OIDC request variables;
|
|
104
|
-
it rejects ambient npm token variables and isolates user/global npm configuration. npm performs
|
|
105
|
-
actual identity validation against each package's trust settings. `npm whoami` is deliberately
|
|
106
|
-
skipped in OIDC mode because it is not a trusted-publisher authorization check. Unsupported npm,
|
|
107
|
-
missing trust or rejected identity must fail; there is no token fallback configured by this workflow.
|
|
108
|
-
|
|
109
|
-
npm creates provenance for public packages published from this public repository through OIDC.
|
|
110
|
-
Local publication explicitly disables CI provenance. Prepared artifacts and synthetic OIDC tests
|
|
111
|
-
do not prove that a live trusted publish or provenance verification has succeeded.
|
|
112
|
-
|
|
113
|
-
## Ordering, delayed visibility and recovery
|
|
114
|
-
|
|
115
|
-
Before any upload, the publisher validates every archive hash and its source commit. It publishes
|
|
116
|
-
core first, waits for registry visibility and verifies integrity, then publishes the toolkit. An
|
|
117
|
-
existing identical release is skipped; different bytes at the same version stop publication.
|
|
118
|
-
Publication across packages is not atomic.
|
|
119
|
-
|
|
120
|
-
After npm accepts an upload it may remain invisible while processing. The publisher saves a
|
|
121
|
-
package/integrity-specific `.accepted.json` receipt under `.release/` and retries only public
|
|
122
|
-
metadata reads, up to 21 checks, 15 seconds apart. Only 404 is treated as pending. Never repeatedly
|
|
123
|
-
upload an accepted version. Keep `.release/` and retry `release:publish` later to resume verification.
|
|
124
|
-
A receipt cannot cover a process interruption before it is written; inspect registry state before
|
|
125
|
-
recovery. Authentication, network and integrity errors are not treated as missing packages.
|
|
126
|
-
|
|
127
|
-
The workflow uploads `weftlet-publication-state`, including receipts, even when publication fails.
|
|
128
|
-
For a processing timeout, recover those exact archives and receipts into `.release/` at the
|
|
129
|
-
manifest's source commit before an authorized local retry. Do not blindly rerun the whole workflow
|
|
130
|
-
while an accepted upload is still processing: a new run starts without the old receipt. Once a
|
|
131
|
-
release is visible, the normal integrity check safely skips its already published packages.
|
|
132
|
-
|
|
133
|
-
## Verify public installation before retiring old names
|
|
134
|
-
|
|
135
|
-
After successful publication, use a fresh disposable project:
|
|
146
|
+
Tags support inspection and reproduction, not mutation of npm history. To roll a consumer back,
|
|
147
|
+
install an earlier published version; fixes to a release need a new changeset/version.
|
|
148
|
+
|
|
149
|
+
Verify a new public release in a fresh disposable project, substituting its version:
|
|
136
150
|
|
|
137
151
|
```sh
|
|
138
152
|
npm init -y
|
|
139
|
-
npx --yes @weftlet/toolkit@0.1.
|
|
140
|
-
npx --yes @weftlet/toolkit@0.1.
|
|
153
|
+
npx --yes @weftlet/toolkit@0.1.1 init --yes
|
|
154
|
+
npx --yes @weftlet/toolkit@0.1.1 config validate
|
|
141
155
|
```
|
|
142
156
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
only after those public checks pass. Deprecating the old `@launch-echo` names is a separate registry
|
|
146
|
-
action after replacement verification; never unpublish the old releases.
|
|
157
|
+
Check registry hashes, transitive core resolution and provenance. Deprecating the previous
|
|
158
|
+
`@launch-echo` names is a separate action after replacement verification; never unpublish them.
|
package/docs/ROADMAP.md
CHANGED
|
@@ -10,7 +10,7 @@ Project: `jchewitt/weftlet`. Extraction provenance is recorded in the
|
|
|
10
10
|
| 2b. Draft overlays | Base/content identity, reindexed replacement, delete/rename handling, separate checkout/agent heads | Full implementation reindex; changed prose invalidated pending re-extraction |
|
|
11
11
|
| 3. Unified graph | RDF/SPARQL, SHACL, lossless projection, bounded continuation, six-stage async cross-source fixture, negative extraction/linkage cases | Local SELECT only; 100,000-fact projection bound; no universal language support |
|
|
12
12
|
| 4. Governance | Canonical approved rules, dependency-cruiser/ESLint/jscpd, scoped debt/expiry, transitive inference, optional OML ADR/parity | No active OWL reasoner; live formal compilation unverified; heuristics remain advisory |
|
|
13
|
-
| 5. Providers/DX | Codex adapter, HDesk live Windows public-example pass and cache reuse, CLI init/config and npx setup, tested module contract, validation/budgets/timeouts/cancellation/retries/cache identity, diagnostics/progress | Cloud live run remains filesystem-blocked; native
|
|
13
|
+
| 5. Providers/DX | Codex adapter, HDesk live Windows public-example pass and cache reuse, CLI init/config and npx setup, tested module contract, validation/budgets/timeouts/cancellation/retries/cache identity, diagnostics/progress | Cloud live run remains filesystem-blocked; native npm launcher discovery and CRLF integrity validated in hosted Windows; live auth follow-up and other real providers remain |
|
|
14
14
|
| 6. Viewer | Same facts as agents, clustering, drill-down, bounded path highlighting, optional commit source links, authority/coverage/staleness | No real-browser automation; bounded pages, not a complete interactive explorer |
|
|
15
15
|
|
|
16
16
|
HDesk results for `6710e9391a6a01345dab5f5be4ae0656e1c9d1ae` are recorded in
|
|
@@ -32,8 +32,48 @@ See [provider configuration](PROVIDERS.md#codex-authentication) and the validati
|
|
|
32
32
|
Native Windows archive conversion, concurrent head-replacement and MCP file-symlink fixes are
|
|
33
33
|
implemented with regression tests and pass focused hosted Windows CI. HDesk confirmation and
|
|
34
34
|
full native Windows release preparation remain separate checks.
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
The Windows reliability increment adds native/npm Codex discovery, process-tree cancellation
|
|
36
|
+
and Git-aware CRLF inventory/license checks. Hosted Windows passed 34 selected tests plus
|
|
37
|
+
repository inventory and licenses; hosted Ubuntu passed the full 178-test publication gate.
|
|
38
|
+
Browser and live authentication checks remain deferred. An advisory [self-repository impact
|
|
39
|
+
evaluation](IMPACT-EVALUATION.md) now measures four realistic changes with real SCIP/RDF/SHACL
|
|
40
|
+
and zero model assertions: 13/24 expected candidate files on the first page, 16/24 within
|
|
41
|
+
three pages. The opt-in [committed source-project increment](ADR-010-committed-source-indexing.md)
|
|
42
|
+
adds test/workspace indexing and improves the same cases to 15/24 first-page and 18/24
|
|
43
|
+
three-page candidates, with typed relationships from 33 test files. [Explicit document linkage](ADR-011-explicit-document-links.md) now resolves cited Markdown
|
|
44
|
+
references against committed files. With new contributor source mappings, a separately recorded
|
|
45
|
+
input returns 22/24 first-page and 24/24 three-page candidates; three labeled distractions also
|
|
46
|
+
appear. The old-source control remains 15/24 and 18/24 for that ordering.
|
|
47
|
+
[Query ranking](ADR-012-impact-ranking.md) was measured against those exact saved snapshots
|
|
48
|
+
without hydration: the document-link input improves to 24/24 on page one, with labeled distractions
|
|
49
|
+
reduced from three to one within three pages. The older control improves to 19/24 on page
|
|
50
|
+
one, but its distraction count worsens from zero to one. Missing document relationships stay
|
|
51
|
+
missing, and all reachable facts remain available through versioned continuation. See the
|
|
52
|
+
[fixed-input comparison](IMPACT-EVALUATION.md#fixed-snapshot-ranking-comparison).
|
|
53
|
+
Broad query reachability and live semantic quality remain gaps; these four cases do not
|
|
54
|
+
establish generalization or exhaustive precision.
|
|
55
|
+
The [prospective dispatch evaluation](IMPACT-EVALUATION.md#prospective-dispatch-evaluation)
|
|
56
|
+
adds three frozen synthetic cases outside Weftlet internals. Unchanged ranking retrieves
|
|
57
|
+
15/16 expected files on page one; all seven case-specific distractions appear on later pages.
|
|
58
|
+
Full continuation confirms the topic-string archival consumer is disconnected, while generic
|
|
59
|
+
relative-import identity joins distinct domain modules. No cases or ranking were tuned after
|
|
60
|
+
measurement. Original saved-snapshot results remain unchanged.
|
|
61
|
+
[Relative module request identity](ADR-013-relative-module-requests.md) now scopes imports
|
|
62
|
+
to their requesting directory. On those same frozen inputs, dispatch retains 15/16 candidates
|
|
63
|
+
while three-page distractions fall from 7/7 to 0/7; Weftlet retains 24/24 first-page candidates
|
|
64
|
+
and one later-page distraction. Refreshes and overlays have versioned identities, and old
|
|
65
|
+
snapshots remain readable with their original facts. The archival routing gap remains without
|
|
66
|
+
additional source evidence. [Explicit routing declarations](ADR-014-routing-declarations.md)
|
|
67
|
+
now supply opt-in, cited producer/consumer bindings with inferred authority. A separately
|
|
68
|
+
committed authored mapping improves same-SHA dispatch retrieval from 15/16 to 16/16 on page
|
|
69
|
+
one, with zero labeled distractions. Drafts rebuild and invalidate affected bindings; these
|
|
70
|
+
results do not establish deployed subscriptions or observed delivery.
|
|
71
|
+
Next work should be separate, reviewed increments:
|
|
72
|
+
run the [private consumer trial](CONSUMER-TRIAL.md) on predeclared real-project tasks;
|
|
73
|
+
evaluate actual deployment/runtime routing evidence against the unchanged dispatch control;
|
|
74
|
+
review explicit mappings
|
|
75
|
+
and run a bounded live semantic comparison when the maintainer is ready;
|
|
76
|
+
retain the passing hosted Ubuntu CI gate; validate fresh-cloud
|
|
37
77
|
restoration; resolve the cloud-specific live provider block; add browser
|
|
38
78
|
interaction/accessibility tests; benchmark larger RDF graphs; evaluate a second real provider.
|
|
39
79
|
Figma and source-application reintegration are future adapter work.
|
|
@@ -48,8 +88,9 @@ destination to `jchewitt/tently` for local testing. The subsequent npm request a
|
|
|
48
88
|
preparation/publication under `@launch-echo`; the maintainer completed the 0.1.0 release from WSL. Visibility changes and
|
|
49
89
|
source-application reintegration remain outside the authorized scope. See [release instructions](RELEASING.md).
|
|
50
90
|
|
|
51
|
-
The maintainer authorized the Weftlet migration on 2026-10-21.
|
|
52
|
-
`@weftlet/
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
91
|
+
The maintainer authorized the Weftlet migration on 2026-10-21. Both `@weftlet/core` and
|
|
92
|
+
`@weftlet/toolkit` are published at 0.1.2 through GitHub OIDC, with provenance and a fresh public
|
|
93
|
+
installation verified. Changesets now prepares reviewed version PRs for the fixed package group;
|
|
94
|
+
merging a release plan triggers publication and package-specific tags/GitHub Releases.
|
|
95
|
+
See [ADR 009](ADR-009-release-automation.md) and [release instructions](RELEASING.md).
|
|
96
|
+
Earlier Tently packages remain available and undeprecated.
|
package/docs/SOURCE-INVENTORY.md
CHANGED
|
@@ -46,3 +46,13 @@ On 2026-10-21 the maintainer selected and created the `@weftlet` scope and autho
|
|
|
46
46
|
to `@weftlet/core` and `@weftlet/toolkit`. This changes destination package names only; the original
|
|
47
47
|
source SHA, imported-path inventory, copyright and attribution remain intact. The maintainer subsequently renamed GitHub to
|
|
48
48
|
`jchewitt/weftlet` on the same date; the checkout remains `/workspace/tently`. See [migration](MIGRATING-TO-WEFTLET.md) and [release status](RELEASING.md).
|
|
49
|
+
|
|
50
|
+
## Checkout line endings
|
|
51
|
+
|
|
52
|
+
Destination inventory hashes use Git's CRLF-to-LF conversion only when Git would apply it to that
|
|
53
|
+
path. Checks use `hash-object` without writing objects or staging; they do not change the index,
|
|
54
|
+
Git configuration or checkout bytes. Binary and `-text` files retain their exact bytes. Real
|
|
55
|
+
content edits still invalidate the inventory. Original imported source hashes are never normalized
|
|
56
|
+
or recalculated. Custom clean filters/working-tree encodings on CRLF inputs are rejected instead
|
|
57
|
+
of executed by the checker. Updates preserve CRLF in existing checkout files and the manifest.
|
|
58
|
+
Generated license-notice checks also tolerate CRLF formatting while comparing the complete text.
|