BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2 或任何藍牙控制器,搭配 MyWhoosh、Rouvy、Zwift 等。iOS、Android、Windows、macOS 均可免費試用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Esta es la versión consolidada y simplificada para montar CHALLENGE DYNASTY.
Solo 4 cosas:
supabase/schema_master.sql.
Este archivo es una foto exacta de la base de datos en vivo tomada el 2026-10-08
(generada por introspección directa de producción, no escrita a mano) — verificado
corriéndolo completo contra un Postgres limpio antes de entregarlo. Si en
supabase/migrations/ hay archivos con fecha posterior a esa, hay que correrlos
también, uno por uno y en orden de fecha, después de schema_master.sql..env.example como .env.local y pegar las 2 claves de Supabase.npm install
npm run dev
Después abre http://localhost:3000.
En Supabase: Project Settings → API.
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYNunca pongas una service_role key en .env.local ni en el navegador.
No ejecutes ninguna migración antigua de V7, V8, V9 o V9.1.
Para un proyecto nuevo, usa supabase/schema_master.sql como punto de partida (ver el
encabezado del archivo para el detalle de qué incluye y qué no). Los archivos en
supabase/migrations/ de ahí en adelante son el historial de cambios nuevos — no una forma
alternativa de montar el proyecto desde cero.
Primero prueba localmente. Cuando ya funcione, puedes desplegar este mismo proyecto en Vercel y añadir las mismas 2 variables de entorno.
El auto-confirmado de resultados ya corre en producción: public.expire_stale_challenge_disputes()
(definida en supabase/migrations/20261007210000_dispute_timeout_and_card_caps.sql) auto-confirma
con la última versión registrada cualquier resultado pending o disputed sin movimiento por más
de 48 horas, y está programada en Supabase como cron job cada 15 minutos (confirmado en vivo:
select jobname,schedule,active from cron.job). La función más vieja
public.auto_confirm_due_match_results() (ventana de 12 horas, solo cubre pending) sigue
existiendo en el esquema pero no está programada — quedó superada por la de arriba, que además
cubre el caso disputed (el ciclo de disputa que antes podía quedar atascado para siempre).
Esta iteración agrega settings/pasaporte, búsqueda, historial competitivo, Skill Challenges completos, cancelación de retos, rating ELO con historial, bloqueos, reportes y límites básicos de abuso. Ejecuta npm run check-routes, npm run check-sql, npm run check-core-flow y node scripts/check-hardening.mjs antes de desplegar.
Consulta CERTIFICACION_TECNICA_7.txt para ver qué validaciones fueron ejecutadas y cuáles permanecen bloqueadas por la disponibilidad del entorno de npm.
V17 is the only master source. The real Supabase project is the backend source of truth. This bundle does not contain service-role secrets. The final release gate must run in the connected GitHub/Vercel environment because this audit environment cannot complete npm dependency resolution.
See SUPABASE_REAL_CONTRACT.md for the live backend contract and the distinction between production truth and bundled offline SQL.