Commit Graph

26 Commits

Author SHA1 Message Date
ff9b2b5712 fix(review): bugs, arch violations, design smells
P1 bugs:
- unix_launcher: shell_split respects quoted args (was split_whitespace)
- plugin-host: 5s timeout on external plugin search
- ui: handle engine init panic, wire error state
- ui-egui: read window config instead of always using defaults
- plugin-url: use OpenPath action instead of SpawnProcess+xdg-open

Architecture:
- remove WindowConfig (mirror of WindowCfg); use WindowCfg directly
- remove on_select closure from SearchResult (domain leakage)
- remove LaunchAction::Custom; add Plugin::on_selected + SearchEngine::on_selected
- apps: record frecency via on_selected instead of embedded closure

Design smells:
- frecency: extract decay_factor helper, write outside mutex
- apps: remove cfg(test) cache_path hack; add new_for_test ctor
- apps: stable ResultId using name+exec to prevent collision
- files: stable ResultId using full path instead of index
- plugin-host: remove k-launcher-os-bridge dep (WindowConfig gone)
2026-03-18 13:45:48 +01:00
248094f442 feat(app): enhance engine initialization with EngineHandle and update run function signature 2026-03-18 13:05:14 +01:00
bd356f27d1 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
2026-03-18 12:59:24 +01:00
58d0739cea refactor: remove client module and associated show command logic
Some checks failed
CI / test (push) Failing after 5m7s
CI / clippy (push) Failing after 4m59s
CI / fmt (push) Successful in 28s
2026-03-15 23:49:31 +01:00
12f1f541ae fix(app): format code for clarity in update function
Some checks failed
CI / test (push) Failing after 5m5s
CI / clippy (push) Failing after 5m3s
CI / fmt (push) Successful in 28s
2026-03-15 23:31:50 +01:00
71b8e46ae6 feature/prod-ready (#1)
Some checks failed
CI / test (push) Has been cancelled
CI / clippy (push) Has been cancelled
CI / fmt (push) Has been cancelled
Reviewed-on: #1
2026-03-15 19:03:30 +00:00
2e2351e084 fix(calc): remove ambiguous log alias, use ln/log2/log10 explicitly 2026-03-15 19:34:54 +01:00
b567414930 fix(calc): fix log/ln naming, cache math context, strengthen sin(pi) test 2026-03-15 19:32:46 +01:00
aeea3756c1 feat(calc): add math functions (sqrt, sin, cos, etc.) and pi/e constants 2026-03-15 19:30:01 +01:00
207c20f77d refactor(calc): rename preprocess, extend underscore test assertions 2026-03-15 19:24:15 +01:00
be7c2b6b59 feat(calc): strip underscore digit separators 2026-03-15 19:21:43 +01:00
bf065ffdf0 feat: update dependencies for improved compatibility and performance 2026-03-15 19:14:50 +01:00
4283460c82 feat: add plugin-url for URL handling and open in browser functionality 2026-03-15 19:08:38 +01:00
d1479f41d2 feat: add support for external plugins and enhance plugin management 2026-03-15 18:54:55 +01:00
5bb5c8f531 feat: add required features for k-launcher-egui and update dependencies 2026-03-15 18:40:11 +01:00
3093bc9124 feat: enhance configuration management and UI styling, remove unused theme module 2026-03-15 18:31:22 +01:00
3098a4be7c feat: add k-launcher-config crate for configuration management and integrate with existing components 2026-03-15 18:20:15 +01:00
bc7c896519 feat: add k-launcher-ui-egui crate for enhanced UI
- Introduced a new crate `k-launcher-ui-egui` to provide a graphical user interface using eframe and egui.
- Updated the workspace configuration in `Cargo.toml` to include the new crate.
- Implemented the main application logic in `src/app.rs`, handling search functionality and user interactions.
- Created a library entry point in `src/lib.rs` to expose the `run` function for launching the UI.
- Modified the `k-launcher` crate to include a new binary target for the egui-based launcher.
- Added a new main file `src/main_egui.rs` to initialize and run the egui UI with the existing kernel and launcher components.
2026-03-15 18:10:46 +01:00
1a2de21bf6 feat: implement OS bridge and enhance app launcher functionality 2026-03-15 17:45:24 +01:00
93736ae19d feat: add FilesPlugin for file searching and integrate into KLauncher 2026-03-15 17:15:47 +01:00
dbce15bfd5 feat: implement frecency tracking for app usage and enhance search functionality 2026-03-15 17:05:05 +01:00
f5dd303b79 feat: add CmdPlugin for executing terminal commands and update workspace configuration 2026-03-15 16:53:30 +01:00
c059961854 refactor: update dependencies and improve keyboard event handling in KLauncherApp 2026-03-15 16:37:46 +01:00
6780444caa refactor: simplify theme usage and enhance AppsPlugin structure 2026-03-15 16:30:35 +01:00
1ac9dde347 feat: restructure k-launcher workspace and add core functionality
- Updated Cargo.toml to include a new k-launcher crate and reorganized workspace members.
- Introduced a README.md file detailing the project philosophy, architecture, and technical specifications.
- Implemented a new Kernel struct in k-launcher-kernel for managing plugins and search functionality.
- Created a Plugin trait for plugins to implement, allowing for asynchronous search operations.
- Developed k-launcher-ui with an Iced-based UI for user interaction, including search input and result display.
- Added AppsPlugin and CalcPlugin to handle application launching and basic calculations, respectively.
- Established a theme module for UI styling, focusing on an Aero aesthetic.
- Removed unnecessary main.rs files from plugin crates, streamlining the project structure.
2026-03-15 16:20:36 +01:00
4c3be17b77 Initialize k-launcher project structure with multiple crates and basic configurations 2026-03-15 15:12:28 +01:00