revert(asset-registry): restore the PR3 checkpoint - #60
Conversation
📝 WalkthroughWalkthroughThe change removes asset-delivery APIs, MCP asset resources/tools/prompts, and related fixtures. MCP now exposes authenticated read-only knowledge search with simplified JWT security and configuration. Asset views and capability-pack flows are narrowed, while deployment and architecture documentation are updated. ChangesAsset registry and delivery cleanup
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 docstrings
🧪 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.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
ARCHITECTURE.md (1)
9-20: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winDiagram edge contradicts the documented MCP call path.
MCP --> COREimplies apps/mcp calls intocoredirectly, but the text (lines 56-60) andMcpGatewayProperties/compose wiring (ORGMEMORY_API_BASE_URL: http://api:8080) show MCP forwards the bearer token to theapps/apisearch contract instead. The edge should point toAPI, notCORE.📝 Suggested fix
- MCP[apps/mcp] --> CORE[core] + MCP[apps/mcp] --> APIAs per coding guidelines, "Record current behavior in architecture/specification documentation only after it exists in code," so the diagram should reflect the actual MCP → API call path described in the text.
🤖 Prompt for 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. In `@ARCHITECTURE.md` around lines 9 - 20, Update the Mermaid architecture diagram’s MCP dependency edge to point from MCP to API instead of CORE. Keep the existing CORE relationships unchanged so the diagram reflects the documented apps/mcp forwarding path through the apps/api search contract.Source: Coding guidelines
🤖 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.
Outside diff comments:
In `@ARCHITECTURE.md`:
- Around line 9-20: Update the Mermaid architecture diagram’s MCP dependency
edge to point from MCP to API instead of CORE. Keep the existing CORE
relationships unchanged so the diagram reflects the documented apps/mcp
forwarding path through the apps/api search contract.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: ad35c98d-8ccb-4963-86ed-507b695b5d58
⛔ Files ignored due to path filters (13)
contracts/openapi.jsonis excluded by!contracts/openapi.jsondocs/increments/active/2026-07-25-unified-asset-registry-definition/design.mdis excluded by!docs/**docs/increments/active/2026-07-25-unified-asset-registry-definition/gate-decisions.mdis excluded by!docs/**docs/increments/active/2026-07-25-unified-asset-registry-definition/plan.mdis excluded by!docs/**docs/increments/active/2026-07-25-unified-asset-registry-definition/ui-reference-audit.mdis excluded by!docs/**docs/increments/active/README.mdis excluded by!docs/**docs/increments/completed/2026-07-25-unified-asset-registry-definition/verification.mdis excluded by!docs/**docs/increments/completed/README.mdis excluded by!docs/**docs/roadmap.mdis excluded by!docs/**docs/runbooks/mcp-asset-delivery.mdis excluded by!docs/**docs/specs/domains/asset-registry.mdis excluded by!docs/**docs/tests/domains/asset-registry.mdis excluded by!docs/**docs/vision.mdis excluded by!docs/**
📒 Files selected for processing (44)
.env.exampleARCHITECTURE.mdapps/api/src/main/java/com/orgmemory/api/assetregistry/AssetDeliveryController.javaapps/api/src/test/java/com/orgmemory/api/assetregistry/AssetDeliveryControllerSecurityTests.javaapps/api/src/test/java/com/orgmemory/api/assetregistry/AssetRegistryIntegrationTests.javaapps/api/src/test/resources/db/test-foundation.sqlapps/mcp/src/main/java/com/orgmemory/mcp/AssetDeliveryApiClient.javaapps/mcp/src/main/java/com/orgmemory/mcp/AssetDeliveryResources.javaapps/mcp/src/main/java/com/orgmemory/mcp/AssetDeliveryTools.javaapps/mcp/src/main/java/com/orgmemory/mcp/McpBearer.javaapps/mcp/src/main/java/com/orgmemory/mcp/McpGatewayProperties.javaapps/mcp/src/main/java/com/orgmemory/mcp/McpRateLimitFilter.javaapps/mcp/src/main/java/com/orgmemory/mcp/McpSecurityConfiguration.javaapps/mcp/src/main/java/com/orgmemory/mcp/ReleasedPromptAdapter.javaapps/mcp/src/main/resources/application-prod.ymlapps/mcp/src/main/resources/application.ymlapps/mcp/src/test/java/com/orgmemory/mcp/AssetDeliveryApiClientTests.javaapps/mcp/src/test/java/com/orgmemory/mcp/AssetDeliveryToolsTests.javaapps/mcp/src/test/java/com/orgmemory/mcp/KnowledgeSearchApiClientTests.javaapps/mcp/src/test/java/com/orgmemory/mcp/McpRateLimitFilterTests.javaapps/mcp/src/test/java/com/orgmemory/mcp/McpTokenValidationTests.javaapps/mcp/src/test/java/com/orgmemory/mcp/OrgMemoryMcpContextTests.javacore/src/main/java/com/orgmemory/core/assetregistry/AssetDeliveryRelease.javacore/src/main/java/com/orgmemory/core/assetregistry/AssetDeliveryService.javacore/src/main/java/com/orgmemory/core/assetregistry/AssetRegistryCoordinator.javacore/src/main/java/com/orgmemory/core/assetregistry/AssetRegistryService.javacore/src/main/java/com/orgmemory/core/assetregistry/AssetRelationResolution.javacore/src/main/java/com/orgmemory/core/assetregistry/AssetView.javacore/src/main/java/com/orgmemory/core/assetregistry/CapabilityPackDefinition.javacore/src/main/java/com/orgmemory/core/assetregistry/CapabilityPackService.javacore/src/main/java/com/orgmemory/core/knowledge/KnowledgeCatalogService.javacore/src/test/java/com/orgmemory/core/assetregistry/CapabilityPackServiceTests.javademo/fixtures/asset-registry/README.mddemo/fixtures/asset-registry/capability-pack-template.jsondemo/fixtures/asset-registry/mock-tickets.jsondemo/fixtures/asset-registry/prompt-template.jsondemo/fixtures/asset-registry/quality-checklist.jsondemo/fixtures/asset-registry/success-metrics.jsondemo/fixtures/asset-registry/support-sla-and-escalation.mddemo/fixtures/asset-registry/work-instruction.jsoninfrastructure/deployment/compose.production.yamlinfrastructure/deployment/production.env.exampleweb/src/features/assets/components/asset-detail-page.tsxweb/test/e2e/asset-registry-golden-poc.spec.ts
💤 Files with no reviewable changes (36)
- demo/fixtures/asset-registry/success-metrics.json
- demo/fixtures/asset-registry/support-sla-and-escalation.md
- core/src/main/java/com/orgmemory/core/assetregistry/CapabilityPackDefinition.java
- demo/fixtures/asset-registry/prompt-template.json
- core/src/main/java/com/orgmemory/core/assetregistry/AssetRelationResolution.java
- apps/mcp/src/test/java/com/orgmemory/mcp/AssetDeliveryToolsTests.java
- demo/fixtures/asset-registry/work-instruction.json
- apps/mcp/src/test/java/com/orgmemory/mcp/AssetDeliveryApiClientTests.java
- apps/mcp/src/main/java/com/orgmemory/mcp/McpRateLimitFilter.java
- demo/fixtures/asset-registry/capability-pack-template.json
- apps/mcp/src/main/java/com/orgmemory/mcp/McpBearer.java
- core/src/test/java/com/orgmemory/core/assetregistry/CapabilityPackServiceTests.java
- demo/fixtures/asset-registry/quality-checklist.json
- demo/fixtures/asset-registry/mock-tickets.json
- core/src/main/java/com/orgmemory/core/assetregistry/AssetDeliveryRelease.java
- apps/mcp/src/main/java/com/orgmemory/mcp/AssetDeliveryTools.java
- demo/fixtures/asset-registry/README.md
- web/src/features/assets/components/asset-detail-page.tsx
- apps/mcp/src/main/java/com/orgmemory/mcp/AssetDeliveryApiClient.java
- apps/api/src/test/java/com/orgmemory/api/assetregistry/AssetDeliveryControllerSecurityTests.java
- apps/mcp/src/test/java/com/orgmemory/mcp/McpTokenValidationTests.java
- web/test/e2e/asset-registry-golden-poc.spec.ts
- apps/mcp/src/test/java/com/orgmemory/mcp/McpRateLimitFilterTests.java
- core/src/main/java/com/orgmemory/core/assetregistry/AssetDeliveryService.java
- apps/mcp/src/main/java/com/orgmemory/mcp/ReleasedPromptAdapter.java
- core/src/main/java/com/orgmemory/core/knowledge/KnowledgeCatalogService.java
- apps/mcp/src/main/java/com/orgmemory/mcp/AssetDeliveryResources.java
- apps/api/src/test/resources/db/test-foundation.sql
- core/src/main/java/com/orgmemory/core/assetregistry/AssetView.java
- apps/mcp/src/main/resources/application-prod.yml
- core/src/main/java/com/orgmemory/core/assetregistry/CapabilityPackService.java
- core/src/main/java/com/orgmemory/core/assetregistry/AssetRegistryService.java
- .env.example
- apps/api/src/main/java/com/orgmemory/api/assetregistry/AssetDeliveryController.java
- infrastructure/deployment/production.env.example
- core/src/main/java/com/orgmemory/core/assetregistry/AssetRegistryCoordinator.java
📜 Review details
🧰 Additional context used
📓 Path-based instructions (3)
**/*
📄 CodeRabbit inference engine (CLAUDE.md)
**/*: Record current behavior in architecture/specification documentation only after it exists in code; keep intended behavior in vision, roadmap, or an active increment, and do not duplicate state.
Before using unfamiliar Spring Boot 4, Spring Modulith 2, Spring AI 2, Gradle, React, Vite, Tailwind, or TypeScript APIs, consult current official documentation via Context7 and the projectorgmemory-*verification skills.
Before retrieval, AI, MCP, permission, upload, graph, or export work, readdocs/guidelines/agent-safety.md.
Never commit.envfiles, provider keys, tokens, or customer data.
Run the relevant verification gates fromdocs/guidelines/testing-harness.md; use a terminating clean test as the context gate, and do not treatbootRunas verification.
Files:
apps/mcp/src/test/java/com/orgmemory/mcp/KnowledgeSearchApiClientTests.javaapps/mcp/src/main/java/com/orgmemory/mcp/McpGatewayProperties.javaapps/mcp/src/main/resources/application.ymlARCHITECTURE.mdinfrastructure/deployment/compose.production.yamlapps/mcp/src/test/java/com/orgmemory/mcp/OrgMemoryMcpContextTests.javaapps/mcp/src/main/java/com/orgmemory/mcp/McpSecurityConfiguration.javaapps/api/src/test/java/com/orgmemory/api/assetregistry/AssetRegistryIntegrationTests.java
**/*.{java,kt}
📄 CodeRabbit inference engine (CLAUDE.md)
JetBrains IDE inspection is a verification gate for the Java backend.
Files:
apps/mcp/src/test/java/com/orgmemory/mcp/KnowledgeSearchApiClientTests.javaapps/mcp/src/main/java/com/orgmemory/mcp/McpGatewayProperties.javaapps/mcp/src/test/java/com/orgmemory/mcp/OrgMemoryMcpContextTests.javaapps/mcp/src/main/java/com/orgmemory/mcp/McpSecurityConfiguration.javaapps/api/src/test/java/com/orgmemory/api/assetregistry/AssetRegistryIntegrationTests.java
**/application*.{yml,yaml,properties}
📄 CodeRabbit inference engine (CLAUDE.md)
Keep JPA
ddl-auto=validate; pair JPA schema or entity changes with a Flyway migration.
Files:
apps/mcp/src/main/resources/application.yml
🔇 Additional comments (9)
apps/mcp/src/main/java/com/orgmemory/mcp/McpGatewayProperties.java (1)
8-27: LGTM!apps/mcp/src/main/java/com/orgmemory/mcp/McpSecurityConfiguration.java (1)
14-32: LGTM!apps/mcp/src/main/resources/application.yml (1)
20-29: LGTM!Also applies to: 40-43
apps/mcp/src/test/java/com/orgmemory/mcp/KnowledgeSearchApiClientTests.java (1)
96-102: LGTM!apps/mcp/src/test/java/com/orgmemory/mcp/OrgMemoryMcpContextTests.java (1)
21-65: LGTM!apps/api/src/test/java/com/orgmemory/api/assetregistry/AssetRegistryIntegrationTests.java (2)
476-495: LGTM! Thenow() - interval '1 second'scheduling closes the race between the outbox UPDATE and thenext_attempt_at <= now()check inreconcile, making this deterministic.
68-154: LGTM!Also applies to: 229-285, 326-329, 706-715, 924-941
ARCHITECTURE.md (1)
40-43: LGTM!Also applies to: 56-107
infrastructure/deployment/compose.production.yaml (1)
366-402: LGTM!
What changed
Why
The product owner explicitly stopped the sequence after PR3, but the older persistent five-PR automation continued and merged PR4/PR5. This PR restores the repository to the authorized PR3 scope without rewriting published Git history.
Impact
/assetsUI and PR3 Assistant history remainORGMEMORY_MCP_RESOURCE_URIorORGMEMORY_MCP_AUDIENCEValidation
./gradlew.bat --no-daemon clean test— 88 tasks passedpnpm -C web check:apipnpm -C web lintpnpm -C web typecheckpnpm -C web buildgit diff --check57 changed files, below the agreed 100-file limit.
Summary by CodeRabbit