Skip to content

Formalize SessionMemoryObserverActor with passivation-triggered distillation #423

@Aaronontheweb

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions