Skip to content

claw-wall: busy-channel restart backfill does not guarantee 24h awareness #238

@mostlydev

Description

@mostlydev

Context

Tiverton deployed Clawdapus v0.16.0 on May 12, 2026 via ./scripts/pod-up.sh, which moved the pod to:

  • claw-api:v0.16.0
  • claw-wall:v0.16.0
  • clawdash:v0.16.0
  • cllama:v0.6.5

This includes the phase-1 channel-awareness work from #232. The original operator requirement was that each trader should have reliable awareness of the last 24h of Discord floor context after restarts, without stuffing all raw messages into every prompt.

What worked

The new phase-1 plumbing is active:

  • channel-awareness is fetched automatically for Discord-channel agents.
  • channel_context_op telemetry is emitted.
  • Boulton had access to the search_channel_context retrieval path.
  • Boulton's v0.16 durable claw-authored skill root survived pod regeneration; this issue is not about .claw-skills.

Repro / Evidence

After ./scripts/pod-up.sh, claw-wall and cllama restarted. The channel-context cursors were cleared by Tiverton's wrapper, so the next agent turns were bootstrap/tail behavior.

A direct high-capacity awareness fetch showed the available claw-wall buffer did not cover the requested 24h window:

GET /channel-awareness?channels=1464509330731696213&since=24h&limit=200&max_chars=200000&context_kind=raw_window

[channel-awareness] kind=raw_window since=24h0m0s channels=1464509330731696213 messages=107 available=107 omitted=0 retained=107/since-24h0m0s digest=unavailable range=2026-05-12T15:46Z..2026-05-12T18:31Z buffer_range=2026-05-12T15:46Z..2026-05-12T18:31Z

The floor had an earlier same-day operator prompt at about 09:50 ET:

Wojtek: @Boulton wanna pick up CMCSA on Logan's read?

That message was within 24h, but outside the post-restart claw-wall buffer. Boulton was then asked:

Operator awareness test. Do not propose a trade and do not update state. Based only on the trading-floor context available to you, what was Logan's CMCSA read earlier today, and why did Wojtek ask you about CMCSA? Answer in two concise bullets.

Boulton correctly found later CMCSA context from Logan/Allen, but could not find the direct Wojtek-to-Boulton prompt. His answer included:

No direct Wojtek-to-Boulton CMCSA mention appears in my buffer (the window starts at 11:46 AM ET).

cllama telemetry for the Boulton turn showed the expected phase-1 paths but also the miss:

{"claw_id":"boulton","type":"feed_fetch","feed_name":"channel-awareness","feed_url":"http://claw-wall:8080/channel-awareness?channels=1464509330731696213&since=24h&limit=60&max_chars=8192&context_kind=raw_window","status_code":200}
{"claw_id":"boulton","type":"channel_context_op","kind":"raw_window","channels":["1464509330731696213"],"retained":107,"returned":21,"omitted":86,"source":"claw-wall","status":"ok"}
{"claw_id":"boulton","type":"channel_context_op","kind":"tool_call","tool_name":"search_channel_context","channels":["1464509330731696213"],"retained":107,"returned":4,"status":"ok"}
{"claw_id":"boulton","type":"channel_context_op","kind":"tool_call","tool_name":"search_channel_context","channels":["1464509330731696213"],"retained":107,"returned":0,"status":"not_in_buffer"}

Expected Behavior

For a configured since=24h awareness contract, the agent should be able to recover the relevant source message through at least one of:

  1. Raw recent window, when the room is quiet enough.
  2. Retrieval over a durable or paginated 24h channel store.
  3. A source-backed rolling digest that points to exact retrieval.

If the backing store cannot actually satisfy 24h, the feed/tool should make that limitation explicit enough for operators and tests to catch. The current header has buffer_range, which is helpful, but the model-facing behavior still presents a 24h request while retrieval can miss older in-window messages after restart.

Impact

In busy Discord rooms, restarting/regenerating the pod can leave agents aware only of the most recent claw-wall buffer, not the last 24h. That means the original Tiverton failure class is still possible: a trader can miss a direct operator instruction or peer thesis from earlier the same trading day.

Possible Fixes

  • On claw-wall startup, paginate Discord history until the requested retention horizon is covered, not just the latest API page.
  • Persist channel history across claw-wall restarts and prune by time/size policy.
  • Keep the phase-1 raw window small, but make search_channel_context operate over the full retained 24h store.
  • Tie this to the phase-2 Salience-memory adapter for derived recall blocks #164 digest/salience work so high-volume rooms get compact summaries plus exact-source lookup.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions