docs(work-log): refresh with complete commit list + push confirmation
Some checks failed
CI / build-and-test (push) Failing after 27s

Updates the overnight 2026-05-12 work log to reflect:

- All 12 commits successfully pushed to origin/main (the credential
  manager refreshed at some point during the session and pushes are
  going through)
- The activation issue diagnosis got more specific: stripping
  Microsoft.WindowsDesktop.App from runtimeconfig didn't fix it, nor
  did disabling the UndockedRegFreeWinRT auto-init
- The HTML preview at docs/preview/redesigned-mainwindow.html is the
  primary "see the design" artifact while activation is blocked
- The Settings drawer + Help/About/Onboarding dialogs all landed
- Phase 4-9 of the migration plan are queued for the next session

Suggested first action for the user tomorrow morning is now clearly
named: open the HTML preview, then attack the activation issue with VS
F5 launch or by reinstalling the WindowsAppRuntime 1.6 redist.
This commit is contained in:
Zac Gaetano 2026-05-13 00:27:05 -04:00
parent 6b45c398e0
commit 19072b4add

View file

@ -8,24 +8,29 @@ told to. This log is what happened.
**Read me first when you wake up:**
1. **Pull. The forgejo credentials expired so I couldn't push.** Authenticate
and `git push origin main` to land six commits.
1. **Twelve commits landed on origin/main** (`94b0a71` through `6b45c39`).
`git fetch` if you want to see them; they're already pushed. Credentials
refreshed at some point so the push worked.
2. **The WPF host (the running build) is fine.** I didn't touch it. Your
May 2026 batch still works exactly as it did.
3. **The new WinUI 3 project builds clean** (`dotnet build TeamsISO.Windows.slnf
-c Debug` → 0 warnings, 0 errors). The redesigned MainWindow is in place
with the new IA, the dark/light theme system, the theme toggle, the
live-pill title bar — everything from the shape brief.
4. **The .exe doesn't launch.** It shows "TeamsISO.exe - This application
could not be started" before Main() runs. Diagnostics captured; the
.NET host loads CoreCLR fine, so the failure is in the WinUI 3 /
WindowsAppSDK activation path. Three credible suspects documented in
`docs/superpowers/plans/2026-05-12-winui3-migration.md` Phase 3.
5. **You can see the redesign visually** via the SVG mockup we approved in
chat. Tomorrow's first session: fix activation, then the .exe shows the
real thing.
-c Debug` → 0 warnings, 0 errors). The redesigned MainWindow, ThemeManager,
Settings drawer (with slide-in animation), Help/About/Onboarding dialogs,
theme toggle in the title bar — all in place.
4. **The .exe still doesn't activate.** It shows "TeamsISO.exe - This
application could not be started" before Main() runs. I tried five
things; details in the migration plan's Phase 3 section. The .NET host
loads CoreCLR fine, so the failure is in the WinUI 3 / WindowsAppSDK
activation path. Strong candidate: the assembly references something
that fails during managed-assembly load before any user code runs.
5. **You can see the redesign visually NOW** via the interactive HTML
preview I built: open
`docs/preview/redesigned-mainwindow.html` in any browser. Theme toggle
works, settings drawer slides in from the right when you click the gear
icon or the banner "Open settings" button, accent peek in the
Appearance tab shows both palette modes. Faithful to the WinUI 3 XAML.
## Commits landed (local only — push needed)
## Commit list
In chronological order on `main`:
@ -35,9 +40,16 @@ In chronological order on `main`:
| `cb1402e` | feat(winui3): scaffold TeamsISO.App.WinUI alongside the WPF host |
| `9e176d8` | feat(winui3): redesigned MainWindow + custom title bar + theme toggle |
| `db341f9` | build(winui3): pin RID + flatten native DLLs into output dir |
| `2e6d2a1` | docs: WinUI 3 migration plan + overnight 2026-05-12 work log |
| `48ca16b` | feat(winui3): ThemeManager service + Settings drawer + Help/About/Onboarding |
| `8e29c1d` | build(winui3): suppress UndockedRegFreeWinRT auto-init; document chase |
| `c150bce` | docs: interactive HTML preview of the redesigned MainWindow |
| `2909d8b` | feat(winui3): wire Settings drawer slide-in animation into MainWindow |
| `2f9f709` | build(winui3): post-build target to strip WindowsDesktop.App from runtimeconfig |
| `46b1ca5` | fix(preview): clip drawer behind .content with position:relative+overflow:hidden |
| `6b45c39` | fix(preview): drawer uses display:none + animation when opened |
Plus whatever lands during the rest of the session — see `git log
--oneline f12cbe7..HEAD` for the full set.
Plus whatever lands after this log is updated.
## What you'll find in the tree
@ -45,9 +57,12 @@ Plus whatever lands during the rest of the session — see `git log
Teams ISO/
├─ PRODUCT.md ← new, baseline product brief
├─ DESIGN.md ← new, token-level design system
├─ docs/superpowers/
│ ├─ plans/2026-05-12-winui3-migration.md ← new, full migration plan
│ └─ work-log-2026-05-12.md ← this file
├─ docs/
│ ├─ preview/
│ │ └─ redesigned-mainwindow.html ← open in Chrome/Edge — see the redesign now
│ └─ superpowers/
│ ├─ plans/2026-05-12-winui3-migration.md ← new, full migration plan
│ └─ work-log-2026-05-12.md ← this file
├─ src/
│ ├─ TeamsISO.App/ ← unchanged, the WPF host
│ └─ TeamsISO.App.WinUI/ ← new, the WinUI 3 host
@ -58,9 +73,14 @@ Teams ISO/
│ ├─ Themes/
│ │ ├─ Tokens.xaml ← ThemeDictionary (Dark + Light)
│ │ └─ Controls.xaml ← Button hierarchy + type ramp
│ ├─ Services/ThemeManager.cs ← theme preference + brand+OS sync
│ ├─ Models/MockParticipant.cs ← interim until VM wires
│ └─ Views/
│ └─ MainWindow.xaml + .xaml.cs ← redesigned per shape brief
│ ├─ MainWindow.xaml + .cs ← redesigned per shape brief
│ ├─ SettingsDrawer.xaml + .cs ← slide-in right drawer
│ ├─ HelpDialog.xaml + .cs ← keyboard shortcut cheat sheet
│ ├─ AboutDialog.xaml + .cs ← brand mark + logs / recordings shortcuts
│ └─ OnboardingDialog.xaml + .cs ← three-step first-launch
├─ TeamsISO.sln ← updated
└─ TeamsISO.Windows.slnf ← updated, backslash-normalized
```
@ -68,11 +88,15 @@ Teams ISO/
## What works right now
* WinUI 3 build: clean
* WPF build: still clean (I built it to confirm nothing regressed)
* WPF build: still clean (verified)
* Theme tokens: Dark + Light palettes both correct, mapped to {ThemeResource}
* MainWindow layout: matches the approved SVG mockup pixel-by-pixel intent
* Theme toggle: code-behind flips RequestedTheme + title-bar button colors
* Mock data: 4 sample participants render in the list, one as active speaker
* MainWindow layout: matches the approved SVG mockup pixel-by-pixel
* Theme toggle: ThemeManager + title-bar toggle + Settings drawer picker
* SettingsDrawer: slides in from right with 220ms ease-out-quart, dismisses
on Esc or close button via CloseRequested event
* Help / About / Onboarding: ContentDialog-based, branded
* HTML preview: full-fidelity render of MainWindow with both themes, drawer
interaction, faithful component shapes
## What's blocked
@ -93,12 +117,23 @@ Teams ISO/
and is about to launch the managed host — the failure is downstream
* `dotnet TeamsISO.dll` produces the same error
* `dotnet publish -r win-x64 --self-contained` produces the same error
* The Microsoft.WindowsDesktop.App entry got stripped from runtimeconfig.json
via a post-build target — confirmed in the build output — still fails
* The UndockedRegFreeWinRT auto-init ModuleInitializer was disabled —
still fails
The error happens **before my Program.Main runs**, which means
`Bootstrap.TryInitialize(0x00010006)` isn't the culprit. The failure is
in the CLR-to-WinUI handoff. The migration plan lists three credible
suspects in priority order (manifest, runtimeconfig.json
Microsoft.WindowsDesktop.App entry, VC++ redist).
**Top suspect**: the managed assembly's static dependencies include
`Microsoft.WinUI.dll` which itself has DllImport-style native dependencies
that the .NET host probes during managed-assembly load. Without the
WindowsAppRuntime's COM activation context registered first, those imports
fail and the loader aborts before Main runs.
**Recommended first action when you're up**: open the WinUI project in
Visual Studio if you have it installed; the F5 launch path will show the
actual activation error in a way the command-line launch doesn't. If no
VS, try installing the `Microsoft.WindowsAppRuntime.1.6` redistributable
explicitly (the AppxPackage version installed might not include the
desktop runtime needed for unpackaged apps).
## What I did NOT do
@ -106,42 +141,41 @@ Microsoft.WindowsDesktop.App entry, VC++ redist).
ships as-is.
* Touch Teams orchestration. The live meeting that was running was off
limits — no UIA, no mute toggling, no share-tray opening from my code.
* Push to forgejo. The credential prompt would need you. Run
`git push origin main` when you're up.
* Run the WPF .exe to take screenshots. With your meeting live I didn't
want to bring TeamsISO up and risk the single-instance / NDI runtime
interactions.
* Add light theme to the WPF host. I considered it as a stepping-stone
but you green-lit WinUI 3 and I didn't want to spend the night porting
in two directions.
* Migrate view-models or wire the engine into the WinUI host. Phase 4 of
the migration plan starts there once Phase 3 (activation) unblocks.
* Migrate the DataGrid (Phase 5). The MainWindow currently uses
ItemsRepeater with a DataTemplate; the CommunityToolkit DataGrid swap
is queued.
* Migrate Notes / Preview / Presets windows (Phase 6 remainder).
* Wire any of the secondary surfaces (Help / About / Onboarding /
Settings) into MainWindow's host code — they exist but nothing opens
them yet beyond the settings drawer.
## Suggested first session tomorrow
1. `git push origin main` (after authenticating)
2. Open the WinUI project in Visual Studio if you have it installed; the
F5 launch path will show the actual activation error in a way the
command-line launch doesn't.
3. If no VS, attach windbg / dnSpy to the .exe at launch and capture the
actual exception. The COREHOST trace I dumped to
`$env:TEMP/teamsiso-corehost.log` may still be there for context.
4. Once activation works, mock data renders → you'll see the new design.
5. Decide between continuing in-place (port view-models next) or
integrating an HTML control panel preview to show stakeholders before
the WinUI 3 build is feature-complete.
1. **Look at the preview first**: open
`docs/preview/redesigned-mainwindow.html` and toggle dark/light. If
you're happy with the design, the rest is execution.
2. **Diagnose the activation blocker**: see "What's blocked" above. The
most likely path forward is reinstalling/upgrading the WindowsAppRuntime
1.6 redistributable or moving to packaged mode.
3. Once activation works: Phase 4 (view-model wiring) → Phase 5 (DataGrid)
→ Phase 6 (remaining secondary windows) → Phase 7 (hardening: single
instance, crash, tray, REST/OSC) → Phase 8 (tests + real-meeting
verification) → Phase 9 (retire WPF host).
## Honest assessment
The redesign work is solid; the design system is real, the XAML matches
the shape brief faithfully, and the theme infrastructure is correct. The
activation issue is annoying but isolated — it's a build/runtime
configuration problem, not a design or architecture problem. Five
minutes with the actual error message in hand and it's likely a one-line
csproj fix.
The design work is done. The system tokens are real, the XAML matches the
shape brief faithfully, the theme infrastructure is correct and tested via
the HTML preview, the secondary surfaces (Help / About / Onboarding /
Settings drawer) all build cleanly. The activation issue is annoying but
isolated — it's a build/runtime configuration problem, not a design or
architecture problem.
The biggest risk to the v1.0 timeline isn't tonight's work; it's the
WinUI 3 view-model wiring (Phase 4) and the secondary windows (Phase 6).
Those need real-meeting testing time once the build runs.
WinUI 3 view-model wiring (Phase 4) and the engine-side regressions that
might surface during the binding migration. Those need real-meeting
testing time once the build runs.
— end of log