7 Commits
Author SHA1 Message Date
samiandClaude Opus 5.5 32eadc4d03 Windows updates come from the Kestrove website; version 1.2.1
ci / build (ubuntu-22.04) (push) Waiting to run
ci / build (windows-2025) (push) Waiting to run
ci / deny (push) Waiting to run
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:57:46 +04:00
samiandClaude Opus 5.5 57b728c7e3 gitea-release.sh: work with any subset of bundles
ci / build (ubuntu-22.04) (push) Canceled after 0s
ci / build (windows-2025) (push) Canceled after 0s
ci / deny (push) Canceled after 0s
A release with only the Windows installer aborted: shasum failed on the
unmatched *.deb and *.rpm globs under set -e. Checksum the files that exist.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:29:32 +04:00
samiandClaude Opus 5.5 d70dcc04b6 In-app updates on Windows
ci / build (ubuntu-22.04) (push) Canceled after 0s
ci / build (windows-2025) (push) Canceled after 0s
ci / deny (push) Canceled after 0s
The Microsoft Store doesn't update EXE installs, so the app updates itself
with Tauri's updater. It reads updater/latest.json from the Kestrove Gitea a
minute after startup and once a day. A new version shows as a banner and in
Settings > Updates, and installs only on "Update and restart". The vault locks
before the installer takes over.

The installer must be signed with the Kestrove updater key, with the signature
bound to its version (requireSignedVersion), so a compromised download server
can hold updates back but can't ship one or replay an old installer. Signing
is a release step, after Authenticode: gitea-release.sh signs, uploads the
.sig, and writes latest.json last. Plain builds need no key.

Checks reveal only the IP address and app version, and can be turned off in
Settings. endpoints is a list, so a mirror can be added. Linux packages update
through their package manager.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:19:24 +04:00
samiandClaude Opus 5.5 9dd43b76e9 Windows installer: fix the Windows build and register the browser host
ci / build (ubuntu-22.04) (push) Canceled after 0s
ci / build (windows-2025) (push) Canceled after 0s
ci / deny (push) Canceled after 0s
- main.rs: the Windows clipboard branch dropped the copy's Result (only the non-Windows branch was
  checked), which failed to compile for Windows; both now report a failed copy.
- windows/hooks.nsh: the NSIS installer writes the native messaging manifests next to kestrove-nmh.exe
  and registers them under HKCU for Chrome, Chromium, Edge, Brave, Vivaldi and Firefox; uninstall
  removes them. Per-user install.
- scripts/windows.sh: cross-build with cargo-xwin, compile the installer with NSIS 3.11 in a Debian 13
  container (Homebrew's makensis 3.13 crashes on macOS).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 19:32:06 +09:00
samiandClaude Opus 5.5 722e6cefc4 Linux release: .deb and .rpm (AppImage needs a real x86_64 host)
ci / build (ubuntu-22.04) (push) Canceled after 0s
ci / build (windows-2025) (push) Canceled after 0s
ci / deny (push) Canceled after 0s
linuxdeploy and the AppImage runtime can't run under QEMU (amd64 emulation on Apple silicon). The build
is split into cached steps; the release script uploads .rpm too. The .deb installs cleanly on Debian 12.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 16:59:46 +09:00
samiandClaude Opus 5.5 dda979bebe Version 1.0.0; Linux release build and Gitea release script
ci / build (ubuntu-22.04) (push) Canceled after 0s
ci / build (windows-2025) (push) Canceled after 0s
ci / deny (push) Canceled after 0s
scripts/linux.Dockerfile builds the AppImage, .deb and Linux native host in Debian 12 (amd64);
scripts/gitea-release.sh creates the v<version> release and uploads them with SHA256SUMS.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 16:28:59 +09:00
samiandClaude Opus 5.5 f406bf76ec Fix: server URL and password fields ignored typing
ci / build (ubuntu-22.04) (push) Canceled after 0s
ci / build (windows-2025) (push) Canceled after 0s
ci / deny (push) Canceled after 0s
The Enter-key handlers were expression-bodied arrows assigned to DOM on…
properties: `(e) => e.key === "Enter" && submit()` returns false for every
other key, and an on… handler returning false cancels the event, so the
server URL ("Use my phone") and both master-password fields accepted no input.
Use block bodies, and add scripts/check-handlers.mjs (run by npm run build)
to fail the build on handlers that can return false.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 01:30:05 +09:00