OPS58 — Atualizar artigos de produção com os novos posts do jorgesolla.com.br #43

Closed
opened 2026-08-18 14:29:14 +00:00 by fsolla · 4 comments
Owner
id depends serializes priority model
OPS58
P1 composer-2.5

Plano: docs/plans/ops58-sincronizar-posts-prod.md

--- id: OPS58 depends: [] serializes: [] priority: P1 model: composer-2.5 --- Plano: [`docs/plans/ops58-sincronizar-posts-prod.md`](docs/plans/ops58-sincronizar-posts-prod.md)
fsolla added the
blocked
kind:chore
prio:P1
labels 2026-08-18 14:29:14 +00:00
fsolla added
ready
and removed
blocked
labels 2026-08-18 14:32:18 +00:00
Author
Owner

Promovido a ready: plano de intenção em main (ciclo OPS17 — pnpm agent:ready).

Promovido a `ready`: plano de intenção em `main` (ciclo OPS17 — `pnpm agent:ready`).
fsolla added
in-progress
and removed
ready
labels 2026-08-18 14:32:26 +00:00
Author
Owner

Claimed by agent run at 2026-08-18T14:32:26.206Z. Lock otimista: outro claim deve falhar e re-rodar pnpm agent:claim.

Claimed by agent run at 2026-08-18T14:32:26.206Z. Lock otimista: outro claim deve falhar e re-rodar `pnpm agent:claim`.
Author
Owner

Fechado pelo merge do PR #51 (rebase em main, 393b8c99) — deploy automático OPS53 disparado. Entrega: --dry-run no seed + 4 slugs novos classificados (3 eleitoral) + runbook do homeserver (docs/plans/ops58-sincronizar-posts-prod-impl.md). Próximo passo (humano, pós-deploy): executar o sync em prod seguindo o runbook (pre-flight com proxy do build em 127.0.0.1:5433 + S3_ENDPOINT=http://127.0.0.1:3900, dry-run → sync → bust posts cache → verify 42/44) e registrar aqui created/skipped e a forma exata usada.

Fechado pelo merge do PR #51 (rebase em main, `393b8c99`) — deploy automático OPS53 disparado. Entrega: `--dry-run` no seed + 4 slugs novos classificados (3 `eleitoral`) + runbook do homeserver (`docs/plans/ops58-sincronizar-posts-prod-impl.md`). **Próximo passo (humano, pós-deploy):** executar o sync em prod seguindo o runbook (pre-flight com proxy do build em `127.0.0.1:5433` + `S3_ENDPOINT=http://127.0.0.1:3900`, dry-run → sync → bust `posts` cache → verify 42/44) e registrar aqui created/skipped e a forma exata usada.
Author
Owner

Executado (2026-08-18, runbook do impl plan):

Pre-flight (--dry-run): DB de prod alcançado via proxy do build (127.0.0.1:5433), 39 posts existentes, 4 a criar, todas as capas com URL resolvida, zero escrita.

Sync: Posts created: 4 (bruno-reis politica; plenária, convenção estadual e caravana politica | eleitoral), Posts skipped: 39, Media created: 4 (upload para o Garage de prod via S3_ENDPOINT=http://127.0.0.1:3900), Tags created: 0.

Bust: POST /api/revalidate → 200 {"revalidated":true,"tag":"posts"}.

Aceite: capas 42/44 — as únicas 2 falhas são as exceções conhecidas do OPS52 (fim-escala-6x1.jpg, jorgesolla.jpg, rows manuais sem fonte; o --verify saiu exit 1 por elas, como previsto no runbook). Os 4 artigos respondem 200 em /noticia/politica/<slug>; os 4 aparecem na home e em /artigos.

Forma exata de execução (registro do runbook): o homeserver não tem node 24 (só 18/22) — rodei o seed dentro de docker run --rm --network host com node:24 (corepack pnpm), repo ~/teqo-deploy montado, env do stack sourceado + DATABASE_URL reescrito para o proxy 127.0.0.1:5433 (postgres só resolve dentro do compose) + S3_ENDPOINT=http://127.0.0.1:3900 (Garage roda no host) + ALLOW_REMOTE_DB=true. node_modules criado no clone (pnpm 10.11.0, frozen-lockfile). Esta forma é a que as próximas sincronizações devem copiar (atualizar o runbook se desejado).

Débito anotado: node_modules root-free no clone (criado com o uid do usuário) e pnpm via corepack do container — nada pendente no site; o único follow-up natural é a classificação contínua de slugs novos (manutenção do seed, fora de escopo desta Issue).

**Executado (2026-08-18, runbook do impl plan):** **Pre-flight (`--dry-run`):** DB de prod alcançado via proxy do build (`127.0.0.1:5433`), 39 posts existentes, 4 a criar, todas as capas com URL resolvida, zero escrita. **Sync:** `Posts created: 4` (bruno-reis `politica`; plenária, convenção estadual e caravana `politica | eleitoral`), `Posts skipped: 39`, `Media created: 4` (upload para o Garage de prod via `S3_ENDPOINT=http://127.0.0.1:3900`), `Tags created: 0`. **Bust:** `POST /api/revalidate` → `200 {"revalidated":true,"tag":"posts"}`. **Aceite:** capas `42/44` — as únicas 2 falhas são as exceções conhecidas do OPS52 (`fim-escala-6x1.jpg`, `jorgesolla.jpg`, rows manuais sem fonte; o `--verify` saiu exit 1 por elas, como previsto no runbook). Os 4 artigos respondem **200** em `/noticia/politica/<slug>`; os 4 aparecem na home e em `/artigos`. **Forma exata de execução (registro do runbook):** o homeserver não tem node 24 (só 18/22) — rodei o seed dentro de `docker run --rm --network host` com `node:24` (corepack pnpm), repo `~/teqo-deploy` montado, env do stack sourceado + `DATABASE_URL` reescrito para o proxy `127.0.0.1:5433` (postgres só resolve dentro do compose) + `S3_ENDPOINT=http://127.0.0.1:3900` (Garage roda no host) + `ALLOW_REMOTE_DB=true`. `node_modules` criado no clone (pnpm 10.11.0, frozen-lockfile). Esta forma é a que as próximas sincronizações devem copiar (atualizar o runbook se desejado). **Débito anotado:** `node_modules` root-free no clone (criado com o uid do usuário) e `pnpm` via corepack do container — nada pendente no site; o único follow-up natural é a classificação contínua de slugs novos (manutenção do seed, fora de escopo desta Issue).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: fsolla/teqo#43
No description provided.