mirror of
https://github.com/LorenEteval/Furious.git
synced 2026-09-28 18:08:11 +03:00
1.6 KiB
1.6 KiB
Controller guidance
State authorities
- Controllers are process-lifetime authorities for shared application state and transitions. They orchestrate repositories/services and publish structured signals; they do not own transient widgets or duplicate service resources.
ConnectionControlleris the sole connection state machine. Preserve atomic state/signal ordering, interaction gating, the exact activeServerProfile, runtime snapshots, persisted reconnect preference, and cleanup after validation, start, system-proxy, or unexpected-core-exit failure. Worker/core callbacks queue work back to its Qt thread.RoutingControllerowns displayed/persisted selection and capability-provided options. Distinguish the selected repository profile from the profile already owned by a live connection; changing routing may require a controlled reconnect rather than mutating the running document.SettingsControllervalidates preferences and applies host/UI effects. When a host effect such as startup registration fails, do not persist the requested state as successful. Keep UI pages declarative and do not duplicate this policy.- Protocol/core-specific behavior goes through plugin capabilities. Long work belongs in an owned service/worker, and global compatibility dependencies may be absent during partial startup, teardown, or isolated tests.
Verification
- Test exact transitions and signal counts for success, invalid input, runtime/system-proxy failure, cancellation, unexpected exit, routing refresh/reconnect, startup restoration, failed settings effects, partial dependencies, and repeatable shutdown.