Releases: st0o0/puhu
Releases · st0o0/puhu
Release list
v0.1.0
0.1.0 (2026-06-14)
Features
- add app shell, IThemeService, and UI chrome components (65e28ca)
- add btop theming support and ESC exit on splash page (014b1de)
- add ISettingsStore interface to plugin SDK (77ac29f)
- add marketplace domain models with JSON serialization and status merging (bd09ade)
- add MarketplacePlugin with page, view model, and route registration (fd092ae)
- add PluginCache, PluginMetadataFetcher, and PluginDownloader (abeae3a)
- add PluginConfigStore for sources.json and installed.json with default seeding (8c36231)
- add PluginLoader with built-in + external plugin discovery (614e9ab)
- add PluginManager orchestrating install, update, uninstall, sync (1ee4989)
- add PluginSettingsInfo record (6bc8120)
- Add public API verification tests (290de2d)
- add RefreshService with interval snapping, speed up/down, and tick emission (29426f5)
- add Servus.Plugin.Sdk with plugin contracts, tick source, and models (e186835)
- add ServusPluginBuilder and PluginRegistry for plugin configuration (57fd96f)
- add SettingsPlugin with placeholder page and route registration (b280ba0)
- add setup chain, tab bar, plugin routing, and Program.cs entry point (aa557ee)
- add setup wizard and tab order (#5) (34c8512)
- add SubNavNode<TView> with inline tab rendering (b5df6b7)
- add TickRouter actor with demand-driven tick distribution (f59bb5d)
- add WithSettings to plugin builder API (31d884e)
- add WithSettings<TPage, TViewModel> extension method (86efa80)
- Allow custom navigation behavior for routes (84ef1fb)
- branding: Add owl mascot to figlet logo (7ba6198)
- btop design system (#4) (cd9d468)
- collect PluginSettings in PluginRegistry (a7a194a)
- expose Observable<Tick> on ITickSource for reactive tick consumption (e3d8605)
- implement ScopedSettingsStore with plugin-name prefix (579d66d)
- implement SettingsStore with JSON persistence (155faef)
- Introduce Akka actor for marketplace management (382bb78)
- Load plugins from subdirectories (45bdcef)
- marketplace: actor handles AddSource, RemoveSource, CycleUpdatePolicy and per-plugin ops (3f30e69)
- marketplace: extend state with ActiveOperations, Sources and new messages (61ead77)
- marketplace: implement Browse, Installed, Sources views with keybindings and key hints (5150390)
- marketplace: page skeleton with tab bar, view switching, and toast integration (2a9e791)
- marketplace: use theme colors instead of hardcoded palette (141df02)
- migrate Marketplace to SubNavNode, replace D1/D2/D3 with B/I/S (433428f)
- more testing and bug fixes (#6) (e7b8afe)
- pass plugin name to builder, kebab-case conversion (2fc5308)
- plugin: add ITabOrderService + TabDescriptor to SDK (7c7904a)
- plugin: btop-style SubNavNode rendering with live theme (af7a493)
- rebrand to Puhu naming and add release-please flow (b390869)
- refresh: global +/-/p keys via RegisterGlobalKeys overload (a7f13ac)
- refresh: IRefreshController SDK interface with persisted interval (7bd105a)
- register keyed ISettingsStore per plugin (dfdaceb)
- register SettingsStore singleton in ServicesSetup (cf075a1)
- settings: add Setup sub-view to re-run the wizard (f5980e9)
- settings: add SetupWizardState first-run flag (c861222)
- settings: add Tabs reorder sub-view to the settings page (0d41223)
- settings: add Tabs view state to SettingsViewModel (ecc98ef)
- settings: refresh-rate section with sub-navigation (4e772e2)
- settings: theme picker with live preview and persistence (f914cdc)
- shell: app-wide redraw on ticks and theme changes (009eba3)
- shell: btop-style AppShellNode with embedded key hints, drop legacy chrome nodes (e9cf023)
- shell: show refresh interval and pause state in top bar (6a54825)
- shell: tab scroll window logic for top bar overflow (c43e0a8)
- shell: TopBarNode with embedded logo, scrolling tabs, and clock (7d4f068)
- splash: add SplashPage with ASCII logo and progress bar (2540281)
- splash: add SplashViewModel with animated progress (35e7437)
- splash: wire splash page into startup, navigate via ViewModel (64e1337)
- tabs: add TabOrder.Apply ordering helper (fc9d344)
- tabs: add TabOrderService with persistence + change notification (add1873)
- tabs: add TabRegistry.Reorder preserving active tab (f318218)
- tabs: apply persisted tab order at startup and register ITabOrderService (429b864)
- testing: Refactor test context and helpers (ff55832)
- theme: add GraphGradient to ThemeDefinition with btop parser support ([65727bd](6...