Files
manual_slop/conductor/tracks/workspace_profiles_20260310/spec.md

2.3 KiB

Specification: Advanced Workspace Docking & Layout Profiles

Overview

Expand the existing GUI window management to support named "Workspace Profiles." This will allow users to save, manage, and instantly switch between complex multi-window, multi-viewport docking arrangements.

Functional Requirements

  • Comprehensive State Capture:
    • A Workspace Profile must capture:
      • ImGui layout data (positions, sizes, docking nodes) usually stored in imgui.ini.
      • Window visibility toggles (the show_windows dict and popout panel booleans).
      • Relevant internal panel state (e.g., active tabs, split sizes if applicable).
  • Storage & Scope:
    • Profiles follow a Global + Project inheritance model (similar to prompt presets). Global profiles are stored in config.toml, while project-specific profiles are stored in manual_slop.toml and can override global ones.
    • The system starts blank (no pre-loaded templates).
  • Trigger Mechanisms:
    • Manual Menu: A dedicated "Layout Profiles" sub-menu in the main menu bar (under "Windows" or "View") to save, load, and manage profiles.
    • Contextual Auto-Switch (Experimental): An opt-in setting that automatically switches to a designated profile based on the active MMA Tier or task context (e.g., switching to a "QA" layout when a Tier 4 worker spawns).

Non-Functional Requirements

  • ImGui INI Management: Safely loading and saving raw ImGui INI strings using imgui.load_ini_settings_from_memory and imgui.save_ini_settings_to_memory without corrupting the active render frame.
  • Graceful Fallback: If a profile references a window that no longer exists, the layout engine should recover gracefully without crashing.

Acceptance Criteria

  • A user can arrange windows, dock them, and save the current state as a named Workspace Profile.
  • Selecting a saved profile instantly re-arranges windows, updates visibility toggles, and restores internal tab states.
  • Profiles can be scoped globally or to a specific project.
  • An experimental toggle allows binding profiles to specific MMA Tiers for automatic switching.

Out of Scope

  • Creating default templates (users will build their own).
  • Synchronizing layouts across different monitor resolutions (ImGui docking handles this best-effort, but pixel-perfect restoration on different hardware is out of scope).