Frontmatter
| id | 10010 |
| title | Memory Core: Team vs Private Context Retrieval Flag |
| state | Closed |
| labels | enhancementaiarchitecture |
| assignees | neo-gemini-pro |
| createdAt | Apr 14, 2026, 5:19 PM |
| updatedAt | Jun 7, 2026, 7:19 PM |
| githubUrl | https://github.com/neomjs/neo/issues/10010 |
| author | tobiu |
| commentsCount | 2 |
| parentIssue | 10016 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [x] 10000 Hardened Identity Ingestion & Tenant Isolation |
| blocking | [] |
| closedAt | May 17, 2026, 8:23 AM |
Memory Core: Team vs Private Context Retrieval Flag
tobiu added parent issue #9999 on Apr 14, 2026, 5:19 PM
tobiu cross-referenced by #10016 on Apr 14, 2026, 6:43 PM
tobiu removed parent issue #9999 on Apr 14, 2026, 6:44 PM
tobiu added parent issue #10016 on Apr 14, 2026, 6:44 PM
tobiu marked this issue as being blocked by #10000 on Apr 14, 2026, 6:44 PM
tobiu cross-referenced by PR #10121 on Apr 20, 2026, 12:40 PM
tobiu cross-referenced by #9748 on Apr 20, 2026, 1:13 PM
tobiu cross-referenced by PR #10123 on Apr 20, 2026, 3:06 PM
tobiu cross-referenced by PR #10128 on Apr 20, 2026, 4:12 PM
tobiu cross-referenced by PR #10130 on Apr 20, 2026, 5:26 PM
tobiu cross-referenced by #10145 on Apr 21, 2026, 8:43 PM
tobiu closed this issue on May 17, 2026, 8:23 AM
Objective
Introduce a Memory Core retrieval policy that lets deployments choose between strict private tenant reads, team-wide context reads, and legacy-migration compatibility while preserving write-side author provenance.
Current Source of Authority
learn/agentos/tooling/MultiTenantMigrationGuide.mdsupersedes the original booleanNEO_ENABLE_TEAM_MEMORYsketch with thememorySharingenum:private: strict tenant isolation.team: team/deployment-wide context sharing for tagged records.legacy: migration-window compatibility for pre-tenant-aware / shared historical data.This ticket implements the retrieval-side plumbing for that contract. It must not reintroduce a boolean-only policy surface.
Contract Ledger Matrix
ai/mcp/server/memory-core/config.template.mjs/ deployment configMultiTenantMigrationGuide.mdmemorySharingenum +mailbox.defaultReplyPolicyconfig patternmemorySharing.defaultPolicywith allowed valueslegacy,private,team; migration-window default islegacy, operator may flip toprivatepost-migration; add env binding such asNEO_MEMORY_SHARING_DEFAULT_POLICYlegacyduring the migration window; invalid enum fails loudly rather than silently weakening isolationMemoryCore.md,SharedDeployment.md,MultiTenantMigrationGuide.mdquery_raw_memoriesMCP schema andMemoryService.queryMemories()MultiTenantMigrationGuide.mdread-side policymemorySharingoverride; otherwise use config default.privatefilters to calleruserIdonly.teamreturns tagged team/deployment records while excluding untagged legacy rows.legacypreserves migration compatibility by including caller-owned plus shared / legacy-compatible rows. Returned records expose author provenance (userIdwhen present)MemoryCoreMcpApi.md,MemoryCore.mdquery_summariesMCP schema andSummaryService.querySummaries()memorySharingresolution asquery_raw_memories, including optional per-call override, config default, private/team/legacy query filters, and returned author provenance (userIdwhen present)MemoryCoreMcpApi.md,MemoryCore.mdadd_memory, summarization/session writes)MemoryCoreMcpAuth.mdanti-spoof ruleuserIdwhen a request context exists; clients cannot supplyuserId;memorySharingaffects reads onlyMemoryCoreMcpAuth.md,MultiTenantMigrationGuide.mdmemorySharingdoes not alter write metadataMultiTenantMigrationGuide.mdlazy-tag-on-read decisionlegacyread policy is the compatibility mechanism;privateandteamexclude untagged historical rows unless explicitly modeled as shared/taggedlegacyuntil healthcheck migration signals support flipping toprivateMultiTenantMigrationGuide.md,HealthServicemigration docsOut of Scope
NEO_ENABLE_TEAM_MEMORYsurface is obsolete and should not be implemented.