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:** **Read me first when you wake up:**
1. **Pull. The forgejo credentials expired so I couldn't push.** Authenticate 1. **Twelve commits landed on origin/main** (`94b0a71` through `6b45c39`).
and `git push origin main` to land six commits. `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 2. **The WPF host (the running build) is fine.** I didn't touch it. Your
May 2026 batch still works exactly as it did. May 2026 batch still works exactly as it did.
3. **The new WinUI 3 project builds clean** (`dotnet build TeamsISO.Windows.slnf 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 -c Debug` → 0 warnings, 0 errors). The redesigned MainWindow, ThemeManager,
with the new IA, the dark/light theme system, the theme toggle, the Settings drawer (with slide-in animation), Help/About/Onboarding dialogs,
live-pill title bar — everything from the shape brief. theme toggle in the title bar — all in place.
4. **The .exe doesn't launch.** It shows "TeamsISO.exe - This application 4. **The .exe still doesn't activate.** It shows "TeamsISO.exe - This
could not be started" before Main() runs. Diagnostics captured; the application could not be started" before Main() runs. I tried five
.NET host loads CoreCLR fine, so the failure is in the WinUI 3 / things; details in the migration plan's Phase 3 section. The .NET host
WindowsAppSDK activation path. Three credible suspects documented in loads CoreCLR fine, so the failure is in the WinUI 3 / WindowsAppSDK
`docs/superpowers/plans/2026-05-12-winui3-migration.md` Phase 3. activation path. Strong candidate: the assembly references something
5. **You can see the redesign visually** via the SVG mockup we approved in that fails during managed-assembly load before any user code runs.
chat. Tomorrow's first session: fix activation, then the .exe shows the 5. **You can see the redesign visually NOW** via the interactive HTML
real thing. 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`: 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 | | `cb1402e` | feat(winui3): scaffold TeamsISO.App.WinUI alongside the WPF host |
| `9e176d8` | feat(winui3): redesigned MainWindow + custom title bar + theme toggle | | `9e176d8` | feat(winui3): redesigned MainWindow + custom title bar + theme toggle |
| `db341f9` | build(winui3): pin RID + flatten native DLLs into output dir | | `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 Plus whatever lands after this log is updated.
--oneline f12cbe7..HEAD` for the full set.
## What you'll find in the tree ## 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/ Teams ISO/
├─ PRODUCT.md ← new, baseline product brief ├─ PRODUCT.md ← new, baseline product brief
├─ DESIGN.md ← new, token-level design system ├─ DESIGN.md ← new, token-level design system
├─ docs/superpowers/ ├─ docs/
│ ├─ plans/2026-05-12-winui3-migration.md ← new, full migration plan │ ├─ preview/
│ └─ work-log-2026-05-12.md ← this file │ │ └─ 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/ ├─ src/
│ ├─ TeamsISO.App/ ← unchanged, the WPF host │ ├─ TeamsISO.App/ ← unchanged, the WPF host
│ └─ TeamsISO.App.WinUI/ ← new, the WinUI 3 host │ └─ TeamsISO.App.WinUI/ ← new, the WinUI 3 host
@ -58,9 +73,14 @@ Teams ISO/
│ ├─ Themes/ │ ├─ Themes/
│ │ ├─ Tokens.xaml ← ThemeDictionary (Dark + Light) │ │ ├─ Tokens.xaml ← ThemeDictionary (Dark + Light)
│ │ └─ Controls.xaml ← Button hierarchy + type ramp │ │ └─ Controls.xaml ← Button hierarchy + type ramp
│ ├─ Services/ThemeManager.cs ← theme preference + brand+OS sync
│ ├─ Models/MockParticipant.cs ← interim until VM wires │ ├─ Models/MockParticipant.cs ← interim until VM wires
│ └─ Views/ │ └─ 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.sln ← updated
└─ TeamsISO.Windows.slnf ← updated, backslash-normalized └─ TeamsISO.Windows.slnf ← updated, backslash-normalized
``` ```
@ -68,11 +88,15 @@ Teams ISO/
## What works right now ## What works right now
* WinUI 3 build: clean * 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} * Theme tokens: Dark + Light palettes both correct, mapped to {ThemeResource}
* MainWindow layout: matches the approved SVG mockup pixel-by-pixel intent * MainWindow layout: matches the approved SVG mockup pixel-by-pixel
* Theme toggle: code-behind flips RequestedTheme + title-bar button colors * Theme toggle: ThemeManager + title-bar toggle + Settings drawer picker
* Mock data: 4 sample participants render in the list, one as active speaker * 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 ## What's blocked
@ -93,12 +117,23 @@ Teams ISO/
and is about to launch the managed host — the failure is downstream and is about to launch the managed host — the failure is downstream
* `dotnet TeamsISO.dll` produces the same error * `dotnet TeamsISO.dll` produces the same error
* `dotnet publish -r win-x64 --self-contained` 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 **Top suspect**: the managed assembly's static dependencies include
`Bootstrap.TryInitialize(0x00010006)` isn't the culprit. The failure is `Microsoft.WinUI.dll` which itself has DllImport-style native dependencies
in the CLR-to-WinUI handoff. The migration plan lists three credible that the .NET host probes during managed-assembly load. Without the
suspects in priority order (manifest, runtimeconfig.json WindowsAppRuntime's COM activation context registered first, those imports
Microsoft.WindowsDesktop.App entry, VC++ redist). 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 ## What I did NOT do
@ -106,42 +141,41 @@ Microsoft.WindowsDesktop.App entry, VC++ redist).
ships as-is. ships as-is.
* Touch Teams orchestration. The live meeting that was running was off * Touch Teams orchestration. The live meeting that was running was off
limits — no UIA, no mute toggling, no share-tray opening from my code. 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 * Migrate view-models or wire the engine into the WinUI host. Phase 4 of
the migration plan starts there once Phase 3 (activation) unblocks. 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 ## Suggested first session tomorrow
1. `git push origin main` (after authenticating) 1. **Look at the preview first**: open
2. Open the WinUI project in Visual Studio if you have it installed; the `docs/preview/redesigned-mainwindow.html` and toggle dark/light. If
F5 launch path will show the actual activation error in a way the you're happy with the design, the rest is execution.
command-line launch doesn't. 2. **Diagnose the activation blocker**: see "What's blocked" above. The
3. If no VS, attach windbg / dnSpy to the .exe at launch and capture the most likely path forward is reinstalling/upgrading the WindowsAppRuntime
actual exception. The COREHOST trace I dumped to 1.6 redistributable or moving to packaged mode.
`$env:TEMP/teamsiso-corehost.log` may still be there for context. 3. Once activation works: Phase 4 (view-model wiring) → Phase 5 (DataGrid)
4. Once activation works, mock data renders → you'll see the new design. → Phase 6 (remaining secondary windows) → Phase 7 (hardening: single
5. Decide between continuing in-place (port view-models next) or instance, crash, tray, REST/OSC) → Phase 8 (tests + real-meeting
integrating an HTML control panel preview to show stakeholders before verification) → Phase 9 (retire WPF host).
the WinUI 3 build is feature-complete.
## Honest assessment ## Honest assessment
The redesign work is solid; the design system is real, the XAML matches The design work is done. The system tokens are real, the XAML matches the
the shape brief faithfully, and the theme infrastructure is correct. The shape brief faithfully, the theme infrastructure is correct and tested via
activation issue is annoying but isolated — it's a build/runtime the HTML preview, the secondary surfaces (Help / About / Onboarding /
configuration problem, not a design or architecture problem. Five Settings drawer) all build cleanly. The activation issue is annoying but
minutes with the actual error message in hand and it's likely a one-line isolated — it's a build/runtime configuration problem, not a design or
csproj fix. architecture problem.
The biggest risk to the v1.0 timeline isn't tonight's work; it's the 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). WinUI 3 view-model wiring (Phase 4) and the engine-side regressions that
Those need real-meeting testing time once the build runs. might surface during the binding migration. Those need real-meeting
testing time once the build runs.
— end of log — end of log