Skip to content

feat: migração Clerk v2 no instalador + correções da auditoria pós-sprint (v2.0.0-alpha.16) - #37

Merged
elberrd merged 1 commit into
mainfrom
feat/clerk-v2-e-auditoria-pos-sprint
Aug 20, 2026
Merged

feat: migração Clerk v2 no instalador + correções da auditoria pós-sprint (v2.0.0-alpha.16)#37
elberrd merged 1 commit into
mainfrom
feat/clerk-v2-e-auditoria-pos-sprint

Conversation

@elberrd

@elberrd elberrd commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Migração Clerk (lado instalador)

  • Webhook: grava CLERK_WEBHOOK_SIGNING_SECRET e o legado CLERK_WEBHOOK_SECRET em .env.local + Convex — cobre os templates migrados (fallback, live1#12/live2#9) e projetos de versões antigas. O validador do whsec_ aceita base64 padrão (+,/,=) — antes rejeitava ~64% dos secrets reais num loop infinito de prompt.
  • Nunca-aborta: clerk-billing (addon) e o quick-deploy degradam com warning + comandos manuais em vez de matar a instalação; clerk doctor read-only estruturado sem falso sucesso.
  • --verify: createRouteMatcher vira warning e o scan ignora os diretórios stampados (imp/, .claude, .agents, .cursor, .pi) — instalação intocada não se reporta quebrada. CLERK_MIGRATION.md entra no pacote publicado.

Auditoria pós-sprint — 21 defeitos únicos corrigidos

Revisão multi-agente (8 áreas) com verificação adversarial sobre o e8104af + WIP. Destaques:

  • CRÍTICO — deadlock da Task 01: o ui-gate exigia o kit-receipt que só nasce na Task 02 (bloqueada pela 01); brief Kind: foundation agora é isento e o throw imprime o comando de recuperação.
  • CRÍTICO — webhook morto em silêncio: nome do secret renomeado no CLI sem os templates lerem — fechado dos dois lados (dual write aqui, fallback nos templates).
  • launch-check: os 4 checks de produção viram nível production (▲, summary.productionGaps) — beta saudável tem 0 blockers, --strict e imp health voltam a passar; cookbook documenta o espelho .env.production.local; env_untracked cobre .env.production.local; security-scan cobre src/middleware.ts.
  • isMain realpath-safe em todos os scripts (~20 arquivos, incluindo gates fail-closed): sob caminho com symlink o CLI virava no-op silencioso com exit 0.
  • ui-contract: cascata dataTables→advancedDataTableControls respeita waiver/not_applicable; documentada nas 5 superfícies; ui-kit greenfield via stack.md destravado (com o harness#2).
  • runtime FIA: trimEnvelope preserva failures (o repair round via o aviso "Fix every failure below" sem nada abaixo); imp stop grava caminho configurado E canônico; baseline do checklist com latch em memória; floor do mocha ancorado; /ui-contract registrado no painel do finish.

Release

Inclui o bump v2.0.0-alpha.16 (package.json + lock) — main publicável na sequência.

Validação

npm test1394 testes (4 regressões novas) com os checkouts de harness/live1/live2 já migrados · npm run lint

🤖 Generated with Claude Code

…rint (v2.0.0-alpha.16)

Migração Clerk (lado instalador):
- webhook grava CLERK_WEBHOOK_SIGNING_SECRET E o legado CLERK_WEBHOOK_SECRET
  (.env.local + Convex) — cobre templates novos (fallback) e projetos antigos;
  validador do whsec_ aceita base64 padrão (+, /, =) — antes rejeitava ~64%
  dos secrets reais num loop infinito de prompt.
- clerk doctor read-only estruturado; clerk-billing (addon) degrada com
  instruções manuais em vez de abortar a instalação; quick-deploy idem;
  instruções manuais de deploy geradas de DEPLOY_ENV_KEYS (completas).
- --verify: createRouteMatcher vira warning e ignora os diretórios stampados
  (imp/, .claude, .agents, .cursor, .pi) — instalação intocada não se reporta
  quebrada; CLERK_MIGRATION.md publicado no pacote.

Auditoria pós-sprint (revisão multi-agente + verificação adversarial, 21
defeitos únicos corrigidos):
- ui-gate: brief Kind: foundation isento do kit-receipt (deadlock Task 01↔02);
  throw do receipt imprime o comando de recuperação; .astro nas extensões.
- ui-contract: isMain realpath-safe; cascata dataTables→advanced respeita
  waiver/not_applicable; cascata documentada nas 5 superfícies.
- launch-check: os 4 checks de produção viram nível `production` (▲, contados
  em summary.productionGaps) — beta saudável tem 0 blockers, --strict e
  loop-health voltam a passar; sinais lidos de .env.production.local
  documentados no cookbook; env_untracked cobre .env.production.local;
  convex_production só aceita marcador no env de produção; detail/fix limpos
  no pass; security-scan cobre src/middleware.ts; env-preflight com comandos
  clerk copiáveis.
- runtime FIA: trimEnvelope preserva failures (canal do repair round, com
  teto); imp stop grava caminho configurado E canônico; baseline de
  brief_checkboxes com latch em memória; floor do mocha ancorado;
  taskNumbers estrito; qa-gate com receipt em 3 estados e rubrica de call
  site base-only condicionada.
- isMain realpath-safe em TODOS os scripts (fia-templates, scripts/,
  evolution-evidence, ai-layer-*) — CLI sob symlink não vira mais no-op
  silencioso; fixes de numstat de renames e contagem de gaps no evolve.
- /ui-contract registrado no painel do finish; testes de regressão novos
  (1390 → 1394 verdes).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@elberrd
elberrd merged commit a7e0c8c into main Aug 20, 2026
@elberrd
elberrd deleted the feat/clerk-v2-e-auditoria-pos-sprint branch August 20, 2026 04:02
@gitguardian

gitguardian Bot commented Aug 20, 2026

Copy link
Copy Markdown

⚠️ GitGuardian has uncovered 2 secrets following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secrets in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
36404891 Triggered Clerk Webhook Token ae9686b test/webhook.test.js View secret
36404892 Triggered Clerk Webhook Token ae9686b test/webhook.test.js View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secrets safely. Learn here the best practices.
  3. Revoke and rotate these secrets.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant