From e73e0cd1cc8349523afc61da3a37491b9206cc9b Mon Sep 17 00:00:00 2001 From: Vecdi Burak Bengi <1761031+burakbengi@users.noreply.github.com> Date: Sun, 19 Apr 2026 19:50:20 +0200 Subject: [PATCH] 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 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index de28bbc65..8498e7df7 100644 --- a/README.md +++ b/README.md @@ -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.