mirror of
https://github.com/nyakang/nyaterm.git
synced 2026-10-05 00:01:00 +00:00
Twenty-seven of the fields on `NyaTermApp` were quick command panel, overlay and editor state addressed as `self.quick_command_*`. They now live in `QuickCommandFeatureState`, following the shape that `ConnectionFeatureState` already validated: `list`, `editor`, `dialogs`, `import` and `ai` sub-structs, built from a single `QuickCommandFeatureFocus` bundle instead of seven separate `cx.focus_handle()` fields at the app level. The persisted collections stay where they were. `quick_commands` and `quick_command_categories` are store-loaded data, not UI state, so they remain on `NyaTermApp` exactly as the connections list does. Two names get clearer in the move: the row overflow menu is `list.row_menu` rather than a bare `quick_command_menu`, and the editor draft is `editor.draft` rather than `quick_command_editor`, matching `ConnectionEditorFeatureState`. `app_state/mod.rs` no longer imports any of the eleven quick command UI model types, which is the point: the app struct stops knowing how the quick command panel represents its overlays. Field count drops from 585 to 570. The 222 rewritten accesses were anchored on `.quick_command_<field>` with a word boundary and applied longest-name-first, so helpers such as `quick_command_category_label` and fields such as `quick_command_editor_focus` were not caught by shorter prefixes.