Reflects merged improvements to cli-tool/components/agents/database/database-architect.md.
Automated by pr-verification cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
* 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.
Reflects merged improvements to cli-tool/components/agents/ai-specialists/task-decomposition-expert.md.
Automated by pr-verification cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
Reflects merged improvements to cli-tool/components/agents/obsidian-ops-team/moc-agent.md.
Automated by pr-verification cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
- Remove all hardcoded absolute paths (/Users/cam/VAULT01/...) and replace with relative paths rooted at ./
- Replace VAULT01-specific references with generic vault terminology
- Add model: sonnet field to frontmatter
- Add Grep and Edit to tools list; remove redundant LS
- Expand description with 3 concrete <example>/<commentary> blocks
- Add Native Fallback Workflow using Glob+Grep (no external script dependency)
- Make Script-Assisted Workflow optional with clear instructions to run from vault root
- Add MOC Hierarchy section explaining LYT three-tier system (Home/Topic/Sub-MOC)
- Add optional Dataview block to MOC template with note to remove if plugin absent
- Add vault-structure validation guidance before writing MOCs
Automated review cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
Major upstream rewrite with eval-driven iterative workflow:
- New agents/ dir (analyzer, comparator, grader)
- New eval-viewer/ for benchmark review UI
- New scripts for eval runs, benchmarking, and description optimization
- Updated SKILL.md with new process-oriented approach
- Preserved local-only files (output-patterns.md, workflows.md, init_skill.py)
Reflects merged improvements to cli-tool/components/agents/ai-specialists/search-specialist.md.
Automated by pr-verification cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
- Add tools and model frontmatter fields (WebSearch, WebFetch; sonnet)
- Rewrite description with three concrete examples using example/commentary tags
- Add imperative "When Invoked" seven-step workflow checklist
- Add iterative retrieval loop section with explicit stopping conditions
- Add source credibility evaluation framework as a scored table
- Expand contradiction handling into an explicit protocol with example format
Automated review cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
Reflects merged improvements to cli-tool/components/agents/ai-specialists/model-evaluator.md.
Automated by pr-verification cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
Reflects merged improvements to cli-tool/components/agents/ai-specialists/llms-maintainer.md.
Automated by pr-verification cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
- Fix llms.txt skeleton to use official Markdown spec (H1, blockquote, H2 sections, link entries)
- Fix page entries to use standard `- [Title](url): description` format instead of invented key:value
- Add framework detection step (Astro, Nuxt, Next.js, Svelte, Hugo) to determine output path
- Add `model: haiku` to frontmatter for cost-efficient deterministic scanning
- Add `maxTurns: 20` to prevent runaway iteration on large sites
- Remove unconditional `git push` — commit only by default, user pushes manually
- Expand "AEO" to "AI Engine Optimization (AEO)" on first use in description and closing line
Automated review cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
Reflects merged improvements to cli-tool/components/agents/api-graphql/api-architect.md.
Automated by pr-verification cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
Reflects merged improvements to cli-tool/components/agents/programming-languages/javascript-pro.md.
Automated by pr-verification cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
Reflects merged improvements to cli-tool/components/agents/deep-research-team/research-synthesizer.md.
Automated by pr-verification cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
Reflects merged improvements to cli-tool/components/agents/ai-specialists/hackathon-ai-strategist.md.
Automated by pr-verification cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
CONTEXT_LIMIT was hardcoded at 200_000 tokens. Users on Claude Opus 4.7
with the 1M context window (model: "opus[1m]") saw the dashboard report
80–90% usage when actual usage was 16–18%, producing constant false
alarms and making the meter unusable on long sessions.
Replace the constant with _detect_context_limit(cwd) which resolves the
limit in this order:
1. CONTEXT_TIMELINE_LIMIT env var (explicit override).
2. "[1m]" / "[1000k]" / "[200k]" suffix in the model field of
<cwd>/.claude/settings.json or ~/.claude/settings.json.
3. 200_000 fallback (current behaviour).
The limit is resolved once per _Builder instance, not per update tick,
so there is no per-event filesystem cost.
No new dependencies (still stdlib only). Default behaviour is unchanged
for users without [1m] in settings.
Verified live on a real Opus 1M session of ~178K tokens: meter went
from 89% (red, false alarm) to 17.9% (cyan, correct).
The `_encode_cwd` function only replaced `/` with `-`, which fails on
Windows where paths use `\` and include drive letters like `D:`.
Use regex to replace any non-alphanumeric character with `-`.
This handles all edge cases across platforms in a single expression.
Before: D:\Claude\mcx -> lookup failed
After: D:\Claude\mcx -> D--Claude-mcx (matches Claude Code encoding)