# Star history chart

The README chart is generated by [Update star history](https://github.com/NVlabs/SoL-Pi/actions/workflows/star-history.yml). It runs hourly at minute 17, when the generator or workflow changes on `main`, and on manual dispatch. GitHub may delay scheduled runs; the image shows the actual successful fetch time in UTC.

The workflow uses its built-in `GITHUB_TOKEN`, Node.js, and the [GitHub aggregate star history and count endpoints](https://docs.github.com/en/rest/activity/starring). It fetches every history page and renders locally with the original [Star History renderer](https://github.com/star-history/star-history/tree/c326eac651bc5afb4cd40d354223dd419e1e2ae6), pinned to a specific commit and installed from its lockfiles. No additional secrets or cached third-party chart API are used.

The chart retains Star History's original layout, typography, legend, and axes, with only an updated timestamp added below it. The line sums GitHub's daily star additions. The current total is retained in the source JSON and can differ from that sum because it excludes removed stars. Daily boundaries follow GitHub's reported week timestamps and are not guaranteed to align with UTC. No stargazer identities are collected.

The light SVG, dark SVG, source JSON, and renderer's MIT license are committed to the dedicated `star-history` branch. The README loads the SVGs from `raw.githubusercontent.com`; GitHub's image cache may add a short delay. The workflow does not change `main` or the website's `gh-pages` branch. Fetching, validation, and rendering finish before publication, so a failed run leaves the previous published chart available.

To refresh manually, open the workflow, select **Run workflow**, and run it on `main`. For a local preview, check out the pinned Star History revision separately, install its root and backend dependencies using pnpm 9.15.9 with `--frozen-lockfile --ignore-scripts`, then run:

```bash
export STAR_HISTORY_RENDERER=/absolute/path/to/star-history-checkout
"$STAR_HISTORY_RENDERER/backend/node_modules/.bin/tsx" scripts/update-star-history.mjs NVlabs/SoL-Pi /absolute/path/to/star-history-preview
```

For a higher API rate limit, supply `GITHUB_TOKEN` through the environment. Never put the token in a URL or command argument. Run generator tests with `npx vitest run tests/star-history.test.js`.
