Context
RFC #304 proposes
nesting memory_dir categorization under a vendor/product hierarchy.
Its body lists open design questions that must be resolved before
any code change (Phase 1 server-side provider field, Phase 2 UI
tree, Phase 3 codex rename) can land.
As of #313, the category vocabulary is locked against silent
expansion (_VALID_PROVIDER_CATEGORIES + import-time assert), so
RFC #304 can stay OPEN indefinitely without contributors pre-empting
its outcome by adding a fourth regex row.
This issue is a working space for those questions. Answer each in
comments; once all have an owner-agreed answer, this issue closes and
RFC #304 is updated with the resolutions before any Phase 1 code PR
begins. The RFC body itself stays as the design document — discussion
happens here to keep it clean as a reference.
Questions to resolve
Numbered so comments can reference by Q#. Statements are verbatim
from RFC #304.
Q1. Axis: vendor vs source. Is the parent level "who made this
tool" (claude, openai, ...) or "who supplied this path"
(user-provided vs provider-provided)? If "source", user is a peer
of claude/openai. If "vendor", user has no natural vendor and
needs either a synthetic user bucket or a mixed tree/flat renderer.
Q2. Where does user live? Top-level peer of the vendor groups,
or an escape-hatch bucket common to all vendors? Peer = simpler tree,
smaller blast radius.
Q3. Wire format. Three options:
- Keep
category: "claude-memory" string, add sibling
provider: "claude" string (additive, no type change, easy client
migration).
- Switch to path-style
category: "claude/memory" (single field,
splits client-side).
- Switch to
category: {provider: "claude", product: "memory"}
object (most type-strict, largest client diff, breaks existing
consumers).
Q4. Collapse semantics. Does collapsing a parent hide all
children? Does each child still remember its own collapse state?
What's the default open/closed for parent vs child on first load?
Q5. Group reindex scope. "Reindex group" on the parent = reindex
all children. On a child summary = reindex just that child. Both
present simultaneously, or parent-only when children exist?
Q6. Codex migration. If we adopt a vendor hierarchy, is codex
moved to openai/codex in the same change, deferred (flat
exception), or left at its current name to keep the PR minimal?
Gemini is already marked out-of-scope in RFC #304 and is not
re-opened here.
Not in scope for this issue
Definition of done
Related
Context
RFC #304 proposes
nesting
memory_dircategorization under a vendor/product hierarchy.Its body lists open design questions that must be resolved before
any code change (Phase 1 server-side
providerfield, Phase 2 UItree, Phase 3 codex rename) can land.
As of #313, the category vocabulary is locked against silent
expansion (
_VALID_PROVIDER_CATEGORIES+ import-time assert), soRFC #304 can stay OPEN indefinitely without contributors pre-empting
its outcome by adding a fourth regex row.
This issue is a working space for those questions. Answer each in
comments; once all have an owner-agreed answer, this issue closes and
RFC #304 is updated with the resolutions before any Phase 1 code PR
begins. The RFC body itself stays as the design document — discussion
happens here to keep it clean as a reference.
Questions to resolve
Numbered so comments can reference by
Q#. Statements are verbatimfrom RFC #304.
Q1. Axis: vendor vs source. Is the parent level "who made this
tool" (
claude,openai, ...) or "who supplied this path"(
user-provided vs provider-provided)? If "source",useris a peerof
claude/openai. If "vendor",userhas no natural vendor andneeds either a synthetic
userbucket or a mixed tree/flat renderer.Q2. Where does
userlive? Top-level peer of the vendor groups,or an escape-hatch bucket common to all vendors? Peer = simpler tree,
smaller blast radius.
Q3. Wire format. Three options:
category: "claude-memory"string, add siblingprovider: "claude"string (additive, no type change, easy clientmigration).
category: "claude/memory"(single field,splits client-side).
category: {provider: "claude", product: "memory"}object (most type-strict, largest client diff, breaks existing
consumers).
Q4. Collapse semantics. Does collapsing a parent hide all
children? Does each child still remember its own collapse state?
What's the default open/closed for parent vs child on first load?
Q5. Group reindex scope. "Reindex group" on the parent = reindex
all children. On a child summary = reindex just that child. Both
present simultaneously, or parent-only when children exist?
Q6. Codex migration. If we adopt a vendor hierarchy, is
codexmoved to
openai/codexin the same change, deferred (flatexception), or left at its current name to keep the PR minimal?
Not in scope for this issue
providerfield (Phase 1) code change — blocked on Q1/Q3.Definition of done
or in-place edit).
Related