How quantdale/tabdock works
TabDock is a Windows window-tab-grouping application. Users create or select a workspace, choose running windows in a capture picker, and TabDock shepherds them into a container where tabs can be switched, reordered, split, or released. Group state and tab metadata persist across launches; captured HWNDs themselves are not automatically restored. The README also documents command-line and in-process support diagnostics, plus supervised pending recovery. The graph follows documented workflows and indexed source references; unsampled implementation details are represented only where documented.
Main entry points: GroupManager.cs Group manager · ContainerWindow.xaml.cs Workspace container · GroupViewModel.cs Tab presentation · DiagnosticCommandLine.cs Diagnostic commands
Components 26
Workspace experience
- Launcher window
Views/MainWindow.xaml.cs - Workspace launcher
ViewModels/MainViewModel.cs - Capture picker
ViewModels/CapturePickerViewModel.cs - Workspace container
Views/ContainerWindow.xaml.cs - Tab presentation
ViewModels/GroupViewModel.cs - Tab item
ViewModels/TabViewModel.cs - Split presentation
ViewModels/SplitCompositeViewModel.cs - Split controller
Services/SplitPresentationController.cs
Window capture
- Captured window
Models/CapturedWindow.cs - Window shepherd
Services/WindowShepherdService.cs
Session state
- Group manager
Services/GroupManager.cs - Workspace group
Models/Group.cs - State persistence
Services/PersistenceService.cs - Persisted state
Models/PersistedState.cs
Support and recovery
- Diagnostic commands
Services/DiagnosticCommandLine.cs - Environment snapshot
Services/DiagnosticEnvironmentService.cs - Support report
Services/DiagnosticReportService.cs - Pending recovery
Services/PendingRecoveryService.cs - Runtime telemetry
Services/RuntimeTelemetry.cs - Logging
Services/LoggingService.cs
Windows integration
- Win32 interop
NativeMethods.cs - Window event monitor
Services/WinEventMonitor.cs - Global hotkeys
Services/HotkeyService.cs
Other components
- User
- Running apps
- Support operator
Connections 32
- User → Launcher window: launches
README.md - Launcher window → Workspace launcher: uses
Views/MainWindow.xaml.cs - User → Capture picker: selects windows
README.md - Running apps → Capture picker: offers candidates
README.md - Workspace launcher → Group manager: manages groups
ViewModels/MainViewModel.cs - Capture picker → Group manager: requests grouping
ViewModels/CapturePickerViewModel.cs - Group manager → Workspace group: tracks groups
Services/GroupManager.cs - Group manager → Window shepherd: captures and releases
Services/GroupManager.cs - Window shepherd → Captured window: creates window state
Services/WindowShepherdService.cs - Window shepherd → Win32 interop: calls Win32
Services/WindowShepherdService.cs - Group manager → State persistence: saves state
Services/GroupManager.cs - State persistence → Workspace group: serializes groups
Services/PersistenceService.cs - State persistence → Persisted state: reads and writes
Services/PersistenceService.cs - Workspace container → Group manager: coordinates groups
Views/ContainerWindow.xaml.cs - Workspace container → Tab presentation: presents workspace
Views/ContainerWindow.xaml.cs - Tab presentation → Group manager: updates tabs
ViewModels/GroupViewModel.cs - Tab presentation → Tab item: projects tabs
ViewModels/GroupViewModel.cs - Tab presentation → Split presentation: projects split pair
ViewModels/GroupViewModel.cs - Workspace container → Split controller: controls split
Views/ContainerWindow.xaml.cs - Split controller → Captured window: operates on guests
Services/SplitPresentationController.cs - User → Workspace container: switches and splits
README.md - Group manager → Window event monitor: requests monitoring
- Group manager → Global hotkeys: supports navigation
- Support operator → Diagnostic commands: runs commands
README.md - Diagnostic commands → Environment snapshot: collects environment
Services/DiagnosticEnvironmentService.cs - Diagnostic commands → Support report: produces reports
- Support operator → Workspace container: requests live bundle
README.md - Diagnostic commands → Pending recovery: runs recovery
- Pending recovery → Win32 interop: checks window identity
Services/PendingRecoveryService.cs - Workspace container → Runtime telemetry: records events
Views/ContainerWindow.xaml.cs - Group manager → Logging: logs operations
Services/GroupManager.cs - Environment snapshot → Pending recovery: summarizes journal health
Services/DiagnosticEnvironmentService.cs