[Grid agent] Maintain bounded per-avatar conversation sessions and memory #122
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objective
Maintain isolated, bounded conversation state per avatar and channel so the agent can sustain context without leaking one resident's data to another or growing indefinitely.
Session semantics
Acceptance criteria
Dependencies
Depends on architecture and normalized LLM message types. Messaging uses this store; observability and TUI consume only its safe inspection API.
Implemented and pushed in commit
e3ed39471b.Implementation:
Verification:
Acceptance review also covered exact boundary behavior, fresh IDs, public versus IM separation for the same avatar, cross-avatar leakage in actual serialized HTTP requests, concurrent store order, 5,000 scripted senders, aggregate storage bounds, backward and forward clock jumps, fallback to an older snapshot, semantic corruption that attempts to create assistant instructions, restrictive Unix permissions, and metadata-only operator deletion and expiry.
No pre-created compatibility case specifically targets conversation memory; the related existing LLM, policy, and session suites remain green. The focused tests use fake local transports and clocks, so no grid or LLM credentials from .env were read or committed.