Repository navigation
Add LightRAG projection contracts - #27
Conversation
|
Warning Review limit reached
Next review available in: 39 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 ignored due to path filters (3)
📒 Files selected for processing (6)
📝 WalkthroughWalkthroughThis change introduces evidence-scoped authorization, immutable float vectors, evidence-reference provenance, projection publication and storage contracts, exact caches, telemetry events, in-memory implementations, and PostgreSQL/test migrations for the updated APIs. ChangesGraphRAG contracts
GraphRAG integration migration
Contract and integration validation
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
🚥 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: 3
🤖 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-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionBatch.java`:
- Around line 28-31: Update the generation validation in ProjectionBatch to
reject expectedPreviousGeneration == Long.MAX_VALUE before calculating
expectedPreviousGeneration + 1, preventing overflow from accepting
Long.MIN_VALUE as a valid successor. Preserve the existing immediate-successor
validation for all other values.
In
`@components/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionPublicationStore.java`:
- Around line 35-38: Update the ProjectionPublicationStore.publish contract and
its publication coordinator so preparedProjections is not treated as proof of
readiness; durably record staging completion and have the publication
transaction verify every required ProjectionKind before advancing the shared
head, rejecting incomplete generations such as a missing VECTOR projection.
In
`@components/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryContentStore.java`:
- Around line 84-120: Update recordsAt and readableState to resolve content only
through recorded published snapshot batch IDs, never by selecting arbitrary
staged batches matching namespace and generation. Preserve staged batches
separately, reject snapshots whose batch ID is not published, and use the
published predecessor’s records when creating a later batch. Add a conformance
test covering two same-generation batches where the first aborts and the second
publishes successfully.
🪄 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: 14c4872e-c8c3-42a7-9328-0ddb172913c4
⛔ Files ignored due to path filters (6)
docs/conventions.mdis excluded by!docs/**docs/decisions/0013-full-lightrag-semantic-port.mdis excluded by!docs/**docs/increments/active/2026-07-23-full-lightrag-semantic-port/design.mdis excluded by!docs/**docs/increments/active/2026-07-23-full-lightrag-semantic-port/plan.mdis excluded by!docs/**docs/research/lightrag-v1.5.4-parity-manifest.mdis excluded by!docs/**docs/specs/domains/secure-graph-rag.mdis excluded by!docs/**
📒 Files selected for processing (36)
apps/worker/src/main/java/com/orgmemory/worker/graph/GraphIndexingProcessor.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/authorization/AuthorizedEvidenceScope.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/authorization/AuthorizedGraphScope.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/cache/ModelInvocationCache.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/cache/RetrievalResultCache.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/indexing/GraphContributionAssembler.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ContributionEmbedding.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceProvenance.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceReference.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/FloatVector.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/observability/GraphRagEventSink.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphEmbeddingIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionReader.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphRevisionEmbeddings.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphSeedIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphTopologyCandidateIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ContentStore.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/LexicalIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionBatch.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionKind.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionNamespace.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionPublicationStore.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionSnapshot.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/StagedProjectionWriter.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/VectorIndex.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryContentStore.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjection.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryModelInvocationCache.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryProjectionPublicationStore.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryRetrievalResultCache.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/ProjectionPublicationConformance.javacomponents/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjectionSecurityTests.javacomponents/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/ProjectionContractTests.javaintegrations/graph-rag-postgres/src/main/java/com/orgmemory/graphrag/postgres/PostgresGraphProjectionStore.javaintegrations/graph-rag-postgres/src/test/java/com/orgmemory/graphrag/postgres/ApacheAgeGraphTopologyProjectionIntegrationTests.javaintegrations/graph-rag-postgres/src/test/java/com/orgmemory/graphrag/postgres/PostgresGraphProjectionStoreIntegrationTests.java
💤 Files with no reviewable changes (1)
- components/graph-rag-core/src/main/java/com/orgmemory/graphrag/authorization/AuthorizedGraphScope.java
📜 Review details
⏰ Context from checks skipped due to timeout. (1)
- GitHub Check: Backend · Java 25
🧰 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-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionKind.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphRevisionEmbeddings.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/FloatVector.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionNamespace.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionSnapshot.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphTopologyCandidateIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceReference.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ContentStore.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphSeedIndex.javaapps/worker/src/main/java/com/orgmemory/worker/graph/GraphIndexingProcessor.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/LexicalIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/indexing/GraphContributionAssembler.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/VectorIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionPublicationStore.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ContributionEmbedding.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryRetrievalResultCache.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryModelInvocationCache.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/StagedProjectionWriter.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/cache/RetrievalResultCache.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/authorization/AuthorizedEvidenceScope.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/cache/ModelInvocationCache.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionBatch.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionReader.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/observability/GraphRagEventSink.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/ProjectionPublicationConformance.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphEmbeddingIndex.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryProjectionPublicationStore.javaintegrations/graph-rag-postgres/src/test/java/com/orgmemory/graphrag/postgres/ApacheAgeGraphTopologyProjectionIntegrationTests.javacomponents/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjectionSecurityTests.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryContentStore.javacomponents/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/ProjectionContractTests.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceProvenance.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjection.javaintegrations/graph-rag-postgres/src/test/java/com/orgmemory/graphrag/postgres/PostgresGraphProjectionStoreIntegrationTests.javaintegrations/graph-rag-postgres/src/main/java/com/orgmemory/graphrag/postgres/PostgresGraphProjectionStore.java
**/*.{java,sql}
📄 CodeRabbit inference engine (CLAUDE.md)
Pair JPA schema changes with a Flyway migration.
Files:
components/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionKind.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphRevisionEmbeddings.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/FloatVector.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionNamespace.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionSnapshot.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphTopologyCandidateIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceReference.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ContentStore.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphSeedIndex.javaapps/worker/src/main/java/com/orgmemory/worker/graph/GraphIndexingProcessor.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/LexicalIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/indexing/GraphContributionAssembler.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/VectorIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionPublicationStore.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ContributionEmbedding.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryRetrievalResultCache.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryModelInvocationCache.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/StagedProjectionWriter.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/cache/RetrievalResultCache.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/authorization/AuthorizedEvidenceScope.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/cache/ModelInvocationCache.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionBatch.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionReader.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/observability/GraphRagEventSink.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/ProjectionPublicationConformance.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphEmbeddingIndex.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryProjectionPublicationStore.javaintegrations/graph-rag-postgres/src/test/java/com/orgmemory/graphrag/postgres/ApacheAgeGraphTopologyProjectionIntegrationTests.javacomponents/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjectionSecurityTests.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryContentStore.javacomponents/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/ProjectionContractTests.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceProvenance.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjection.javaintegrations/graph-rag-postgres/src/test/java/com/orgmemory/graphrag/postgres/PostgresGraphProjectionStoreIntegrationTests.javaintegrations/graph-rag-postgres/src/main/java/com/orgmemory/graphrag/postgres/PostgresGraphProjectionStore.java
**/*.java
📄 CodeRabbit inference engine (CLAUDE.md)
JetBrains IDE inspection is a Java-backend gate only.
Files:
components/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionKind.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphRevisionEmbeddings.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/FloatVector.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionNamespace.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionSnapshot.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphTopologyCandidateIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceReference.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ContentStore.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphSeedIndex.javaapps/worker/src/main/java/com/orgmemory/worker/graph/GraphIndexingProcessor.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/LexicalIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/indexing/GraphContributionAssembler.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/VectorIndex.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionPublicationStore.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ContributionEmbedding.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryRetrievalResultCache.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryModelInvocationCache.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/StagedProjectionWriter.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/cache/RetrievalResultCache.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/authorization/AuthorizedEvidenceScope.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/cache/ModelInvocationCache.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionBatch.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionReader.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/observability/GraphRagEventSink.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/ProjectionPublicationConformance.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphEmbeddingIndex.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryProjectionPublicationStore.javaintegrations/graph-rag-postgres/src/test/java/com/orgmemory/graphrag/postgres/ApacheAgeGraphTopologyProjectionIntegrationTests.javacomponents/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjectionSecurityTests.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryContentStore.javacomponents/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/ProjectionContractTests.javacomponents/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceProvenance.javacomponents/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjection.javaintegrations/graph-rag-postgres/src/test/java/com/orgmemory/graphrag/postgres/PostgresGraphProjectionStoreIntegrationTests.javaintegrations/graph-rag-postgres/src/main/java/com/orgmemory/graphrag/postgres/PostgresGraphProjectionStore.java
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: kl3inIT/OrgMemory
Timestamp: 2026-07-23T17:58:29.070Z
Learning: Material decisions about domain boundaries, authorization, persistence, publication, concurrency, cache isolation, or parity scope require an independent Claude Fable 5 architecture debate before implementation, recorded in the active increment or an ADR.
Learnt from: CR
Repo: kl3inIT/OrgMemory
Timestamp: 2026-07-23T17:58:29.070Z
Learning: Use a real browser flow when UI behavior changes; do not claim runtime behavior from compilation alone.
🔇 Additional comments (38)
integrations/graph-rag-postgres/src/main/java/com/orgmemory/graphrag/postgres/PostgresGraphProjectionStore.java (1)
3-10: LGTM!Also applies to: 266-831, 1054-1058, 1558-1679
integrations/graph-rag-postgres/src/test/java/com/orgmemory/graphrag/postgres/ApacheAgeGraphTopologyProjectionIntegrationTests.java (1)
11-11: LGTM!Also applies to: 120-138
integrations/graph-rag-postgres/src/test/java/com/orgmemory/graphrag/postgres/PostgresGraphProjectionStoreIntegrationTests.java (1)
7-14: LGTM!Also applies to: 104-110, 143-161, 166-240, 243-286, 327-356, 374-412, 535-575, 609-642, 911-914
components/graph-rag-core/src/main/java/com/orgmemory/graphrag/authorization/AuthorizedEvidenceScope.java (1)
18-82: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceReference.java (1)
12-32: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/FloatVector.java (1)
9-52: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/ContributionEmbedding.java (1)
6-10: LGTM!apps/worker/src/main/java/com/orgmemory/worker/graph/GraphIndexingProcessor.java (1)
14-14: LGTM!Also applies to: 260-261
components/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphRevisionEmbeddings.java (1)
38-39: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionKind.java (1)
3-7: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/StagedProjectionWriter.java (1)
7-11: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ContentStore.java (1)
11-66: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/model/EvidenceProvenance.java (1)
8-8: LGTM!Also applies to: 17-21, 30-53
components/graph-rag-core/src/main/java/com/orgmemory/graphrag/cache/ModelInvocationCache.java (1)
1-62: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/cache/RetrievalResultCache.java (1)
1-95: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/observability/GraphRagEventSink.java (1)
1-80: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionNamespace.java (1)
1-24: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionBatch.java (1)
12-27: LGTM!Also applies to: 32-48
components/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/ProjectionSnapshot.java (1)
1-41: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/VectorIndex.java (1)
1-113: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/storage/LexicalIndex.java (1)
1-100: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphEmbeddingIndex.java (2)
3-6: LGTM!Also applies to: 16-27
16-27: 📐 Maintainability & Code QualityRun the Java backend inspection gate.
The PR notes that inspection was unavailable; run the project’s Java inspection gate in supported CI/IDE before merge and attach the result. As per coding guidelines, “JetBrains IDE inspection is a Java-backend gate only.”
Source: Coding guidelines
components/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphProjectionReader.java (1)
3-3: LGTM!Also applies to: 15-32
components/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphSeedIndex.java (1)
3-3: LGTM!Also applies to: 12-17
components/graph-rag-core/src/main/java/com/orgmemory/graphrag/port/GraphTopologyCandidateIndex.java (1)
3-3: LGTM!Also applies to: 18-18
components/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryContentStore.java (3)
20-69: LGTM!
16-18: 📐 Maintainability & Code QualityProvide the recorded architecture debate.
Please link the active increment or ADR recording the independent Fable debate for these authorization and publication-boundary decisions. Based on learnings, “Material decisions about domain boundaries, authorization, persistence, publication, concurrency, cache isolation, or parity scope require an independent Claude Fable 5 architecture debate before implementation, recorded in the active increment or an ADR.”
Source: Learnings
124-140: LGTM!components/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryRetrievalResultCache.java (1)
11-39: LGTM!components/graph-rag-core/src/main/java/com/orgmemory/graphrag/indexing/GraphContributionAssembler.java (1)
7-7: LGTM!Also applies to: 257-263
components/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjection.java (1)
3-3: LGTM!Also applies to: 78-87, 91-102, 105-125, 129-143, 147-165, 168-193, 196-222, 223-241, 243-248
components/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryProjectionPublicationStore.java (1)
20-131: LGTM!components/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/InMemoryModelInvocationCache.java (1)
11-39: LGTM!components/graph-rag-testkit/src/main/java/com/orgmemory/graphrag/testkit/ProjectionPublicationConformance.java (1)
19-180: LGTM!components/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/InMemoryGraphProjectionSecurityTests.java (2)
7-12: LGTM!Also applies to: 121-121, 134-135, 231-241
273-292: 📐 Maintainability & Code QualityNo verifiable duplicate
provenance()fixture to hoist.The referenced fixture helper does not appear in the current file set, so this cannot be classified as duplicate test code in this review.
> Likely an incorrect or invalid review comment.components/graph-rag-testkit/src/test/java/com/orgmemory/graphrag/testkit/ProjectionContractTests.java (1)
25-288: LGTM!
What changed
Why
PR 2 establishes portable, permission-aware storage and publication contracts before parser, indexing, and retrieval work. Manifest fingerprints make crash retry and idempotency truthful while namespace generations prevent torn mixed-projection reads.
Validation
./gradlew --no-daemon :components:graph-rag-testkit:test :integrations:graph-rag-postgres:test :apps:worker:test./gradlew --no-daemon :components:graph-rag-core:dependencies --configuration runtimeClasspath(no dependencies)./gradlew --no-daemon clean testgit diff --checkand source mechanical checksJetBrains inspection was unavailable in this agent environment, so the documented compile/test/mechanical fallback was used.
Summary by CodeRabbit
New Features
Bug Fixes