feat: establish secure GraphRAG core - #20
Conversation
|
@coderabbitai review |
|
Warning Review limit reached
Next review available in: 47 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe PR adds framework-neutral GraphRAG core and testkit modules, validated extraction and graph contracts, deterministic retrieval and token-budget utilities, authorization-scoped in-memory projection behavior, JUnit coverage, and related Gradle and architecture updates. ChangesGraphRAG foundation
Estimated code review effort: 4 (Complex) | ~60 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@components/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjection.java`:
- Around line 40-78: Remove the redundant collidesAcrossContributionTypes
calculation and its use in the collision guard. Keep
collidesWithAnotherRevision, which already checks replacementIds against both
entityContributions and relationContributions, as the sole condition before
throwing the existing IllegalArgumentException.
In
`@components/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/FrameworkNeutralityTests.java`:
- Around line 10-13: Update
graphCoreAndTestkitDoNotBringSpringOntoTheRuntimeClasspath to enforce the full
no-Spring runtime contract by checking for Spring package availability rooted at
org.springframework, not only org.springframework.context.ApplicationContext.
Preserve the existing ClassNotFoundException assertion behavior while covering
transitive spring-core and spring-beans classes.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: b0915b87-b2e9-4908-9def-b6b2a23ebae7
⛔ Files ignored due to path filters (5)
docs/decisions/0005-secure-java-graph-kernel.mdis excluded by!docs/**docs/decisions/0010-internal-retrieval-strategies-one-hop-graph.mdis excluded by!docs/**docs/increments/completed/2026-07-23-secure-graph-rag-core/design.mdis excluded by!docs/**docs/increments/completed/2026-07-23-secure-graph-rag-core/plan.mdis excluded by!docs/**docs/vision.mdis excluded by!docs/**
📒 Files selected for processing (39)
ARCHITECTURE.mdbuild-logic/src/main/kotlin/orgmemory.java-library-conventions.gradle.ktscomponents/graph-rag-core/build.gradle.ktscomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/authorization/AuthorizedGraphScope.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/CanonicalEntity.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/CanonicalRelation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EntityContribution.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceProvenance.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractedEntity.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractedRelation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionProfile.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionRequest.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionResult.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/RelationContribution.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/RelationOrientation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/EntityRelationExtractor.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionReader.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionWriter.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphRevisionContributions.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphSeedIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/ContextTokenUsage.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/DeterministicRanker.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RankedItem.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalChannel.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalPlan.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalStrategy.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RoundRobinInterleaver.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/SecureContextBudget.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/TokenAllocation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/WholeItemBudgetAllocator.javacomponents/graph-rag-core/src/test/java/com/orgmemory/graphrag/model/ExtractionResultTests.javacomponents/graph-rag-core/src/test/java/com/orgmemory/graphrag/query/DeterministicRetrievalAlgorithmsTests.javacomponents/graph-rag-core/src/test/java/com/orgmemory/graphrag/query/RetrievalPlanTests.javacomponents/graph-rag-testkit/build.gradle.ktscomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjection.javacomponents/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/FrameworkNeutralityTests.javacomponents/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjectionSecurityTests.javagradle/libs.versions.tomlsettings.gradle.kts
📜 Review details
🧰 Additional context used
📓 Path-based instructions (3)
**/*
📄 CodeRabbit inference engine (CLAUDE.md)
**/*: Before changing unfamiliar Spring Boot 4, Spring Modulith 2, Spring AI 2, Gradle, React, Vite, Tailwind, or TypeScript APIs, consult Context7/current official documentation and the projectorgmemory-*verification skills.
Readdocs/guidelines/agent-safety.mdbefore retrieval, AI, MCP, permission, upload, graph, or export work.
Never commit.envfiles, provider keys, tokens, or customer data.
Run the relevant gates fromdocs/guidelines/testing-harness.md; use a terminating clean test as the context gate, and do not treatbootRunas verification.
Current behavior belongs in architecture/specs only after it exists in code; intent belongs in vision, roadmap, or an active increment, and repository state must not be duplicated across documents.
Files:
components/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/FrameworkNeutralityTests.javasettings.gradle.ktscomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/RelationOrientation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/TokenAllocation.javacomponents/graph-rag-core/build.gradle.ktscomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionWriter.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RankedItem.javabuild-logic/src/main/kotlin/orgmemory.java-library-conventions.gradle.ktscomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/RelationContribution.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphSeedIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/EntityRelationExtractor.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionResult.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/CanonicalEntity.javacomponents/graph-rag-testkit/build.gradle.ktscomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/ContextTokenUsage.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionProfile.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EntityContribution.javacomponents/graph-rag-core/src/test/java/com/orgmemory/graphrag/query/DeterministicRetrievalAlgorithmsTests.javagradle/libs.versions.tomlcomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/authorization/AuthorizedGraphScope.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/DeterministicRanker.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/SecureContextBudget.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionRequest.javacomponents/graph-rag-core/src/test/java/com/orgmemory/graphrag/model/ExtractionResultTests.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionReader.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphRevisionContributions.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalStrategy.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/CanonicalRelation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceProvenance.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractedEntity.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractedRelation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalPlan.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/WholeItemBudgetAllocator.javacomponents/graph-rag-core/src/test/java/com/orgmemory/graphrag/query/RetrievalPlanTests.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalChannel.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RoundRobinInterleaver.javacomponents/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjectionSecurityTests.javaARCHITECTURE.mdcomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjection.java
**/*.{java,sql}
📄 CodeRabbit inference engine (CLAUDE.md)
Pair JPA schema changes with a Flyway migration.
Files:
components/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/FrameworkNeutralityTests.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/RelationOrientation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/TokenAllocation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionWriter.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RankedItem.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/RelationContribution.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphSeedIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/EntityRelationExtractor.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionResult.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/CanonicalEntity.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/ContextTokenUsage.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionProfile.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EntityContribution.javacomponents/graph-rag-core/src/test/java/com/orgmemory/graphrag/query/DeterministicRetrievalAlgorithmsTests.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/authorization/AuthorizedGraphScope.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/DeterministicRanker.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/SecureContextBudget.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionRequest.javacomponents/graph-rag-core/src/test/java/com/orgmemory/graphrag/model/ExtractionResultTests.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionReader.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphRevisionContributions.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalStrategy.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/CanonicalRelation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceProvenance.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractedEntity.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractedRelation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalPlan.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/WholeItemBudgetAllocator.javacomponents/graph-rag-core/src/test/java/com/orgmemory/graphrag/query/RetrievalPlanTests.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalChannel.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RoundRobinInterleaver.javacomponents/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjectionSecurityTests.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjection.java
**/*.java
📄 CodeRabbit inference engine (CLAUDE.md)
JetBrains IDE inspection is a Java-backend gate only.
Files:
components/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/FrameworkNeutralityTests.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/RelationOrientation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/TokenAllocation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionWriter.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RankedItem.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/RelationContribution.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphSeedIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/EntityRelationExtractor.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionResult.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/CanonicalEntity.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/ContextTokenUsage.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionProfile.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EntityContribution.javacomponents/graph-rag-core/src/test/java/com/orgmemory/graphrag/query/DeterministicRetrievalAlgorithmsTests.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/authorization/AuthorizedGraphScope.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/DeterministicRanker.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/SecureContextBudget.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionRequest.javacomponents/graph-rag-core/src/test/java/com/orgmemory/graphrag/model/ExtractionResultTests.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionReader.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphRevisionContributions.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalStrategy.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/CanonicalRelation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceProvenance.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractedEntity.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractedRelation.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalPlan.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/WholeItemBudgetAllocator.javacomponents/graph-rag-core/src/test/java/com/orgmemory/graphrag/query/RetrievalPlanTests.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalChannel.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RoundRobinInterleaver.javacomponents/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjectionSecurityTests.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjection.java
🪛 LanguageTool
ARCHITECTURE.md
[grammar] ~149-~149: Ensure spelling is correct
Context: ... exposed as a public request option. Its testkit provides a permission-scoped in-memory ...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🔇 Additional comments (38)
ARCHITECTURE.md (1)
4-5: LGTM!Also applies to: 23-27, 143-156
build-logic/src/main/kotlin/orgmemory.java-library-conventions.gradle.kts (1)
1-4: LGTM!components/graph-rag-core/build.gradle.kts (1)
1-9: LGTM!components/graph-rag-testkit/build.gradle.kts (1)
1-11: LGTM!gradle/libs.versions.toml (1)
11-11: LGTM!Also applies to: 24-26
settings.gradle.kts (1)
22-23: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/RelationOrientation.java (1)
1-6: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceProvenance.java (1)
7-50: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EntityContribution.java (1)
6-27: LGTM!components/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjectionSecurityTests.java (1)
57-116: LGTM!Also applies to: 118-154, 156-228, 230-293
components/graph-rag-core/src/main/java/com/orgmemory/graphrag/authorization/AuthorizedGraphScope.java (1)
1-32: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/CanonicalEntity.java (1)
1-22: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/CanonicalRelation.java (1)
1-43: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionWriter.java (1)
1-11: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/DeterministicRanker.java (1)
1-27: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalStrategy.java (1)
1-31: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalPlan.java (1)
1-42: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/SecureContextBudget.java (1)
1-40: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RoundRobinInterleaver.java (1)
1-50: LGTM!components/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjection.java (1)
86-330: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/RelationContribution.java (1)
7-32: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractedEntity.java (1)
5-33: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RankedItem.java (1)
5-16: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/RetrievalChannel.java (1)
3-7: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/TokenAllocation.java (1)
6-13: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/WholeItemBudgetAllocator.java (1)
13-36: LGTM!components/graph-rag-core/src/test/java/com/orgmemory/graphrag/query/DeterministicRetrievalAlgorithmsTests.java (1)
12-55: LGTM!components/graph-rag-core/src/test/java/com/orgmemory/graphrag/query/RetrievalPlanTests.java (1)
11-60: LGTM!components/graph-rag-core/src/test/java/com/orgmemory/graphrag/model/ExtractionResultTests.java (1)
11-68: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractedRelation.java (1)
1-38: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionProfile.java (1)
1-29: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionRequest.java (1)
1-34: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ExtractionResult.java (1)
1-33: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/EntityRelationExtractor.java (1)
1-10: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionReader.java (1)
1-34: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphRevisionContributions.java (1)
1-61: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphSeedIndex.java (1)
1-20: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/query/ContextTokenUsage.java (1)
1-14: LGTM!
✅ Action performedReview finished.
|
What changed
graph-rag-coreand reusablegraph-rag-testkitGradle modulesAuthorizedGraphScopefor every graph read contractWhy
OrgMemory needs a reusable GraphRAG semantic kernel before adding Spring AI or PostgreSQL adapters. The core must keep restricted contributions out of seed ranking, descriptions, adjacency, degree, weight, and citations instead of post-filtering globally merged graph data.
SECURE_MIXremains the default product plan, while trusted internal orchestration can select narrower strategies for evaluation or fallback without exposing LightRAG modes through Assistant or MCP APIs.Validation
./gradlew.bat --no-daemon compileJava./gradlew.bat --no-daemon clean testgit diff --checkmechanical gates passDeliberately deferred
Summary by CodeRabbit