teamsiso/NEXT_STEPS.md
Zac Gaetano 37390026b3 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

3.4 KiB
Raw Permalink Blame History

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
  • 19 / NumPad 19 — 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

dotnet build TeamsISO.Windows.slnf -c Release
.\src\TeamsISO.App\bin\Release\net8.0-windows\TeamsISO.exe

The shipped helpers build-and-test.ps1 and commit-and-push.ps1 wrap the build + test + push flow.

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.