The new token_store module (#78) depends on `sync-secret-service` via
`dbus-secret-service`, which in turn links to libdbus-1 at build time
through the `dbus` crate. Add `libdbus-1-dev` to:
- `check.yml` rust job (alongside the existing webkit/appindicator
system deps), so every PR run compiles the keyring backend.
- `release.yml` Linux deps step, so tagged builds link correctly.
Runtime requires `libdbus-1-3`, which is present on every desktop
Linux distro by default, so `.deb` / `.rpm` depends stay unchanged.
Also add a non-blocking `cargo audit` step to check.yml to surface
advisories across the transitive dep graph (zbus, dbus-secret-service,
etc.) without failing unrelated PRs.
Drop `appimage` from `bundle.targets` in tauri.conf.json: the release
workflow explicitly builds `--bundles deb,rpm` so AppImage was never
shipped, and its presence in the config risks a silent fallback to
plaintext token storage for anyone running `tauri build` locally
without libsecret/libdbus bundled into the AppImage. No behaviour
change for CI; follow-up to re-enable AppImage properly would need a
linuxdeploy workflow that bundles the backend.
Refs #66
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Create CHANGELOG.fr.md with full French translation of all versions
- Add ChangelogPage (/changelog) accessible from Settings
- Replace hardcoded i18n release notes with file-based approach:
loads CHANGELOG.md or CHANGELOG.fr.md based on user language
- CI copies changelogs to public/ during release build
- Update CLAUDE.md with bilingual changelog deployment process (fixes#10)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The automatic GITHUB_TOKEN does not have package permissions in Forgejo.
Use a dedicated PACKAGE_TOKEN secret with the package scope instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The DELETE endpoint for Forgejo generic packages is /api/v1/packages/
while the upload (PUT) endpoint is /api/packages/. Using the wrong
endpoint caused silent failures, leaving stale latest.json in the
registry. Also fail the CI step explicitly on upload failure.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Forgejo generic package API uses /api/packages/ not /api/v1/packages/
for both upload and deletion.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Prevents "Release has no Tag" error when re-running a build for
a tag that already has a release.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The DELETE was using the upload URL instead of the API v1 package
endpoint, so old versions were never actually deleted, causing 409
on re-upload and leaving stale latest.json.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The ${{ steps.changelog.outputs.notes }} expression was being interpolated
directly into shell commands, causing parse errors when the changelog
contained special characters, markdown, or backticks.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix updater: strip v-prefix from version in latest.json, and delete
old package before re-uploading to avoid 409 conflicts.
Add frontend log capture (console intercept) with a log viewer card
in the settings page (filterable, copyable, clearable).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
linuxdeploy cannot run inside Docker containers even with
APPIMAGE_EXTRACT_AND_RUN. Use --bundles deb,rpm instead.
Update latest.json to use .deb for linux-x86_64 platform.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
linuxdeploy needs FUSE which is unavailable in containers.
This env var makes it extract instead of mounting.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Docker container steps don't share shell state. Set PATH at job level
to include /root/.cargo/bin and remove per-step source cargo/env.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Forgejo runner's default image uses glibc 2.39, which produces
binaries incompatible with Pop!_OS / Ubuntu 22.04 (glibc 2.35).
Build inside container: ubuntu:22.04 with Node.js and Rust installed.
Bump to v0.4.4.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Forgejo has no /releases/latest/download/ route (GitHub-specific)
- Upload latest.json to generic package registry for a stable endpoint
- Fix Linux signature collection: use .AppImage.sig (not .tar.gz.sig)
- Collect all platform signatures (.deb.sig, .rpm.sig, .AppImage.sig)
- Bump to v0.4.3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tauri CLI filters --bundles values by host OS. The nsis target is already
configured in tauri.conf.json and auto-selected for Windows targets.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add Windows cross-compile (cargo-xwin) to Forgejo CI workflow
- Add libsqlite3-sys bundled for cross-compile compatibility
- Switch updater endpoint from GitHub to self-hosted Forgejo
- Collect Windows NSIS assets and include windows-x86_64 in latest.json
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tauri requires TAURI_SIGNING_PRIVATE_KEY_PASSWORD to be defined,
even when the key has no password.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace dtolnay/rust-toolchain, actions/setup-node, and swatinem/rust-cache
with shell commands since they are not mirrored on code.forgejo.org.
Use https://github.com/ prefix for checkout action.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add .forgejo/workflows/release.yml for Forgejo Actions
- Update signing pubkey for new key pair
- Sync Cargo.toml version to 0.4.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>