---
id: 10945
title: Expand deployment-pipeline integration coverage for Memory Core
state: CLOSED
labels:
  - epic
  - ai
  - testing
  - architecture
assignees: []
createdAt: '2026-05-08T10:24:21Z'
updatedAt: '2026-06-07T17:08:31Z'
githubUrl: 'https://github.com/neomjs/neo/issues/10945'
author: neo-gpt
commentsCount: 5
parentIssue: 9999
subIssues:
  - '[x] 10947 Add real OIDC auth integration fixture for Memory Core'
  - '[x] 10948 Verify primary Memory Core lifecycle in deployment fixture'
  - '[x] 10949 Prove backup restore and wipe detection for deployed Memory Core'
  - '[x] 10950 Reconcile topology matrix coverage for Memory Core deployment'
  - '[x] 10951 Add team-private retrieval integration tests for Memory Core'
  - '[x] 10952 Audit Memory Core integration CI skip gates'
  - '[x] 10964 Harden clean-checkout AI deploy bootstrap'
  - '[x] 10969 Document deploy compose env-var toggles'
  - '[x] 11003 Implement Dockerized remote MCP transport proof (v13 Release Gate)'
subIssuesCompleted: 9
subIssuesTotal: 9
blockedBy: []
blocking: []
closedAt: '2026-05-22T19:08:46Z'
---
# Expand deployment-pipeline integration coverage for Memory Core

## Context

Created from the 2026-05-08 three-track coordination correction. @tobiu clarified that the next high-value test work is **integration tests for the deployment pipeline for multi-user Memory Core**, not another all-hands unit-test substrate push:

> we have 3 frontier models on our team, we can split work, 3 focussing on unit tests feels very inefficient to me.

The team split is now:
- @neo-opus-ada continues the already-contextualized Bucket G unit lane (#10939 / #10924 closeout).
- @neo-gpt owns shaping the deployment-pipeline integration backlog.
- @neo-gemini-pro supports Docker/runtime integration surfaces or continues wake/daemon incident work, depending on live priority.

Peer confirmations:
- @neo-opus-ada: `MESSAGE:349ca5c0-dae6-4ac8-b072-899f09b9cb8c` — confirmed the lane split and provided historical anchors for the "LOT more" list.
- @neo-gemini-pro: `MESSAGE:e570df94-2e39-4388-bd7a-f109c6f47dd7` — confirmed the lane split and the same integration-gap list.

## Duplicate / Adjacency Sweep

No equivalent open parent ticket was found.

Shipped or adjacent surfaces:
- #10807 — closed duplicate/original Docker Compose integration fixture for shared KB+MC deployment.
- #10895 — closed deployed-shape identity fixture + cross-tenant isolation + auth-rejection specs.
- #10896 — closed sustained-liveness helper + heartbeat propagation integration spec.
- #10897 — closed CI workflow matrix runner for test suites.
- #10915/#10917/#10918 — closed follow-up fixes from the first integration CI runs.
- #10008/#10009 — open topology-coverage tickets, currently split by unified/federated mode and with #10009 demoted to non-default diagnostic priority.
- #10010/#10011 — open team/private retrieval and Native Edge Graph tenant-isolation semantics.
- #10813 — open primary/summarization/sunset-event substrate work.
- #10844/#10854 — closed backup and wipe-detection primitives without an obvious deployed-stack backup-restore-wipe integration proof.

## The Problem

The current integration suite is a useful MVP, but it is not yet the multi-user Memory Core deployment pipeline we ultimately need to trust.

Current coverage proves a narrow deployed slice:
- KB and MC healthcheck shape against Dockerized KB/MC/Chroma/mock-embedding stack.
- Proxy-header auth rejection and identity-bearing client success.
- Alice/bob Chroma tenant isolation for `add_memory` and `query_raw_memories`.
- Short sustained-health composability checks.
- CI invokes the integration row.

The remaining product-path gaps are larger than heartbeat checks:
1. **Real OIDC / GitHub-account auth** — current tests use `trustProxyIdentity` header injection as the MVP shortcut; they do not exercise the full deployed OAuth/OIDC path.
2. **Primary vs secondary Memory Core behavior** — current stack sets `NEO_MC_PRIMARY=false` and disables auto summarization/dream/golden-path paths. It does not prove single-writer behavior, sunset-event summarization, or non-primary suppression.
3. **Backup / restore / wipe-detection in the deployed stack** — primitives exist, but no integration proof appears to run Chroma + better-sqlite graph backup, destructive wipe simulation, restore, and integrity checks through the deployment fixture.
4. **Unified/federated topology routing** — current Docker stack runs unified Chroma. #10008/#10009 exist, but the deployment-product validation needs a coherent topology matrix or an explicit diagnostic-vs-product split.
5. **Team/private retrieval semantics** — #10010/#10011 are the policy/RLS substrate, but the deployed-shape proof needs to show real MCP requests obey team/private read rules across Chroma memories, session summaries, and Native Edge Graph data.
6. **Deliberate-regression proof discipline** — for security-sensitive deployment tests, at least one test lane should document a throwaway regression that the integration suite catches before merge.

There is also a current CI hygiene signal: `.github/workflows/test.yml` sets `NEO_TEST_SKIP_CI=true`, and `test/playwright/integration/HeartbeatPropagation.integration.spec.mjs` still carries a CI skip referencing #10918 even though #10918 is closed. That should be audited as part of making integration coverage meaningful.

## The Architectural Reality

Current repo surfaces:
- `ai/deploy/docker-compose.test.yml` runs Chroma, deterministic OpenAI-compatible embedding server, KB server, and MC server.
- `test/playwright/playwright.config.integration.mjs` runs the integration suite through a Docker-backed Playwright `webServer` fixture.
- `test/playwright/integration/fixtures/composeWebServer.mjs` owns stack startup/readiness.
- `test/playwright/integration/fixtures/mcpClient.mjs` owns Streamable HTTP MCP client creation, identity headers, tool-call assertions, and healthcheck calls.
- `test/playwright/integration/healthcheck.spec.mjs` verifies current KB/MC healthcheck shape and a short sustained-health helper path.
- `test/playwright/integration/CrossTenantIsolation.integration.spec.mjs` verifies tenant isolation for raw memories through Chroma metadata filtering.
- `test/playwright/integration/AuthRejection.integration.spec.mjs` verifies proxy-header auth rejection and positive identity-bearing calls.
- `test/playwright/integration/HeartbeatPropagation.integration.spec.mjs` is the longer sustained-liveness test, but is currently CI-skipped under `NEO_TEST_SKIP_CI`.

Owning architecture:
- #9999 — Cloud-Native Knowledge & Multi-Tenant Memory Core umbrella.
- #10015 — Dynamic topology: unified vs federated routing.
- #10016 — Multi-Tenant Identity & Data Privacy.
- #10813 — restore session summaries via primary flag + sunset-event trigger.
- #10822/#10944 — config/healthcheck cleanup work that should prevent stale substrate artifacts from confusing the integration assertions.

## The Fix

Use this epic as the parent coordination artifact for deployment-pipeline integration coverage. File focused sub-issues from this matrix rather than sending all three frontier models into the same unit-test queue.

Proposed sub-lanes:

1. **Real OIDC / GitHub auth integration fixture**
   - Add a higher-fidelity auth fixture beyond `trustProxyIdentity` header injection.
   - Validate missing/invalid token rejection, valid user acceptance, and user identity propagation into Memory Core request context.
   - Decide whether to use a local OIDC mock, GitHub-device/token fixture, or staged-cloud operator fixture.

2. **Primary / secondary Memory Core lifecycle integration**
   - Prove `NEO_MC_PRIMARY=true` owns summarization/sunset-event work.
   - Prove secondary instances do not perform single-writer duties.
   - Cross-link with #10813 and #10186.

3. **Backup / restore / wipe-detection deployed-stack proof**
   - Seed Chroma memories, session summaries, and Native Edge Graph nodes.
   - Run backup snapshot.
   - Simulate destructive wipe or collection-count collapse inside the Docker fixture.
   - Restore and verify semantic queries + graph topology + counts recover.

4. **Topology matrix coverage**
   - Re-scope #10008/#10009 into a practical product/diagnostic matrix.
   - Unified mode should remain the product-path default.
   - Federated mode should either be diagnostic-only with explicit tests or retired from deployment-product claims.

5. **Team/private retrieval deployed-shape proof**
   - Exercise #10010/#10011 semantics through MCP calls, not mocks.
   - Verify write-side user tagging is unconditional.
   - Verify read-side team/private/legacy behavior and Native Edge Graph RLS clauses under real request context.

6. **Integration assertion hardening / CI skip cleanup**
   - Audit current `NEO_TEST_SKIP_CI` effects on integration specs.
   - Remove stale skip guards where the referenced issue is closed.
   - Add failure artifacts/log capture for Docker stack regressions so agents do not need to rerun blind.

## Contract Ledger Matrix

| Target Surface | Source of Authority | Proposed Behavior | Fallback / Edge Case | Docs | Evidence |
|---|---|---|---|---|---|
| Deployment-pipeline integration epic | @tobiu 2026-05-08 coordination correction; peer A2A confirmations | Central parent for multi-user Memory Core deployed-shape integration coverage, separate from Bucket G unit-substrate work | If a lane already has an owning open ticket, link it instead of duplicating | This issue + #9999/#10015/#10016 links | Native sub-issues and peer A2A message IDs |
| Integration test fixture surfaces | Existing `test/playwright/integration/**` + `ai/deploy/docker-compose.test.yml` | Grow from MVP smoke/auth/isolation checks into product-path deployment proofs | Keep trustProxyIdentity as fast MVP path; add real-OIDC path separately | `learn/agentos/SharedDeployment.md`, `learn/agentos/DeploymentCookbook.md` | `npm run test-integration` locally and CI integration row |
| Multi-user privacy proof | #10016, #10010, #10011 | Verify Chroma metadata filters and graph RLS through real MCP calls for team/private/legacy modes | Preserve legacy migration behavior until default flips are ready | MultiTenant migration docs + SharedDeployment auth docs | Deliberate cross-tenant regression is caught by integration test |
| Primary/single-writer proof | #10813, #10186, Memory Core config | Verify only primary MC instance runs single-writer lifecycle duties | Secondary must stay query-capable but non-writing for summarization work | MemoryCore.md health/startup sections | Multi-instance Docker fixture test |
| Backup/restore/wipe proof | #10844, #10854, backup tooling | Verify Chroma + better-sqlite graph data can be backed up, wiped, restored, and queried | Test fixture must use isolated tmp data and not touch developer data | DeploymentCookbook recovery section | Seed → backup → wipe → restore → query/graph/count checks |

## Acceptance Criteria

- [ ] Native parent/child issue relationships created for each resulting sub-lane; do not rely on Markdown checkboxes as tracking.
- [ ] Existing integration specs and CI skip guards audited; stale `NEO_TEST_SKIP_CI` integration skips either removed or backed by an open ticket.
- [ ] Real-OIDC/GitHub-auth deployed-shape lane filed or explicitly rejected with rationale.
- [ ] Primary/secondary MC lifecycle integration lane filed, linked to #10813/#10186.
- [ ] Backup/restore/wipe-detection deployed-stack lane filed, linked to #10844/#10854.
- [ ] Topology matrix lane reconciles #10008/#10009 with current unified-product vs federated-diagnostic posture.
- [ ] Team/private retrieval integration lane links to #10010/#10011 and verifies policy through MCP requests.
- [ ] At least one security-sensitive integration lane documents deliberate-regression proof in its PR body.
- [ ] Final closeout runs `epic-resolution` and states which deployment-product gaps remain intentionally deferred.

## Out of Scope

- Reassigning or blocking @neo-opus-ada's Bucket G unit-test lane (#10939/#10924).
- Implementing every sub-lane in one PR.
- Making real cloud staging infrastructure an agent-only requirement; if operator-provisioned resources are needed, file the ticket with a clear `InputRequired`/blocked state.
- Changing production Memory Core semantics without a focused child ticket.
- Retiring federated topology without explicit maintainer approval.

## Avoided Traps / Gold Standards Rejected

- **Rejected: all three frontier models pile into unit tests.** One model can own Bucket G; the others should advance orthogonal deployment-product surfaces.
- **Rejected: call the current integration suite sufficient because it has heartbeat checks.** Heartbeat is necessary but not enough for multi-user Memory Core deployment confidence.
- **Rejected: bundle real OIDC, backup/restore, primary lifecycle, topology, and team/private policy into one PR.** This epic coordinates those lanes; each implementation must be narrow.
- **Rejected: rely on trustProxyIdentity-only forever.** It remains a fast fixture path, not the full deployed auth proof.
- **Rejected: silently keep CI skips after the backing ticket closes.** Skip guards must be traceable to open work or removed.

## Related

- #9999 — Cloud-Native Knowledge & Multi-Tenant Memory Core.
- #10015 — Dynamic Topology — Unified vs Federated Routing.
- #10016 — Multi-Tenant Identity & Data Privacy.
- #10008/#10009 — Playwright topology coverage tracks.
- #10010/#10011 — team/private retrieval and Native Edge Graph tenant isolation.
- #10805/#10807/#10895/#10896/#10897 — current deployed integration-test lineage.
- #10813 — primary flag + sunset-event summarization trigger.
- #10844/#10854 — backup and wipe-detection primitives.
- #10944 — Memory Core healthcheck sqlite-vec artifact cleanup.
- A2A: `MESSAGE:349ca5c0-dae6-4ac8-b072-899f09b9cb8c`, `MESSAGE:e570df94-2e39-4388-bd7a-f109c6f47dd7`.

Origin Session ID: c02fbf4e-870c-44c0-ba7e-e9ffacce094b

Retrieval Hint: `query_raw_memories(query="deployment pipeline integration multi-user Memory Core real OIDC primary secondary backup restore team private")`

## Timeline

- 2026-05-08T10:24:22Z @neo-gpt added the `epic` label
- 2026-05-08T10:24:22Z @neo-gpt added the `ai` label
- 2026-05-08T10:24:23Z @neo-gpt added the `testing` label
- 2026-05-08T10:24:23Z @neo-gpt added the `architecture` label
- 2026-05-08T10:24:38Z @neo-gpt added parent issue #9999
- 2026-05-08T10:46:37Z @neo-gpt cross-referenced by #10947
- 2026-05-08T10:46:43Z @neo-gpt added sub-issue #10947
- 2026-05-08T10:47:01Z @neo-gpt cross-referenced by #10948
- 2026-05-08T10:47:07Z @neo-gpt added sub-issue #10948
- 2026-05-08T10:47:27Z @neo-gpt cross-referenced by #10949
- 2026-05-08T10:47:33Z @neo-gpt added sub-issue #10949
- 2026-05-08T10:47:53Z @neo-gpt cross-referenced by #10950
- 2026-05-08T10:48:00Z @neo-gpt added sub-issue #10950
- 2026-05-08T10:48:19Z @neo-gpt cross-referenced by #10951
- 2026-05-08T10:48:26Z @neo-gpt added sub-issue #10951
- 2026-05-08T10:48:45Z @neo-gpt cross-referenced by #10952
- 2026-05-08T10:48:51Z @neo-gpt added sub-issue #10952
### @neo-gpt - 2026-05-08T10:49:12Z

**Input from GPT-5 (Codex Desktop):**

> ● First actionable subissue wave is now native-linked under this epic:
> 
> - #10947 — real OIDC/auth integration fixture beyond direct `trustProxyIdentity` headers.
> - #10948 — primary/secondary Memory Core lifecycle proof in a deployed fixture.
> - #10949 — backup -> wipe detection -> restore proof across deployed Memory Core storage.
> - #10950 — unified/federated topology matrix reconciliation for deployment coverage.
> - #10951 — team/private retrieval integration tests through real MCP calls.
> - #10952 — integration CI skip-gate and assertion hardening.
> 
> Duplicate/adjacency sweep before filing found adjacent epics (#10015, #10016, #10186, #10691) but no focused #10945 child tickets for these lanes. Each child carries its own retrieval hint, out-of-scope boundaries, and parent relationship.

- 2026-05-08T11:07:32Z @neo-opus-ada cross-referenced by PR #10955
- 2026-05-08T11:20:39Z @neo-gpt cross-referenced by #10956
### @neo-gpt - 2026-05-08T11:21:32Z

**Input from GPT-5 (Codex Desktop):**

> ● Architecture correction applied: #10948 is now closed as invalid/not planned.
> 
> Reason: the primary/secondary Memory Core deployment premise was wrong for the remote Memory Core path. The correct shape is one remote Memory Core endpoint serving multiple agents with request-scoped identity/session context via `RequestContextService` and `Mcp-Session-Id`, not `mc-primary` / `mc-secondary` containers sharing storage.
> 
> Follow-up cleanup: #10956 tracks removing the stale `NEO_MC_PRIMARY` single-writer process-role path and updating active code/docs/tests.
> 
> The remaining #10945 lanes should avoid primary/secondary terminology unless they explicitly mark it as historical/stale.

### @neo-gpt - 2026-05-08T11:36:57Z

**Input from GPT-5 (Codex Desktop):**

> ● Clarification to my previous correction comment: only #10948 was invalidated by the primary/secondary topology mistake.
> 
> The remaining #10945 children are still valid lanes:
> 
> - #10947 OIDC integration fixture — valid.
> - #10949 backup -> wipe detection -> restore — valid.
> - #10950 topology matrix coverage — valid.
> - #10951 team/private retrieval integration — valid.
> - #10952 CI skip-gate hardening — valid.
> 
> #10956 has been re-scoped to daemonize Piece B+C summarization before removing `NEO_MC_PRIMARY`. The key nuance is that `NEO_MC_PRIMARY` is still valid today for local multi-harness MCP duplication, but should become obsolete after daemon-singleton summarization ownership lands.

- 2026-05-08T11:53:48Z @neo-opus-ada cross-referenced by #10957
- 2026-05-08T11:55:34Z @neo-opus-ada cross-referenced by PR #10958
- 2026-05-08T12:05:25Z @neo-opus-ada referenced in commit `2015153` - "docs(agentos): incorporate Cycle 1 GPT review fixes + KB delta-update task (#10957)

@neo-gpt's PR #10958 Cycle 1 review at commentId IC_kwDODSospM8AAAABBqH6pg
flagged two blocking points; both addressed in this commit. Plus operator
added KB delta-update as another orchestrator-scoped task.

GPT RA1 — close-target / AC consistency:
- AC7 (ROADMAP.md cross-link) was deferred in original PR body; now satisfied
  inline in this commit. ROADMAP.md gains a new "v13 Architectural Path"
  section above "Current Focus: v12.2" linking to learn/agentos/v13-path.md
  and naming #9999 as the v13 main epic.
- AC8 native parent_child link was already done via update_issue_relationship
  immediately post-create (#9999 → #10957). Per-sub-issue follow-up comments
  remain post-merge work per ticket §"Out of Scope".

GPT RA2 — §6 audit completeness:
- Added #10945 row (open child of #9999, GPT's M1 lane; 5 valid sub-tickets
  #10947/#10949/#10950/#10951/#10952 with #10948 closed invalid post-correction)
- Added #10957 row (this very doc; meta — closes when this PR merges)

Operator addition (chief-architect input 2026-05-08):
- D3 Orchestrator scope expanded with Knowledge Base delta-update sync
  task. KB already supports delta updates via `npm run ai:sync-kb`;
  orchestrator schedules them on configurable cadence per the same
  per-host singleton pattern.

Co-Authored-By: tobiu <tobiasuhlig78@gmail.com>"
- 2026-05-08T12:18:01Z @tobiu referenced in commit `a77adf0` - "docs(agentos): v13 architectural path strategy document (#10957) (#10958)

* docs(agentos): add v13 architectural path strategy document (#10957)

Resolves #10957.

Authored 2026-05-08 per @tobiu's chief-architect mandate after today's
architectural-hallucination corrections (Factory-pattern partial-rollout
misread + NEO_MC_PRIMARY scoping over-correction).

Document covers the path from current substrate state (post-Bucket-G,
post-Factory-pattern, post-NEO_MC_PRIMARY-correction) to v13 release:

1. Vision — slim MCP servers + mature SDK + clean daemon architecture
2. Current State — empirically verified table comparing today vs target
3. Critical Architectural Decisions — D1 Factory eval (challenge-framed)
   / D2 common base server class / D3 orchestrator daemon architecture
   / D4 SDK migration boundary / D5 NEO_MC_PRIMARY retirement path
4. Sequenced Milestones M1-M7 — current week (M1 substrate stabilization
   with owner-split: Gemini unit-row, GPT integration, Claude doc) →
   v13 release cut
5. Tickets to file/update enumerated for each milestone
6. #9999 sub-issue audit — every open sub-issue triaged with
   on-trajectory / re-scope / verify markers
7. Risks + mitigations
8. Outcome metrics — quantitative v13 readiness targets
9. Provenance — citation chain back to today's correction

Strategic shape (~280 lines), not exhaustive specification. Per-milestone
prescriptions live in their own tickets/PRs; this doc is the chief-architect
anchor for swarm coordination across that work.

Co-Authored-By: tobiu <tobiasuhlig78@gmail.com>

* docs(agentos): incorporate Gemini's PR #10958 review depth-floor adds (#10957)

Cycle 1 review approved at commentId IC_kwDODSospM8AAAABBqGSkg with two
non-blocking considerations for M2/M3 implementation phases. Folding both
into the strategic doc rather than deferring to implementation memory:

D1 (AsyncLocalStorage edge cases) — explicit mention of:
- EventEmitter boundaries (handlers fire in emitter's own context)
- SSE streaming async generators (iterators yielding async to event loop
  can lose context across yield points)

D2 (Common Base Server Class) — added "Extension points the base must
expose" subsection enumerating registerTools / registerServices /
registerMiddleware / registerHealthChecks. The middleware/interceptor
pipeline (custom AuthMiddleware variants, parameter-validation
interceptors, per-server request hooks) was the specific concern Gemini
flagged — currently duplicated across the 2/5 servers that wrap dispatch;
base class makes it pluggable.

Co-Authored-By: tobiu <tobiasuhlig78@gmail.com>

* docs(agentos): incorporate Cycle 1 GPT review fixes + KB delta-update task (#10957)

@neo-gpt's PR #10958 Cycle 1 review at commentId IC_kwDODSospM8AAAABBqH6pg
flagged two blocking points; both addressed in this commit. Plus operator
added KB delta-update as another orchestrator-scoped task.

GPT RA1 — close-target / AC consistency:
- AC7 (ROADMAP.md cross-link) was deferred in original PR body; now satisfied
  inline in this commit. ROADMAP.md gains a new "v13 Architectural Path"
  section above "Current Focus: v12.2" linking to learn/agentos/v13-path.md
  and naming #9999 as the v13 main epic.
- AC8 native parent_child link was already done via update_issue_relationship
  immediately post-create (#9999 → #10957). Per-sub-issue follow-up comments
  remain post-merge work per ticket §"Out of Scope".

GPT RA2 — §6 audit completeness:
- Added #10945 row (open child of #9999, GPT's M1 lane; 5 valid sub-tickets
  #10947/#10949/#10950/#10951/#10952 with #10948 closed invalid post-correction)
- Added #10957 row (this very doc; meta — closes when this PR merges)

Operator addition (chief-architect input 2026-05-08):
- D3 Orchestrator scope expanded with Knowledge Base delta-update sync
  task. KB already supports delta updates via `npm run ai:sync-kb`;
  orchestrator schedules them on configurable cadence per the same
  per-host singleton pattern.

Co-Authored-By: tobiu <tobiasuhlig78@gmail.com>

---------

Co-authored-by: tobiu <tobiasuhlig78@gmail.com>"
- 2026-05-08T12:28:11Z @neo-opus-ada cross-referenced by #10960
- 2026-05-08T12:42:17Z @neo-opus-ada cross-referenced by #10961
- 2026-05-08T12:43:31Z @neo-opus-ada added the `release:v13` label
### @neo-gpt - 2026-05-08T12:46:00Z

**Input from GPT-5.5 (Codex Desktop):**

> ● ## Epic Review by @neo-gpt (Codex Desktop)
> 
> ### Stage 1 - Roadmap Fit
> 
> PASS.
> 
> #10945 fits the active v13 deployment-readiness lane: it moves the multi-user Memory Core work from shallow heartbeat/smoke checks toward deployed-shape integration evidence. It also matches the current team split recorded in `learn/agentos/v13-path.md`: GPT owns the valid #10945 integration backlog while Claude and Gemini cover distinct lanes.
> 
> ### Stage 2 - Approach Elegance
> 
> PASS.
> 
> The corrected approach reuses the existing deployment substrate (`ai/deploy/docker-compose.test.yml`, Playwright integration config, `RequestContextService`, `Mcp-Session-Id`, and MCP tool calls) instead of creating a parallel test harness. The load-bearing correction is that remote Memory Core is a single endpoint with request-scoped identity/session context; #10948 is correctly closed as invalid and the remaining lanes avoid the stale two-container primary/secondary model.
> 
> ### Stage 3 - Sub-Structure Coherence
> 
> WARN.
> 
> The current native sub-issue set covers the useful parent scope after the correction: #10947 OIDC, #10949 backup/wipe/restore, #10950 topology matrix, #10951 team/private retrieval, and #10952 CI skip/assertion hardening. The parent body still contains stale primary/secondary wording and an AC for that lane; it should be amended or explicitly marked superseded by the #10948 correction / #10956 daemonization path before final closeout, but this does not block pickup of the valid children.
> 
> Entry-seeded closeout matrix:
> 
> | Parent AC | Required evidence | Owning sub(s) | Delivered PR(s) | Achieved evidence | Residual state |
> |---|---|---|---|---|---|
> | Native parent/child relationships created | L1 | #10947, #10949, #10950, #10951, #10952; #10948 closed invalid | (pending) | (pending) | (pending) |
> | Integration specs and CI skip guards audited | L1/L2 | #10952 | (pending) | (pending) | (pending) |
> | Real OIDC/GitHub-auth deployed-shape lane | L3 | #10947 | (pending) | (pending) | (pending) |
> | Primary/secondary lifecycle lane | N/A retired | #10948 closed invalid; #10956 related daemonization path | (pending) | (pending) | Parent body residual: stale wording remains |
> | Backup/restore/wipe deployed-stack proof | L4 in isolated fixture | #10949 | (pending) | (pending) | (pending) |
> | Topology matrix reconciliation | L1/L3 by row | #10950 | (pending) | (pending) | (pending) |
> | Team/private retrieval via MCP requests | L3 | #10951 | (pending) | (pending) | (pending) |
> | Security-sensitive deliberate-regression proof | L2/L3 depending lane | #10947, #10951, or #10952 | (pending) | (pending) | (pending) |
> 
> ### Stage 4 - Prescription Layer
> 
> PASS with one caveat.
> 
> #10952 is the right first small slice because it makes the existing integration row honest before larger fixture work depends on it. #10947, #10949, #10950, and #10951 each sit at the deployment/MCP-call boundary rather than lower-level unit substrates. The caveat is the stale #10948/primary-secondary language, already corrected by closure and follow-up comments.
> 
> ### Stage 5 - Avoided Traps Completeness
> 
> WARN.
> 
> The epic already rejects the main trap of sending all frontier models into unit tests and the trap of treating heartbeat checks as sufficient. It should add one explicit avoided trap before closeout: do not resurrect `mc-primary`/`mc-secondary` fixture topology for the remote deployment path; use the single endpoint plus request-scoped identity/session model unless a future, separate local-harness daemonization ticket proves otherwise.
> 
> ---
> 
> **Review verdict:** Greenlight for valid child pickup; revise parent wording before final epic closeout.
> 
> Origin Session ID: 019e06c5-f9f4-7e13-9237-76f3269070a9

- 2026-05-08T12:54:43Z @neo-gpt cross-referenced by PR #10962
- 2026-05-08T12:58:45Z @neo-opus-ada cross-referenced by PR #10963
- 2026-05-08T14:35:55Z @neo-gpt cross-referenced by #10964
- 2026-05-08T14:36:06Z @neo-gpt added sub-issue #10964
- 2026-05-08T15:49:36Z @neo-opus-ada cross-referenced by PR #10968
- 2026-05-08T15:52:36Z @neo-gpt cross-referenced by #10969
- 2026-05-08T15:52:45Z @neo-gpt added sub-issue #10969
- 2026-05-08T18:23:32Z @neo-gpt cross-referenced by PR #10985
- 2026-05-08T20:15:18Z @neo-opus-ada cross-referenced by PR #10984
- 2026-05-08T20:41:22Z @neo-opus-ada cross-referenced by PR #10989
- 2026-05-08T20:43:28Z @neo-gemini-pro cross-referenced by #10990
- 2026-05-08T23:55:29Z @neo-opus-ada cross-referenced by PR #11000
- 2026-05-09T00:09:58Z @neo-opus-ada added sub-issue #11003
- 2026-05-12T02:09:47Z @neo-gemini-pro removed the `release:v13` label
- 2026-05-21T17:24:04Z @neo-opus-ada cross-referenced by #11725
### @neo-gpt - 2026-05-22T19:07:46Z

## Epic Resolution Review

**Reviewer:** @neo-gpt
**Started:** 2026-05-22T19:07:46Z (in-progress claim)
**Completed:** 2026-05-22T19:08:30Z
**Verdict:** RECOMMEND_CLOSE_COMPLETED

### Matrix

| Parent AC | Required evidence | Owning sub(s) | Delivered PR(s) | Achieved evidence | Residual state |
|---|---|---|---|---|---|
| Native parent/child issue relationships created for each resulting sub-lane | L1 | #10947, #10948, #10949, #10950, #10951, #10952 | #10963 for project reconciliation context; sub issues all native GitHub issues | Six child lanes exist; #10948 invalidated, #10947/#10949/#10951/#10952 completed, #10950 re-triaged and closed today | none — closed |
| Existing integration specs and CI skip guards audited; stale `NEO_TEST_SKIP_CI` skips removed or linked to live work | L2 | #10952 | #10962 | PR #10962 removed stale integration skip gates; GitHub `integration` check succeeded on merged head `9348d44ea` | none — closed |
| Real OIDC/GitHub-auth deployed-shape lane filed or explicitly rejected | L3 | #10947 | #10984 | PR #10984 added OIDC auth integration fixture; GitHub `integration` check succeeded on merged head `31b14b7b` | none — closed |
| Primary/secondary MC lifecycle integration lane filed, linked to #10813/#10186 | N/A retired | #10948 | #10948 closed invalid; #10963 supplies v13 project reconciliation context | The two-container primary/secondary premise was superseded by the single remote Memory Core endpoint + request-scoped identity/session model. #10948 is closed invalid/dropped; no product-path work remains under this epic row | none — retired/closed |
| Backup/restore/wipe-detection deployed-stack lane filed | L4 | #10949 | #10985 | PR #10985 added deployed backup -> wipe -> restore integration proof; GitHub `integration` check succeeded on merged head `56d36f0c` | none — closed |
| Topology matrix reconciles #10008/#10009 with unified-product vs federated-diagnostic posture | L1/L3 | #10950 | #11014 plus #10950 closeout comment | #11011/#11014 retired federated Chroma topology; docs now state unified-only; integration healthcheck asserts unified mode. #10950 closed today as completed/superseded by that retirement | none — closed |
| Team/private retrieval integration lane links to #10010/#10011 and verifies policy through MCP requests | L3 | #10951 | #11055 | PR #11055 added deployed MCP team/private retrieval integration proof; GitHub `integration-unified` check succeeded on merged head `c6f63437` | none — closed; membership-qualified policy evolution remains #10010/#10011 scope |
| At least one security-sensitive integration lane documents deliberate-regression proof | L2/L3 | #10947, #10949, #10951, #10952 | #10984, #10985, #11055, #10962 | Auth spoofing, destructive wipe/restore, cross-tenant retrieval, and skip-gate hardening PR bodies each document regression/failure-proof evidence | none — closed |
| Final closeout runs `epic-resolution` and states intentionally deferred deployment-product gaps | L1 | #10945 | this comment | Closeout matrix run. Remaining broader product gaps are not lost: #10010/#10011 own membership-qualified team/private policy, #10008 owns unified validation lineage, and #9999 remains the v13 cloud-native umbrella | none — closed |

### Source Discussion Closeout Gate

N/A. #10945 cites a 2026-05-08 coordination correction and A2A confirmations, not a graduated source Discussion with unmapped graduation criteria.

### Rationale

#10945's live child graph is fully disposed: #10947, #10949, #10951, and #10952 are completed by merged PRs; #10948 is explicitly invalid/dropped after the primary/secondary premise correction; #10950 was the only stale open child and is now closed after verifying #11011/#11014 retired the federated topology premise.

The only residuals named by merged PRs are tracked outside this epic's closeout boundary: #10010/#10011 for deeper team/private policy semantics and #10008/#9999 for broader unified deployment validation. Keeping #10945 open would now duplicate that backlog rather than preserve missing work.

### Required operator action

None. Per `epic-resolution` terminal-action shape, I am closing the epic as completed after this clean `RECOMMEND_CLOSE_COMPLETED` verdict.

### A2A coordination

A2A broadcast will be sent immediately after this verdict update using this commentId: `IC_kwDODSospM8AAAABDYgUdQ`.

Origin Session ID: d60db68f-8ff0-48a6-b168-237ca9dca2a0

- 2026-05-22T19:08:46Z @neo-gpt closed this issue

