7 Commits

Author SHA1 Message Date
Shutong Wu 3e9841306b fix: address ai review comments 2026-06-30 12:31:32 -07:00
Shutong Wu 34c5420d5b style(brand+readme): full-mark favicon, brand connector for link pairs, bigger Recent Updates
- favicon now rasterized from the full logo-mark.svg (was the simplified
  favicon-safe mini, which dropped the inner edges, 3rd rung, and node dots);
  remove the now-unused logo-mark-mini.svg
- add docs/images/connector.svg (blue node — cyan bridge — teal node, echoing the
  split-cube 'two things connected') and use it between English/中文 and Discord/Wiki
- bump the Recent Updates summary to an <h3> (one size up)

Claude-Session: https://claude.ai/code/session_01XFiuAUxNS9riUJFFBEHvui
2026-06-27 22:28:36 -07:00
Shutong Wu bcea12c295 feat(analytics): lead with honest user signals, demote PyPI to a labeled proxy
Adds GitHub real-account signals to the private maintainer summary and reorders
it honest-first:
- In-product DAU/WAU flagged as the true active-user metric (pending Coplay read API)
- Unique repo cloners/viewers (14d) via GitHub traffic API (needs STATS_GITHUB_TOKEN
  PAT with Administration: read; default token 401s)
- GitHub stars/forks (public, real accounts)
- PyPI downloads kept but explicitly labeled inflated install events, not users
All fetches graceful on failure; 6 unit tests; build green.

Claude-Session: https://claude.ai/code/session_01XFiuAUxNS9riUJFFBEHvui
2026-06-27 17:52:09 -07:00
Shutong Wu 1a5bb1b600 refactor(analytics): make the dashboard private (maintainer-only)
Per request, stop publishing adoption numbers to outsiders:
- remove the public /stats page + public data.json + navbar link
- workflow now posts a unified PyPI+traffic table to $GITHUB_STEP_SUMMARY
  (visible only to repo collaborators); drops to contents: read, no commits
- fetch-stats emits Markdown (renderSummary, +2 tests) instead of a public JSON
- public side keeps only the README downloads badge (PyPI counts are public anyway)

Claude-Session: https://claude.ai/code/session_01XFiuAUxNS9riUJFFBEHvui
2026-06-27 17:35:06 -07:00
Shutong Wu 45e5c883bd chore(review): fold in minor review findings
- standardize 5 stray 'MCP For Unity' doc-comments -> 'MCP for Unity'
- external-analytics: link in-product telemetry doc instead of plain ref
- fetch-stats: anchor output path to import.meta.url (run-from-anywhere)
- zh README: add Docs badge for EN/zh badge-row parity

Claude-Session: https://claude.ai/code/session_01XFiuAUxNS9riUJFFBEHvui
2026-06-27 16:24:16 -07:00
Shutong Wu 1f86306909 feat(analytics+brand): unified stats dashboard + wire new brand into docs
Brand: favicon/social-card/theme-color/icon headTags; navbar uses colored
logo-mark.svg for both light & dark.
Analytics: pypistats+goatcounter fetch (TDD, 3 tests), env-gated cookieless
GoatCounter, /stats page, daily stats workflow, external-analytics doc.

Claude-Session: https://claude.ai/code/session_01XFiuAUxNS9riUJFFBEHvui
2026-06-27 16:14:59 -07:00
Shutong Wu ce17286d3b feat(brand): generate favicon/icon set + hero & social cards
- sharp generator (npm run gen:brand) for favicon.png(48), favicon-32,
  apple-touch(180), android-chrome(192/512), package-icon(128)
- fixes the broken 1024x576 favicon.png
- hero banner (logo.png) + og social-card + github-social-preview rendered
  with the Ocean mark, wordmark, tagline
- sync docs/images/logo.png hero

Claude-Session: https://claude.ai/code/session_01XFiuAUxNS9riUJFFBEHvui
2026-06-27 16:02:06 -07:00