- Install flow now assumes one admin-distributed service account JSON shared
across the team. Each user creates their own Google Sheet and shares it
with the SA email; per-user GCP project setup is gone.
- DEPLOY.md: a step-by-step walkthrough for non-technical users following
along with an AI agent (Terminal basics, screenshots-worth of expected
output, common-error table).
- scripts/append_row.py: sheet_id field accepts either a bare ID or a full
Google Sheets URL; normalize_sheet_id() extracts the ID via regex.
- scripts/setup.md: rewritten as an admin guide (one-time GCP setup, key
rotation) plus a troubleshooting reference.
- LICENSE: MIT (previously "private — internal use"). README license
sections updated to match.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replace the terse install summary with a click-by-click guide that
covers the full setup in both README.md and README.zh-CN.md:
clone+pip, GCP service account, moving the key out of the repo,
creating the sheet with header row, writing config.json, and a
sanity check. Flag the zh-CN tab-name gotcha (工作表1 vs Sheet1)
that causes HTTP 400 Unable to parse range.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>