[2032 by GPT-5.6 Sol] Make Windows MSI Start Menu shortcut machine-wide - #2034
Conversation
…achine-wide Implemented by ProPR AI using gpt-5.6-sol model. Implementation completed successfully.
|
/merge |
|
🔀 Auto-merged No conflicts were found — the merge was verified by an AI agent. 🤖 Verification Details
System-triggered merge conflict resolution |
…into 2032/gpt-5.6-sol-make-windows-msi-start-me-20260831-2021-uou
|
/review |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThe PR correctly moves the Windows shortcut to the machine-wide Start Menu and aligns its component ownership with the per-machine MSI. It is ready to merge within scope once the pending checks complete successfully. ✅ Correct machine-wide authoring — The installer uses ✅ Real ordinary-user validation — The Windows smoke test launches a separate process under ordinary-user credentials and verifies that the shortcut is present and readable, then confirms its removal after uninstall. ✅ Focused regression coverage — Tests explicitly reject the former per-user folder and all HKCU registry values while checking both supported architectures. Merge blockersNo merge blockers. SuggestionsThese are optional follow-ups and are not sent to S1: 🟢 Validate the shortcut targetThe installed-app smoke test confirms that the ScoreThe implementation is focused, internally consistent, and well covered at both source-generation and installed-application levels. No failures are currently reported, though the pending checks—especially native Windows validation—should complete before merging. Score: 9/10 🤖 Review Details
🤖 Review by ProPR |
|
Fix only the authoritative native shortcut blocker on exact head Fresh x64 job 99636092959 installed the MSI successfully, then failed because Change only the directory identifier back from Update focused source assertions and wording to require Run focused installer tests, desktop typecheck/tests, diff-check, then fresh x64 and ARM64 native installed-user validation. Acceptance requires the common ProgramData shortcut and HKLM marker to exist after install, be readable by the distinct ordinary user, and be absent after uninstall. Do not merge or sync the base. |
|
✅ Applied the requested follow-up changes in commit e1b318f Summary of ChangesImplemented the narrowly scoped fix on exact head
Validation passed:
Fresh native x64/ARM64 validation remains pending because the workflow only checks out committed PR SHAs and has no manual-dispatch trigger. The PR synchronize event will launch it after the surrounding system commits these changes. 🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
…7648c34e70ceb7312d42e1ca778be231`. Implemented the narrowly scoped fix on exact head `1aace8c17648c34e70ceb7312d42e1ca778be231`. - Replaced invalid `CommonProgramMenuFolder` with `ProgramMenuFolder` in [build-windows-machine-installer.mjs](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T20-45-57/apps/desktop/scripts/build-windows-machine-installer.mjs:232). - Updated focused assertions to enforce the complete machine-scope contract and reject `CommonProgramMenuFolder` and HKCU values. - Preserved `perMachine`, `Win64="yes"`, HKLM registrations/key path, shortcut metadata, removal behavior, and native proof unchanged. - No unrelated files changed; no commit, merge, or base sync performed. Validation passed: - Installer tests: 7/7 - Release-workflow tests: 16/16 - Desktop typechecks: passed - Desktop tests: 155 passed, 6 platform-specific skipped - `git diff --check`: passed Fresh native x64/ARM64 validation remains pending because the workflow only checks out committed PR SHAs and has no manual-dispatch trigger. The PR synchronize event will launch it after the surrounding system commits these changes. PR: #2034 Comment by: @integry (ID: 5484331917) Model: gpt-5.6-sol
|
/review |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThe PR correctly implements a machine-wide Windows Start Menu shortcut and is ready to merge within scope once the pending CI checks complete. ✅ Correct WiX directory semantics — ✅ Coherent machine component — The shortcut component is 64-bit and uses a single HKLM key path, with no remaining HKCU registry values. ✅ Strong native validation — The smoke test verifies shortcut presence and readability as an ordinary user, then confirms shortcut, folder, and marker removal after uninstall. Merge blockersNo merge blockers. SuggestionsThese are optional follow-ups and are not sent to No suggestions. ScoreThe implementation is focused, internally consistent, and well covered by generated-source and native installation tests. No current-head failures are reported, although the pending Windows validation checks should complete before merging. Score: 9/10 🤖 Review Details
🤖 Review by ProPR |
|
Implement only MSI correction F2 on exact head Authoritative Windows x64 job 99640199948 failed in LIGHT before install:
The prior Restore the known-valid shortcut component authoring only: keep Update focused assertions to require this exact ICE-valid arrangement, reject |
|
✅ Applied the requested follow-up changes in commit 83aecdf Summary of ChangesImplemented MSI correction F2 on exact head
Changed only:
Validation:
No commit, merge, or synchronization performed. 🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
…cc3d48df01fd126e6ecbe2ae07`. Implemented MSI correction F2 on exact head `e1b318ffa2c139cc3d48df01fd126e6ecbe2ae07`. - Kept `ProgramMenuFolder`. - Restored the shortcut marker KeyPath to HKCU. - Removed `Win64="yes"` from `ApplicationStartMenuShortcutComponent`. - Preserved per-machine scope and HKLM protocol/App Paths registration. - Retained the ordinary-user common Start Menu presence/removal proof. - Removed obsolete native checks for the superseded HKLM shortcut marker. - Updated assertions to enforce the ICE-valid arrangement and reject `CommonProgramMenuFolder`. Changed only: - [build-windows-machine-installer.mjs](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T21-00-00/apps/desktop/scripts/build-windows-machine-installer.mjs) - [build-windows-machine-installer.test.mjs](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T21-00-00/apps/desktop/scripts/build-windows-machine-installer.test.mjs) - [test-installed-windows-app.ps1](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T21-00-00/apps/desktop/scripts/test-installed-windows-app.ps1) - [release-workflow.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T21-00-00/apps/desktop/src/release-workflow.test.ts) Validation: - Installer tests: 7/7 passed - Release-workflow tests: 16/16 passed - Desktop/UI typechecks: passed - Desktop tests: 155 passed, 6 platform-specific skipped - `git diff --check`: passed No commit, merge, or synchronization performed. PR: #2034 Comment by: @integry (ID: 5484490917) Model: gpt-5.6-sol
|
/review |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThe PR correctly validates a machine-wide Start Menu shortcut and adds a carefully isolated ordinary-user smoke probe, but it needs one localized correction before merge. ✅ Correct MSI contract — Tests verify per-machine scope, ✅ Safe probe isolation — The probe receives the canonical shortcut through an exact seven-entry environment and emits only fixed, redacted outcomes. ✅ Resilient cleanup — Cleanup is granular, preserves the primary failure, and limits fallback shortcut removal to paths attributed to this run. Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F3: 🔴 Child outcome mapping uses positional indexing
SuggestionsThese are optional follow-ups and are not sent to No suggestions. ScoreThe core implementation is strong, but the new diagnostic path is incorrect for every documented nonzero child outcome. The correction is small and bounded; current checks are also still pending. Score: 6/10 🤖 Review Details
🤖 Review by ProPR |
|
Implement only diagnostic F10 on exact head Authoritative F9 x64 job 99671951719 proves the production wrapper and numeric-key mapper are now sound: real Windows mapping/typecheck/package/MSI build passed, MSI install and admin common-shortcut validation passed, but both actual launches emitted fixed Extend only the fixed redacted allowlist with documented/plausible CreateProcessWithLogonW/Process.Start failure categories needed to isolate this environment, without exposing numeric codes:
Preserve all existing mappings, ordinary Hashtable numeric-key lookup, direct/exact-one-wrapper selection, deeper rejection, UNKNOWN, bare non-Win32 fallback, and redaction. Emit only the fixed category token; never emit the number, message, path, account, service, exception, environment, or child output. Update exact mapping/cardinality and real Windows lookup tests (at minimum INVALID_HANDLE, SERVICE_DISABLED, PRIVILEGE_NOT_HELD, ACCOUNT_DISABLED, and UNKNOWN), plus sentinel redaction. Do not change process behavior, user rights/services, MSI, F6 environment/ACLs, cleanup, or success semantics yet. This run is classification only. Run desktop typecheck and focused release workflow tests. |
|
✅ Applied the requested follow-up changes in commit 62c8c06 Summary of ChangesImplemented diagnostic F10 on exact head
Validation:
🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
…b986453225de560ae483c4e`. Implemented diagnostic F10 on exact head `86faa47925fdaf288b986453225de560ae483c4e`. - Added all 16 requested fixed Win32 categories in [test-installed-windows-app.ps1](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T23-01-22/apps/desktop/scripts/test-installed-windows-app.ps1:561). - Updated exact 23-entry mapping/cardinality, native Windows lookup coverage, UNKNOWN handling, and sentinel redaction tests in [release-workflow.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T23-01-22/apps/desktop/src/release-workflow.test.ts:674). - Preserved wrapper selection, numeric hashtable lookup, fallbacks, redaction, and process behavior. Validation: - Focused release workflow: 21 passed, 1 Windows-only test skipped on Linux. - Desktop typecheck: passed. - `git diff --check`: passed. - Only the two intended files changed; no commit created. PR: #2034 Comment by: @integry (ID: 5485923810) Model: gpt-5.6-sol
|
/fix F3 |
|
✅ Applied the requested follow-up changes in commit fe67899
Summary of ChangesImplemented F3 only.
🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
Implemented F3 only.
- Changed `$shortcutProbeExitCategories` from `[ordered]@{}` to ordinary `@{}` for numeric-key lookup.
- Updated the corresponding source-structure assertion.
- Focused test passed: 21 passed, 1 Windows-only skipped.
- `git diff --check` passed.
- No commit created.
PR: #2034
Comment by: @integry (ID: 5485956015)
Model: gpt-5.6-sol
|
/review |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThe PR correctly authors and validates a machine-wide Start Menu shortcut, with careful redaction and ownership-aware cleanup. However, it needs a mandatory functional correction before merge: the newly required ordinary-user probe still cannot start on the authoritative Windows environment, and the latest changes only improve its failure label. ✅ Machine-wide contract — The validation resolves ✅ Safe diagnostics and cleanup — Spawn errors use fixed categories without exposing sensitive values, while fallback removal is non-recursive and limited to run-created paths. ✅ Strong focused coverage — Tests cover both architectures, child outcomes, Win32 wrapper selection, mapping behavior, and primary-failure preservation. Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F4: 🔴 Diagnostic mapping leaves probe nonfunctional
SuggestionsThese are optional follow-ups and are not sent to No suggestions. ScoreThe MSI and cleanup work appears carefully implemented, but the newly mandatory ordinary-user proof remains functionally blocked. The correction is localized to the probe, yet it prevents merge until validated on Windows. Score: 6/10 🤖 Review Details
🤖 Review by ProPR |
|
/fix F4 On exact head Use Win32 LogonUserW with LOGON32_LOGON_NETWORK (3) and LOGON32_PROVIDER_DEFAULT into SafeAccessTokenHandle, then WindowsIdentity.RunImpersonated. Marshal the test password securely, zero/free the unmanaged password buffer in finally, and dispose token/streams. Inside the impersonated action first require WindowsIdentity.GetCurrent().User to exactly equal the already-created ordinary test user's SID, then perform the existing canonical path, file type/reparse, bounded size, and read checks for presence; after uninstall run the same impersonated identity proof and require absence. Network logon is sufficient for local filesystem authorization and avoids hosted runner interactive window-station/profile/process-launch dependencies. Preserve the canonical CommonPrograms-derived path, fixed redacted outcomes, ownership-aware nonrecursive cleanup, MSI/WiX authoring, install/admin validation, both architecture jobs, and all prior security bounds. Remove obsolete Process.Start-only environment/profile/exit-code machinery and its tests if no longer reachable; do not weaken ordinary-user identity/access or absence semantics. Add focused tests for P/Invoke signature/constants, exact SID assertion within RunImpersonated, secure password cleanup, presence/absence checks within impersonation, fixed redaction, and rejection of legacy Process.Start proof. Run desktop typecheck, focused release-workflow/installer tests, full desktop tests, and diff-check. Acceptance is fresh x64 and ARM64 native package validation green for install, ordinary-user shortcut read, uninstall, absence, and cleanup. Do not merge or sync the base. |
|
✅ Applied the requested follow-up changes in commit 2ecdd60
Summary of ChangesImplemented F4 only on exact head
Files changed: Validation:
Fresh x64 and ARM64 installed-package validation remains for the native Windows CI runners. 🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
…178cd975fcb40057`. Implemented F4 only on exact head `fe67899ebe7f1c98b0819a9c178cd975fcb40057`. - Replaced the failing shortcut `Process.Start` proof with `LogonUserW(LOGON32_LOGON_NETWORK)` and `WindowsIdentity.RunImpersonated`. - Added exact ordinary-user SID verification, bounded shortcut metadata/read checks, and secure password buffer zero/free cleanup. - Disposes identities, streams, and `SafeAccessTokenHandle`. - Preserved fixed redacted outcomes, canonical CommonPrograms path, and ownership-aware cleanup. - Removed obsolete shortcut child-process/profile/exit-code machinery and tests. - MSI/WiX authoring and workflows remain untouched. Files changed: - [test-installed-windows-app.ps1](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T23-16-01/apps/desktop/scripts/test-installed-windows-app.ps1:90) - [release-workflow.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T23-16-01/apps/desktop/src/release-workflow.test.ts:541) Validation: - Desktop/UI typecheck: passed - Focused release-workflow/installer tests: 28 passed - Full desktop tests: 160 passed, 6 platform-specific skipped - `git diff --check`: passed - Only the two scoped files are modified - No commit, merge, base sync, or additional native diagnostic run performed Fresh x64 and ARM64 installed-package validation remains for the native Windows CI runners. PR: #2034 Comment by: @integry (ID: 5486062025) Model: gpt-5.6-sol
|
/review |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThe PR verifies the machine-wide Start Menu shortcut through installation, ordinary-user access, uninstall, and cleanup. The implementation is ready to merge within scope once the pending current-head checks complete; no merge-blocking defect is evident in the supplied diff. ✅ Secure ordinary-user proof — ✅ Thorough shortcut validation — Presence checks enforce a canonical rooted path, regular non-reparse file, bounded nonzero size, and successful content read; absence is rechecked after uninstall. ✅ Failure-safe cleanup — Cleanup is ownership-aware, nonrecursive for Start Menu resources, emits fixed diagnostics, and preserves the primary failure while still attempting every cleanup stage. Merge blockersNo merge blockers. SuggestionsThese are optional follow-ups and are not sent to No suggestions. ScoreThe changed behavior is carefully bounded and strongly covered by focused contract tests. The score reflects that the latest Windows-specific implementation is still awaiting its authoritative current-head CI runs, with no known current failure. Score: 8/10 🤖 Review Details
🤖 Review by ProPR |
AI Implementation Summary
Closes #2032
Branch:
2032/gpt-5.6-sol-make-windows-msi-start-me-20260831-2021-uouCommits: ✅ Changes committed (2c35025)
AI Processing Completed
Execution Details:
Summary:
Implemented the machine-wide Windows Start Menu shortcut.
Changes:
CommonProgramMenuFolder.Software\ProPR\Desktop.Files updated:
Validation completed:
Win64="yes".Actual WiX compilation and installed-user MSI smoke require the native Windows CI runners and could not be executed in this Linux workspace.
Detailed Logs:
01a0597d-1647-76b2-95fb-43a596bca7ecLog files stored at:
/tmp/claude-logs/issue-2032-2026-08-31T20-31-44-596Z-conversation.json/tmp/claude-logs/issue-2032-2026-08-31T20-31-44-596Z-output.txtLatest Conversation Messages
This PR was created automatically by ProPR after processing issue #2032.
💡 Need changes?
Comment on this PR to request refinements — the AI agent monitors comments and will update the implementation based on your feedback. Keep iterating until you're satisfied!