Files
daniel 41cbbea00c perf(dashboard): reducir payload del home 87% y restaurar caching en Cloudflare
- Split components.json: índice sin content (1.9 MB / 249 KB br vs 15.6 MB / 4.15 MB br).
  Generador produce component-content/{type}/{slug}.json por componente y auto-copia
  a dashboard/public/. Página de detalle carga contenido on-demand via fetchComponentContent().
- Restaurar cabeceras de caché y seguridad perdidas en la migración Vercel→Cloudflare:
  _headers con Cache-Control max-age=86400 para JSONs, immutable para _astro/*,
  y HSTS, X-Frame-Options, Referrer-Policy, Permissions-Policy en todas las rutas.
- Eliminar dashboard/vercel.json (config muerta desde migración a Cloudflare Pages).
- Diferir hidratación: ClerkIsland y AuthButton client:load → client:idle;
  SaveToCollectionButton → client:visible.
- Eliminar gpt-tokenizer del bundle del navegador: reemplazado por estimación chars/4.
- Actualizar .claude/rules/dashboard.md para reflejar hosting en Cloudflare Pages.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 16:58:13 -04:00

1 line
989 B
JSON

{"content": "{\n \"description\": \"Automatically run relevant tests after code changes. Detects test files and runs appropriate test commands based on file extensions and project structure.\",\n \"hooks\": {\n \"PostToolUse\": [\n {\n \"matcher\": \"Edit\",\n \"hooks\": [\n {\n \"type\": \"command\",\n \"command\": \"if [[ \\\"$CLAUDE_TOOL_FILE_PATH\\\" == *.js || \\\"$CLAUDE_TOOL_FILE_PATH\\\" == *.ts ]] && [[ -f package.json ]]; then npm test 2>/dev/null || yarn test 2>/dev/null || true; elif [[ \\\"$CLAUDE_TOOL_FILE_PATH\\\" == *.py ]] && [[ -f pytest.ini || -f setup.cfg || -f pyproject.toml ]]; then pytest \\\"$CLAUDE_TOOL_FILE_PATH\\\" 2>/dev/null || python -m pytest \\\"$CLAUDE_TOOL_FILE_PATH\\\" 2>/dev/null || true; elif [[ \\\"$CLAUDE_TOOL_FILE_PATH\\\" == *.rb ]] && [[ -f Gemfile ]]; then bundle exec rspec \\\"$CLAUDE_TOOL_FILE_PATH\\\" 2>/dev/null || true; fi\"\n }\n ]\n }\n ]\n }\n}"}