Skip to content

channel-memory: add SQLite source-message adapter #265

Description

@mostlydev

Motivation

PR #262 defines digest-backed channel awareness for issue #232 Phase 2. PR #264 landed the stable source-handle prerequisite. The next executable slice is a durable channel-message substrate; the current claw-wall store is an in-process retention window and cannot be the source of truth for digest provenance.

Scope

  • Add an examples/channel-memory adapter with a service descriptor and README.
  • Use SQLite as the primary store for channel source messages and derived recall blocks.
  • Store source_messages keyed by (source_kind, channel_id, message_id, content_hash) so edited content creates a new source row while serving can select the current non-deleted version.
  • Add tables for derived blocks, derived-block/source-message provenance, coverage gaps, and processor queue state.
  • Implement idempotent ingest into the adapter and deterministic processing that works without an LLM key.
  • Preserve hard events verbatim or near-verbatim; only mark rollups as sparse when they summarize or omit source content.
  • Include edit/delete/tombstone and forget/visibility semantics in the data model, even if the first caller only exercises normal message ingest.

Out of scope

  • Wiring claw-wall to push live Discord messages into the adapter.
  • Serving raw_window+digest from claw-wall.
  • Async LLM digest generation and provider cost caps.
  • Release pin, changelog, or nav changes.

Acceptance

  • Unit tests cover idempotent ingest, content-hash edit identity, delete/tombstone state, source-message lookup, derived-block provenance, and coverage-gap records.
  • Deterministic processor tests prove useful output with no provider credentials.
  • The adapter can answer exact source-message queries for retained messages by channel and message id.
  • Public docs and examples stay deployment-agnostic.

Refs #262
Refs #263

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions