diff --git a/conductor/tracks.md b/conductor/tracks.md index 07ad7c20d..83990a85b 100644 --- a/conductor/tracks.md +++ b/conductor/tracks.md @@ -2,3 +2,7 @@ This file tracks all major tracks for the project. Each track has its own detailed plan in its respective folder. +--- + +- [ ] **Track: migrate the fully featured debug panel to common source for use in other targets, wire it up in desktop** +*Link: [./tracks/migrate_debug_panel_20260319/](./tracks/migrate_debug_panel_20260319/)* \ No newline at end of file diff --git a/conductor/tracks/migrate_debug_panel_20260319/index.md b/conductor/tracks/migrate_debug_panel_20260319/index.md new file mode 100644 index 000000000..30a087a64 --- /dev/null +++ b/conductor/tracks/migrate_debug_panel_20260319/index.md @@ -0,0 +1,5 @@ +# Track migrate_debug_panel_20260319 Context + +- [Specification](./spec.md) +- [Implementation Plan](./plan.md) +- [Metadata](./metadata.json) \ No newline at end of file diff --git a/conductor/tracks/migrate_debug_panel_20260319/metadata.json b/conductor/tracks/migrate_debug_panel_20260319/metadata.json new file mode 100644 index 000000000..d2cf9bf08 --- /dev/null +++ b/conductor/tracks/migrate_debug_panel_20260319/metadata.json @@ -0,0 +1,8 @@ +{ + "track_id": "migrate_debug_panel_20260319", + "type": "feature", + "status": "new", + "created_at": "2026-03-19T00:00:00Z", + "updated_at": "2026-03-19T00:00:00Z", + "description": "migrate the fully featured debug panel to common source for use in other targets, wire it up in desktop" +} \ No newline at end of file diff --git a/conductor/tracks/migrate_debug_panel_20260319/plan.md b/conductor/tracks/migrate_debug_panel_20260319/plan.md new file mode 100644 index 000000000..f280a211b --- /dev/null +++ b/conductor/tracks/migrate_debug_panel_20260319/plan.md @@ -0,0 +1,20 @@ +# Implementation Plan: Debug Panel KMP Migration + +## Phase 1: Analysis and Relocation +- [ ] Task: Locate all source files for the Android Debug Panel (UI, ViewModels, States). +- [ ] Task: Move these files from the Android-specific source sets (e.g., `feature/settings/src/androidMain`) into `feature/settings/src/commonMain`. +- [ ] Task: Conductor - User Manual Verification 'Phase 1: Analysis and Relocation' (Protocol in workflow.md) + +## Phase 2: Adaptation to KMP +- [ ] Task: Resolve compilation errors by removing Android-specific imports (`android.*`, `java.*`). +- [ ] Task: Migrate Android Jetpack Compose imports (`androidx.compose`) to Compose Multiplatform equivalents (`org.jetbrains.compose.*` or ensuring the standard Multiplatform aliases are used). +- [ ] Task: Ensure the Debug Panel ViewModel uses the multiplatform `androidx.lifecycle.ViewModel`. +- [ ] Task: Abstract any necessary platform-specific logging or hardware interactions using `expect`/`actual` or KMP interfaces. +- [ ] Task: Write or migrate corresponding unit tests to `commonTest`. +- [ ] Task: Conductor - User Manual Verification 'Phase 2: Adaptation to KMP' (Protocol in workflow.md) + +## Phase 3: Desktop Integration +- [ ] Task: Wire the Debug Panel into the Desktop target's settings menu (`DesktopSettingsNavigation.kt`). +- [ ] Task: Add DI bindings for the Desktop module if the Debug Panel requires specific dependencies. +- [ ] Task: Verify the Debug Panel screen can be opened and navigated to from the Desktop app. +- [ ] Task: Conductor - User Manual Verification 'Phase 3: Desktop Integration' (Protocol in workflow.md) \ No newline at end of file diff --git a/conductor/tracks/migrate_debug_panel_20260319/spec.md b/conductor/tracks/migrate_debug_panel_20260319/spec.md new file mode 100644 index 000000000..526d336d4 --- /dev/null +++ b/conductor/tracks/migrate_debug_panel_20260319/spec.md @@ -0,0 +1,24 @@ +# Specification: Debug Panel KMP Migration + +## Overview +Migrate the existing Android-specific Debug Panel to `commonMain` to enable its use across all Kotlin Multiplatform targets, specifically wiring it up for the Desktop target. + +## Functional Requirements +- The complete Android debug panel implementation will be moved and adapted to `commonMain`. +- All capabilities from the existing Android debug panel should be preserved and made functional on the Desktop target if possible. +- The Debug Panel will be accessible within the Desktop Settings menu, mirroring the Android application's navigation structure. +- Any platform-specific system logging (e.g., Logcat) that cannot be migrated will be appropriately abstracted or gracefully degraded. + +## Non-Functional Requirements +- **Architecture:** Follow the project's MVI/UDF architecture. +- **UI:** Leverage Compose Multiplatform for the shared UI, removing any Android-specific Jetpack Compose dependencies from the core shared UI logic. +- **Testing:** Add `commonTest` coverage for the migrated ViewModels and presentation logic. + +## Acceptance Criteria +- [ ] The Debug Panel source code resides in a `commonMain` module (e.g., `feature/settings/src/commonMain`). +- [ ] The Debug Panel compiles and runs successfully on both the Android and Desktop targets. +- [ ] The Desktop application can navigate to the Debug Panel from the Settings menu. +- [ ] Essential debug features (transport logs, packet inspection, etc.) function on the Desktop. + +## Out of Scope +- Creating new debug capabilities that do not already exist in the Android implementation. \ No newline at end of file