# TESS-M4-003 — Operator Plugin Foundations - **Task:** TESS-M4-003 / TESS-MEM-001 - **Branch/base:** `feat/tess-operator-plugins` rebased on `origin/main` `76325ca3` - **Scope:** first leaf-package memory/retrieval slice only; no durable inbox ownership, gateway integration, or Mosaic catalog implementation. ## Handoff Coder4's uncommitted implementation was preserved first in commit `5b99c821` before review. The completion pass corrected the contract so namespace is injected configuration rather than caller-selected scope data, storage keys include tenant/owner/session via collision-safe tuple encoding, and malformed runtime scope values fail closed. ## Delivered boundary - `OperatorMemoryPlugin` exposes `capture`, `search`, `recent`, `stats`, and `startupContext` through `MemoryAdapter` only. - Scope is server-derived `{tenantId, ownerId, sessionId}`; adapter and namespace are configuration, not operation input. - Capture redacts before persistence and records configured instance/namespace/source provenance. - Wildcard retrieval is documented at the `MemoryAdapter` boundary and implemented by the keyword adapter. - Startup context uses a bounded 64-result candidate window, then prioritizes project and flat-file provenance before slicing the configured output limit. - No `Tess` identity is hardcoded in storage keys or defaults; tests use configured `Nova`. ## Verification - `pnpm --filter @mosaicstack/memory test` — PASS (32 tests) - `pnpm --filter @mosaicstack/memory typecheck` — PASS - `pnpm --filter @mosaicstack/memory lint` — PASS - `pnpm --filter @mosaicstack/memory build` — PASS - Codex code review — APPROVE after remediation - Codex security review — no findings after runtime scope-validation remediation