diff --git a/.gitignore b/.gitignore index e724d15..b50fcb5 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,6 @@ publish/ # OS .DS_Store Thumbs.db + +# Local Claude session metadata +.claude/ diff --git a/CHANGELOG.md b/CHANGELOG.md index cb4b0e6..164acda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,55 +6,46 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] -### Added — Ground-up GUI redesign (started 2026-05-12) +### Added — v2 "Studio Terminal" GUI (2026-05-13) -After greenlighting a from-the-scratch redesign and an explicit WinUI 3 -replatform target, the May 2026 batch is followed by a major -restructuring of the host UI. Highlights: +The May 2026 ground-up redesign — explicit anti-reference to "the v1 +GUI screamed AI made it" — landed on the WPF host +(`src/TeamsISO.App/`). The shape brief lives at +`docs/shapes/2026-05-13-teamsiso-v2-studio-terminal.md`. An earlier WinUI +3 replatform was scoped on 2026-05-12 and abandoned in favour of doing +the redesign in WPF (activation blockers + redundant work given the +shared view-model surface). The abandoned migration plan + bootstrap +probe are archived under `docs/archive/`. - **PRODUCT.md** + **DESIGN.md**: impeccable context for the redesign. Solo broadcast operator at 1:50am is the canonical persona; "vibe-coded GUI" is the explicit anti-reference. Tokens cover dark + light palettes with context-aware accent split (cyan surface fill stays bright in - both modes; cyan-as-text darkens to #0E7C82 on light for AA contrast). -- **WinUI 3 host scaffold** as `src/TeamsISO.App.WinUI/` coexisting with - the existing WPF host. WindowsAppSDK 1.6 LTS, unpackaged mode, win-x64 - pinned RID, custom Bootstrap-aware `Program.Main`, post-build runtimeconfig - patch to drop the .NET-SDK-implicit `Microsoft.WindowsDesktop.App` - framework reference (WinUI 3 doesn't use it). -- **Redesigned MainWindow**: 64px rail with brand mark + nav + - engine-status puck; 44px custom title bar absorbing live pills - (session timer · REC count · disk free) + theme toggle; section header - with single Primary CTA + Secondary actions; participants list - (ItemsRepeater stub pending DataGrid migration) at 64px row height - with cyan-left-border active-speaker treatment; conditional slim - in-call control bar; 32px status bar. -- **ThemeManager service** holds the user theme preference - (System / Dark / Light), resolves via UISettings.GetColorValue when - System, broadcasts changes so the AppWindow title-bar buttons stay - in sync with the visual tree. -- **Settings drawer** that slides in from the right (220ms ease-out-quart) - with five tabs (Appearance / Routing / Display / Control / Advanced). - Appearance tab includes the theme tri-state picker + an accent palette - peek. Replaces the WPF host's 380px permanent settings panel. -- **Help / About / Onboarding** as ContentDialog-based surfaces. Help - is the keyboard shortcut cheat sheet; About has Wild Dragon mark + - version + quick-access folder shortcuts; Onboarding is three numbered - steps for first launch (Install NDI Runtime / Enable Teams NDI / Pick - transcoder topology) with "Don't show again" defaulted on. -- **Interactive HTML preview** at `docs/preview/redesigned-mainwindow.html` — - faithful single-file render of the WinUI 3 XAML with theme toggle and - drawer interaction, so stakeholders can see the redesign before the - WinUI 3 build is feature-complete. -- **Migration plan** at `docs/superpowers/plans/2026-05-12-winui3-migration.md` - with nine phases (scaffold / shell / activation / VM wiring / DataGrid - / secondary windows / hardening / tests / retire-WPF) and a risk - register flagging fallback paths. - -The WPF host (`src/TeamsISO.App/`) is unchanged and remains the shipping -build until the WinUI 3 build passes a real-meeting smoke test. The -view-model layer is unchanged so the WinUI 3 host will reuse it via -ProjectReference once view-model wiring lands (Phase 4 of the plan). + both modes; cyan-as-text darkens to `#0E7C82` on light for AA contrast). +- **Theme system** (`Themes/Theme.Dark.xaml`, `Theme.Light.xaml`, + `WildDragonTheme.xaml`) + `Services/ThemeManager.cs` singleton that + swaps the merged dictionary at runtime, reads + `HKCU\…\AppsUseLightTheme` for System mode, subscribes to + `SystemEvents.UserPreferenceChanged`, persists via + `UIPreferences.Theme`. `Ctrl+T` toggles dark ↔ light. +- **v2 main window shell**: default system title bar; 32px header (Wild + Dragon mark + wordmark left, ⌘K / theme / settings icons right); 40px + transport strip (`● 02:14:32 PART 4 · LIVE 2 CTRL :9755`); body with + alert banner + update banner + action toolbar + participants + DataGrid; conditional `IN CALL` meeting bar at bottom; slide-over + settings drawer (420px from right) with OUTPUT / NETWORK / APP tabs. + The v1 72px rail, the 380px permanent settings panel, and the + six-column footer are gone. +- **Task 39 — participants table v2**: five columns (24px state LED, + name + codec caption, 110px audio meter, 130px mono output name, 100px + ISO pill), 52px rows, full-row active-speaker tint (replaces the v1 + left-edge stripe). +- **Task 40 — Ctrl+K command palette**: `Views/CommandPaletteWindow.xaml` + + `ViewModels/CommandPaletteViewModel.cs`. Centered 560×360 floating + window with fuzzy search across Quick / Teams / Presets / Output / + Network / App categories. ↑/↓ navigates, Enter invokes, Esc closes. +- **Interactive HTML preview** at `docs/preview/redesigned-mainwindow.html` + for stakeholders to see the v2 shell. ### Added — May 2026 feature batch @@ -252,14 +243,6 @@ For operators who want to launch TeamsISO and never look at the Teams UI: - **Recording badge in footer shows elapsed duration** alongside the count (`REC 3 · 12:45`). Separate timer from the session timer because recording can start AFTER the meeting begins. -- **Quick-join Teams meeting from URL** in the IN-CALL bar — paste a - `teams.microsoft.com/l/meetup-join/...` or `msteams:/l/meetup-join/...` - link, click Join, Teams launches into the meeting in one shot. -- **IN-CALL bar surfaces Teams meeting state** — `IN CALL · ` - / `READY` / empty. UIA probe at 1Hz for the Leave button, meeting title - extracted from Teams' window title with brand suffix stripped. -- **Auto-launch Teams + auto-hide windows** preferences for the headless - "I only see TeamsISO" workflow. - **MUTED / CAM OFF pills** in the IN-CALL bar — UIA detects whether the local user is muted or has their camera off, surfaces as coral pills. Operator with auto-hide knows the local state without restoring Teams. diff --git a/DESIGN.md b/DESIGN.md index 609c2c1..57d0a26 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -219,9 +219,10 @@ the same job with less visual noise. **Single icon system, one stroke width, one optical size.** The previous GUI inlined ~12 bespoke `` icons with stroke widths varying -between 1.2 and 1.6. The redesign uses **WinUI 3's bundled Segoe Fluent Icons -font** as the baseline, with a custom subset added only where a broadcast -concept isn't covered (e.g. NDI signal lock, ISO routing state). +between 1.2 and 1.6. The redesign uses **Segoe Fluent Icons font** (shipped +with Windows 11; falls back to Segoe MDL2 Assets on Windows 10) as the +baseline, with a custom subset added only where a broadcast concept isn't +covered (e.g. NDI signal lock, ISO routing state). Sizes: 16 (inline), 20 (button), 24 (rail / hero). Stroke: inherited from font; no hand-stroked paths. @@ -233,8 +234,8 @@ Stroke: inherited from font; no hand-stroked paths. - Durations: 120ms for affordance feedback, 200ms for panel transitions, 280ms hero (rarely used). - No bounce. No elastic. No spring overshoots. -- **Never animate** layout properties. Animate `Translation` and `Opacity` - (WinUI 3's composition layer handles these GPU-cheaply). +- **Never animate** layout properties. Animate `RenderTransform` and + `Opacity` (WPF's composition layer handles these GPU-cheaply). ## Component decisions @@ -329,7 +330,7 @@ no side-stripe borders, no glassmorphism). It does have: ## Migration boundary The view-model surface in `src/TeamsISO.App/ViewModels/` is the contract. -The redesign rewrites everything in `Views/` (WinUI 3) but leaves view-model +The redesign rewrites `MainWindow.xaml` and `Themes/*` but leaves view-model properties and commands untouched. Any place where the redesign needs a new piece of view-model state, the contract widens via additive properties — existing bindings keep working until the new view stops needing the old shape. diff --git a/NEXT_STEPS.md b/NEXT_STEPS.md index ec7bf84..2bf81e2 100644 --- a/NEXT_STEPS.md +++ b/NEXT_STEPS.md @@ -1,89 +1,81 @@ -# Where we left off — v2 "Studio Terminal" shell landed (2026-05-13 night) +# Where we left off — v2 "Studio Terminal" shell complete (2026-05-15) -## What's done (uncommitted on local main) +## What's done on main -**v2 redesign shape:** Approved brief at `docs/shapes/2026-05-13-teamsiso-v2-studio-terminal.md`. Aesthetic register is "broadcast-engineering instrument" — Linear's keyboard-first density × Avid console legibility. Goes hard against the "screams AI" failure mode. +**v2 shape locked.** Approved brief at +`docs/shapes/2026-05-13-teamsiso-v2-studio-terminal.md`. Aesthetic +register: "broadcast-engineering instrument" — Linear's keyboard-first +density × Avid console legibility. Goes hard against the "screams AI" +failure mode. -**PRODUCT.md + DESIGN.md** updated to reflect WPF as the host (WinUI 3 lines removed), v2 IA decisions absorbed, recording references softened, theme implementation rewritten for WPF DynamicResource swap. +**WinUI 3 replatform: abandoned.** The early-May scoping concluded that +the redesign is purely view-layer (XAML + theme tokens + view-models); +doing it in WPF is strictly less work than fighting WinUI 3 activation + +DataGrid replacement. The migration plan + bootstrap probe are archived +under `docs/archive/` for the record. -**Theme system split:** -- `src/TeamsISO.App/Themes/Theme.Dark.xaml` — color brushes only, dark variant -- `src/TeamsISO.App/Themes/Theme.Light.xaml` — color brushes only, light variant -- `src/TeamsISO.App/Themes/WildDragonTheme.xaml` — styles + control templates (no color brushes anymore; uses `DynamicResource` for every brush ref) -- `src/TeamsISO.App/Services/ThemeManager.cs` — singleton that swaps the merged dictionary at runtime, reads `HKCU\...\AppsUseLightTheme` for System mode, subscribes to `SystemEvents.UserPreferenceChanged`, persists via `UIPreferences.Theme`. -- `App.xaml` merges Theme.Dark.xaml + WildDragonTheme.xaml by default; `App.xaml.cs.OnStartup` calls `ThemeManager.Current.Apply()` before MainWindow shows. -- `UIPreferences.Prefs` record gets a new `Theme = "System"` field (forward-compatible — old json files still load). -- New brush key: `Wd.Accent.CyanText` (Dark `#97EDF0` / Light `#0E7C82`) for cyan-as-text contrast on light canvas. The existing `Wd.Accent.Cyan` stays bright in both modes for fill use. +**Shell:** +- Default Windows title bar (no custom chromeless caption buttons). +- 32px header — Wild Dragon mark + "TeamsISO" wordmark left; three icon + buttons right (⌘K command palette, theme toggle, settings gear). +- 40px transport strip — single mono line: + `● 02:14:32 PART 4 · LIVE 2 CTRL :9755`. Cyan dot + timer only when + at least one ISO live. +- Body — alert banner + update banner + action toolbar + participants + DataGrid + (conditional) meeting bar at the bottom. +- Settings — slide-over drawer (420px from right) with OUTPUT / NETWORK / + APP tabs. Scrim click or Esc dismisses. +- v1 leftovers (72px rail, 380px permanent settings panel, six-column + footer) are gone. -**v2 main window shell:** -- Default Windows title bar (no more custom chromeless caption buttons — they looked generic and broke on DPI scaling). -- 32px header: Wild Dragon mark + "TeamsISO" wordmark left; three icon buttons right (⌘K command palette, theme toggle, settings gear). The mark is small (20px) as a quality cue — click opens About. -- 40px transport strip: mono-typed single line. `● 02:14:32 PART 4 · LIVE 2 CTRL :9755`. Cyan dot + timer only when at least one ISO live. CTRL cluster right-aligned in a Grid column. -- Body: alert banner + update banner + action toolbar (Enable / Refresh / Presets / Stop all + Teams launch/hide icons) + participants DataGrid. -- Conditional meeting bar at bottom — appears only when `IsTeamsInCall == true`, with Mute / Cam / Leave. -- 72px left rail: **gone**. -- 380px permanent settings panel: **gone**. -- Six-column footer: **gone**. -- Settings: slide-over drawer overlay (420px from right) triggered by the header gear; OUTPUT / NETWORK / APP tabs (DISPLAY renamed to APP); same bindings as v1. Scrim click dismisses; Esc dismisses. +**Theme system:** +- `Themes/Theme.Dark.xaml` + `Themes/Theme.Light.xaml` — color brushes + only. +- `Themes/WildDragonTheme.xaml` — styles + control templates (no color + brushes; every brush ref is `DynamicResource`). +- `Services/ThemeManager.cs` — swaps the merged dictionary at runtime; + reads `HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme` + for System mode; subscribes to `SystemEvents.UserPreferenceChanged`; + persists via `UIPreferences.Theme`. -**Hotkeys preserved + new:** -- F1 help, Ctrl+R refresh, Ctrl+Shift+S panic stop, 1–9 / NumPad 1–9 toggle Nth participant — all preserved. -- **Ctrl+T toggle theme (NEW)** — cycles dark ↔ light. Hooked through `MainViewModel.ToggleThemeCommand` → `ThemeManager.Toggle()`. -- **Ctrl+K command palette (placeholder)** — currently opens the help dialog. Task 40 replaces this with a real fuzzy-search palette window. +**Task 39 — participants table v2 (LANDED).** +Five columns: 24px state LED, name + codec caption, 110px audio meter, +130px mono output name, 100px ISO pill. 52px rows. Full-row +active-speaker tint (replaces the v1 left-stripe). -**View-model additions (MainViewModel):** -- `ParticipantCount` and `LiveCount` — feed the transport strip's "PART N · LIVE N" readout. Updated on the 1Hz stats tick. -- `ToggleThemeCommand` — wraps `ThemeManager.Current.Toggle()`. +**Task 40 — Ctrl+K command palette (LANDED).** +`Views/CommandPaletteWindow.xaml` + `ViewModels/CommandPaletteViewModel.cs` +ship a centered 560×360 floating window with fuzzy search across Quick / +Teams / Presets / Output / Network / App categories. ↑/↓ navigates, +Enter invokes, Esc closes. The header ⌘K button and Ctrl+K (also Ctrl+P) +keyboard binding both open it. -**MainWindow code-behind cleanup:** -- Removed `OnMinimize`, `OnMaximizeRestore`, `OnClose`, `OnWindowStateChanged`, the maximize-icon swap logic (no more custom title bar). -- Added `OnCommandPaletteClick`, `OnSettingsScrimClick`, `OnPreviewKeyDown` (Esc to close drawer). -- `OnSettingsToggleClick` now toggles `SettingsDrawerOverlay.Visibility` (the slide-over) instead of toggling the v1 right-column width. +**Hotkeys:** +- `F1` — help / cheat sheet +- `Ctrl+K` (also `Ctrl+P`) — command palette +- `Ctrl+T` — toggle theme (dark ↔ light) +- `Ctrl+M` — drop marker into every active recording +- `Ctrl+R` — refresh NDI discovery +- `Ctrl+Shift+S` — panic-stop every ISO +- `1`–`9` / `NumPad 1`–`9` — toggle the Nth visible participant's ISO -## To build, push, and demo +## What's queued + +Pre-1.0 cut is gated on: +1. Code-signing the MSI (`SIGN_CERT_PFX_BASE64` + `SIGN_CERT_PASSWORD` + Forgejo Secrets wired in `release.yml`). +2. A real-meeting smoke pass on a host with a live NDI runtime. + +## Build + run ```powershell -cd "C:\Users\zacga\Documents\Claude\Projects\Teams ISO" - -# Clear the corrupt local index from the earlier session -Remove-Item .git\index -Force -ErrorAction SilentlyContinue -git reset - -# Build the WPF host -dotnet build src\TeamsISO.App\TeamsISO.App.csproj -c Release - -# If the build is clean: +dotnet build TeamsISO.Windows.slnf -c Release .\src\TeamsISO.App\bin\Release\net8.0-windows\TeamsISO.exe ``` -In the running app, test: -1. **Theme toggle** — press `Ctrl+T`. Should swap dark ↔ light without restart. Header colors, surfaces, and text foregrounds all repaint. -2. **System theme follow** — open Windows Settings → Personalization → Colors → "Choose your mode" → flip between Dark and Light. TeamsISO should track the OS automatically (default preference is `System`). -3. **Settings drawer** — click the header gear icon. 420px drawer slides in from the right with OUTPUT / NETWORK / APP tabs. Esc or click-scrim dismisses. -4. **Transport strip** — should show the session timer when at least one ISO goes live, and the PART/LIVE counts always. -5. **Conditional meeting bar** — only appears when Teams is in a call. +The shipped helpers `build-and-test.ps1` and `commit-and-push.ps1` +wrap the build + test + push flow. -If anything regresses, the v1 shell is preserved in git history at `1d1ce6a` — easy rollback with `git reset --hard 1d1ce6a` then publish. - -## Commit + push when ready - -```powershell -git add -A src/TeamsISO.App/ docs/ PRODUCT.md DESIGN.md -git commit -m "feat(wpf): v2 'Studio Terminal' shell — theme system, header, transport strip, drawer - -- Theme split: Theme.Dark.xaml + Theme.Light.xaml + ThemeManager -- New shell: 32px header (mark + wordmark + 3 icons), 40px transport strip, - conditional meeting bar, slide-over settings drawer -- Removed: 72px rail, 380px permanent settings panel, 6-column footer, - custom chromeless title bar buttons -- Ctrl+T toggles theme; follows Windows app-mode by default -- Shape doc at docs/shapes/2026-05-13-teamsiso-v2-studio-terminal.md" -git push origin HEAD -``` - -## What's still queued (tasks 39 + 40) - -- **Task 39** — Participants table redesign. The DataGrid columns in the v2 shell are still v1-style (Name / Source / ISO toggle). v2 wants: 5 columns (state LED, name+codec, audio meter, output name mono, ISO pill), 52px rows, full-row active-speaker tint instead of left stripe, hard-edged 8px state LED. -- **Task 40** — Real Ctrl+K command palette window. Floating 560×360 dialog, fuzzy search across categories (Quick / Teams / Presets / Output / Network / App). Replaces the current placeholder that opens the help dialog. - -Both are scoped commits and depend on the v2 shell being confirmed working first. After this lands and you've verified the theme swap + drawer + transport strip render correctly, ping me and we'll knock those out. +If something regresses, `1d1ce6a` is the rollback point for the WPF v1 +shell (recording was axed at that commit), and `c271303` is the v2 +shell-without-table-redesign rollback point. diff --git a/README.md b/README.md index ae19aad..6522215 100644 --- a/README.md +++ b/README.md @@ -44,22 +44,21 @@ Pre-1.0. The May 2026 batch is feature-complete; v1.0 cut is gated on code-signing the MSI and a smoke pass against a real Teams meeting. See `CHANGELOG.md` for the [Unreleased] entry. -A ground-up GUI redesign is in flight on `main` (see -`docs/superpowers/plans/2026-05-12-winui3-migration.md`). The WPF host -(`src/TeamsISO.App/`) remains the shipping build; a parallel WinUI 3 host -(`src/TeamsISO.App.WinUI/`) is scaffolded with the redesigned MainWindow, -theme system (dark + light), and secondary surfaces. Activation of the -unpackaged WinUI 3 .exe is the current blocker — diagnostics in the -migration plan's Phase 3. +The May 2026 ground-up redesign — the v2 "Studio Terminal" shell — has +landed on the WPF host (`src/TeamsISO.App/`). A WinUI 3 replatform was +explored in early May 2026 and abandoned (activation blockers + redundant +work given the redesign is purely XAML / view-layer); the brief lives at +`docs/shapes/2026-05-13-teamsiso-v2-studio-terminal.md`, and the +abandoned migration plan + bootstrap probe are archived under +`docs/archive/`. ## Build -Requires .NET 8 SDK on Windows. The repo has two hosts: +Requires .NET 8 SDK on Windows. WPF is the only host: -- `src/TeamsISO.App` — WPF, `net8.0-windows`, current shipping build -- `src/TeamsISO.App.WinUI` — WinUI 3, `net8.0-windows10.0.19041.0`, in-flight +- `src/TeamsISO.App` — WPF, `net8.0-windows`, the shipping build -Both build together from the solution filter: +Build from the solution filter: dotnet restore TeamsISO.Windows.slnf dotnet build TeamsISO.Windows.slnf -c Release @@ -80,21 +79,21 @@ The shipped helper scripts in the repo root automate this: - [Embedded Teams orchestration spec](docs/superpowers/specs/2026-05-08-embedded-teams-orchestration.md) — Phase E roadmap. - [Redesign brief](PRODUCT.md) + [design system](DESIGN.md) — token-level - spec for the in-flight WinUI 3 redesign. -- [WinUI 3 migration plan](docs/superpowers/plans/2026-05-12-winui3-migration.md) - — nine-phase plan covering scaffold through retiring the WPF host. -- [Interactive redesign preview](docs/preview/redesigned-mainwindow.html) — - open in any browser to see and toggle the redesigned MainWindow before - the WinUI 3 binary lands. + spec for the v2 "Studio Terminal" redesign. +- [v2 shape brief](docs/shapes/2026-05-13-teamsiso-v2-studio-terminal.md) — + approved aesthetic + IA for the May 2026 WPF rebuild. ## Keyboard shortcuts | Key | Action | | --- | --- | | `F1` | Open help / cheat sheet | +| `Ctrl + K` | Open the command palette (also `Ctrl + P`) | +| `Ctrl + T` | Toggle theme (dark ↔ light) | | `Ctrl + M` | Drop a timestamped marker into every active recording | | `Ctrl + Shift + S` | Stop every running ISO (emergency) | | `Ctrl + R` | Refresh NDI discovery (rebuild finder) | +| `1`–`9` / `NumPad 1`–`9` | Toggle the Nth visible participant's ISO | ## File locations diff --git a/TeamsISO.Windows.slnf b/TeamsISO.Windows.slnf index dd110d4..bc2b109 100644 --- a/TeamsISO.Windows.slnf +++ b/TeamsISO.Windows.slnf @@ -6,7 +6,6 @@ "src\\TeamsISO.Engine.NdiInterop\\TeamsISO.Engine.NdiInterop.csproj", "src\\TeamsISO.Console\\TeamsISO.Console.csproj", "src\\TeamsISO.App\\TeamsISO.App.csproj", - "src\\TeamsISO.App.WinUI\\TeamsISO.App.WinUI.csproj", "src\\tests\\TeamsISO.Engine.Tests\\TeamsISO.Engine.Tests.csproj", "src\\tests\\TeamsISO.Engine.IntegrationTests\\TeamsISO.Engine.IntegrationTests.csproj", "src\\tests\\TeamsISO.App.Tests\\TeamsISO.App.Tests.csproj" diff --git a/docs/superpowers/plans/2026-05-12-winui3-migration.md b/docs/archive/2026-05-12-winui3-migration.md similarity index 100% rename from docs/superpowers/plans/2026-05-12-winui3-migration.md rename to docs/archive/2026-05-12-winui3-migration.md diff --git a/src/TeamsISO.App.WinUI.Probe/Program.cs b/docs/archive/TeamsISO.App.WinUI.Probe/Program.cs similarity index 100% rename from src/TeamsISO.App.WinUI.Probe/Program.cs rename to docs/archive/TeamsISO.App.WinUI.Probe/Program.cs diff --git a/src/TeamsISO.App.WinUI.Probe/TeamsISO.App.WinUI.Probe.csproj b/docs/archive/TeamsISO.App.WinUI.Probe/TeamsISO.App.WinUI.Probe.csproj similarity index 100% rename from src/TeamsISO.App.WinUI.Probe/TeamsISO.App.WinUI.Probe.csproj rename to docs/archive/TeamsISO.App.WinUI.Probe/TeamsISO.App.WinUI.Probe.csproj diff --git a/docs/superpowers/work-log-2026-05-12.md b/docs/archive/work-log-2026-05-12-winui3.md similarity index 100% rename from docs/superpowers/work-log-2026-05-12.md rename to docs/archive/work-log-2026-05-12-winui3.md