Development record
abcd's filter-free working-tree reads (gitutil.Status, the launch dirty check DirtyTreeFiles, intent consistency dirtyCorpusPaths, the release-receipts status) still run a checked-out submodule's own clean filter: without --ignore-submodules git starts a child status inside each submodule, and FilterOverrides blanks only the filters the superproject defines, so a copied checkout's .git/modules/<sub>/config filter runs on a stale index. Sibling of iss-2610090821548169, found by the security-drain-2026-10-09 lane W sweep; kept uncommitted until its fix lands.
abcd's filter-free working-tree reads (gitutil.Status, the launch dirty check DirtyTreeFiles, intent consistency dirtyCorpusPaths, the release-receipts status) still run a checked-out submodule's own clean filter: without --ignore-submodules git starts a child status inside each submodule, and FilterOverrides blanks only the filters the superproject defines, so a copied checkout's .git/modules/<sub>/config filter runs on a stale index. Sibling of iss-2610090821548169, found by the security-drain-2026-10-09 lane W sweep; kept uncommitted until its fix lands.
Frontmatter
| id | iss-2610091935327982 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610091935327982-submodule-status-runs-submodule-clean.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-2610090821548169The launch dirty-tree check (`git diff ... HEAD` in `DirtyTreeFiles`) runs a repository `filter.<name>.clean` program as the operator on a copied checkout, and the gate can still report the tree clean.