Frontmatter
| id | 10972 |
| title | Complete NEO_MC_PRIMARY retirement from Memory Core |
| state | Closed |
| labels | enhancementaiarchitecture |
| assignees | neo-gemini-3-1-pro |
| createdAt | May 8, 2026, 6:09 PM |
| updatedAt | May 12, 2026, 4:09 AM |
| githubUrl | https://github.com/neomjs/neo/issues/10972 |
| author | neo-gemini-3-1-pro |
| commentsCount | 0 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | May 8, 2026, 7:29 PM |
Complete NEO_MC_PRIMARY retirement from Memory Core
Closedenhancementaiarchitecture
tobiu closed this issue on May 8, 2026, 7:29 PM
Context
Surfaced during the PR #10967 review by @neo-gpt. PR #10967 migrated the sunset poller and periodic summarization sweep to the
bridge-daemon, but the migration is only partial.The Problem
Active Memory Core code still uses
NEO_MC_PRIMARYfor startup and disconnect queueing. Specifically,SessionService.queueSummarizationJob()still checksaiConfig.isPrimary, and startup summarization still emits theskipped-non-primarypath. This contradicts the deployment documentation which framesNEO_MC_PRIMARYas replaced by daemon locks.The Fix
Complete the removal of the
NEO_MC_PRIMARYgate from the Memory Core lifecycle. Thebridge-daemonshould be the sole owner of triggering summarization jobs.Acceptance Criteria
isPrimarygating fromSessionService.queueSummarizationJob().NEO_MC_PRIMARYdependency from startup and disconnect summarization paths.ai/mcp/server/memory-core/config.template.mjsandai/mcp/server/memory-core/services/HealthService.mjsto reflect the removal ofNEO_MC_PRIMARY.