Repository navigation
[repo-assist] perf: index related section lookups - #1416
BenjaminMichaelis merged 1 commit into
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟢 Approval recommended
The localized optimization preserves existing lookup behavior, with no unresolved findings.
No open issues 🎉
What changed in this PR
Optimizes related-section mapping in FindRelatedSections by replacing repeated scans with a per-request index.
Changes:
- Indexes site mappings by chapter and heading.
- Uses dictionary lookups while preserving case-insensitive matching, first-match selection, and fallback behavior.
| File | Description |
|---|---|
| EssentialCSharp.Web/Tools/BookSearchTool.cs | Replaces repeated mapping scans with indexed lookups. |
Review effort: Balanced
|
One or more custom setup steps configured for this repository failed during this Copilot code review run: Setup steps run before each review. If the review above is missing context, or no review was posted at all, the failing step above may be the cause. See the workflow run for failure details, fix your setup steps configuration, and re-request a review. Note You can configure setup steps for Copilot code review separately from Copilot cloud agent with a |
🤖 This is an automated PR from Repo Assist, an AI assistant for this repository.
Summary
FindRelatedSectionspreviously searched every site mapping for each semantic result. This change builds a per-request chapter/heading index once and uses dictionary lookups, reducing the mapping phase from O(results × mappings) to O(mappings + results) while preserving case-insensitive matching and first-match behavior.Root cause and rationale
Related-section results performed a linear scan of the complete site-mapping collection for every result. As the book mapping grows, that repeated work scales unnecessarily. The local index keeps the existing result and fallback behavior but avoids repeated enumeration.
Test Status
dotnet build EssentialCSharp.Web/EssentialCSharp.Web.csproj --configuration Release --no-restoredotnet test EssentialCSharp.Web.Tests/EssentialCSharp.Web.Tests.csproj --configuration Release --no-restore: 149 passed, 2 pre-existing external integration failures (CaptchaService_Verify_SuccessandKnownBreachedPassword_IsDetected) because their third-party services were unavailable in this environment.git diff --checkNo new dependencies were added.
Warning
Firewall blocked 2 domains
The following domains were blocked by the firewall during workflow execution:
api.hcaptcha.comapi.pwnedpasswords.comTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See Network Configuration for more information.
Add this agentic workflow to your repo
To install this agentic workflow, run