Why
Settings → Namespaces (NS list, color, description, rules editing) is dev-mode only:
// web/static/settings-namespaces.js: loadNamespacesTab() and loadNamespaceDropdowns()
if (STATE.uiMode !== 'dev') return;
The Search NS filter dropdown is gated by the same flag (handled separately in #582 as 4.10a — that's a 1-line ungating, no model change). The deeper question is what mental model do prod users actually need for namespaces? Today the model is implicit:
enable_auto_ns=true → folder name → NS, on the fly during indexing.
default_namespace → fallback when no rule matches.
- NS rules in
config.json → glob → NS, power-user only.
Prod users see NS chips appear in Sources after indexing but have no way to curate, rename, color-code, or pre-define them. The dev gating today implicitly says "namespaces are an implementation detail of indexing, not a user-facing primitive." Whether that's the right product position is a real decision.
This issue is an ADR placeholder. First task: draft the ADR; implementation follows.
Decisions the ADR needs to make
- Model — auto-create only, predefine + auto-create, or predefine-only? Each has different onboarding and discoverability implications.
- Editing scope — color/description (cosmetic, low risk) only, or also rename (which needs chunk migration)? Bulk delete? Bulk re-tag?
- Empty state — should prod show an "empty" Namespaces panel with first-time CTA, or hide entirely until at least one NS exists?
- NS rules editor — config-level rules editor in GUI, or stay in
config.json / CLI?
- Migration on rename — if rename is in scope, what's the ergonomic affordance? (Chunks reference NS by string; rename = bulk update.)
Tasks (gating)
References
All paths under packages/memtomem/src/memtomem/.
Out of scope (until ADR Accepted)
🤖 Generated with Claude Code
Why
Settings → Namespaces (NS list, color, description, rules editing) is dev-mode only:
The Search NS filter dropdown is gated by the same flag (handled separately in #582 as 4.10a — that's a 1-line ungating, no model change). The deeper question is what mental model do prod users actually need for namespaces? Today the model is implicit:
enable_auto_ns=true→ folder name → NS, on the fly during indexing.default_namespace→ fallback when no rule matches.config.json→ glob → NS, power-user only.Prod users see NS chips appear in Sources after indexing but have no way to curate, rename, color-code, or pre-define them. The
devgating today implicitly says "namespaces are an implementation detail of indexing, not a user-facing primitive." Whether that's the right product position is a real decision.This issue is an ADR placeholder. First task: draft the ADR; implementation follows.
Decisions the ADR needs to make
config.json/ CLI?Tasks (gating)
docs/adr/000N-namespace-crud-prod-exposure.md, covering the five decisions above. Status = Proposed initially.References
All paths under
packages/memtomem/src/memtomem/.web/static/settings-namespaces.js: loadNamespacesTab(),loadNamespaceDropdowns()(~59-99)web/routes/namespaces.py: list_namespaces()(~21)config.py: NamespaceConfig(~353)_resolve_namespacepriority:indexing/engine.py: IndexEngine._resolve_namespace()(~474)Out of scope (until ADR Accepted)
🤖 Generated with Claude Code