teamsiso/NEXT_STEPS.md

82 lines
3.4 KiB
Markdown
Raw Permalink Normal View History

chore(docs): reconcile to WPF-only after WinUI 3 was abandoned - Fix TeamsISO.Windows.slnf — drop the dangling src/TeamsISO.App.WinUI/TeamsISO.App.WinUI.csproj entry whose project doesn't exist in the .sln (broke the build on main). - Archive the abandoned WinUI 3 artifacts under docs/archive/: * 2026-05-12-winui3-migration.md (the nine-phase migration plan) * TeamsISO.App.WinUI.Probe/ (the bootstrap diagnostic console) * work-log-2026-05-12-winui3.md (the overnight session log) - README — drop the "in-flight WinUI 3 replatform" status block; state that the v2 redesign landed in WPF and link the shape brief. Keyboard shortcuts table picks up Ctrl+K, Ctrl+T, and the digit hotkeys that already shipped. - CHANGELOG — replace the WinUI-3-flavoured "Ground-up GUI redesign" block with a v2 Studio Terminal entry that names Task 39 + Task 40 as landed. De-dupe the May 2026 batch: the second "Quick-join Teams meeting from URL", "IN-CALL bar surfaces Teams meeting state", and "Auto-launch Teams + auto-hide windows" bullets were verbatim repeats of earlier entries; kept the first occurrence. - NEXT_STEPS.md — rewrite to reflect that Task 39 (participants table v2) and Task 40 (Ctrl+K palette) both shipped; v1.0 cut is now gated only on MSI signing + real-meeting smoke pass. - DESIGN.md — small WPF-isms: WinUI 3 composition layer → WPF's; Segoe Fluent Icons phrased without the "WinUI 3's bundled" qualifier; migration boundary rephrased to "rewrites MainWindow.xaml + Themes/*" instead of "everything in Views/". - .gitignore — ignore the .claude/ session metadata dir so it doesn't show up as untracked on every dev checkout. Build + tests verified before commit: 0 errors, 0 warnings; 160 tests pass (56 App + 104 Engine, filter Category!=ndi&requires!=ndi). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 19:16:20 -04:00
# Where we left off — v2 "Studio Terminal" shell complete (2026-05-15)
## What's done on main
**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.
**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.
**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.
**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`.
**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).
**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.
**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
## 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
chore(docs): reconcile to WPF-only after WinUI 3 was abandoned - Fix TeamsISO.Windows.slnf — drop the dangling src/TeamsISO.App.WinUI/TeamsISO.App.WinUI.csproj entry whose project doesn't exist in the .sln (broke the build on main). - Archive the abandoned WinUI 3 artifacts under docs/archive/: * 2026-05-12-winui3-migration.md (the nine-phase migration plan) * TeamsISO.App.WinUI.Probe/ (the bootstrap diagnostic console) * work-log-2026-05-12-winui3.md (the overnight session log) - README — drop the "in-flight WinUI 3 replatform" status block; state that the v2 redesign landed in WPF and link the shape brief. Keyboard shortcuts table picks up Ctrl+K, Ctrl+T, and the digit hotkeys that already shipped. - CHANGELOG — replace the WinUI-3-flavoured "Ground-up GUI redesign" block with a v2 Studio Terminal entry that names Task 39 + Task 40 as landed. De-dupe the May 2026 batch: the second "Quick-join Teams meeting from URL", "IN-CALL bar surfaces Teams meeting state", and "Auto-launch Teams + auto-hide windows" bullets were verbatim repeats of earlier entries; kept the first occurrence. - NEXT_STEPS.md — rewrite to reflect that Task 39 (participants table v2) and Task 40 (Ctrl+K palette) both shipped; v1.0 cut is now gated only on MSI signing + real-meeting smoke pass. - DESIGN.md — small WPF-isms: WinUI 3 composition layer → WPF's; Segoe Fluent Icons phrased without the "WinUI 3's bundled" qualifier; migration boundary rephrased to "rewrites MainWindow.xaml + Themes/*" instead of "everything in Views/". - .gitignore — ignore the .claude/ session metadata dir so it doesn't show up as untracked on every dev checkout. Build + tests verified before commit: 0 errors, 0 warnings; 160 tests pass (56 App + 104 Engine, filter Category!=ndi&requires!=ndi). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 19:16:20 -04:00
dotnet build TeamsISO.Windows.slnf -c Release
.\src\TeamsISO.App\bin\Release\net8.0-windows\TeamsISO.exe
```
chore(docs): reconcile to WPF-only after WinUI 3 was abandoned - Fix TeamsISO.Windows.slnf — drop the dangling src/TeamsISO.App.WinUI/TeamsISO.App.WinUI.csproj entry whose project doesn't exist in the .sln (broke the build on main). - Archive the abandoned WinUI 3 artifacts under docs/archive/: * 2026-05-12-winui3-migration.md (the nine-phase migration plan) * TeamsISO.App.WinUI.Probe/ (the bootstrap diagnostic console) * work-log-2026-05-12-winui3.md (the overnight session log) - README — drop the "in-flight WinUI 3 replatform" status block; state that the v2 redesign landed in WPF and link the shape brief. Keyboard shortcuts table picks up Ctrl+K, Ctrl+T, and the digit hotkeys that already shipped. - CHANGELOG — replace the WinUI-3-flavoured "Ground-up GUI redesign" block with a v2 Studio Terminal entry that names Task 39 + Task 40 as landed. De-dupe the May 2026 batch: the second "Quick-join Teams meeting from URL", "IN-CALL bar surfaces Teams meeting state", and "Auto-launch Teams + auto-hide windows" bullets were verbatim repeats of earlier entries; kept the first occurrence. - NEXT_STEPS.md — rewrite to reflect that Task 39 (participants table v2) and Task 40 (Ctrl+K palette) both shipped; v1.0 cut is now gated only on MSI signing + real-meeting smoke pass. - DESIGN.md — small WPF-isms: WinUI 3 composition layer → WPF's; Segoe Fluent Icons phrased without the "WinUI 3's bundled" qualifier; migration boundary rephrased to "rewrites MainWindow.xaml + Themes/*" instead of "everything in Views/". - .gitignore — ignore the .claude/ session metadata dir so it doesn't show up as untracked on every dev checkout. Build + tests verified before commit: 0 errors, 0 warnings; 160 tests pass (56 App + 104 Engine, filter Category!=ndi&requires!=ndi). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 19:16:20 -04:00
The shipped helpers `build-and-test.ps1` and `commit-and-push.ps1`
wrap the build + test + push flow.
chore(docs): reconcile to WPF-only after WinUI 3 was abandoned - Fix TeamsISO.Windows.slnf — drop the dangling src/TeamsISO.App.WinUI/TeamsISO.App.WinUI.csproj entry whose project doesn't exist in the .sln (broke the build on main). - Archive the abandoned WinUI 3 artifacts under docs/archive/: * 2026-05-12-winui3-migration.md (the nine-phase migration plan) * TeamsISO.App.WinUI.Probe/ (the bootstrap diagnostic console) * work-log-2026-05-12-winui3.md (the overnight session log) - README — drop the "in-flight WinUI 3 replatform" status block; state that the v2 redesign landed in WPF and link the shape brief. Keyboard shortcuts table picks up Ctrl+K, Ctrl+T, and the digit hotkeys that already shipped. - CHANGELOG — replace the WinUI-3-flavoured "Ground-up GUI redesign" block with a v2 Studio Terminal entry that names Task 39 + Task 40 as landed. De-dupe the May 2026 batch: the second "Quick-join Teams meeting from URL", "IN-CALL bar surfaces Teams meeting state", and "Auto-launch Teams + auto-hide windows" bullets were verbatim repeats of earlier entries; kept the first occurrence. - NEXT_STEPS.md — rewrite to reflect that Task 39 (participants table v2) and Task 40 (Ctrl+K palette) both shipped; v1.0 cut is now gated only on MSI signing + real-meeting smoke pass. - DESIGN.md — small WPF-isms: WinUI 3 composition layer → WPF's; Segoe Fluent Icons phrased without the "WinUI 3's bundled" qualifier; migration boundary rephrased to "rewrites MainWindow.xaml + Themes/*" instead of "everything in Views/". - .gitignore — ignore the .claude/ session metadata dir so it doesn't show up as untracked on every dev checkout. Build + tests verified before commit: 0 errors, 0 warnings; 160 tests pass (56 App + 104 Engine, filter Category!=ndi&requires!=ndi). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 19:16:20 -04:00
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.