Skip to content

claw-wall: push channel messages into channel-memory #266

Description

@mostlydev

Motivation

The channel-memory adapter should not pull from Discord independently. claw-wall already owns Discord channel surfaces, raw message identity, ACL checks, backfill/polling, and feed serving, so Phase 2 should use claw-wall as the source owner and push retained messages into channel-memory.

Depends on #265.

Scope

  • Add optional compile-time/runtime wiring for claw-wall to discover a channel-memory ingest endpoint when the adapter is present.
  • Push retained Discord messages from claw-wall to channel-memory after backfill and forward polling.
  • Send stable channel/message identity, author metadata, timestamps, edit/delete state, content, and content_hash.
  • Make push ingest idempotent and retryable without blocking raw-window channel-awareness serving.
  • Preserve channel allowlist/visibility boundaries; channel-memory must not become a bypass around claw-wall policy.
  • Add a repair/backfill path that can replay retained raw messages through the same ingest contract.

Out of scope

  • Implementing the SQLite adapter itself beyond whatever test fake is needed.
  • Serving digest-backed channel awareness.
  • Direct Discord gateway ingest inside channel-memory.
  • Release pin, changelog, or nav changes.

Acceptance

  • Unit tests prove claw-wall emits the expected ingest payload for backfilled and newly polled messages.
  • Failure tests prove channel-awareness remains fail-open to the raw window when channel-memory ingest is unavailable.
  • Authorization/allowlist tests prove pushed data is scoped to the channels claw-wall is allowed to serve.
  • A Docker/fake-service spike proves messages cross the claw-wall to channel-memory boundary.
  • Public docs and issue/PR text 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