fix: C# bin/obj skip uses root-only marker detection, misses subdirectory project roots #63
Labels
No labels
code-review
correctness
dos
performance
security
severity/high
severity/low
severity/medium
tech-debt
Kind/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
h-dv/code-index#63
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source: a1x dogfood (latent — not that repo's actual cause, but a real gap).
Symptom
bin/andobj/are skipped only when a*.csproj/*.slnsits DIRECTLY in the indexed root. If the indexed root is a SUBDIRECTORY of the solution (monorepo member; the.slna level up), the marker check fails and everybin//obj/tree under the root is walked and indexed as build output.Root cause
walker::has_csharp_marker(root)(crates/indexer/src/walker.rs) reads only the root dir (non-recursive), andskip_set_forgates the bin/obj skip on it.Fix (implemented, pending commit)
New
has_csharp_marker_at_or_above(root): checks the root, then walks ancestors UP TO the enclosing git root (bounded viagit_root_at_or_above). Without a git boundary it stays root-only, so an unrelated solution in an arbitrary ancestor is never adopted.Tests:
csharp_marker_at_ancestor_within_git_root_skips_bin_obj,csharp_marker_above_git_root_is_not_adopted.