Parent
Part of #379
Problem
Portable zip runs without install, but SQLite/themes/extensions/logs still use OS app-support paths. True USB-style portable needs an opt-in data root next to the binary.
Proposal
- Detect portable mode when:
- env
QUERYA_PORTABLE=1, or
- sidecar directory
QueryaData/ next to querya_desktop / querya_desktop.exe / $APPIMAGE
- Centralize path resolution (DB, themes, extensions, logs) behind one root helper; OS paths remain default for installable builds.
- Document that secrets still use OS keyring in v1 (libsecret / Credential Manager / Keychain) unless a later issue adds a portable secrets store.
Acceptance
References
lib/core/storage/local_db.dart
lib/core/theme/theme_paths.dart
lib/core/extensions/extension_paths.dart
lib/core/extensions/sandbox/sandbox_log_paths.dart
Parent
Part of #379
Problem
Portable zip runs without install, but SQLite/themes/extensions/logs still use OS app-support paths. True USB-style portable needs an opt-in data root next to the binary.
Proposal
QUERYA_PORTABLE=1, orQueryaData/next toquerya_desktop/querya_desktop.exe/$APPIMAGEAcceptance
local_db, theme paths, extension paths, sandbox logsReferences
lib/core/storage/local_db.dartlib/core/theme/theme_paths.dartlib/core/extensions/extension_paths.dartlib/core/extensions/sandbox/sandbox_log_paths.dart