ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证psychologist training avatar
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Therapist training platform: practice voice therapy with preset patient avatars (disorder-specific personas), then generate an admin-only performance report after each session.
• Auth with roles: therapist | admin (Supabase Auth + profiles)
• Preset avatars with persona prompts, ideal-session guidelines, and scoring rubric
• Voice-first sessions (browser speech recognition + speech synthesis), 40-minute max
• Patient replies via Vercel AI Gateway / AI SDK (heuristic fallback if no AI key)
• Post-session assessment stored with RLS — admins only can read reports查看完整 README ↗Vtraining (Virtual Training; formerly VPsych) is a therapist training platform: practice voice therapy with preset patient avatars (disorder-specific personas), then generate an admin-only performance report after each session.
therapist | admin (Supabase Auth + profiles)AI_GATEWAY_API_KEY)cp .env.example .env.local
Required:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYAI_GATEWAY_API_KEY (optional but recommended for realistic patient replies + assessments)Required for report generation (choose one):
REPORT_WRITE_KEY — the HMAC key the app uses to sign report writes. It
must equal the Postgres Vault secret report_write_key (see
supabase/migrations/20260730181421_harden_session_reports.sql). The app signs
${sessionId}\n${narrative}\n${scoresJson}\n${excerptsJson} with HMAC-SHA256
and passes it as p_sig to create_session_report.SUPABASE_SERVICE_ROLE_KEY — if set, /api/sessions/[id]/end inserts
the report with a service-role client instead of the signed RPC.If neither is set, session end returns a 500 and no report is written.
npm install
npm run dev
/signup. Grant admin in SQL:update public.profiles set role = 'admin' where id = '<user-uuid>';
The
*.vpsych.testdemo accounts are intentionally disabled (banned_untilset) by the security-hardening migration and must not be used for live access.
The Postgres schema, RLS policies, SECURITY DEFINER RPCs, and the report-signing
contract live in supabase/migrations/ and mirror what is deployed to the live
project. The report/message contract is defined in
20260730181421_harden_session_reports.sql:
create_session_report(uuid, text, text, text, text) — HMAC-signed, insert-onceinsert_assistant_message / insert_system_message — RLS-safe writes for
non-user message rolessession_has_report — idempotency check callable by the session ownerThe application calls these RPCs; it never inserts assistant/system messages
directly (RLS permits only role = 'user' on session_messages).
Auth emails (signup confirmation, recovery, magic link, email change) are sent
through Resend via a Supabase Auth Send Email hook — the edge function in
supabase/functions/send-email-hook. The hook links to the app-hosted
/auth/confirm?token_hash=…&type=… route (which calls verifyOtp) so recovery
does not depend on the Supabase Auth Site URL / redirect allow-list. Password
reset then continues on /auth/reset-password.
Deploy: supabase functions deploy send-email-hook --no-verify-jwt --project-ref rrzudbkxigeavfdnidnm
Activation (dashboard): verify a sending domain and set AUTH_EMAIL_FROM; enable
Authentication → Hooks → Send Email pointing at
https://rrzudbkxigeavfdnidnm.supabase.co/functions/v1/send-email-hook; then set
edge-function secrets RESEND_API_KEY, SEND_EMAIL_HOOK_SECRET, AUTH_EMAIL_FROM,
and optionally APP_URL=https://www.vtraining.app. Until enabled, Supabase's
default mailer is used, so the live signup flow is unaffected.
Also set Authentication → URL Configuration Site URL to
https://www.vtraining.app (not http://localhost:3000) and allow
https://www.vtraining.app/** in Redirect URLs — required for any flow that still
uses GoTrue /auth/v1/verify redirects (default mailer / PKCE callback).
create_session_report is a security-definer RPC that writes reports; only is_admin() policies allow reading session_reports.user_metadata — roles live in profiles.role.auth.uid() / is_admin() in (select …) so they evaluate
once per statement (see 20260731110213_optimize_rls_initplan_and_fk_index.sql).npm run dev — local developmentnpm run build — production buildnpm run lint — ESLint