Skip to content

gh-pulse: ranges from the last hour to all time, clickable filters (0.34.0) - #70

Merged
ralyodio merged 1 commit into
masterfrom
gh-pulse-ranges
Sep 13, 2026
Merged

ralyodio merged 1 commit into
masterfrom
gh-pulse-ranges

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor

What

  • --range hour | day | week | month | quarter | year | all and --since YYYY-MM-DD, on the scan and on show, open, text, json. Aliases 1h 24h 7d 30d 90d 365d work too.
  • Events (commits, PRs, issues, releases, who starred and forked) come live from GitHub for the whole range, with a page budget that grows with the range and a "lower bound" note when it is reached.
  • Traffic comes from the ledger: every daily snapshot's fourteen-day buckets laid end to end, newest snapshot winning a revised day. Long ranges see as far back as the daily run has been going, and the report says exactly which days it covers. hour has hourly events and daily traffic, because GitHub publishes nothing finer.
  • A range scan never moves the daily baseline. Results cache for an hour under out/range/; a --repo subset caches under its own name so the TUI never shows three repos as the portfolio.
  • TUI: clickable range row and filter rows. Filters are on/off toggles for kinds of movement (stars, forks, commits, PRs, issues, releases, traffic), owners, and private repos; a repo stays listed while any enabled kind moved for it and keeps its rank. Ranges load in the background while the current view stays up. Keys mirror every click (h d w m q y a l, 1-7, p, r).

Tested

  • 28 gh-pulse unit tests (ranges, ledger merge and revision, sums, folding, baseline point, filters); full suite green.
  • tsc --noEmit: baseline errors only.
  • Live: week scan on three repos (hqtui +62 stars, correct after fixing a baseline-inside-the-range bug), all-time on one repo, full-portfolio week scan; TUI captured through a pty with a filter toggle and a background week load.

🤖 Generated with Claude Code

https://claude.ai/code/session_011gfb1vcQH5rf82HfbJvf1Z

….34.0)

`--range hour|day|week|month|quarter|year|all` (and `--since DATE`) on the
scan and on show/open/text/json. Events come live from GitHub for the whole
range, walking as many pages as the range deserves; traffic comes from the
ledger of daily snapshots, the only place GitHub's fourteen-day window
survives, so year and all-time traffic grow as the daily run accumulates
and every report says which days it covers. A range scan never moves the
daily baseline and never writes a snapshot.

In the TUI the range row and the filter rows are clickable: pick a range
(loads in the background while the current view stays up), and flip kinds
of movement (stars, forks, commits, PRs, issues, releases, traffic), owners
and private on and off. A repo stays listed while any enabled kind moved
for it, and keeps its rank.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011gfb1vcQH5rf82HfbJvf1Z
@github-actions

Copy link
Copy Markdown

ThreatCrush Security Scan

13 finding(s)

HIGH/CRITICAL: 4 | MEDIUM: 5 | LOW: 4

Severity Rule Location
HIGH sh-remote-script-execution root-ubuntu.sh:3227
HIGH sh-remote-script-execution root-ubuntu.sh:3228
HIGH sh-remote-script-execution root-ubuntu.sh:4840
HIGH sh-remote-script-execution root-ubuntu.sh:4844
MEDIUM sh-remote-script-execution root-ubuntu.sh:4993
MEDIUM sh-remote-script-execution root-ubuntu.sh:6055
MEDIUM redos-nested-quantifier src/domain-free.ts:56
MEDIUM redos-nested-quantifier src/mail.ts:1042
MEDIUM redos-nested-quantifier src/wcag.ts:556
LOW secret-generic-credential src/credentials.ts:36
LOW secret-generic-api-key test/credentials.test.ts:208
LOW secret-generic-credential test/mail.test.ts:135
LOW secret-generic-credential test/shorten.test.ts:36

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio
ralyodio merged commit 2029edc into master Sep 13, 2026
5 checks passed
@ralyodio
ralyodio deleted the gh-pulse-ranges branch September 13, 2026 05:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant