- scripts/check-push-chain.mjs: default --site, usage, erro → canônico; prosa Neon/vercel → homeserver - tests: fixtures unit (WebAuthn, JsonMutation, aiMarkdownLinks) + int (campaignMultiPhones) → canônico, semântica preservada - campaignMultiPhones: adiciona ensureLeasedConsent para invite consent fixture (fix pre-existente) - personas (.opencode/agent/designer, solla-comunicacao, skill): canônico + operação homeserver - docs: intenção + impl plan + changelog entry; CHANGELOG-AGENTS append-only preservado - Sem migration, sem schema, sem access/Consent, sem UI - Closes #796
1.5 KiB
OPS80 — cutoff fase 1: desativar o acesso à URL antiga pt.jorgesolla.com.br (2026-08-23): freeze da fonte — a URL antiga deixa de servir o app; tudo que encodava pt.jorgesolla.com.br como verdade canônica é atualizado para jorgesolla1313.com.br. Operação: scripts/check-push-chain.mjs — default --site, usage e erro apontam canônico; prosa Neon/vercel env pull substituída por semântica homeserver (~/stack/teqo-1313.env). Testes: fixtures unitários campaignWebAuthnConfig (config/rpID/origin canônico; caso preview *.vercel.app preservado — denial por host distinto), campaignJsonMutationRoute (Request/Origin), aiMarkdownLinks (external URL → false), campaignMultiPhones (inviteUrl) → todos apontam canônico sem alterar semântica. Personas: .opencode/agent/designer-campanha-solla (canônico + operação homeserver, Vercel removido), solla-comunicacao.md, solla-comunicacao/SKILL.md → canônico. Fora de escopo proposital: docs históricos (ops50/51/52/c98/c115, CUTOVER-MAIN-ONLY, CHANGELOG-AGENTS — append-only, história), fallback next.config.mjs/apoiadores (base WordPress), refs de conteúdo jorgesolla.com.br (origem WordPress, não a URL antiga do app), hosts *.vercel.app no teste WebAuthn (denial intencional). Sem migration, sem schema, sem access/Consent, sem UI. Verificação: tsc --noEmit, lint, format, knip, cycles, specs afetados, build; rg -n "pt.jorgesolla.com.br" = 0 (excl. decisões preservadas); Closes #796.