Skip to content

Namespace-scoped reads: namespace param on memory.recall + feedback event scoping (+ knowledge.compose) #733

Description

@ohdearquant

Problem

Benchmark/evaluation harnesses need a frozen, isolated store per measurement arm: writes go to a dedicated namespace so arm N cannot be contaminated by arm N-1 or by live activity. The write side already supports this (memory.remember accepts namespace), but the read side does not:

  • memory.recall has no namespace param — a per-arm namespace can be written but not read back in isolation.
  • brain.auto_feedback cannot scope its event away from the live posteriors, so serving feedback from a bench arm trains the production brain.
  • knowledge.compose likewise has no namespace filter (lower priority).

Verified against the live verb surface 2026-07-08: none of the three accept namespace.

Ask (preference order)

  1. namespace param on memory.recall (filter recall to one namespace) and on brain.auto_feedback (scope the emitted event). This alone unblocks the primary use case.
  2. Same for knowledge.compose if cheap.
  3. Snapshot-pinned recall/compose (Snapshot-pinned reads: optional as-of/snapshot parameter on memory.recall + knowledge.compose #726) remains the ideal end state; this is the pragmatic subset.

Notes

  • ADR-007 Rev 6: multi-record ops default to WHERE namespace='local' with an explicit namespace= escape — recall is a multi-record read, so a verb-surface namespace arg aligns with the existing model rather than extending it.
  • Feedback scoping needs a design check: whether the event row's namespace stamp is enough to keep bench events out of live posterior updates, or whether the brain update loop needs a namespace filter too.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions