Describe the solution you'd like
ThreadSafeComponents.EnsureComponent / FindByPath scan the full component slice on every call. Discovery and graph phases register many units, so membership work grows with the set size.
Index by resolved path (map) while keeping insertion-order slice for ToComponents. Same public API and symlink-aware first-wins identity.
Describe alternatives you've considered
Keep the linear scan; acceptable only for small repos.
Additional context
PR: #6587
Describe the solution you'd like
ThreadSafeComponents.EnsureComponent/FindByPathscan the full component slice on every call. Discovery and graph phases register many units, so membership work grows with the set size.Index by resolved path (map) while keeping insertion-order slice for
ToComponents. Same public API and symlink-aware first-wins identity.Describe alternatives you've considered
Keep the linear scan; acceptable only for small repos.
Additional context
PR: #6587