The previous commit dropped the return along with the value assignment,
so every render threw before drawing anything.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each poll ran 24 GraphQL searches per repo (~360 per poll), which trips
GitHub's search secondary rate limit even with plenty of hourly budget
left. Per-window PR/issue counts now come from walking recent PRs and
issues newest first and bucketing them locally; no search at all.
A rate-limited repo now halts the rest of the poll, the error reports
GitHub's retry-after time, and two repos are fetched at a time, not four.
The UI rebuilt the window dropdown on every render (every 15 s and per
repo during a poll), which could close it mid-choice. The group header
row is now built once.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add storytold/craft-launcher and storytold/figcraft to the default repo list
and config template.
GitHub answers 404 / NOT_FOUND for private repos the token can't see. Treat
that as a successful poll with no data: the row renders blank (with a
"Not accessible" tooltip) instead of as an error, and doesn't count toward
the failed-repos banner or retry backoff.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>