Gnome toolbar for Tangled code review.

perf(helper): take branch heads from Jetstream's git.refs events #25

Merged permadeath.com
targeting main from azurite-frogmouth.test.pds.did.bot/gnome-shell-extension-tangled-reviewer:claude/heads-from-git-refs
Merged opened by and assigned to permadeath.com
targeting main from azurite-frogmouth.test.pds.did.bot/gnome-shell-extension-tangled-reviewer:claude/heads-from-git-refs

Closes #21. Branch heads now come from Jetstream's org.tangled.git.refs events instead of an org.tangled.temp.git.getRef call for every target branch on every refresh. The record lists every ref as oid refname lines (base64 without padding, which GLib needs put back), so a head read once stays current while Jetstream stays connected, for up to 30 minutes. getRef is still asked after a reconnect, without Jetstream, and for a branch the record doesn't list. A moved target branch gets a new head before the refresh its event schedules, so merges are rechecked in that refresh. If the mirror hasn't fetched that head yet, the last verdict stays (transient) instead of going grey. The engine gains one effect, branchHeads. The new test decodes real records captured from Jetstream, one of them this repo's.

Measured in protocol mode with a temporary state dir, you: permadeath.com, watch: [lance.blue], 9 refreshes each (1 cold, 3 requested, 5 from Jetstream events). Before: 43 requests per steady refresh, 9 of them getRef; 99 getRef calls in all, 22 of them 502s. After: 34 per steady refresh, no getRef; 10 getRef calls in all, all in the cold refresh, no 502s. Overall: 503 requests before, 417 after.

🤖 Generated with Claude Code

Commits 0