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.
181 lines
9.3 KiB
Markdown
181 lines
9.3 KiB
Markdown
# Work log — overnight session 2026-05-12 → 2026-05-13
|
|
|
|
The redesign brief was approved with one edit (add dark + light theming), the
|
|
WinUI 3 replatform was green-lit explicitly, and you said don't stop until
|
|
told to. This log is what happened.
|
|
|
|
## TL;DR
|
|
|
|
**Read me first when you wake up:**
|
|
|
|
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, 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.
|
|
|
|
## Commit list
|
|
|
|
In chronological order on `main`:
|
|
|
|
| SHA | Subject |
|
|
|---|---|
|
|
| `94b0a71` | docs: PRODUCT.md + DESIGN.md (ground-up GUI redesign brief) |
|
|
| `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 after this log is updated.
|
|
|
|
## What you'll find in the tree
|
|
|
|
```
|
|
Teams ISO/
|
|
├─ PRODUCT.md ← new, baseline product brief
|
|
├─ DESIGN.md ← new, token-level design system
|
|
├─ 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
|
|
│ ├─ TeamsISO.App.WinUI.csproj
|
|
│ ├─ Program.cs ← custom Main with Bootstrap
|
|
│ ├─ App.xaml + App.xaml.cs
|
|
│ ├─ Assets/ ← Inter, JetBrainsMono, dragon-mark
|
|
│ ├─ 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 + .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
|
|
```
|
|
|
|
## What works right now
|
|
|
|
* WinUI 3 build: clean
|
|
* 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
|
|
* 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
|
|
|
|
**Activation failure on the unpackaged .exe.** Diagnostic summary:
|
|
|
|
* `dotnet --info` shows .NET 8.0.301 SDK + 8.0.6/8.0.8/8.0.18 runtimes for
|
|
both NETCore.App and WindowsDesktop.App
|
|
* `Get-AppxPackage Microsoft.WindowsAppRuntime.*` confirms
|
|
Microsoft.WindowsAppRuntime.1.6 (6000.519.329.0) is installed
|
|
* `dotnet build -c Debug` produces TeamsISO.exe in
|
|
`src/TeamsISO.App.WinUI/bin/Debug/net8.0-windows10.0.19041.0/win-x64/`
|
|
* The .exe is x64 (PE machine 0x8664 confirmed)
|
|
* Native runtime files (Microsoft.WindowsAppRuntime.Bootstrap.dll,
|
|
WebView2Loader.dll) are flattened to the output dir alongside the .exe
|
|
* Launching the .exe results in a Windows error dialog
|
|
"TeamsISO.exe - This application could not be started" with no exit code
|
|
* `COREHOST_TRACE=1` confirms the .NET host loads CoreCLR successfully
|
|
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
|
|
|
|
**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
|
|
|
|
* Touch the WPF host. Your running build is intact. The May 2026 batch
|
|
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.
|
|
* 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. **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 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 engine-side regressions that
|
|
might surface during the binding migration. Those need real-meeting
|
|
testing time once the build runs.
|
|
|
|
— end of log
|