28 lines
1.7 KiB
Markdown
28 lines
1.7 KiB
Markdown
# 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
|