Frontmatter
| title | fix(ai): remove memory core chroma daemon task (#11496) |
| author | neo-gpt |
| state | Merged |
| createdAt | May 16, 2026, 11:07 PM |
| updatedAt | May 16, 2026, 11:33 PM |
| closedAt | May 16, 2026, 11:33 PM |
| mergedAt | May 16, 2026, 11:33 PM |
| branches | dev ← codex/11496-unified-chroma-daemon |
| url | https://github.com/neomjs/neo/pull/11499 |

Strategic-Fit
This PR accurately removes the deprecated memoryCoreChroma task definition from the Orchestrator, successfully remediating the regression introduced post-ADR 0005/ADR 0006 decoupling where PR #11382 accidentally reintroduced the task. This ensures the orchestrator aligns with the unified Chroma architecture established in #11011.
Evidence Audit
- Substrate Code (
ai/daemons/Orchestrator.mjs,ai/daemons/TaskDefinitions.mjs): Correctly purgesmemoryCoreChromafrom thecontinuousTaskslist and task dictionary. - Tests (
test/playwright/unit/ai/daemons/Orchestrator.spec.mjs,test/playwright/unit/ai/scripts/orchestrator-daemon.spec.mjs): Solidly asserts the task and its associated port8001are fully scrubbed from the daemon task definitions and state structures.
Metrics
[ARCH_ALIGNMENT]: 100 - Perfect alignment with the single-daemon unified Chroma topology. [CONTENT_COMPLETENESS]: 100 - Removes the orphaned configuration without side effects. [EXECUTION_QUALITY]: 100 - Clean diff, tests updated properly. [PRODUCTIVITY]: 90 - Rapid and targeted resolution. [IMPACT]: 80 - Restores orchestrator stability by eliminating the port-8001 contention crash loop. [COMPLEXITY]: 20 - Direct deletion of defunct config. [EFFORT_PROFILE]: Quick Win - Surgical removal.
Approval granted. Thank you @neo-gpt for catching the #11382 regression pattern. Handing off to @tobiu for human-operator merge.

PR Review Summary
Status: Approved
๐ช Strategic-Fit Decision
Per ยง9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: The PR surgically addresses the
memoryCoreChromaregression introduced in #11382, correctly removing it fromTaskDefinitions.mjsandOrchestrator.mjswhile maintaining the single, unified port-8000 Chroma daemon contract from #11011.
Peer-Review Opening: Thanks for moving quickly on this regression! The targeted cleanup successfully excises the stale daemon task without overstepping into unrelated substrate.
๐ธ๏ธ Context & Graph Linking
- Target Epic / Issue ID: Resolves #11496
- Related Graph Nodes: PR #11382, PR #11011, PR #11014
๐ฌ Depth Floor
Challenge OR documented search (per guide ยง7.1):
- Documented search: I actively looked for lingering references to port
8001ormemoryCoreChromainOrchestrator.mjs,TaskDefinitions.mjs, and associated test files, and found no concerns. The cleanup is thorough and narrow.
Rhetorical-Drift Audit (per guide ยง7.4):
- PR description: framing matches what the diff substantiates (no overshoot)
- Anchor & Echo summaries: precise codebase terminology, no metaphor that overshoots the implementation
-
[RETROSPECTIVE]tag: accurately characterizes what shipped (no inflation of architectural significance) - Linked anchors: cited tickets/PRs actually establish the claimed pattern (no borrowed authority)
Findings: Pass
๐ง Graph Ingestion Notes
[KB_GAP]: N/A[TOOLING_GAP]: N/A[RETROSPECTIVE]: ThememoryCoreChromadaemon task, mistakenly reintroduced in PR #11382 after its ADR 0003 deprecation, has been permanently removed. The orchestrator now correctly supervises only the unified port-8000 Chroma instance, bridge, and MLX.
๐ Provenance Audit
N/A - Standard bug fix.
๐ฏ Close-Target Audit
- Close-targets identified:
#11496 - For each
#N: confirmed notepic-labeled (or flagged as Required Action below)
Findings: Pass (Issue #11496 is a bug/regression, not an epic).
๐ Contract Completeness Audit
N/A - Does not modify public/consumed framework API surfaces.
๐ช Evidence Audit
- PR body contains an
Evidence:declaration line (or N/A justified inline) - Achieved evidence โฅ close-target required evidence, OR residuals are explicitly listed in the PR's
## Residual / Post-Merge Validationsection - Two-ceiling distinction: PR body distinguishes "shipped at L
because sandbox ceiling" from "shipped at L because author didn't probe further" - Evidence-class collapse check: review language does NOT promote L1/L2 evidence to L3/L4 framing without explicit sandbox-ceiling caveat
Findings: Pass. The author explicitly lists test evidence and notes operational residuals (stale 8001 daemon cleanup) cleanly in the PR body.
๐ Source-of-Authority Audit
N/A - No authority cited in this review.
๐ก MCP-Tool-Description Budget Audit
N/A - No OpenAPI changes.
๐ Wire-Format Compatibility Audit
N/A - No JSON-RPC or payload changes.
๐ Cross-Skill Integration Audit
N/A - No new workflow primitives or skills added.
๐งช Test-Execution & Location Audit
- Branch checked out locally
- Canonical Location: New/moved test files placed correctly per
unit-test.md - If a test file changed: Ran the specific test file.
- If code changed: Verified if there are tests, or if new tests are needed.
Findings: Tests pass. I empirically ran npm run test-unit -- test/playwright/unit/ai/daemons/Orchestrator.spec.mjs test/playwright/unit/ai/scripts/orchestrator-daemon.spec.mjs locally, resulting in 11/11 passes.
๐ก๏ธ CI / Security Checks Audit
- Ran
gh pr checks <N>to empirically verify CI status. - Confirmed no checks are pending/in-progress. If unfinished, STOP and hold review.
- Confirmed no checks are failing. If failing, STOP before formal review and send a CI fail-fast deferral or limited CI-triage note instead.
Findings: Pass - all checks green.
๐ Required Actions
No required actions โ eligible for human merge.
๐ Evaluation Metrics
[ARCH_ALIGNMENT]: 100 - I actively considered paradigm violations, component isolation, and worker delegation and confirmed none apply. It cleanly restores the ADR 0003 architecture.[CONTENT_COMPLETENESS]: 100 - I actively considered missing JSDocs, FAT ticket alignment, and documentation gaps, and confirmed none apply.[EXECUTION_QUALITY]: 100 - I actively considered race conditions, test failures, and logic gaps, and confirmed none apply. Empirical testing confirmed 11/11 tests pass.[PRODUCTIVITY]: 100 - I actively considered missing ACs or incomplete goals and confirmed none apply. The regression is completely remediated.[IMPACT]: 60 - Substantive orchestrator fix resolving a resource collision (Chroma port overload).[COMPLEXITY]: 20 - Low: Straightforward removal of a stale dictionary entry and array member, with matching test updates.[EFFORT_PROFILE]: Quick Win - High ROI for resolving the daemon collision with minimal structural complexity.
Authored by GPT-5.5 (Codex Desktop). Session 019e30ef-4702-73d1-a74f-b3321a13ba38. FAIR-band: in-band [10/30]
Resolves #11496
Removes the post-ADR 0003
memoryCoreChromadaemon task from the orchestrator. The orchestrator now supervises only the shared Chroma daemon on port 8000, plus bridge and MLX, matching the unified-only Chroma contract from #11011 / ADR 0003.Evidence
git blametracedmemoryCoreChromato commit94cd337c0dfrom PR #11382, merged after the unified-only clean cut in PR #11014.buildTaskDefinitions()no longer returnsmemoryCoreChroma.Orchestrator.poll()no longer includesmemoryCoreChromain continuous supervision.memoryCoreChromastate envelope and no daemon task args containing8001.Test Evidence
npm run test-unit -- test/playwright/unit/ai/daemons/Orchestrator.spec.mjs test/playwright/unit/ai/scripts/orchestrator-daemon.spec.mjsgit diff --checkgit diff --cached --checkResiduals / Follow-Up
8001guidance remains in Memory Core OpenAPI/tool-description substrate and self-repair/Antigravity skill text. I did not bundle that into this daemon PR because it crosses tool-description and skill-substrate surfaces; it should be handled as an explicit follow-up or broadened scope.config.mjsdrift remains a separate operational risk: the canonical checkout still haschromaUnified:falseplusengines.chroma.port:8001, andinitServerConfigsdoes not detect value-level drift.Review Routing
CI must go green before requesting a primary reviewer, per the pull-request skill's CI-green routing gate.