Changelog
Notable changes to this docs site. For changes to the WebCUVETSMO app itself, see cuvetsmo.com/changelog.
Format: one entry per shipped change. Newest at top. Future SMO IT leads add entries when polishing the docs.
2026-05-31 · v0.4.0 — Handover self-service tools documented
หัวข้อที่มีชื่อว่า “2026-05-31 · v0.4.0 — Handover self-service tools documented”Reflects the WebCUVETSMO “easy to hand to the next board” sweep shipped the same day (the code ships in the app; this is the doc update).
- Successor guide · new §2.5 “Self-service content” — the board now edits the board roster (
/admin/board), partner/sponsor wall (/admin/partners), and logo + site identity (/admin/brand) in-app with no developer. Backed by 3 new tables (board_terms+board_members,partners) and newbrand_settingsidentity columns — each with the bundled static file as the seed + offline fallback (static-first, DB-overlay), so the public page never breaks during a handover. - Successor guide · June cadence — updated to point at those admin pages instead of hand-editing
board-history.ts/partners.ts. - Successor guide · accuracy — edge-function count refreshed to 20, and a migration-tracking warning added (the repo
0NNN_*.sqlfiles don’t map 1:1 to the live timestampschema_migrations; neversupabase db push).
2026-05-24 · v0.3.0 — Audit hardening pass synced to docs
หัวข้อที่มีชื่อว่า “2026-05-24 · v0.3.0 — Audit hardening pass synced to docs”Tracks the same-day production audit hardening pass on the WebCUVETSMO app. Pure documentation update — every code change ships in the app itself, this entry reflects what readers should know.
- Architecture · data model — added 5 new tables:
internal_secrets(locked-down key/value · powers the CRON_SECRET gate),ai_chat_usage_logs(per-call token + provider observability),ai_chat_intent_logs(classifier audit trail ·surfacecolumn distinguishes internal vsai.cuvetsmo.compublic),ai_chat_rate_limit_buckets(rolling 24h enforcement),short_link_clicks(campaign analytics). - Architecture · storage —
project-documentsflipped to private (was public). Receipts and signed letters now served via 1-hour signed URLs fromProjectDetail.tsx.shop-payment-proofs(5 MB · image+PDF) andclubs-logos(2 MB · image-only) now have explicitfile_size_limit+allowed_mime_types. - Architecture · cron — 7 scheduled jobs now (was 3). Added 4 daily retention sweeps at 04:15/20/25/30 UTC for
ai_chat_intent_logs(90d),ai_chat_usage_logs(90d),ai_chat_rate_limit_buckets(1d),short_link_clicks(90d).audit_logintentionally has no retention. - Architecture · edge functions —
ig-harvestnow requiresx-cron-secretheader in addition to the anon JWT; pg_cron bakes the 64-char hex secret in viaformat()at schedule-time. Fail-CLOSED on missing secret (503), timing-safe header compare. - Successor guide —
scripts/deploy-edge-function.mjsdocumented as the generic deploy helper that supersedes per-function scripts. PAT lookup chain:--token→ env vars →.mcp.json(with a loud warning when the file fallback fires).
2026-05-19 · v0.2.0 — Full-option polish
หัวข้อที่มีชื่อว่า “2026-05-19 · v0.2.0 — Full-option polish”- Mermaid diagrams now render as proper SVG on architecture pages (client-side render via mermaid.js, ~80 KB loaded only on pages that have a diagram).
- New hero landing page with Card grid linking to each main doc.
- Site footer with project + tools + contact links across all pages.
- Open Graph image so link previews on LINE, Discord, Slack, Messenger show a real branded card instead of the raw URL.
- Custom 404 page with bilingual hint copy + navigation links.
- Changelog page (this one).
- Theme polish — sky-700 brand palette tuned for both light and dark, Sarabun + Noto Sans Thai font stack.
2026-05-19 · v0.1.0 — Initial public docs site
หัวข้อที่มีชื่อว่า “2026-05-19 · v0.1.0 — Initial public docs site”- Astro Starlight project initialized.
- Four core docs imported from the WebCUVETSMO repo:
architecture.md,architecture-sso.md,dev-onboard.md,successor.md. - Deployed on Cloudflare Pages via Workers Static Assets binding (pure static, no SSR adapter).
- Custom domain
docs.cuvetsmo.comlive. - Pagefind search built-in.
- Edit-page links wired to the cuvetsmo/docs repo.
How to add a new entry
หัวข้อที่มีชื่อว่า “How to add a new entry”When you ship a noticeable change to the docs site (new section, design refresh, navigation change, etc.):
- Bump the date heading at the top with today’s date.
- Add a one-line bullet describing what changed from the reader’s perspective.
- Skip mentioning internal-only refactors that don’t affect the reader.
- Commit with a message like
docs(changelog): note <thing>.
Audience for this page: future contributors and curious visitors who want to know “what’s new since I last looked.” Keep entries short and human.