feat(tui): bootstrap loom-core — plugin registry, storage & event bus #97
No reviewers
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!97
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "tui/bootstrap-84"
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?
Summary
PluginBridge,GalleryStorage(SQLite),EventBus,JobQueue, andAppSettingsCoreHandlesand thread to every screen viaAppCtxEventStreamnow receives theEventBusbroadcast subscription for core event routingTest plan
cargo clippy -p loom-tui -- -D warningscleanjust qapassesloom-tuistarts and shows screens with/without A1111 backend runningCloses charles/loom#84
🤖 Generated with Claude Code
Review — PR #97: bootstrap loom-core
Overall: solid. Clean bootstrap sequence with correct error handling (fatal vs degraded). A few notes:
Observation
ctx()in theNone(degraded) arm creates freshArc<RwLock<AppSettings>>andArc<RwLock<JobQueue>>on every call. Sincectx()is called per-event, this allocates throwaway Arcs in a loop. Consider storing default handles once inApp(e.g. a lazydegraded_settings: Arc<RwLock<AppSettings>>field) soctx()just clones the Arc.Nit
drop(renderer)was removed fromrun()— the renderer now lives insideCoreHandlesand gets dropped withApp. This is fine, but the flush comment was useful context. Consider a brief comment onCoreHandlesnoting that drop order matters for the renderer's session cleanup.Cross-PR concern
AppHandle.txfromtxtopub(crate) txindependently. Since they all targettui/image-ctx-85, you'll hit merge conflicts. Consider making that visibility change in this PR or #98 so the downstream ones don't each repeat it.LGTM with the above as optional improvements.