Scope: Step 10 /remember manual memory capture contract.
memory_capture_prerequisites_not_ready → U4, I5, E5/resume persistence distinct from remember/recover semantics → I7, E6| ID | Scenario | Arrange | Assert |
|---|---|---|---|
| U1 | Single invocation writes one capture | ready memory + valid reason | capture count increments by 1 only |
| U2 | Snapshot shape is minimal and stable | provide session/cwd/branch context | capture contains sessionId/cwd/gitBranch/summary/evidence (nullable where appropriate) |
| U3 | Recovery corpus excludes git-mirrored entries | seed memory + git data | ranking input comes from memory artifacts only |
| U4 | Prereq gating | toggle query/memory readiness false | status error, lastError="memory_capture_prerequisites_not_ready" |
| U5 | EQL remember attrs resolve | query remember store attrs | status/captures/lastCaptureAt/lastError present and typed |
| U6 | Provider failure path | mock provider write failure | failure surfaced with explicit fallback metadata; no silent success |
| ID | Scenario | Arrange | Assert |
|---|---|---|---|
| I1 | /remember command pipeline | running session + ready memory | one memory write-through call + success response |
| I2 | Context extraction from live session | run in repo with branch/cwd | stored capture reflects current session metadata |
| I3 | Cross-session recovery | write capture in session A, new session B recover | capture is retrievable/used in recovery |
| I4 | Git history remains query-only | run remember after git activity | no git-log/diff payload persisted as memory artifact |
| I5 | Not-ready memory layer | memory status != ready | command fails with canonical blocked error |
| I6 | EQL telemetry stability | perform remember + query attrs | attrs available before/after capture; counts/timestamps evolve |
| I7 | /resume separation | persist session journal, resume, inspect memory | resumed transcript != implicit remember artifact creation |
| I8 | Fallback/unavailable provider behavior | persistent provider unavailable with fallback modes | explicit selection/failure telemetry and user-facing fallback warning (⚠ Remembered with store fallback …) |
| ID | Surface | Scenario | Assert |
|---|---|---|---|
| E1 | REPL | /remember "reason" once | one capture created, user-visible confirmation |
| E2 | RPC-EDN | remember command op/flow | same semantics and result shape as REPL |
| E3 | Emacs | interactive remember command | same semantics and visibility as REPL/RPC |
| E4 | Cross-session | capture then restart/new session recover | recovered artifact is visible/usable |
| E5 | Failure UX | invoke remember when memory not ready | clear blocked message with canonical error key |
| E6 | Resume boundary | /resume old session then query memory captures | no synthetic remember captures from resume alone |
| E7 | Provider outage | active provider fails mid-run | deterministic fallback warning + telemetry, no duplicate writes |
components/memory/test/..., components/agent-session/test/...remember*components/agent-session/test/.../commands_*, memory-store integration namespacesWhen /remember succeeds in-memory but active provider write fails, surfaces should
emit a warning (not silent success):
⚠ Remembered with store fallbackprovider when availablestore-error when availabledetail message when availableThis warning must be consistent across REPL, RPC, and Emacs-visible transcript output.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |