docs(privacy): disclose hourly GitHub VERSION fetch in update-check

Every skill preamble runs gstack-update-check, which GETs
raw.githubusercontent.com/garrytan/gstack/main/VERSION on cache miss
(~once per hour). This network call fires regardless of the user's
telemetry setting and was not mentioned in the Privacy & Telemetry
section of the README.

Add a bullet that names the endpoint, explains what it reveals (IP to
GitHub), and points to the update_check: false escape hatch that already
exists in gstack-config.

Fixes #1081
This commit is contained in:
Vecdi Burak Bengi 2026-04-19 19:50:20 +02:00
parent 22a4451e0e
commit e73e0cd1cc
No known key found for this signature in database
GPG Key ID: 41142009701F768A
1 changed files with 1 additions and 0 deletions

View File

@ -377,6 +377,7 @@ gstack includes **opt-in** usage telemetry to help improve the project. Here's e
- **What's sent (if you opt in):** skill name, duration, success/fail, gstack version, OS. That's it.
- **What's never sent:** code, file paths, repo names, branch names, prompts, or any user-generated content.
- **Change anytime:** `gstack-config set telemetry off` disables everything instantly.
- **Update checks:** Once per hour, gstack fetches the current version number from `raw.githubusercontent.com` to check for upgrades. This is a plain GET request — no auth, no payload — but it does reach GitHub's servers regardless of your telemetry setting. Set `update_check: false` in `~/.gstack/config.yaml` to disable it entirely.
Data is stored in [Supabase](https://supabase.com) (open source Firebase alternative). The schema is in [`supabase/migrations/`](supabase/migrations/) — you can verify exactly what's collected. The Supabase publishable key in the repo is a public key (like a Firebase API key) — row-level security policies deny all direct access. Telemetry flows through validated edge functions that enforce schema checks, event type allowlists, and field length limits.