6 Commits
Author SHA1 Message Date
eeeeeeaaaa12andJINITAIMEI121 cf99f8694c perf(client): relocate local-match memo to the shared module, dropping the client wrapper (#592 follow-up) (#618)
Co-authored-by: JINITAIMEI121 <JINITAIMEI121@users.noreply.github.com>
2026-09-19 21:49:26 +08:00
eeeeeeaaaa12andJINITAIMEI121 4d06e7d440 fix(client): count restart-pending updates in the restart banner (#570)
* i18n: say the restart banner counts restart-pending changes

Part of #558: the banner number is restart-pending changes, not completed changes, so the copy should say so.

* fix(client): count restart-pending updates in the restart banner (#558)

The restart banner mixed two counting schemes: session updates (every completed change, including client-only plugins that go live without a restart) vs host activation state (only plugins parked behind a restart). The same batch showed 4 right after updating and 3 after the session was lost. Track restart-requiring updates separately (restartNames, gated on the update response's activation evidence, defaulting to restart-pending when the host reports nothing) and count those. updatedNames keeps its row-marker role. Persisted across tab switches like the other restart counters.

* build(client): rebuild the bundle with the restart-pending gate (#558)

Regenerated client/client.js from the patched src/client tree, per review: the repo commits build artifacts and CI checks them against the source.

* test(client): pin the restart-count gate and the conservative default (#558)

Adds the missing spec file for the restart-count fix: a mixed restart/inert batch shows 1 (not 2), the count survives a session loss, and an update with no activation evidence still counts (the conservative direction, pinned so it cannot be silently dropped).

* build(client): regenerate bundle against current main (banner normalization from upstream)

* fix(client): count restart-pending updates after the upstream >=1 mergefix(client): count restart-pending updates after the upstream >=1 merge

---------

Co-authored-by: JINITAIMEI121 <JINITAIMEI121@users.noreply.github.com>
2026-09-19 11:49:48 +08:00
eeeeeeaaaa12andJINITAIMEI121 a661b0e257 fix(accelerate): resolve annotated tags to their peeled commit when comparing (#597) (#601)
Co-authored-by: JINITAIMEI121 <JINITAIMEI121@users.noreply.github.com>
2026-09-15 12:43:41 +08:00
eeeeeeaaaa12andJINITAIMEI121 e949b5056d fix(changelog): match catalog entries by installed repo identity for npm installs (#598) (#604)
Co-authored-by: JINITAIMEI121 <JINITAIMEI121@users.noreply.github.com>
2026-09-15 12:41:46 +08:00
eeeeeeaaaa12 b1b3b604af fix(pnpm-compat): give ERR_PNPM_NO_MATCHING_VERSION its own code and wording (#578)
* fix(install): retry the no-matching-version host-peer shape with peers off

A host peer that only ever published pre-releases makes pnpm fail with ERR_PNPM_NO_MATCHING_VERSION instead of FETCH_404, so the #289 one-shot AUTO_INSTALL_PEERS_OFF retry never fired. Extend the gate to the new no-matching-version code. See #569.

* test: pin the ERR_PNPM_NO_MATCHING_VERSION classifier branch (#569)

Fixture is verbatim pnpm 12.4.1 output for a stable-range add against a prerelease-only host peer, per the house rule of pinning real wording in classifier tests.

* fix(pnpm-compat): give ERR_PNPM_NO_MATCHING_VERSION its own code and wording

Per #569 and the review on #528: the package exists, the requested range matches no published version, so the fetch-404 copy (ghost dependency / private package) misleads. New no-matching-version branch names the failing range, calls out the host-provided provision for @deepseek-ai/dsh-* peers, and the install.ts retry gate shares the #289 one-shot peers-off recovery. Fixture pins verbatim pnpm 12.4.1 wording.
2026-09-13 11:06:28 +08:00
eeeeeeaaaa12 f9cd5dca8f fix(discovery): read dsh.engines.dsh as well as the top-level engines.dsh (#579)
* fix(discovery): read dsh.engines.dsh as well as the top-level engines.dsh (#577)

The ecosystem declares the host requirement in both shapes; manifestFacts read only the top-level one, so packages like @linxin666/dsh-web-all always reported enginesDsh null and the #404/#522 preflight never saw their declaration. Read both, top-level wins when both are present.

* test(discovery): pin the dual-shape host-requirement read (#577)

Covers the nested dsh.engines.dsh shape, the both-shapes top-level-wins case, and the null when neither declares.
2026-09-13 11:05:17 +08:00