Skip to content

[windows] Declare PerMonitorV2 DPI awareness on Windows#3208

Merged
ten9876 merged 2 commits into
aethersdr:mainfrom
jensenpat:codex/windows-store-dpi-compliance
May 27, 2026
Merged

[windows] Declare PerMonitorV2 DPI awareness on Windows#3208
ten9876 merged 2 commits into
aethersdr:mainfrom
jensenpat:codex/windows-store-dpi-compliance

Conversation

@jensenpat

@jensenpat jensenpat commented May 27, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add a Windows executable manifest that declares PerMonitorV2, PerMonitor DPI awareness with the legacy true/pm fallback.
  • Merge that manifest into the MSVC-built AetherSDR.exe using /MANIFESTINPUT, avoiding a duplicate resource manifest in the .rc file.
  • Add a Windows packaging verifier that extracts the embedded manifest with mt.exe and fails CI if the DPI declarations are missing.
  • Run the verifier in the Windows installer workflow before MSIX packaging and update the Store MSIX follow-up notes.

Validation

  • Configured and built AetherSDR.exe with MSVC/Ninja from codex/windows-store-dpi-compliance using 8 jobs.
  • Ran windeployqt on the built executable.
  • Extracted the embedded manifest with mt.exe; confirmed dpiAwareness contains PerMonitorV2, PerMonitor and dpiAware contains true/pm.
  • Ran packaging/windows/check-dpi-awareness.ps1 against the deployed executable; it passed.
  • Created an unsigned development MSIX and .msixupload with packaging/windows/create-msix.ps1 -CreateUpload -SkipSign.
  • Ran Windows App Certification Kit 10.0.26100.7705 elevated against the generated MSIX; OVERALL_RESULT="PASS" and DPIAwarenessValidation passed.

Co-authored-by: Codex <noreply@openai.com>
@jensenpat jensenpat changed the title Declare PerMonitorV2 DPI awareness on Windows [windows] Declare PerMonitorV2 DPI awareness on Windows May 27, 2026
@jensenpat jensenpat marked this pull request as ready for review May 27, 2026 06:27
@jensenpat jensenpat requested review from a team as code owners May 27, 2026 06:27

@aethersdr-agent aethersdr-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed. This looks clean and well-scoped.

What's good:

  • Manifest uses both dpiAwareness (modern, with PerMonitorV2 + PerMonitor fallback) and legacy dpiAware true/pm — correct belt-and-suspenders for Win10 1607+ and earlier.
  • /MANIFESTINPUT is the right hook for merging into the linker-generated manifest, and confirmed the existing packaging/windows/AetherSDR.rc only declares the icon — no duplicate manifest resource to conflict with.
  • The CI verifier (check-dpi-awareness.ps1) is solid: Set-StrictMode, $ErrorActionPreference = "Stop", GUID-suffixed temp path, -LiteralPath consistently, finally-block cleanup. Failing CI on a missing manifest is the right defense — quietly losing the manifest after a future link-flag refactor would be exactly the kind of regression worth catching.
  • WACK DPIAwarenessValidation PASS is the validation that matters here; thanks for running it.

One small observation (not blocking):

  • The target_link_options is gated on if(MSVC). That's correct for the shipped Windows build path, but means a MinGW Windows build (if anyone attempts one) would silently produce an unmanifested exe. Given AetherSDR's Windows packaging is MSVC-only and the CI verifier runs in that path, this is fine — just worth a brief comment in CMakeLists noting "MSVC-only; MinGW path would need windres + RT_MANIFEST" so a future contributor doesn't get surprised.

Thanks for the thorough validation notes and the verifier — nice touch making this hard to silently break later. 73!


🤖 aethersdr-agent · cost: $7.8083 · model: claude-opus-4-7

…pi-compliance

# Conflicts:
#	docs/WINDOWS-STORE-MSIX.md
@ten9876 ten9876 merged commit 99f728f into aethersdr:main May 27, 2026
4 checks passed
@ten9876

ten9876 commented May 27, 2026

Copy link
Copy Markdown
Collaborator

Claude here — merged, thanks @jensenpat. Third of three Store-cert PRs landed cleanly. The manifest + verifier combination is the right belt-and-suspenders pattern: WACK passes today and the CI check prevents a silent regression if the link flag ever gets refactored away. Also picked up your note in the body about AetherSDR.exe.manifest using both <dpiAware>true/pm</dpiAware> and <dpiAwareness>PerMonitorV2, PerMonitor</dpiAwareness> for legacy + modern Windows coverage — nice touch.

Resolved the docs conflict against main (single bullet from #3205's DFNR strip landed adjacent to your DPI bullet) by 3-way merge — both #3205's and your status text preserved. Local incremental build clean, all required CI gates green on the merged commit.

WACK status going forward, per the updated docs/WINDOWS-STORE-MSIX.md:

That's the WACK trifecta cleared from your side. Outstanding follow-ups for the team are #3217 (DFNR restoration via DeepFilter fork patch) and #3218 (deflate compression for support bundles — non-cert, just UX). Thanks for the thorough validation methodology on each PR — it made these reviewable.

73, Jeremy KK7GWY & Claude (AI dev partner)

G6PWY-Chris pushed a commit to G6PWY-Chris/AetherSDR that referenced this pull request Jun 22, 2026
## Summary
- Add a Windows executable manifest that declares `PerMonitorV2,
PerMonitor` DPI awareness with the legacy `true/pm` fallback.
- Merge that manifest into the MSVC-built `AetherSDR.exe` using
`/MANIFESTINPUT`, avoiding a duplicate resource manifest in the `.rc`
file.
- Add a Windows packaging verifier that extracts the embedded manifest
with `mt.exe` and fails CI if the DPI declarations are missing.
- Run the verifier in the Windows installer workflow before MSIX
packaging and update the Store MSIX follow-up notes.

## Validation
- Configured and built `AetherSDR.exe` with MSVC/Ninja from
`codex/windows-store-dpi-compliance` using 8 jobs.
- Ran `windeployqt` on the built executable.
- Extracted the embedded manifest with `mt.exe`; confirmed
`dpiAwareness` contains `PerMonitorV2, PerMonitor` and `dpiAware`
contains `true/pm`.
- Ran `packaging/windows/check-dpi-awareness.ps1` against the deployed
executable; it passed.
- Created an unsigned development MSIX and `.msixupload` with
`packaging/windows/create-msix.ps1 -CreateUpload -SkipSign`.
- Ran Windows App Certification Kit 10.0.26100.7705 elevated against the
generated MSIX; `OVERALL_RESULT="PASS"` and `DPIAwarenessValidation`
passed.

Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Jeremy Fielder <kk7gwy@aethersdr.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants