tui: settings change propagation via EventBus #123
Labels
No labels
area:agents
area:ai
area:config
area:dashboard
area:design
area:design-review
area:devtools
area:entities
area:gallery
area:generate
area:image
area:infra
area:meta
area:model-browser
area:navigation
area:presets
area:security
area:sessions
area:settings
area:sharing
area:test
area:ux
area:webhook
area:workdir
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/loom#123
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
User story
As a user, I want settings changes (backend URL, plugin selection, generation defaults) to take effect immediately across all screens, so that I don't have to restart the app or navigate back and forth.
Problem
The Settings screen saves to disk via
loom_core::config::save_settings()and updates the sharedArc<RwLock<AppSettings>>, but no event is published. Other screens readctx.settingsbut have no trigger to re-read or react to changes. Specifically:generation_plugin/generation_backenddoesn't reconfigure the PluginBridgebrowsing_pluginsdoesn't refresh the Model Browser's source listsharing_pluginsdoesn't update the Sharing overlay's platform availabilityprompt_plugindoesn't affect AI job dispatchAcceptance criteria
LoomEvent::SettingsChangedvariant to the event busSettingsChangedafter each successful saveSettingsChanged:generation_plugin/generation_backendchangedbridge.set_browsing_plugins()ifbrowsing_pluginschangedbridge.set_sharing_plugins()ifsharing_pluginschangedbridge.set_prompt_plugin()ifprompt_pluginchangedSettingsChangedSettingsChangedOut of scope
tui.toml(keybinds, navigation preset) — requires app restartReferences
crates/loom-tui/src/screens/settings.rs—apply_edit(),toggle_bool()crates/loom-core/src/event_bus.rs—LoomEventenumcrates/loom-tui/src/main.rs—bootstrap_core()plugin configuration sequence