feat(izui): implement IZUI state machine for transient vs active window behavior
Centralized state management for IZUI (Invocable Zoom User Interface):
- IzuiStateCoordinator manages session-based transient/active tracking
- Fixes cmd bar stuck on "group" mode when invoked transiently
- Fixes ESC from overlay showing groups instead of returning to previous app
- Transient state propagates to child windows (cmd → overlay)
- Uses isFocused() for accurate system focus detection
- KeepLive windows re-evaluate transient state on each show
- Added api.izui.* renderer API for querying state
- 54 unit tests with dependency injection for testability
Files:
- backend/electron/izui-state.ts: State coordinator singleton
- backend/electron/izui-state.test.ts: Comprehensive unit tests
- backend/electron/ipc.ts: IZUI IPC handlers, transient propagation
- backend/electron/main.ts: Window lifecycle hooks
- backend/electron/windows.ts: ESC handler integration
- preload.js: api.izui.* namespace
- extensions/cmd/panel.js: Mode display based on transient state
- docs/izui.md: Full documentation