sotashimozono_obsidian-remo.../plugin
Souta 8e258b4ce6 feat(daemon): version-aware provisioning — refresh the daemon on plugin upgrade
Dogfooding beta.13: the static-daemon fix shipped, but users still ran the
old dynamically-linked binary — the cache was keyed by ARCH only
(cacheHit = existsSync), so a plugin upgrade never re-downloaded the daemon.
And locateDaemonBinary returned any staged binary at the dev filename, so a
prior *download* masqueraded as a dev build and skipped the refresh entirely.

Now (single cached file, no per-version pileup):
- DaemonDownloader validates the cache by SHA against the release manifest,
  not mere existence: reuse iff the cached bytes still match the expected sha,
  else re-download (atomic overwrite = old dropped). A daemon that didn't
  change across a bump is NOT re-downloaded; a changed/stale one is.
- ensureDaemonBinary fast-paths on `settings.daemonBinaryVersion === version`
  (cached file present) -> no GitHub round-trip, works offline; on mismatch it
  runs the sha re-check and records the new version after provisioning.
- locateDaemonBinary now requires a `.dev-daemon` marker (written by
  dev-install) to treat a staged binary as a genuine dev build; an unmarked
  download is re-validated instead of trusted. This is what makes an existing
  store/BRAT user's stale binary auto-replace seamlessly (no manual delete).

Implements the deferred #406 "re-verify cached binary sha before reuse".
tsc/lint/vitest green (1188). Ships as beta.14.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 18:48:49 +09:00
..
e2e test(e2e): quarantine flaky reflect modify/large-image tests (#376) (#377) 2026-06-08 17:59:44 +09:00
scripts feat(daemon): version-aware provisioning — refresh the daemon on plugin upgrade 2026-07-02 18:48:49 +09:00
src feat(daemon): version-aware provisioning — refresh the daemon on plugin upgrade 2026-07-02 18:48:49 +09:00
tests feat(daemon): version-aware provisioning — refresh the daemon on plugin upgrade 2026-07-02 18:48:49 +09:00
esbuild.config.mjs fix(plugin): resolve Obsidian reviewer findings (CSS / disclosure / dynamic-exec) — 1.1.1-beta.2 (#373) 2026-06-08 17:17:41 +09:00
eslint.config.mjs chore(lint): tighten local config to mirror more of ObsidianReviewBot's checklist (0.4.76) 2026-04-29 20:50:14 +09:00
manifest.json feat(daemon): version-aware provisioning — refresh the daemon on plugin upgrade 2026-07-02 18:48:49 +09:00
package-lock.json feat(daemon): version-aware provisioning — refresh the daemon on plugin upgrade 2026-07-02 18:48:49 +09:00
package.json feat(daemon): version-aware provisioning — refresh the daemon on plugin upgrade 2026-07-02 18:48:49 +09:00
styles.css release: 1.1.2 (stable) — validator-clean (#395) 2026-06-09 15:28:18 +09:00
tsconfig.json fix(plugin): add node types to tsconfig to resolve unsafe-member warnings (#380) 2026-06-08 21:48:02 +09:00
versions.json release: 1.1.5 (stable) 2026-06-16 10:16:04 +09:00
vitest.config.ts fix(tests): repair 6 CI failures + bump 1.0.36 (#278) 2026-05-09 23:26:01 +09:00
vitest.integration.config.ts chore(plugin): satisfy ObsidianReviewBot's stricter ruleset, round 2 (0.4.75) 2026-04-29 20:19:10 +09:00
vitest.replay.config.ts ci(replay): replay previous release tag's tests against current source 2026-04-30 17:54:22 +09:00
vitest.setup.ts chore(deps-dev): integrate dev-deps group + prefer-window-timers fix (1.1.1-beta.1) (#371) 2026-06-08 13:18:07 +09:00