Bastien Chanot
caa5bed189
fix(seo-data): source ~/.claude/.env in make seo-connect so OAuth creds reach connect.py
...
The seo-connect target ran connect.py without sourcing ~/.claude/.env, so
GOOGLE_OAUTH_CLIENT_ID/SECRET (documented to live there) never reached
os.environ — connect.py aborted telling the user to set what they had set.
Mirror fetch.sh's sourcing; add a regression lock.
2026-07-10 03:17:06 +02:00
Bastien Chanot
c50d2cc5bb
docs(seo-data): engine usage + security contract README
2026-07-10 02:29:48 +02:00
Bastien Chanot
15962fcd90
feat(seo): wire GSC+CrUX data into /seo FULL (STEP 0 account select, CWV field, GSC perf)
2026-07-10 02:19:57 +02:00
Bastien Chanot
c4bee6aad3
chore(seo-data): install/make/doctor wiring + gitleaks allowlist for token store
2026-07-10 02:10:31 +02:00
Bastien Chanot
7f06533d8b
feat(seo-data): OAuth consent + property discovery + pinned deps
2026-07-10 01:45:33 +02:00
Bastien Chanot
39e227f1c8
fix(seo-data): fail-open CLI contract (corrupt store + bad usage always emit JSON)
2026-07-10 01:42:23 +02:00
Bastien Chanot
c3a504fbbf
feat(seo-data): fetch.sh entrypoint with venv/system fallback and redaction
2026-07-10 01:32:48 +02:00
Bastien Chanot
5a318076fd
feat(seo-data): GSC Search Analytics + URL Inspection with lazy OAuth refresh
2026-07-10 01:26:30 +02:00
Bastien Chanot
493ecd8806
fix(seo-data): extract real CrUX origin on 404 retry + drop dead import
2026-07-10 01:23:13 +02:00
Bastien Chanot
e214da036d
feat(seo-data): CrUX field-data fetch with mock mode and graceful degrade
2026-07-10 01:16:11 +02:00
Bastien Chanot
0f7fd5b678
fix(seo-data): re-assert store dir 0700, chmod lock, drop dead import
2026-07-10 01:11:49 +02:00
Bastien Chanot
fb0484954a
feat(seo-data): label-keyed atomic OAuth token store
2026-07-10 01:03:50 +02:00