dragon-iso/src/TeamsISO.App.WinUI/app.manifest
Zac Gaetano cb1402ec8d feat(winui3): scaffold TeamsISO.App.WinUI alongside the WPF host
First step of the WinUI 3 replatform per the approved redesign brief.
The new project coexists with the existing src/TeamsISO.App (WPF) so the
WPF host keeps building and shipping while the WinUI 3 redesign lands
incrementally. Once the WinUI 3 build is feature-complete and tested
against a real Teams meeting, the WPF project is retired.

Scaffold contents:

* src/TeamsISO.App.WinUI/TeamsISO.App.WinUI.csproj
  Windows App SDK 1.6 LTS (250602001), unpackaged mode
  (WindowsPackageType=None) so the existing MSI installer keeps working.
  Target framework net8.0-windows10.0.19041.0, min platform 10.0.17763.0
  to preserve Win10 1809+ compatibility for working broadcast hardware.
  Pins WindowsSdkPackageVersion=10.0.19041.38 so .NET SDK 8.0.301 builds
  cleanly without an SDK upgrade on the build host.

* src/TeamsISO.App.WinUI/app.manifest
  PerMonitorV2 DPI awareness + gdiScaling for crisp text on high-DPI
  broadcast monitors. asInvoker trust level (control surface :9755 and
  OSC :9000 bind to 127.0.0.1, no admin needed).

* App.xaml + App.xaml.cs
  Minimal startup: brings up MainWindow. The full pipeline (NDI runtime
  preflight, IsoController wiring, single-instance mutex, REST + OSC
  bridge, tray icon, crash diagnostics, auto-update banner, onboarding)
  migrates in subsequent commits.

* Themes/Tokens.xaml
  Wild Dragon design tokens as ThemeDictionary entries (Default = Dark,
  Light). Colors as Color resources, Brushes paired per theme so
  {ThemeResource} auto-swaps when RequestedTheme flips — no app restart,
  no flicker. Spacing/radii/typography tokens are theme-agnostic at the
  outer level. Light palette maintains brand recognition via cyan-tinted
  off-whites (#FAFAFB canvas, #F0F1F3 rail) rather than pure white, and
  splits cyan into accent.cyan.surface (#97EDF0, works in both modes
  because text on top is near-black) and accent.cyan.text (#97EDF0 dark
  / #0E7C82 light) so captions and inline labels keep AA contrast.

* Themes/Controls.xaml
  Button hierarchy with real commitments: Primary (cyan fill, one per
  surface), Secondary (transparent bordered), Tertiary (text only),
  Destructive (coral border + text), Caption (titlebar), RailIcon.
  Typographic ramp (Display / Title / Heading / Body / Subtle / Caption
  / Mono) at the DESIGN.md 1.25 ratio.

* CommunityToolkit.WinUI.UI.Controls.DataGrid 7.1.2 referenced for the
  participants table migration. (Toolkit 8.x dropped DataGrid; 7.x is
  the only currently-maintained free option for WinUI 3.)

* Inter.ttf + JetBrainsMono.ttf + dragon-mark.png + teamsiso.ico copied
  from the WPF project's Assets/ so the WinUI 3 host is self-contained.

* TeamsISO.sln + TeamsISO.Windows.slnf updated to include the new
  project. The .slnf paths switch to backslash form so MSBuild can match
  them against the .sln's canonical path representation.

Verified: dotnet build TeamsISO.Windows.slnf -c Debug succeeds with 0
warnings and 0 errors for all 8 projects (WPF host, WinUI 3 host, engine,
NDI interop, console, three test projects).
2026-05-12 23:52:35 -04:00

32 lines
1.7 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="TeamsISO.App.WinUI"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- TeamsISO is a normal-trust desktop app; no UAC elevation needed.
Network listens (control surface :9755 and OSC :9000) bind to
127.0.0.1 only, which doesn't require admin. -->
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Win10 1809 (17763) is the floor — same as TargetPlatformMinVersion. -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
</application>
</compatibility>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/PM</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
<!-- Crisp text on high-DPI broadcast monitors. -->
<gdiScaling xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">true</gdiScaling>
</windowsSettings>
</application>
</assembly>