Skip to content

Formalize SessionMemoryObserverActor with passivation-triggered distillation #423

Description

@Aaronontheweb

Context

The SessionMemoryObserverActor was added in #410 as a spike. It works — it watches the conversation stream and distills memories when the session goes idle. But it needs formalization as a first-class framework component, particularly now that #411 introduced the Passivating state with the plumbing for passivation-triggered distillation.

What needs to happen

Passivation-triggered distillation

The observer currently only distills on its own idle timer (90s). When the parent session enters Passivating, it sends DistillMemories to the observer (added in #411). The observer already handles this message, but the interaction protocol needs formal specification:

Protocol formalization

Own OpenSpec

The observer has its own persistence identity (memory-observer-{sessionId}), its own protocol, and its own lifecycle. It deserves its own OpenSpec spec rather than being a subsection of netclaw-session.

Prerequisite work (done)

Refs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions