feat(patrol): add daily patrol digest aggregation

Per-cycle patrol digests were polluting JSONL with O(cycles/day) beads.
Apply the same pattern used for cost digests:

- Make per-cycle squash digests ephemeral (not exported to JSONL)
- Add 'gt patrol digest' command to aggregate into daily summary
- Add patrol-digest step to deacon patrol formula

Daily cadence reduces noise while preserving observability.

Closes: gt-nbmceh

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
gastown/crew/jack
2026-01-17 02:11:12 -08:00
committed by Steve Yegge
parent 6d29f34cd0
commit d6a4bc22fd
3 changed files with 376 additions and 3 deletions

View File

@@ -215,13 +215,15 @@ squashed_at: %s
}())
}
// Create the digest bead
// Create the digest bead (ephemeral to avoid JSONL pollution)
// Per-cycle digests are aggregated daily by 'gt patrol digest'
digestIssue, err := b.Create(beads.CreateOptions{
Title: digestTitle,
Description: digestDesc,
Type: "task",
Priority: 4, // P4 - backlog priority for digests
Priority: 4, // P4 - backlog priority for digests
Actor: target,
Ephemeral: true, // Don't export to JSONL - daily aggregation handles permanent record
})
if err != nil {
return fmt.Errorf("creating digest: %w", err)