Skip to content

fix(status): detect changes to included gitignored source - #3087

Draft
mixxer wants to merge 1 commit into
colbymchenry:mainfrom
mixxer:contrib/included-ignored-source-status-20261030
Draft

mixxer wants to merge 1 commit into
colbymchenry:mainfrom
mixxer:contrib/included-ignored-source-status-20261030

Conversation

@mixxer

@mixxer mixxer commented Oct 30, 2026 •

Copy link
Copy Markdown

Fixes #3086

Pending-change detection now includes current source discovered by the existing include helper and previously indexed included paths, so Git-ignored first-party source reports additions, modifications and deletions. Existing scope checks and content hashing still decide the result. There is no size/mtime shortcut in this check.

Extracted from downstream PR15, commits aff678c496251fbb2eee0efc7069501b7e343db8 and 195734e03b5f6d0f23b278d69bf7b3b69cf38055, without the vendor-directory policy or Android tools. The source change is seven lines and uses existing helpers.

This changes pending status only. The existing sync metadata prefilter is unchanged; an edit preserving both size and mtime can still require a forced re-index to refresh the graph.

Validation

  • macOS arm64, Node 24.21.0, fresh npm ci --ignore-scripts using the pinned lockfile; npm run build passed.
  • Full portable suite: 810 files passed, 18 skipped; 9,231 tests passed, 422 skipped, zero failures (npm test -- --minWorkers=1 --maxWorkers=4, CODEGRAPH_KERNEL=0).
  • New regression covers clean status, excluded noise, a same-size edit with restored mtime, an ignored addition and a deletion. It fails on the unmodified upstream control and passes here, on portable and native extraction paths.
  • Bounded cost sample under concurrent suite load, 1,000 explicitly included Java files / 1,062,890 bytes, median of seven warm calls: about 59 ms before and 142 ms after. The added work discovers and hashes included source; there is no new cache or metadata shortcut. This is not a release performance guarantee.
  • Fresh checkout of the exact published head ee949262995fcbff01128d87b4cdb69b2beb6ce1: automatic build passed; included-source status, Git-ignore parity, Git subdirectory status and the new upstream Python-supertype regression suite all passed (15 tests / 4 files).
  • Existing Git-ignore parity cases pass with the pinned ignore 7.0.14. git diff --check passed. Published source/test/changelog blob SHAs match the locally validated files.

Based on current upstream cd04b21a314757b867de36ba5992ffc32eb3cb1c. The full suite ran on the same source before its independent Python-supertype change; the status code is unchanged by that upstream commit. The new upstream changelog entry is preserved. No Node 22, Linux or Windows run is claimed. Draft for maintainer review.

This branch has not been deployed

No deployments
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.

status misses changes to gitignored first-party source selected by include

1 participant