mirror of
https://github.com/sotashimozono/obsidian-remote-ssh.git
synced 2026-07-22 17:10:32 +00:00
Community-store installs ship only main.js/manifest.json/styles.css, so the daemon binary (server-bin/) never reaches users -> default RPC failed with a dev-facing "run npm run build:server" error (#397). Now, when no binary is staged locally, the plugin: - probes the remote os/arch via `uname`, - downloads the matching obsidian-remote-server-<os>-<arch> from this plugin's GitHub release, - verifies it against the release's daemon-manifest.json (sha256), - caches it under server-bin/ for subsequent connects. A one-time consent dialog gates the download (Obsidian discourages silent external fetches; remembered in settings). Unsupported remote arches, a declined download, or any failure downgrade the session to SFTP via the new DaemonUnavailableError instead of hard-failing. New DaemonDownloader.ts (pure, dependency-injected) + 17 tests. ConnectionDeps gains ensureDaemonBinary; startRpcSession uses locateDaemonBinary() ?? ensureDaemonBinary(). main.ts wires requestUrl + fs + the consent Modal; connectProfile catches DaemonUnavailableError and continues on SFTP. Refs #397. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| e2e | ||
| scripts | ||
| src | ||
| tests | ||
| esbuild.config.mjs | ||
| eslint.config.mjs | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| styles.css | ||
| tsconfig.json | ||
| versions.json | ||
| vitest.config.ts | ||
| vitest.integration.config.ts | ||
| vitest.replay.config.ts | ||
| vitest.setup.ts | ||