尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
VIC Schedule Studio is a streamer-first schedule studio built for Victory. It provides a public monthly calendar for viewers, an owner-only editing studio for the streamer, a passcode-gated teaser (최초공개) reveal, support (업 도움) highlighting, customizable broadcast tags, viewer hearts with interest tiers, an OBS broadcast preview (/onair) and a broadcast drawing board. (Sticker decoration, PNG export and the worker role were retired on 2026-08-27 — ADR-0014/0015.) The product is designed around one core rule:查看完整 README ↗
VIC Schedule Studio is a streamer-first schedule studio built for Victory.
It provides a public monthly calendar for viewers, an owner-only editing studio for the streamer, a passcode-gated teaser (최초공개) reveal, support (업 도움) highlighting, customizable broadcast tags, viewer hearts with interest tiers, an OBS broadcast preview (/onair) and a broadcast drawing board. (Sticker decoration, PNG export and the worker role were retired on 2026-08-27 — ADR-0014/0015.)
The product is designed around one core rule:
Public viewers must only receive public schedule data. Embargo, work, and owner-private information must never be included in public responses.
/: public poster (anonymous allowed); logged-in owner/developer get a studio link/onair: anonymous broadcast preview (avatar scene fixed) for OBS/studio: owner-first studio with month navigation and date-based event editing/studio/tags: owner settings (tags). (/studio/trusted-members was retired 2026-09-04, ADR-0018.)/api/public/[slug]/events: public schedule DTO (private fields excluded)See docs/deployment.md for the full production runbook (Vercel + Supabase, owner handoff to Victory, OAuth/redirect setup, read-heavy caching).
Persistence is Supabase (Postgres + RLS); sample data is only used by the visual fixtures.
The app resolves the current role on the server.
OWNER_EMAIL means owner. OWNER_EMAIL is a comma-separated list, so one streamer can use multiple Google accounts as the same owner.viewer. (The manager / trusted-member role was retired 2026-09-04, ADR-0018.)Only owner (and the developer maintainer) can write schedules. Roles are developer / owner / viewer.
In local development, set OWNER_EMAIL to your Google account. Before handoff, replace it with Victory's Google account email (or several, comma-separated, if the streamer uses more than one account). When more than one is listed, the first is the primary owner (calendars.owner_id) and the rest are synced into calendar_co_owners by db/seeds/0013_sync_co_owners.sql. If Supabase environment variables are empty, Google login is disabled.
npm install
npm run dev
Copy .env.example to .env.local and fill Supabase values before wiring real auth/data.
npm run lint
npm run typecheck
npm run test
npm run build
npm run test:e2e
npm run test:visual