Files
paseo/packages/website
paseo-bot[bot] 0eee4fd9b0 docs(schedules): explain archive-on-finish behavior (#7426)
The schedule and worktree guides omitted the existing retention control and its default. Document the app setting and clarify that CLI and MCP tools do not expose it.

Co-authored-by: paseo-bot[bot] <266920839+paseo-bot[bot]@users.noreply.github.com>
2026-10-19 23:56:49 +02:00
..
2026-10-19 08:45:41 +02:00

Paseo website

Plugin install counts

Clients report an install by resolving a plugin with X-Paseo-Install: 1 or ?intent=install, using /api/plugins/resolve/<owner>/<slug> or /plugins/<owner>/<slug>.json. Ordinary resolves do not count. These numbers measure install intent, not successful artifact installation or npm downloads.

The worker requires Cloudflare's CF-Connecting-IP header to count a report. It stores the plugin ID plus a SHA-256 hash of the IP in a WEBSITE_CACHE KV key with a one hour TTL, never the raw IP. An existing key skips the count; repeats do not extend the hour. Missing or empty IP headers do not count.

Accepted reports increment the existing all-time total and UTC daily buckets in WEBSITE_CACHE. Daily buckets retain 60 days and supply the website's seven-day and thirty-day rankings. /api/plugins/installs still returns plugin IDs mapped to all-time totals. The registry build reads that endpoint into the published plugin details and index; the website reads windowed counts from KV through its five-minute cache. Existing counts remain intact. The KV guard is advisory: concurrent requests and KV propagation are not serialized.