Skip to content

Stabilize macOS net8 subproject watch reconciliation - #4989

Merged
Widthdom merged 4 commits into
mainfrom
fix-issue4955
Jul 30, 2026
Merged

Stabilize macOS net8 subproject watch reconciliation#4989
Widthdom merged 4 commits into
mainfrom
fix-issue4955

Conversation

@Widthdom

Copy link
Copy Markdown
Owner

Summary

  • Keep macOS .NET 8 subproject project-tree delivery on FileSystemWatcher/FSEvents while polling only the exact ancestor .gitignore and .cdidxignore paths.
  • Reserve full-project polling for watcher recovery attempts and preserve the .NET 9 and non-macOS backend-selection behavior.
  • Add deterministic regression coverage, bilingual user/developer/testing documentation, and a CHANGELOG fragment.

Root cause

On macOS under .NET 8, the FSEvents path can silently miss changes to ancestor ignore files when watching a subproject. Extending the reconciliation wait to 60 seconds did not recover, confirming an event-delivery miss rather than slow synchronization. The fix supplements normal project-tree events with a bounded exact-path poll of ancestor ignore files, avoiding recursive idle scans of the subproject.

Validation

  • Issue Stabilize net8 subproject watcher reconciliation for ancestor .gitignore changes #4955 related tests: .NET 8: 10 passed; .NET 9: 10 passed
  • Watcher test class: .NET 8: 60 passed; .NET 9: 60 passed
  • Repeated real .NET 8 ancestor-ignore integration runs: passed
  • Full Release suite: .NET 8: 10,879 passed, 7 skipped, 0 failed; .NET 9: 10,405 passed, 420 skipped, 0 failed
  • Release build: 0 warnings, 0 errors
  • Post-commit Debug build: 0 warnings, 0 errors
  • CHANGELOG fragment validation: 60 fragments valid
  • Local index freshness/workspace check: matched, no failed checks
  • Codex adversarial review: addressed the recursive-polling performance finding and the duplicated bilingual documentation finding; no unresolved findings remain

Documentation / changelog

  • USER_GUIDE.md
  • DEVELOPER_GUIDE.md
  • TESTING_GUIDE.md
  • changelog.d/unreleased/4955.fixed.md

Follow-up candidates

None.

Fixes #4955

@Widthdom
Widthdom marked this pull request as ready for review July 30, 2026 01:48
@Widthdom
Widthdom merged commit a894355 into main Jul 30, 2026
12 checks passed
@Widthdom
Widthdom deleted the fix-issue4955 branch July 30, 2026 01:48
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.

Stabilize net8 subproject watcher reconciliation for ancestor .gitignore changes

1 participant