Skip to content

Emotional register carries no channel/medium signal, even though hot-buffer already tags it #74

Description

@Dithilli

Problem

hot-buffer.ts already resolves and tags ctx.channelId on its writes (openclaw_channel_id metadata) — but emotional-state.ts's store/fetch path for the Tin Man register carries no channel info at all. A warm voice call and a terse Discord exchange are indistinguishable to the register; it only ever records "how it felt," with zero sense of the medium that produced that feeling.

What we could do

Thread ctx.channelId through to storeEmotionalState's metadata — the value is already resolved elsewhere in the same codebase (hot-buffer.ts), so this is mostly plumbing, not new resolution logic. Whether the injected prose should ever mention medium is a separate, more careful design question — start by just capturing it in metadata (available for later analysis / debugging) without surfacing it in the injected text, so it doesn't become a new ritual signal or something the model starts performing around.

How we'd test it

Have a real voice call and a real terse Discord exchange happen on the same day, then check the stored register's metadata to confirm each is tagged with the correct channel — a pure data-presence check, not a judgment call about whether tone should change based on it.

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