Polish + cleanup pass — status (2026-05-15) #1

Open
opened 2026-05-15 21:37:15 -04:00 by zgaetano · 0 comments
Owner

Status note for the polish/cleanup/test pass run on 2026-05-15. Work is paused; no further changes will land from this pass without explicit go-ahead.

Summary

11/11 planned branches pushed, all green. Tests 160 → 237 (Engine 104 → 106, App 56 → 131). Branches are stacked in the order below; each merges cleanly on top of the previous.

Branches awaiting review/merge

# Branch Result
1 chore/docs-reconcile Fixed broken .slnf; archived WinUI 3 migration plan + bootstrap probe to docs/archive/; rewrote NEXT_STEPS.md; de-duped CHANGELOG.md [Unreleased]
2 polish/mainwindow Empty-state copy + Refresh button; participants table column widths to v2 spec; theme tooltip; WindowStateStore.Save wrapped in try/catch; English MessageBox literals → Strings.resx
3 refactor/extract-viewmodels MainViewModel.cs 1017 → 699 lines; split into TeamsCommands / PresetCommands / BulkCommands partials
4 refactor/split-app-startup App.xaml.cs 461 → 219 lines; split into Bootstrap / CrashHandlers / UpdateCheckBootstrap partials
5 refactor/control-surface ControlSurfaceServer.cs 1061 → 400 lines; endpoint bodies into ControlSurface/Endpoints/*.cs per route group + WebSocketHub.cs
6 refactor/teams-embed TeamsLauncher.cs 665 → 510 lines; new TeamsEmbedHost.cs (177 L) owns Phase E.4 embed lifecycle
7 chore/script-cleanup commit-and-push.ps1 443 → 45 lines (single-use batch script → useful build+test+push wrapper); dropped SmokeTest.cs placeholder
8 tests/theme-and-palette ThemeManager test seams + 11 cases; CommandPaletteMatches 16 cases
9 tests/control-surface StubIsoController fake + 7 route-table smoke tests on ephemeral port
10 tests/services NotesService, UpdateChecker, PresetApplier, OscBridge dispatch, WindowStateStore round-trip, IsoController SetRecording / AddRecordingMarker / RefreshDiscovery — 36 new tests
11 tests/integration WpfHostFixture (shared STA Application) + 3 integration tests: app-startup chain, ControlSurface with live VM, theme XAML resource resolution

Punch-list coverage

26 of the 27 punch-list items addressed. Cross-check:

  • UI / interface polish (items 1–8): all done across branches 1–2.
  • Code cleanup (items 9–15): all done across branches 3–7.
  • Test coverage (items 16–20, 22–27): all done across branches 8–11.

Deferred / not done

Item 21 — TeamsLauncher fallback chain (URI handler → AppX activation → process-exe).
Skipped because Process.Start and the AppX activator path aren't unit-testable through the current code shape. Adding coverage requires a launch-seam refactor: introduce something like IProcessLauncher with a default that wraps Process.Start, inject it into TeamsLauncher, and then assert the fallback order with a fake. The May 2026 error-collection path is the specific code that needs pinning. Estimated half-day of work.

Suggested next steps

  1. Merge in order. Branches are stacked, so merge 1 → 11 sequentially. Don't squash branches 3–6 individually if you want the file-rename history preserved; merge commits keep blame intact.
  2. Address deferred item 21 in a follow-up branch once the merges are in (refactor/launcher-seam then tests/launcher-fallback).
  3. Tag a release after merges land — the surface is meaningfully different (file layout, public partial classes, Strings.resx) and a clear pre-1.0 milestone here would make later regression bisects easier.

Operating notes

  • All branches built clean (dotnet build) and tested green (dotnet test) before push.
  • Working copy: C:\Users\zacga\source\repos\teamsiso-polish (fresh clone, can be deleted).
  • No public API renames were made — only internal extractions to partials/sibling files.
Status note for the polish/cleanup/test pass run on 2026-05-15. Work is paused; no further changes will land from this pass without explicit go-ahead. ## Summary **11/11 planned branches pushed, all green.** Tests **160 → 237** (Engine 104 → 106, App 56 → 131). Branches are stacked in the order below; each merges cleanly on top of the previous. ## Branches awaiting review/merge | # | Branch | Result | |---|---|---| | 1 | `chore/docs-reconcile` | Fixed broken `.slnf`; archived WinUI 3 migration plan + bootstrap probe to `docs/archive/`; rewrote `NEXT_STEPS.md`; de-duped `CHANGELOG.md` `[Unreleased]` | | 2 | `polish/mainwindow` | Empty-state copy + Refresh button; participants table column widths to v2 spec; theme tooltip; `WindowStateStore.Save` wrapped in try/catch; English `MessageBox` literals → `Strings.resx` | | 3 | `refactor/extract-viewmodels` | `MainViewModel.cs` 1017 → 699 lines; split into `TeamsCommands` / `PresetCommands` / `BulkCommands` partials | | 4 | `refactor/split-app-startup` | `App.xaml.cs` 461 → 219 lines; split into `Bootstrap` / `CrashHandlers` / `UpdateCheckBootstrap` partials | | 5 | `refactor/control-surface` | `ControlSurfaceServer.cs` 1061 → 400 lines; endpoint bodies into `ControlSurface/Endpoints/*.cs` per route group + `WebSocketHub.cs` | | 6 | `refactor/teams-embed` | `TeamsLauncher.cs` 665 → 510 lines; new `TeamsEmbedHost.cs` (177 L) owns Phase E.4 embed lifecycle | | 7 | `chore/script-cleanup` | `commit-and-push.ps1` 443 → 45 lines (single-use batch script → useful build+test+push wrapper); dropped `SmokeTest.cs` placeholder | | 8 | `tests/theme-and-palette` | `ThemeManager` test seams + 11 cases; `CommandPaletteMatches` 16 cases | | 9 | `tests/control-surface` | `StubIsoController` fake + 7 route-table smoke tests on ephemeral port | | 10 | `tests/services` | `NotesService`, `UpdateChecker`, `PresetApplier`, `OscBridge` dispatch, `WindowStateStore` round-trip, `IsoController` SetRecording / AddRecordingMarker / RefreshDiscovery — **36 new tests** | | 11 | `tests/integration` | `WpfHostFixture` (shared STA Application) + 3 integration tests: app-startup chain, `ControlSurface` with live VM, theme XAML resource resolution | ## Punch-list coverage 26 of the 27 punch-list items addressed. Cross-check: - UI / interface polish (items 1–8): all done across branches 1–2. - Code cleanup (items 9–15): all done across branches 3–7. - Test coverage (items 16–20, 22–27): all done across branches 8–11. ## Deferred / not done **Item 21 — `TeamsLauncher` fallback chain (URI handler → AppX activation → process-exe).** Skipped because `Process.Start` and the AppX activator path aren't unit-testable through the current code shape. Adding coverage requires a launch-seam refactor: introduce something like `IProcessLauncher` with a default that wraps `Process.Start`, inject it into `TeamsLauncher`, and then assert the fallback order with a fake. The May 2026 error-collection path is the specific code that needs pinning. Estimated half-day of work. ## Suggested next steps 1. **Merge in order.** Branches are stacked, so merge 1 → 11 sequentially. Don't squash branches 3–6 individually if you want the file-rename history preserved; merge commits keep blame intact. 2. **Address deferred item 21** in a follow-up branch once the merges are in (`refactor/launcher-seam` then `tests/launcher-fallback`). 3. **Tag a release** after merges land — the surface is meaningfully different (file layout, public partial classes, Strings.resx) and a clear pre-1.0 milestone here would make later regression bisects easier. ## Operating notes - All branches built clean (`dotnet build`) and tested green (`dotnet test`) before push. - Working copy: `C:\Users\zacga\source\repos\teamsiso-polish` (fresh clone, can be deleted). - No public API renames were made — only internal extractions to partials/sibling files.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: WildDragonLLC/teamsiso#1
No description provided.