perf: pre-fetch CSO external ID dictionary for O(1) import matching#442
Merged
perf: pre-fetch CSO external ID dictionary for O(1) import matching#442
Conversation
…440) Replace N per-object database queries during import with a single bulk query that loads all CSO external ID mappings into an in-memory dictionary at import start. FindMatchingCso now uses O(1) dictionary lookup (Lookup phase) followed by PK-based hydration (Hydrate phase), eliminating the LOWER() string-scan queries that dominated import time. The Lookup/Hydrate separation provides a clean seam for future persistent caching (#436) — the dictionary becomes the cache warm-up path, and the hydration method becomes the cache-miss handler. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…e skill Adds a new "Documentation Review and Update" section that runs before changelog validation, ensuring all docs, C4/Mermaid diagrams, and marketing site content are current before each release. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add three new directive blocks: plan-before-building (with tunnel-vision breaker), demand-quality standards, and subagent strategy. Replace the manual release checklist with a pointer to the /release skill. Minor wording cleanups (branch naming, security section). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move detailed reference material out of the root CLAUDE.md (657 -> 362 lines, 45% reduction) into contextual sub-folder files that load only when working in those directories: - src/CLAUDE.md: code conventions, architecture rules, project locations, common development tasks - .devcontainer/CLAUDE.md: commands, shell aliases, Docker workflows, dependency policy, environment setup, troubleshooting Root retains all behavioural guardrails, critical requirements, and short summaries with pointers to the sub-files. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Integration test results (S8 MediumLarge, OpenLDAP)
All 6 S8 tests passed. All 2,463 unit tests pass.
Test plan
ImportBatchPrefetchTests.cs(empty CS, re-import, mixed new/existing, mid-batch creation, repository methods)Closes #440
🤖 Generated with Claude Code