尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
GLYX — Sistema Inteligente de Controle Metabólico e Diabetes App web (Next.js 15 App Router) para controle diário de diabetes e metas corporais: glicemia (manual e sincronização automática via CGM), refeições por foto com IA, medicação com alarmes, exercício, exames, água, peso e um copiloto de IA metabólica — com backend em Supabase (Postgres + Auth + RLS + Storage + cron). Raiz única do repositório: D:\PROJETOS\04_LABS\GLYX-Sistema-Inteligente-de-Controle-Metab-lico-e-Diabetes Planejamento: ROADMAP.md · DPIA (LGPD): docs/DPIA.md · Produção: docs/PRODUCAO.md (npm run check:prod)查看完整 README ↗
App web (Next.js 15 App Router) para controle diário de diabetes e metas corporais: glicemia (manual e sincronização automática via CGM), refeições por foto com IA, medicação com alarmes, exercício, exames, água, peso e um copiloto de IA metabólica — com backend em Supabase (Postgres + Auth + RLS + Storage + cron).
Raiz única do repositório:
D:\PROJETOS\04_LABS\GLYX-Sistema-Inteligente-de-Controle-Metab-lico-e-Diabetes
Planejamento: ROADMAP.md · DPIA (LGPD): docs/DPIA.md · Produção: docs/PRODUCAO.md (npm run check:prod)
pg_cron/pg_net
para os despachantes agendados.KIMI_API_KEY) — chat, visão (foto de
refeição/exame/rótulo/bancada) e geração de sugestões. Anthropic e OpenAI ficam
disponíveis, mas só entram por AI_PROVIDER explícito: adicionar uma chave ao
ambiente não troca o modelo que analisa dado clínico.lib/safety/), com base curada em migration. Nenhum LLM emite veredito de
segurança — o modelo só redige o que o motor já decidiu, e ausência de alerta nunca é
apresentada como "seguro".public/sw.js).cgm_connections.@sentry/nextjs) + alertas de falha em cron CGM/push/meal-suggest
(e webhook opcional OPS_ALERT_WEBHOOK_URL).profiles.timezone.pg_cron para remédio/suplemento na hora certa
(com opção de adiar/"soneca"), aviso de estoque baixo, dica diária de nutrição, lembrete de água a
cada ~2h, e sugestão de refeição por IA quando o horário passa sem registro.SIGNUP_INVITE_CODE +
SUPABASE_SERVICE_ROLE_KEY em /api/auth/register), fluxo de esqueci/redefinir senha./admin: estatísticas de uso e "relógio de gastos" de IA (por dia/mês, com metas
configuráveis), restrito por profiles.is_admin..env.example para .env.local e preencha (veja comentários no próprio arquivo — Supabase,
IA, VAPID, CRON_SECRET, SIGNUP_INVITE_CODE).supabase db push com o CLI), execute todos os arquivos de
supabase/migrations/ em ordem cronológica pelo nome. São incrementais — pular algum deixa
tabelas/colunas/funções ausentes. Inclui o circuit breaker do CGM
(*_cgm_circuit_breaker.sql).npx web-push generate-vapid-keys.CRON_SECRET aleatório próprio e configure o mesmo valor nas funções SQL de cron
(procure x-cron-secret e p_secret em supabase/migrations/*.sql) — nunca reutilize um valor
que já apareceu em um commit público.npm install
npm run verify # lint + build + testes unitários
npm run dev
Abra http://localhost:3000.
npm run test # Vitest — normalizadores, agregações, rate limit, parser de refeição, RLS/LGPD
npm run test:watch
npm run test:e2e # Playwright — smoke + portões de auth; sobe `npm run dev` automaticamente
E2E clínico autenticado (e2e/clinical-path.spec.ts): defina E2E_USER_EMAIL e
E2E_USER_PASSWORD (conta real do projeto Supabase). Sem isso, o spec é ignorado — o CI ainda
valida redirects, 401 de export/cron e convite inválido.
Cobertura RLS negativa (estática): lib/privacy/rls-coverage.test.ts exige que cada tabela clínica
nas migrations tenha ENABLE ROW LEVEL SECURITY + policy com auth.uid(), e que o inventário
LGPD de wipe/export acompanhe o schema.
As funções SQL de despacho (dispatch_*, evaluate_meal_glucose_spikes) não têm cobertura de teste
automatizado no Postgres — a lógica de janela de horário/fuso que pode ser expressa em TypeScript
está isolada em lib/time/local-day.ts e coberta por lib/time/local-day.test.ts.
GitHub Actions roda npm install, npm run verify (lint + build + Vitest), instala Chromium do
Playwright e corre npm run test:e2e, com variáveis públicas de exemplo para o build.
.env.example no ambiente de produção;
CRON_SECRET precisa ser o mesmo valor das funções SQL. Nunca exponha a service role key no
cliente.https://…/auth/callback e http://localhost:3000/auth/callback para desenvolvimento./api/auth/register) após validar o convite, então o signup público
anônimo fica bloqueado na API Auth; ative "Leaked password protection".SIGNUP_INVITE_CODE, SUPABASE_SERVICE_ROLE_KEY e, para CGM, CGM_CREDENTIALS_SECRET
(diferente do CRON_SECRET) no ambiente de produção.SENTRY_DSN e NEXT_PUBLIC_SENTRY_DSN (mesmo valor) para capturar erros
de UI e falhas de sync/push; opcionalmente OPS_ALERT_WEBHOOK_URL para ping em Slack/Discord
quando um cron agrega falhas.next.config.ts (X-Frame-Options, Referrer-Policy etc.).pg_cron: cada função de despacho chama net.http_post para uma rota /api/.../dispatch com
o domínio de produção hardcoded na função SQL — se o domínio mudar, atualize as funções.public tem RLS habilitado; ao criar uma tabela nova, adicione a policy de dono
antes de expor no cliente.SECURITY DEFINER chamadas só pelo pg_cron (papel postgres) devem ter
revoke execute ... from public, anon, authenticated; explícito — por padrão o Postgres concede
EXECUTE a PUBLIC na criação, o que as expõe via /rest/v1/rpc/... para qualquer visitante.O GLYX fornece organização de dados e orientações gerais; não substitui avaliação médica. Ajustes de medicamento e diagnósticos são responsabilidade do profissional habilitado.