"No Update Available" must only mean the server has nothing newer. Flatpak
installs were skipped before the check, so they always saw that alert.
Replace the installable flag with an install method (integrated | flatpak |
manual). Flatpak still never self-installs, but now gets a toast telling the
user to run `flatpak update`; manual installs keep the download link. The
X-Install-Mode header reports "flatpak" for those installs.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The bundle-type stamp records how the binary was packaged, not how it was
installed. Third-party packages repackage the .deb (e.g. the AUR yaak-bin
package), so a deb-stamped binary on Arch would have asked the server for a
.deb and then tried `pkexec dpkg -i` over a pacman-managed install.
Require `dpkg -S <exe>` / `rpm -qf <exe>` to succeed before reporting
deb/rpm; otherwise fall through to "unknown", which gets the manual
download toast.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Extract the package-format check into a pure artifact_matches_installer()
so it can be tested on any platform.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Non-AppImage Linux builds short-circuited the update check, so "Check for
Updates" always reported the app was current and users fell behind silently.
- Drop the AppImage-only gate; skip only Flatpak (Flathub owns updates)
- Report the real install mode (deb/rpm/appimage) in X-Install-Mode so the
update server can serve the matching artifact
- Only hand the artifact to tauri-plugin-updater when its format matches the
install; otherwise emit update_available with installable=false
- Frontend shows a "download the new version" toast with a link to
yaak.app/download when the update can't be installed in-app
Once update.yaak.app serves .deb/.rpm (signatures are already published),
these installs will auto-update with no further client change.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
`latest` could only ever come from a release tag, and tagging also fires the
app and CLI releases. A dispatch that names a version now publishes it and
latest, which is how the first image gets out before a release exists.
The web build bound Cmd/Ctrl +, - and 0 and then did nothing with them, so zoom appeared broken. Those keys are the browser's own page zoom, which scales the whole page and remembers it per site.
Adds an interfaceZoom capability: true on desktop, where the host zooms the webview, false in a browser. When false the app binds nothing and the hotkeys screen drops the three rows it can't configure.
clang-15 got past the C23 [[noreturn]] error but still fails compiling
sqlite-wasm-rs for wasm32: its stdint.h falls through to host glibc headers
(bits/libc-header-start.h not found). clang-18 handles wasm32 as freestanding
and compiles it (it is what ubuntu-24.04 uses). 22.04's repos stop at clang-15,
so install 18 from apt.llvm.org. Runners stay on 22.04 to keep the glibc floor.