#150938·openclaw

Activity recaps should skip Cron run sessions

Author: giodl73-repoCreated Sep 17, 2026Updated Sep 17, 2026
LabelsmaintainerP2clawsweeper:source-reproissue-rating: 🦞 diamond lobsterimpact:other

Problem

The Activity recap service currently admits Cron job/run session keys into the model-generated conversation recap queue. Cron executions already have scheduler-owned Activity summaries, so viewing Activity can trigger redundant utility-model work and can replace the scheduler's concise run state with a conversation-style recap.

The merged recap design in #147383 excludes non-conversation work such as subagents and heartbeats, but current createSessionActivitySummaries().ensure() does not reject Cron session keys.

Reproduction

  1. Create a stored session whose key is shaped like agent:main:cron:<job>:run:<run>.
  2. Configure a utility model and request an Activity summary for that row.
  3. Observe that the recap service admits the row and schedules model completion.

Expected behavior

Cron job and Cron run rows retain their existing scheduler-owned Activity summary and do not invoke the conversation recap model. Direct, group, channel, Web, Mail, Slack, and other conversation sessions remain eligible.

Acceptance criteria

  • Cron job/run session keys are rejected before recap model preparation or completion.
  • The returned Activity recap projection is unavailable for that request.
  • Existing conversation recap behavior is unchanged.
  • A focused regression test covers a canonical Cron run key.

Discovered while assessing the downstream 0186-0201 Activity recap carry against merged #147441, #147837, and #147901.