Skip to content

fix(linux): enable keyring persistence for API keys#419

Merged
koala73 merged 1 commit intomainfrom
fix/linux-keyring-persistence
Feb 26, 2026
Merged

fix(linux): enable keyring persistence for API keys#419
koala73 merged 1 commit intomainfrom
fix/linux-keyring-persistence

Conversation

@koala73
Copy link
Owner

@koala73 koala73 commented Feb 26, 2026

Summary

  • Linux users had to re-enter API keys on every app launch
  • Root cause: keyring v3 with only apple-native + windows-native features has no Linux backend — silently falls back to in-memory mock store
  • Added linux-native-sync-persistent feature (kernel keyutils + D-Bus Secret Service combo) and crypto-rust for encryption
  • Secrets now persist to GNOME Keyring or KDE Wallet on desktop Linux

What changed

  • src-tauri/Cargo.toml: added linux-native-sync-persistent and crypto-rust features to keyring dependency

Test plan

  • Build Linux AppImage with this change
  • Install on Ubuntu with GNOME desktop
  • Save API keys in Settings
  • Restart the app — keys should persist

Linux had no keyring backend feature enabled — keyring v3 fell back to
in-memory mock store. Secrets appeared to save but were lost on restart.

Added `linux-native-sync-persistent` (kernel keyutils + D-Bus Secret
Service combo) and `crypto-rust` for Secret Service encryption. This
uses GNOME Keyring or KDE Wallet on desktop Linux for persistent storage.
@vercel
Copy link

vercel bot commented Feb 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
worldmonitor Building Building Preview, Comment Feb 26, 2026 2:43pm
worldmonitor-finance Building Building Preview, Comment Feb 26, 2026 2:43pm
worldmonitor-happy Building Building Preview, Comment Feb 26, 2026 2:43pm
worldmonitor-startup Building Building Preview, Comment Feb 26, 2026 2:43pm

Request Review

@chatgpt-codex-connector
Copy link

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@koala73 koala73 merged commit d531443 into main Feb 26, 2026
6 checks passed
koala73 added a commit that referenced this pull request Feb 26, 2026
## Changelog

- fix(linux): enable keyring persistence via Secret Service + keyutils (#419)
- fix(ci): use weston+XWayland for Linux smoke test (#417)
- ci: add standalone Test Linux App workflow (#414)
- ci: skip Typecheck and Lint on fork PRs (#415)
- perf: optimize Wingbits API usage and reduce unnecessary polling (#416)
@koala73 koala73 mentioned this pull request Feb 26, 2026
koala73 added a commit that referenced this pull request Feb 26, 2026
* chore: bump v2.5.12

## Changelog

- fix(linux): enable keyring persistence via Secret Service + keyutils (#419)
- fix(ci): use weston+XWayland for Linux smoke test (#417)
- ci: add standalone Test Linux App workflow (#414)
- ci: skip Typecheck and Lint on fork PRs (#415)
- perf: optimize Wingbits API usage and reduce unnecessary polling (#416)

* fix(linux): append host GStreamer plugins to AppImage search path

The linuxdeploy GStreamer hook force-overrides GST_PLUGIN_PATH_1_0 and
GST_PLUGIN_SYSTEM_PATH_1_0 to only contain bundled plugins from the CI
build system (Ubuntu 24.04, GStreamer 1.24).  On hosts with newer
GStreamer (e.g. Arch 1.28), codec plugins like gst-libav and
fakevideosink from gst-plugins-bad are invisible — WebKit can't play
video.

Append common host GStreamer plugin directories as fallback so the
system's codec plugins are discoverable while bundled plugins retain
priority.

Also fixes:
- tauri.conf.json devUrl port mismatch (5173 → 3000) breaking desktop:dev
- live-channels-window YouTube validation allowing add on non-OK responses
koala73 added a commit that referenced this pull request Feb 26, 2026
Changes since v2.5.13:
- feat: add ARM64 Linux build target and download detection (#427)
- fix(live-channels): tolerate YouTube API failures when adding custom channels (#425)
- fix(linux): append host GStreamer plugins to AppImage search path (#424)
- fix(linux): enable keyring persistence via Secret Service + keyutils (#419)
@koala73 koala73 mentioned this pull request Feb 26, 2026
koala73 added a commit that referenced this pull request Feb 26, 2026
Changes since v2.5.13:
- feat: add ARM64 Linux build target and download detection (#427)
- fix(live-channels): tolerate YouTube API failures when adding custom channels (#425)
- fix(linux): append host GStreamer plugins to AppImage search path (#424)
- fix(linux): enable keyring persistence via Secret Service + keyutils (#419)
@koala73 koala73 deleted the fix/linux-keyring-persistence branch February 26, 2026 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant