3d328d8fa0
chore(owlry): bump version to 1.0.9
2026-04-09 18:30:59 +02:00
e11fac3619
chore: replace meval with expr-solver-lib, drop reqwest from runtimes, fix AUR deps
...
- owlry-core: swap meval → expr-solver-lib for calculator and Lua math API;
add ln() alias for meval compatibility
- owlry-lua: remove reqwest and meval (network features belong in plugins);
add vendored feature flag so distro builds can link against system lua54
- owlry-rune: remove reqwest (same reason)
- aur/owlry-rune: fix depends (gcc-libs only; owlry-core → optdepends)
- aur/owlry-lua: fix depends (gcc-libs + lua54; owlry-core → optdepends)
- aur/owlry: add chmod -R a+rX for example plugins
- justfile: log aur-local-test output to build-logs/
- .gitignore: exclude build-logs/ and test-build-output files
- README: minor improvements (SIGHUP reload hint, plugin_config example)
2026-04-09 16:51:12 +02:00
7275fcab35
fix: implement all 24 FIX_PLAN issues across 6 phases
...
Phase 1 — Critical Safety:
- #11 : bounded IPC reads via read_bounded_line (server + client)
- #13 : sound Send+Sync via Arc<Mutex<RuntimeHandle>>; remove unsafe impl Sync
- #10 : ItemSource enum (Core/NativePlugin/ScriptPlugin) on LaunchItem;
script plugin allowlist guard in launch_item()
Phase 2 — Config System Overhaul:
- #6 : remove dead enabled_plugins field
- #1 : replace #[serde(flatten)] with explicit Config::plugin_config
- #4 : Server.config Arc<RwLock<Config>>; ConfigProvider shares same Arc
- #2/#3: atomic config save (temp+rename); TOCTOU fixed — write lock held
across mutation and save() in config_editor
- #23 : fs2 lock_exclusive() on .lock sidecar file in Config::save()
- #16 : SIGHUP handler reloads config; ExecReload in systemd service
Phase 3 — Plugin Architecture:
- #7 : HostAPI v4 with get_config_string/int/bool; PLUGIN_CONFIG OnceLock
in native_loader, set_shared_config() called from Server::bind()
- #5 : PluginEntry + Request::PluginList + Response::PluginList; plugin_registry
in ProviderManager tracks active and suppressed native plugins;
cmd_list_installed shows both script and native plugins
- #9 : suppressed native plugin log level info! → warn!
- #8 : ProviderType doc glossary; plugins/mod.rs terminology table
Phase 4 — Data Integrity:
- #12 : all into_inner() in server.rs + providers/mod.rs → explicit Response::Error;
watcher exits on poisoned lock
- #14 : FrecencyStore::prune() (180-day age + 5000-entry cap) called on load
- #17 : empty command guard in launch_item(); warn in lua_provider
- #24 : 5-min periodic frecency save thread; SIGTERM/SIGINT saves frecency
before exit (replaces ctrlc handler)
Phase 5 — UI & UX:
- #19 : provider_meta.rs ProviderMeta + meta_for(); three match blocks collapsed
- #18 : desktop file dedup via seen_basenames HashSet in ApplicationProvider
- #20 : search_filtered gains tag_filter param; non-frecency path now filters
- #15 : widget refresh 5s→10s; skip when user is typing
Phase 6 — Hardening:
- #22 : catch_unwind removed from reload_runtimes(); direct drop()
- #21 : AtomicUsize + RAII ConnectionGuard; MAX_CONNECTIONS = 16
Deps: add fs2 = "0.4"; remove ctrlc and toml_edit from owlry-core
2026-04-08 16:43:52 +02:00
9163b1ea6c
chore(owlry-rune): bump version to 1.1.4
2026-04-06 02:38:47 +02:00
de74cac67d
chore(owlry-lua): bump version to 1.1.3
2026-04-06 02:22:08 +02:00
2f396306fd
chore(owlry-core): bump version to 1.3.4
2026-04-06 02:22:07 +02:00
7863de9971
chore(owlry): bump version to 1.0.7
2026-04-06 01:57:42 +02:00
dacc194d02
chore(owlry-core): bump version to 1.3.3
2026-04-06 01:57:39 +02:00
e3c4988e01
chore(owlry-rune): bump version to 1.1.3
2026-04-05 18:18:05 +02:00
95a698225c
chore(owlry-rune): bump version to 1.1.2
2026-04-05 18:05:54 +02:00
827bf383ea
chore(owlry-lua): bump version to 1.1.2
2026-04-05 18:05:25 +02:00
32b4b144f4
chore(owlry-core): bump version to 1.3.2
2026-04-05 17:59:19 +02:00
5615002062
fix: switch reqwest TLS backend from rustls to native-tls
...
reqwest 0.13 defaults to rustls -> aws-lc-rs which requires cmake/nasm
in minimal build environments (AUR chroot). Switch all direct reqwest
users to native-tls (system OpenSSL) to fix clean chroot build failures
reported by users.
Affected crates: owlry-core, owlry-lua, owlry-rune
PKGBUILD: add openssl to depends for all three runtime packages
Also add scripts/aur-local-test for clean chroot testing workflow
2026-04-05 17:58:36 +02:00
c32b6c5456
chore(owlry-rune): bump version to 1.1.1
2026-03-28 13:43:06 +01:00
2a5f184230
chore(owlry-lua): bump version to 1.1.1
2026-03-28 13:43:04 +01:00
1adec7bf47
chore(owlry-core): bump version to 1.3.1
2026-03-28 13:30:23 +01:00
80312a28f7
chore(owlry-core): bump version to 1.3.0
2026-03-28 13:17:11 +01:00
f189f4b1ce
chore(owlry): bump version to 1.0.6
2026-03-28 12:40:20 +01:00
422ea6d816
chore(owlry-core): bump version to 1.2.1
2026-03-28 12:40:18 +01:00
c8d8298274
chore(owlry-core): bump version to 1.2.0
2026-03-28 12:26:15 +01:00
c3c35611fd
chore(owlry-core): bump version to 1.1.3
2026-03-28 11:35:23 +01:00
5ecd0a6412
chore(owlry): bump version to 1.0.5
2026-03-28 11:35:22 +01:00
b87447156e
chore(owlry-core): bump version to 1.1.2
2026-03-28 11:18:27 +01:00
12d554959a
chore(owlry): bump version to 1.0.4
2026-03-28 11:18:26 +01:00
94556f1fe0
chore(owlry): bump version to 1.0.3
2026-03-28 10:48:55 +01:00
10a685c62f
chore(owlry): bump version to 1.0.2
2026-03-28 09:16:40 +01:00
34db33c75f
chore(owlry-core): bump version to 1.1.1
2026-03-28 09:16:38 +01:00
8f7501038d
perf(ui): move search IPC off the GTK main thread
...
Search queries in daemon mode now run on a background thread via
DaemonHandle::query_async(). Results are posted back to the main
thread via glib::spawn_future_local + futures_channel::oneshot.
The GTK event loop is never blocked by IPC, eliminating perceived
input lag.
Local mode (dmenu) continues to use synchronous search since it
has no IPC overhead.
2026-03-28 09:12:20 +01:00
5c0e63f94c
chore(owlry-rune): bump version to 1.1.0
2026-03-26 18:51:20 +01:00
5441011d6b
chore(owlry-lua): bump version to 1.1.0
2026-03-26 18:51:20 +01:00
317572634f
chore(owlry): bump version to 1.0.1
2026-03-26 18:51:12 +01:00
449dc010db
chore(owlry-core): bump version to 1.1.0
2026-03-26 18:51:04 +01:00
7273cd3ba7
chore(owlry-plugin-api): bump version to 1.0.1
2026-03-26 18:50:58 +01:00
f5d83f1372
chore: format, fix clippy warnings, bump all crates to 1.0.0
2026-03-26 13:37:55 +01:00
a0b65e69a4
refactor: remove plugin crates from core repo
...
Plugins have been moved to the owlry-plugins repo. This removes:
- All 13 owlry-plugin-* crate directories
- Plugin documentation (PLUGINS.md, PLUGIN_DEVELOPMENT.md)
- Plugin-specific justfile targets (build, bump, AUR)
Retained in core: owlry (UI), owlry-core (daemon),
owlry-plugin-api (ABI interface), owlry-lua, owlry-rune (runtimes).
2026-03-26 13:21:59 +01:00
5be21aadc6
refactor(owlry): wire UI to use IPC client instead of direct provider calls
...
The UI now uses a SearchBackend abstraction that wraps either:
- CoreClient (daemon mode): connects to owlry-core via IPC for search,
frecency tracking, submenu queries, and plugin actions
- Local ProviderManager (dmenu mode): unchanged direct provider access
Key changes:
- New backend.rs with SearchBackend enum abstracting IPC vs local
- app.rs creates CoreClient in normal mode, falls back to local if
daemon unavailable
- main_window.rs uses SearchBackend instead of ProviderManager+FrecencyStore
- Command execution stays in the UI (daemon only tracks frecency)
- dmenu mode path is completely unchanged (no daemon involvement)
- Added terminal field to IPC ResultItem for proper terminal launch
- Added PluginAction IPC request for plugin command execution
2026-03-26 12:52:00 +01:00
182a500596
refactor: wire owlry to use owlry-core as library dependency
...
- Add owlry-core dependency to owlry Cargo.toml
- Remove dependencies from owlry that moved to owlry-core:
fuzzy-matcher, freedesktop-desktop-entry, libloading, notify-rust,
thiserror, mlua, meval, reqwest
- Forward feature flags (dev-logging, lua) to owlry-core
- Update all imports in owlry source files to use owlry_core::
for moved modules (config, data, filter, providers, plugins,
notify, paths)
- Delete original source files from owlry that were moved
- Create minimal providers/mod.rs that only re-exports DmenuProvider
- Move plugins/commands.rs to plugin_commands.rs (stays in owlry
since it depends on CLI types from clap)
- Restructure app.rs to build core providers externally and pass
them to ProviderManager::new() instead of using the old
with_native_plugins() constructor
2026-03-26 12:07:03 +01:00
9db3be6fdc
chore: update all dependencies to latest stable
...
Major version bumps:
- reqwest: 0.12 -> 0.13 (rustls-tls feature renamed to rustls)
- mlua: 0.10 -> 0.11
- freedesktop-desktop-entry: 0.7 -> 0.8
- rusqlite: 0.32 -> 0.39
Cargo.lock refreshed with latest semver-compatible versions across
all transitive dependencies.
Note: gtk4 0.11 / glib-build-tools 0.22 skipped (requires Rust 1.92,
current toolchain is 1.91).
2026-03-26 11:46:02 +01:00
a55567b422
chore(owlry-rune): bump version to 0.4.10
2026-01-02 16:59:22 +01:00
707caefadf
chore(owlry-lua): bump version to 0.4.10
2026-01-02 16:59:22 +01:00
78895d34b5
chore(plugins): bump all plugins to 0.4.10
2026-01-02 16:59:14 +01:00
e6f217f19c
chore: bump version to 0.4.10
2026-01-02 16:59:06 +01:00
1aa92ee1e5
chore(owlry-rune): bump version to 0.4.9
2026-01-02 16:18:19 +01:00
9532b3cfde
chore(owlry-lua): bump version to 0.4.9
2026-01-02 16:18:18 +01:00
551e5d74ae
chore(plugins): bump all plugins to 0.4.9
2026-01-02 16:18:18 +01:00
60eaffb2ab
chore: bump version to 0.4.9
2026-01-02 16:18:08 +01:00
3ef9398655
chore: bump all crates to 0.4.8
2026-01-01 23:30:45 +01:00
46bb4bfb38
chore: bump version to 0.4.8
2026-01-01 23:28:09 +01:00
bf8a31af78
chore: bump all crates to 0.4.7
2026-01-01 22:29:00 +01:00
35a0f580c3
chore(owlry-rune): bump version to 0.4.6
2025-12-30 20:23:58 +01:00