feat: production hardening (panic isolation, file logging, apps cache)

- Kernel::search wraps each plugin in catch_unwind; panics are logged and return []
- init_logging() adds daily rolling file at ~/.local/share/k-launcher/logs/
- AppsPlugin caches entries to ~/.cache/k-launcher/apps.bin via bincode; stale-while-revalidate on subsequent launches
- 57 tests pass
This commit is contained in:
2026-03-18 12:59:24 +01:00
parent 58d0739cea
commit bd356f27d1
8 changed files with 357 additions and 49 deletions

View File

@@ -17,6 +17,7 @@ resolver = "2"
[workspace.dependencies]
async-trait = "0.1"
bincode = { version = "2", features = ["serde"] }
dirs = "6.0"
futures = "0.3"
iced = { version = "0.14", features = ["image", "svg", "tokio", "tiny-skia"] }