Repository navigation
Releases
v0.2.0
No runtime code changes — the plugin's source is untouched — but a
declaration change that DSH 0.2.0-rc.2 made load-bearing. Published to
latest, because 0.1.1 is skipped by the 0.2.0-rc.2 gate and the latest
tag therefore points at a version that does not work on the latest DSH.
Fixed
- DSH 0.2.0-rc.2 skipped the bundle entirely.
0.2.0-rc.2added a gate
that refuses to load any bundle whosepeerDependenciesexclude the running
DSH version, and reports it once at startup as
skipping profile bundle "dsh-web-fetch-fakeip". The peer range enumerated
only the published0.1.xprereleases, so the bundle was dropped, the stock
web-fetch-httprow took over, and everyweb_fetchunder fake-ip DNS went
back to failing withresolves to a non-public IP address. The plugin's code
was never the problem: the0.2.0-rc.2seam tarballs (dsh-web,
dsh-web-fetch-http) are byte-identical to0.1.7-rc.2's, verified by
hash and by exercisingapply()against the real0.2.0-rc.2closure.
Widening the range is the whole fix.
Changed
- The
@deepseek-ai/dsh-weband@deepseek-ai/dsh-web-fetch-httppeer ranges
are now the bounded range>=0.1.2-rc.1 <0.3.0-0instead of a hand-written
list of every published0.1.xprerelease. The list had to be edited for
each new DSH release, and forgetting meant the bundle was silently skipped
rather than failing loudly; a bounded range covers the0.2.0final and
every future0.2.xwithout an edit.0.3.0is deliberately still refused,
because that is an untested compatibility claim rather than a mechanical
extension. - The version number now follows the DSH minor line. This release is
0.2.0rather than a0.1.2patch, so the plugin's minor version and its
declared DSH support (<0.3.0-0) name the same line — see
Versioning policy. It also means the version carries no
prerelease suffix, so the release workflow publishes it tolatestinstead
ofnext, which is what actually fixes the reported breakage for anyone on
the current DSH. devDependenciestrack the0.2.0-rc.2stack, so the local suite runs
against the closure a current harness actually ships.semveris now a dev
dependency: the new compatibility test re-derives the harness's gate decision
from the manifest.- The CI matrix gained a
0.2.0-rc.2row.
Added
test/compat.test.js: asserts the declared peer range
against the harness's compatibility gate by re-deriving
evaluatePluginCompatibility's verdict frompackage.json, so a range that
would get the whole bundle skipped fails offline instead of surfacing as a
missing provider. It also checks that every DSH version pinned in the CI
matrix satisfies the declared range, and that the two seam peers declare one
shared bounded range. This is the test that would have caught the
0.2.0-rc.2 breakage; the resolver suite could not, because every unit test
importssrc/*directly and never evaluatespackage.json.test/compat.test.jsalso enforces the versioning
policy, so it cannot drift: the declared DSH upper bound
must match the manifest's own minor version, the version must carry no
prerelease suffix (a-would divert the release tonextand leave the
brokenlatestin place), the CHANGELOG must carry the policy heading the
README links to, and it must have a section for the exact version being
released — which the release workflow requires and would otherwise fail on
mid-run.- Both suites now drive the real entry point instead of a copy of it. The live
suite previously hand-mirrored whatapply()does, so a registration mistake
— a wrong provider id, or registering nothing — would have left every
transport assertion green.apply()is now registered into an actual
Context+WebRuntime(ctx.web) and the fetch is made through
ctx.web.fetch(); the offline suite asserts the same registration and that
the seam refuses a duplicate id. - CI's syntax check now also covers
scripts/release-control.mjsand the test
files, so a syntax error there fails the matrix instead of only the suite
that happens to run it. - A README section on the
0.2.0-rc.2skip message, its remedy, and why
dsh plugin allow-versionis an escape hatch rather than the fix.
v0.1.1-rc.1
First release candidate of the 0.1.1 line. No runtime code changes — the
plugin's source is untouched since 0.1.0; this cycle was peer declarations,
CI, and documentation.
Fixed
- The CI matrix's
dsh 0.1.5-rc.2rows failed at dependency install, not
in tests:^0.1.5-rc.2floats@deepseek-ai/dsh-llmto0.1.5-rc.3, which
pins@deepseek-ai/cordisto exactly 4.0.2 — irreconcilable with the
0.1.7-era devDependencies the matrix override left in place. Matrix rows now
pin the@deepseek-ai/cordis/@deepseek-ai/schemasterypair their DSH
line shipped with, so every claimed peer version installs coherently again.
The offline suite passes against the restored 0.1.5-rc.2 closure (38 tests),
and compatibility is kept rather than dropped: the seam is byte-identical
across0.1.5-rc.2…0.1.7-rc.2.
Changed
- README quick start now installs from npm by name —
dsh plugin --profile web add dsh-web-fetch-fakeip@next— with the local
checkout path kept as an alternative.lateststill points at0.1.0
(which targets the older DSH lines), so the document calls out that current
DSH needs thenextchannel.
v0.1.1-alpha.2
Added
- DSH
0.1.7support: the peer range now also covers0.1.5-rc.3(missed
when it shipped) and every published0.1.7prerelease —0.1.7-alpha.1,
0.1.7-alpha.2,0.1.7-rc.1,0.1.7-rc.2. The0.1.5-rc.3and0.1.7
tarballs ship alib/that is byte-identical to0.1.5-rc.2's, so the
plugin's seam usage (HttpFetchProvider,LOCAL_FETCH_PROVIDER_ID,
DEFAULT_USER_AGENT,ctx.web.registerFetchProvider) needs no runtime
change; the CI matrix now also runs the suite against0.1.7-rc.2.
Changed
- Development dependencies track the
0.1.7-rc.2stack —
@deepseek-ai/cordis4.0.4 and@deepseek-ai/schemastery3.18.4, the
versions a real DSH0.1.7install resolves — so local tests exercise the
same closure the new harness ships. The@deepseek-ai/cordisand
@deepseek-ai/schemasterypeer ranges already admit both, so they are
unchanged.
v0.1.1
Promotes the 0.1.1 line to stable. No changes since 0.1.1-rc.1, and no
runtime code changes since 0.1.0 — the release candidate passed the full CI
matrix (7/7 across node 22/24 and every claimed DSH line) and has been running
in a live fake-ip deployment.
Relative to 0.1.0, the 0.1.1 line carries: a peer range extended to
0.1.5-rc.3 and every published 0.1.7 prerelease, the CI matrix fix that
keeps the older DSH lines installable against the 0.1.7-era dev stack, and a
quick start that installs from npm by name.
v0.1.1-alpha.1
Release tooling only — no runtime code changes. This prerelease exists to
exercise the tag-driven Trusted Publishing pipeline end to end.
Added
- Prerelease tags (e.g.
v0.1.1-alpha.1) pass the release workflow's tag
gate. - Prerelease versions publish under the
nextdist-tag, solatestnever
points at a prerelease and a barenpm installkeeps resolving to the
stable line.
Fixed
- The packaging guard accepts
npm pack --dry-run --jsonoutput from both
the pre-12 (array) and 12+ (name-keyed object) shapes — npm 12 changed the
shape, which made the first release run fail with "npm pack reported no
files". CI's packaging job now upgrades npm exactly like the release
workflow, so the two environments can no longer drift apart.