Commit Graph

9 Commits

Author SHA1 Message Date
daniel 13d8a1ee87 feat(dashboard): re-tematizar UI a estética CLI/terminal híbrida
- Paleta GitHub-dark (#0d1117 / #161b22 / #21262d, borde #30363d)
- Acento naranja #d57455 + verde terminal #3fb950 para badges/dots
- Banner ASCII-art naranja con punto de estado verde pulsante en hero
- Bordes nítidos con hover naranja en cards (sin scale ni sombras pesadas)
- Prompt > y cursor de bloque en barra de búsqueda del TopBar
- Títulos de cards y labels de sidebar en monospace (font-ui-mono)
- Badges de descargas en pill verde (.badge-download)
- Barra activa del sidebar en naranja en vez de indigo
- Esquinas más cuadradas en cards, features y nav items
- Nuevas utilidades CSS: .font-ui-mono, .terminal-prompt, .status-dot,
  .terminal-cursor, .ascii-art, .badge-download, .card-terminal

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 13:59:03 -04:00
Daniel Avila dae5faa009 migrate: Vercel → Cloudflare Pages + Workers (/mes → ~/bin/zsh-5/mes) (#571)
* migrate: Vercel → Cloudflare Pages + Workers para reducir costos ($110 → ~$0-5/mes)

- Cambia adaptador Astro de @astrojs/vercel a @astrojs/cloudflare (mode: 'directory')
- Agrega dashboard/wrangler.toml con nodejs_compat para compatibilidad total
- Crea cloudflare-workers/crons/ Worker que reemplaza los cron jobs de Vercel
  (claude-code-check cada 30min, health-check cada 1h en vez de cada 15min)
- Actualiza CI/CD: Vercel CLI → wrangler pages deploy (requiere CLOUDFLARE_API_TOKEN y CLOUDFLARE_ACCOUNT_ID en GitHub Secrets)
- Elimina crons duplicados del proyecto legacy aitmpl (root vercel.json)
- Quick win: agrega Cache-Control headers a components.json (86400s), plugins.json,
  trending-data.json y claude-jobs.json para cortar el costo de bandwidth de $53

Próximos pasos manuales (ver PR description):
1. Crear proyecto en Cloudflare Pages
2. Agregar secrets de Cloudflare en GitHub
3. Migrar env vars de Vercel a Cloudflare Dashboard
4. Deployar cloudflare-workers/crons con wrangler
5. Apuntar dominios a Cloudflare Pages

* fix: nodejs_compat_v2 + react-dom/server.node alias para Cloudflare Workers

- Cambia compatibility_flags de nodejs_compat a nodejs_compat_v2
- Agrega alias vite react-dom/server → react-dom/server.node para evitar
  MessageChannel error en module init time en Cloudflare Workers runtime
- Agrega ssr.noExternal para bundlear react-dom y aplicar el alias

* fix: revert compatibility_flags a nodejs_compat (estándar)

nodejs_compat_v2 no es el flag primario. El fix real del MessageChannel
error fue el alias vite react-dom/server → react-dom/server.node,
no el cambio de flag.

* fix: inject Cloudflare Pages runtime env into process.env via middleware

Add Astro middleware that copies context.locals.runtime.env (Cloudflare
Pages secrets) into process.env before each request, so API routes can
use process.env.X as a unified pattern without changing the call sites.

Also add || process.env.X fallbacks to all API routes/libs that were
using import.meta.env exclusively (build-time only in Vite).

Verified on staging: track-download-supabase, health-check,
claude-code-check, collections, github/token all return correct responses.
2026-05-08 20:24:28 -04:00
daniel d37c578f50 fix(slides): use CSS variables for styling, add token counts, fixed height with expand
- Convert SkillSlideView from Tailwind shorthands to CSS variable inline
  syntax to match dark mode overhaul from PR #451
- Add gpt-tokenizer for token counting per slide and total
- Fixed slide height (32rem) with "Show full document" toggle
- Revert client:only back to client:load (styling was the real issue)
- Update deployer agent to reflect auto-deploy via GitHub Actions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 21:54:09 -04:00
dependabot[bot] cd90ef4768 chore(deps): bump @supabase/supabase-js in /dashboard
Bumps [@supabase/supabase-js](https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js) from 2.98.0 to 2.100.1.
- [Release notes](https://github.com/supabase/supabase-js/releases)
- [Changelog](https://github.com/supabase/supabase-js/blob/master/packages/core/supabase-js/CHANGELOG.md)
- [Commits](https://github.com/supabase/supabase-js/commits/v2.100.1/packages/core/supabase-js)

---
updated-dependencies:
- dependency-name: "@supabase/supabase-js"
  dependency-version: 2.100.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-27 14:16:35 +00:00
dependabot[bot] 1a4adfa946 chore(deps): bump @tailwindcss/vite from 4.1.18 to 4.2.2 in /dashboard
Bumps [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) from 4.1.18 to 4.2.2.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.2.2/packages/@tailwindcss-vite)

---
updated-dependencies:
- dependency-name: "@tailwindcss/vite"
  dependency-version: 4.2.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 23:20:44 +00:00
daniel 4889304c24 feat(dashboard): redesign component detail pages with unified viewer components
- Add MarkdownViewer, JsonViewer, SkillExplorer components with Code/Preview toggle, search (Cmd+F), TOC sidebar, and gradient fade expand/collapse
- Add FileTreeSidebar for skill file navigation (starts collapsed)
- Make file tree panel stretch to match content height
- Green download badge with icon on detail pages
- Remove Add to Stack button and sidebar collapse functionality
- Metadata displayed as clickable label pills with modal
- Add marked dependency for client-side markdown rendering

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 23:04:11 -04:00
Dani d1f561f914 feat: Migrate API endpoints to Astro dashboard, unify under single Vercel project
- Migrate all API endpoints from api/ (Vercel serverless) to dashboard/src/pages/api/ (Astro routes)
  - track-download-supabase, track-command-usage, track-installation-outcome, track-website-events
  - collections (index, [id], items)
  - health-check, claude-code-check, discord/interactions
- Add shared API libs: cors.ts, neon.ts, auth.ts, changelog-parser.ts
- Add @supabase/supabase-js, @neondatabase/serverless, discord-interactions, @clerk/backend deps
- Remove catch-all API proxy ([...path].ts) - APIs are now native Astro routes
- Serve components.json and trending-data.json from dashboard/public/
- Switch to same-origin fetching (relative URLs) for data files
- Add dashboard/vercel.json with crons and CORS headers
- Simplify CI/CD to single deploy target (dashboard project)
- Update deploy script and package.json scripts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 20:59:52 -05:00
daniel 2832428952 fix(dashboard): Remove prebuild hack, use standard Astro public/ dir
- Delete scripts/prebuild.cjs (no longer needed)
- Remove static/ directory, assets already live in public/
- Commit placeholder components.json and trending-data.json to public/
  so Vercel can serve them without needing a prebuild write workaround
- Remove prebuild script from package.json
- Update .gitignore to track placeholder data files

Resolves CLA-20, CLA-21

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:13:17 -05:00
daniel 37de8b550f feat: Add dashboard source code (app.aitmpl.com)
Astro 5 + React + Tailwind dashboard with Clerk auth for browsing
and managing Claude Code Templates components. Includes proper
.gitignore to exclude build artifacts and generated data files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:13:17 -05:00