poll.sh digest fetches full detail for every open issue, for every session nf-vip0 ← Beads

closed priority 2 task unassigned

Twinned from https://github.com/cfsh/ninefold/issues/418 by tools/beads/import_github.py's reconcile pass.

Filed from ninefold-b during #396 work. Unclaimed and unlabelled — backlog, for a future triage round.

The chunk model bounds what a session *acts on*. It does nothing about what a session *sees*.

poll.sh's digest does one gh issue view per open issue and prints ownership + newest-comment for all of them, every tick, in every session. Measured on 2026-08-02:

``` digest, one tick: 41.6k chars ≈ 11.2k tokens, 391 lines open-issues section: 26.5k chars (64%) per-issue gh calls: 37 (now 38) ```

So ~64% of every digest is issues outside the reader's chunk, and it scales with tracker size × session count × tick rate.

Partially mitigated already, but only for the fingerprint. #396 added --check (skips the per-issue sweep entirely) and scoped the *fingerprint's* issue component to session:<x> + meta. Neither touches the full digest, which is still repo-wide whenever it runs.

Shape of a fix. Scope the *detail*, not the *coverage*:

⚠️ The constraint that makes this delicate: CLAUDE.md's "never check fewer than three channels" exists because a compact poll once hid real aedanpope comments for hours. The distinction that keeps this safe is *summarising issues nobody owns* vs *dropping a channel on issues you own* — the third bullet is what separates them, and it is not optional.

Worth measuring the saving before building: the dominant cost of a tick is the context re-read, not the digest, so this is a smaller lever than --check. It is worth doing when the tracker is large, not urgently.

Dependencies

None.

Comments

No comments.

Add a comment