Skip to content

Phase 5 — UI, Settings, Profiles, and Model Manager #5

@Swiftburn

Description

@Swiftburn

Phase 5 — UI, Settings, Profiles, and Model Manager

Purpose

Provide a settings UI (PyQt6) to manage regions, model settings, profiles, and to expose model loading operations to users. Implement model manager with VRAM monitoring.

Tasks

  • 5.1 PyQt6 settings window scaffold

    • File: src/ui/settings.py
    • Work: Create a settings window that loads/saves JSON config and exposes toggles: mode (terminal/overlay), VRAM ceiling, quantized models toggle.
    • DoD: settings persist to disk and loaded at app start.
  • 5.2 Region selector UI

    • File: src/ui/region_selector.py
    • Work: UI component to create/edit/save region rectangles with preview capture. Integrate with src/capture/regions.py profiles.
    • DoD: user can create a region and save as profile from GUI.
  • 5.3 Command editor UI

    • File: src/ui/command_editor.py
    • Work: UI to list and edit voice command aliases and mapping to actions.
    • DoD: changes saved and visible to command parser.
  • 5.4 Model manager registry

    • File: src/models/model_manager.py
    • Work: Registry that loads/unloads models (Vosk, CRAFT, Manga OCR, Sugoi, Whisper) with named handles and reference counting.
    • Tests: tests/test_model_manager.py mocking model loads/unloads.
    • DoD: models managed by a single interface.
  • 5.5 VRAM monitor and allocation safeguard

    • File: src/models/vram_monitor.py
    • Work: Monitor VRAM usage (use pynvml optional). Expose can_load(size_mb) -> bool and enforce VRAM ceiling from settings.
    • Tests: tests/test_vram_monitor.py with simulated values.
    • DoD: model manager refuses loads when VRAM budget exceeded.

Notes

  • Keep the UI minimal and functional; advanced polish is Phase 8.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions