Skip to content

fix(notify): wire Windows MCP configure onto navigation-none setup - #189

Draft
777genius wants to merge 14 commits into
cursor/uap-installer-windows-notify-6c84from
cursor/uap-installer-windows-configure-6c84
Draft

777genius wants to merge 14 commits into
cursor/uap-installer-windows-notify-6c84from
cursor/uap-installer-windows-configure-6c84

Conversation

@777genius

@777genius 777genius commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Stacks on #187. After Windows production toast delivery and navigation-none installer, R0 auto/explicit --agent-notify must treat Windows as a supported MCP configure OS instead of skipping or erroring as unsupported_platform.

This does not fold Windows into #185 (macOS-only capability gate on #177) or into the Linux configure child of #186.

What changed

  • Cherry-picks the R0 capability-aware configure contract onto Windows P7.
  • agent_notify_platform_supported / agentNotifySetupSupported() accept Darwin or Windows (Git Bash mingw*/msys*/cygwin*).
  • Auto-default bootstrap and /init now call configure on Windows (navigation=none via the existing default route).
  • Explicit --agent-notify on Windows is a real configure attempt, not an unsupported-OS failure.
  • Unsupported OS (Linux on this stack) still skips on auto-default (exit 0) and fails explicit request (exit 1).
  • Includes the Windows P7 runner fixes: journal owner/DACL, anonymous-pipe stdio, directory Sync no-op (FlushFileBuffers does not support directory handles), NtCreateFile FILE_GENERIC_* rights (not unmapped GENERIC_WRITE), IdentityMode(0600) private policy, and portable locator filesystem.
  • Existing-installer MCP command is the generated claude-notifications.bat launcher, not the Unix bin/claude-notifications name that does not exist on Windows.
  • TestSetupCodexE2EConfigureNotifications now stages a small platform-named writer instead of the 32 MiB Windows CLI, so the test can run on Windows runners.
  • TestNotificationBootstrapWindowsGitBashUname stubs uname as MINGW64_NT so Linux CI proves Git Bash platform detection.
  • Skill ownership still records POSIX 0600. Inspect/CAS compare that record to the host-retained IdentityMode so Windows enable revalidate does not treat a just-projected skill as registration_conflict.

Tests

  • go test ./internal/agentnotify/clientsetup ./internal/agentnotify/setup ./cmd/claude-notifications -count=1
  • TestSkillIdentitiesEqualHostMode and Windows-only TestWindowsSkillInspectAfterApply cover the fingerprint mismatch that failed TestSetupCodexE2EConfigureNotifications on GH Windows 1.26.
Open in Web Open in Cursor 

cursoragent and others added 2 commits September 14, 2026 18:10
Auto-default skips agent-notify MCP on unsupported OS or an old CLI and
keeps hooks-only success. Explicit --agent-notify and a failed configure
of a supported capability now return incomplete/nonzero without rolling
back committed hooks.

Co-authored-by: Илия <iliyazelenkog@gmail.com>
…etup

Windows is a supported agent-notify configure OS after production toast
delivery and navigation-none installer. Auto-default now calls configure
instead of skipping as unsupported_platform; explicit --agent-notify no
longer fails as an unsupported OS. Git Bash uname (mingw/msys/cygwin)
is treated as Windows in bootstrap and /init.

Co-authored-by: Илия <iliyazelenkog@gmail.com>
@coderabbitai

coderabbitai Bot commented Sep 14, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Co-authored-by: Илия <iliyazelenkog@gmail.com>
cursoragent and others added 3 commits September 14, 2026 18:37
Windows identityMode stores 0666/0444 only, and clientsetup previously
always returned ErrConflict from the non-unix reader. Add confined NT
document reads and accept ledger-owned regular commands on Windows.

Co-authored-by: Илия <iliyazelenkog@gmail.com>
Existing-installer configure pointed at bin/claude-notifications, which
does not exist on Windows. Use the generated .bat alias and a small
platform-named fixture so the e2e path runs under the 32 MiB cap.

Co-authored-by: Илия <iliyazelenkog@gmail.com>
Co-authored-by: Илия <iliyazelenkog@gmail.com>
@codecov

codecov Bot commented Sep 14, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 46.51163% with 23 lines in your changes missing coverage. Please review.
✅ Project coverage is 65.06%. Comparing base (05d0c6d) to head (c4d4d6f).

Files with missing lines Patch % Lines
cmd/claude-notifications/setup_codex.go 25.00% 16 Missing and 2 partials ⚠️
internal/agentnotify/clientsetup/skill.go 76.92% 1 Missing and 2 partials ⚠️
cmd/claude-notifications/notification_configure.go 66.66% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@                             Coverage Diff                              @@
##           cursor/uap-installer-windows-notify-6c84     #189      +/-   ##
============================================================================
- Coverage                                     65.25%   65.06%   -0.20%     
============================================================================
  Files                                           172      172              
  Lines                                         17287    17316      +29     
============================================================================
- Hits                                          11281    11267      -14     
- Misses                                         4383     4427      +44     
+ Partials                                       1623     1622       -1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

cursoragent and others added 8 commits September 14, 2026 19:05
Co-authored-by: Илия <iliyazelenkog@gmail.com>
…tests

notification_bootstrap_test.go only builds on linux/darwin, so comparing
runtime.GOOS to windows is dead. Use agentNotifySetupSupported() instead.

Co-authored-by: Илия <iliyazelenkog@gmail.com>
…ap-installer-windows-configure-6c84

Co-authored-by: Илия <iliyazelenkog@gmail.com>
…ap-installer-windows-configure-6c84

Co-authored-by: Илия <iliyazelenkog@gmail.com>
…ap-installer-windows-configure-6c84

Co-authored-by: Илия <iliyazelenkog@gmail.com>
…ap-installer-windows-configure-6c84

Co-authored-by: Илия <iliyazelenkog@gmail.com>
…ap-installer-windows-configure-6c84

Co-authored-by: Илия <iliyazelenkog@gmail.com>
Codex configure registered the skill, then enable revalidate Inspect
compared the stored POSIX 0600 identity to the Windows fingerprint
0666 and returned registration_conflict. Keep the recorded 0600
contract; compare and CAS against IdentityMode so Inspect/no-op Apply
succeed after projection.

Co-authored-by: Илия <iliyazelenkog@gmail.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