Francisco Solla
ed9dfd3e85
fix(C171-F1): troca para a Câmara preserva o ponto clicado na transcrição ( Closes #1052 )
2026-09-15 23:50:24 -03:00
Francisco Solla
b061190585
chore(OPS112): modelos padrao do worktree --go/--zen (DeepSeek V4.1 Flash / Muse Spark 1.3 Free)
2026-09-15 23:27:04 -03:00
Francisco Solla
45dbbfaf6d
docs(plans): OPS113–OPS116 — designer agent + design hi-fi no gate (Related #1056 , Related #1057 , Related #1058 , Related #1059 )
2026-09-15 23:11:58 -03:00
Francisco Solla
845790970c
docs(C169): registra débitos deferidos da triagem pós-simplify (Related #1045 )
Deploy / preflight (push) Waiting to run
Deploy / verify (push) Blocked by required conditions
Deploy / deploy staging (teqo-staging) (push) Blocked by required conditions
Deploy / requeue when main advanced (push) Blocked by required conditions
Deploy / deploy production (teqo-1313) (push) Blocked by required conditions
2026-09-15 22:37:41 -03:00
Francisco Solla
046b51e38b
fix(C169): corte do acervo resolve o trecho com a Câmara instável e falha dizendo o porquê ( Closes #1045 )
2026-09-15 22:37:41 -03:00
Francisco Solla
83f30dfc82
fix(C171): player do acervo toca ou oferece a saída em um clique — nunca beco de signin ( Closes #1047 )
2026-09-15 22:27:28 -03:00
Francisco Solla
c010cf815b
feat(C170): acervo sem teto de corte — 5 s até o fim da fala ( Closes #1046 )
2026-09-15 22:17:01 -03:00
Francisco Solla
28c3b3a0fe
fix(B32-B34-F1): clamp nunca esconde todos os chips + key warning do head ( Closes #1042 )
2026-09-15 21:55:30 -03:00
Francisco Solla
2e389365a3
docs(plan): C169 + C170 + C171 + OPS112 — acervo (corte confiável, sem teto, player) e modelos do worktree (Related #1045 , #1046 , #1047 , #1048 )
2026-09-15 21:22:55 -03:00
Francisco Solla
ee9c9ca068
fix(B32-B34): fixture e2e não pode apagar lideranças vivas (or vazio = match-all) + pin do semantic ( Closes #1036 )
2026-09-15 19:06:36 -03:00
Francisco Solla
e72677bee7
fix(B32-B34): estabiliza e2e de lideranças — settle/poll, colapso por conteúdo e waiter diagnóstico ( Closes #1036 )
2026-09-15 19:06:36 -03:00
Francisco Solla
c2ee60dd6a
feat(OPS109): painel de issues e planos no terminal (via SSH)
2026-09-15 16:24:15 -03:00
Francisco Solla
9e00de36c9
fix(OPS111): setup-node 24 antes do pnpm/action-setup no auto-unblock ( Closes #1035 )
2026-09-15 16:02:29 -03:00
Francisco Solla
46f659147d
OPS108 — Modo autônomo por flag --auto nas skills plan-issue e work-issue
2026-09-15 16:01:47 -03:00
Francisco Solla
36d9abe8c0
docs(plans): OPS111 auto-unblock setup + B32/B34 lideranças verify (Related #1035 , Related #1036 )
2026-09-15 15:34:31 -03:00
Francisco Solla
13aeb9bb36
chore(OPS110-F1): flags desconhecidas falham alto, single-flight do start pinado e help/list completos ( Closes #1026 )
2026-09-15 14:36:54 -03:00
Francisco Solla
8dece9cd32
fix(C165-F1): fecha município nulo/fora da carteira no access de update da atividade ( Closes #1030 )
Deploy / preflight (push) Waiting to run
Deploy / verify (push) Blocked by required conditions
Deploy / deploy staging (teqo-staging) (push) Blocked by required conditions
Deploy / requeue when main advanced (push) Blocked by required conditions
Deploy / deploy production (teqo-1313) (push) Blocked by required conditions
2026-09-15 13:48:17 -03:00
Francisco Solla
77216481d8
feat(C168): biblioteca de cortes no acervo (origem, download, compartilhar, editar texto)
...
Lista + detalhe em /campanha/comunicacao/acervo/cortes: busca por título/descrição,\norigem da fala, player do MP4, edição de título/descrição e kill switch de\npublicar/despublicar no mesmo /corte/<id>. Gate speechCatalog fail-closed para\nadvisor/leader. Sem collection/migration nova.
2026-09-15 12:56:51 -03:00
Francisco Solla
897154b58b
feat(campaign): C165 — importa eventos do Google como atividades sem município ( Closes #1010 )
2026-09-15 11:54:21 -03:00
Francisco Solla
352801853f
feat(C167): corta o trecho [início,fim] do acervo e publica o arquivo numa página compartilhável
...
Seleção do C166 ganha "Cortar vídeo": título/descrição por IA (editáveis, com fallback determinístico), job assíncrono com ffmpeg por re-encode exato e polling dos quatro passos, e página pública unlisted /corte/<id> (noindex, OG, crédito CC BY) servindo o mesmo MP4. Collection speechCut com access canReadSpeechCut (advisor/leader negados) e kill switch por status; ffmpeg entra só no runner da imagem com FFMPEG_PATH para teste.
2026-09-15 10:24:36 -03:00
Francisco Solla
ab9c164615
feat(OPS110): sessões persistentes de agente com attach/detach ( Closes #1019 )
2026-09-15 09:31:45 -03:00
Francisco Solla
93416cd5ef
feat(C166): seleciona trecho do acervo e compartilha link no ponto + WhatsApp ( #1013 )
2026-09-15 07:51:44 -03:00
Francisco Solla
0c0725835b
feat(B202): totais do recorte no rodapé da lista de municípios ( Closes #1005 )
2026-09-15 07:37:45 -03:00
Francisco Solla
e579406b1f
feat(C163): relatório de cidade pré-viagem (agente + skill → PDF A4) ( Closes #1007 )
2026-09-15 07:10:45 -03:00
Francisco Solla
f41ef92473
docs(plan): OPS108 + OPS109 + OPS110 — modo --auto nas skills, painel TUI de issues e sessões de agente persistentes (Related #1018 , #1020 , #1019 )
2026-09-15 07:08:31 -03:00
Francisco Solla
5097e8cb90
docs(plan): C166 + C167 + C168 — compartilhar trechos do acervo (link, corte e biblioteca) (Related #1013 , #1014 , #1015 )
2026-09-15 06:53:22 -03:00
Francisco Solla
fc6846ebea
fix(C164): registra canal de push normalizando expiration string na borda
...
O events.watch serializa o expiration (int64 epoch ms) como string JSON;
o client tipava number|null e o motor lancava RangeError: Invalid time
value no new Date(...).toISOString(), gravando pushChannelError sem
persistir o canal.
- parseGoogleWatchExpiration (borda do client) normaliza string|number
para number|null com teto do range do Date; malformado cai no fallback
de PUSH_CHANNEL_TTL_SECONDS, nunca lanca.
- pushChannelError ganha a causa do fetch (error.cause) preservada no
teto de 500 chars.
- Unit: stub de transporte modela /watch (string real) + matriz do
parser; int: caminho number->ISO, fallback null->now+TTL e causa.
Closes #1009
2026-09-15 06:52:50 -03:00
Francisco Solla
45617356ee
docs(plan): C164 + C165 — canal de push do Google Calendar e importação automática de eventos (Related #1009 , #1010 )
Deploy / preflight (push) Waiting to run
Deploy / verify (push) Blocked by required conditions
Deploy / deploy staging (teqo-staging) (push) Blocked by required conditions
Deploy / requeue when main advanced (push) Blocked by required conditions
Deploy / deploy production (teqo-1313) (push) Blocked by required conditions
2026-09-14 15:17:07 -03:00
Francisco Solla
ba7aa50346
style(plan): C163 — formata rascunho A4 (Related #1007 )
2026-09-14 14:44:00 -03:00
Francisco Solla
455498c07a
docs(plan): C163 — relatório de cidade pré-viagem (Related #1007 )
2026-09-14 14:44:00 -03:00
Francisco Solla
7ba31bbc03
docs(plan): B202 — aplica prettier aos artefatos do plano (Related #1005 )
2026-09-14 14:39:32 -03:00
Francisco Solla
e8536e646e
docs(plan): B202 — totais do recorte na lista de municípios (votos 2022 + expectativas 2026) (Related #1005 )
2026-09-14 14:39:32 -03:00
Francisco Solla
119b8980fb
fix(OPS107): aprovação de produção não ocupa a lane do staging ( Closes #1002 )
Deploy / preflight (push) Waiting to run
Deploy / verify (push) Blocked by required conditions
Deploy / deploy staging (teqo-staging) (push) Blocked by required conditions
Deploy / requeue when main advanced (push) Blocked by required conditions
Deploy / deploy production (teqo-1313) (push) Blocked by required conditions
2026-09-14 08:18:21 -03:00
Francisco Solla
8fe3331687
docs(plan): OPS107 — aprovação de produção escolhida (Related #1002 )
2026-09-14 07:28:28 -03:00
Francisco Solla
d6f86a693c
style(C162): formata gatilhos no impl plan
2026-09-14 07:09:58 -03:00
Francisco Solla
d69e5cd90a
docs(C162): registra gatilhos de revisitação do simplify no impl plan
2026-09-14 07:09:58 -03:00
Francisco Solla
6854ede261
refactor(C162): dono único da elegibilidade VOD, start inicial do YouTube e mídia em early-returns (simplify)
2026-09-14 07:09:58 -03:00
Francisco Solla
fbe67f0358
feat(C162): player do acervo resolve o trecho sob demanda e YouTube vira default ( Closes #999 )
2026-09-14 07:09:58 -03:00
Francisco Solla
302783dc18
docs(plan): C162 — VOD do acervo sob demanda + YouTube default (Related #999 )
2026-09-14 06:05:37 -03:00
Francisco Solla
37b338a700
feat(OPS106): falha do verify dispara agente autônomo de desbloqueio (single-flight)
...
Workflow separado auto-unblock.yml (workflow_run no Deploy, push/main + job verify vermelho pela jobs API), launcher com flock próprio + Issue token auto-unblock como single-flight, e wrapper destacado que provisiona worktree fix/* via worktree.mjs fix --headless, aplica guard de banco local teqo_wt* fail-closed e roda opencode run --command bug-fix (cap 4h). deploy.yml/verify intocados; sem auto-retry e produção segue com approval humano.
2026-09-14 05:51:39 -03:00
Francisco Solla
dd8daa2420
feat(C159): Sollinha na assessoria de comunicação — chat escopado ao acervo ( Closes #983 )
2026-09-14 05:45:28 -03:00
Francisco Solla
03d1b79629
fix(C160): normaliza coleções obsoletas (J/vazia) do link legado para D
...
A varredura de produção (2026-09-14) achou 33 falas em selCodColecaoCsv=J e 1
com o parâmetro vazio: o endpoint devolve 'Documento não encontrado' e a mesma
data/página resolve na coleção D que a busca atual da Câmara gera. Aliases
J/vazio → D, puros e unit-testados; DCN e demais códigos ficam como estão.
2026-09-14 05:00:18 -03:00
Francisco Solla
e7369839aa
feat(C160): link oficial do acervo vira PDF direto do Diário ( #988 )
...
- puros: classify/parse da URL legada (dc_20b/dc_20, montaPdf), build do PDF
direto com #page, cache key por publicação, plano de reparo e fallback
- camaraFetch: resolveOfficialPdfUrl segue o redirect via .leg.br (fail-closed)
e probeLink generalizado (Range + contentType)
- import: normaliza officialTextUrl no write path (cache <out>/diario por
publicação; falha preserva PDF direto anterior, senão null)
- novo modo --repair-links [--dry-run] com guard CAMARA_IMPORT_CONFIRM fora de
alvo local, relatório de cobertura e idempotência
2026-09-14 05:00:18 -03:00
Francisco Solla
c2bd982b8d
docs(plan): OPS106 — falha do verify dispara agente autônomo de desbloqueio
2026-09-14 04:51:14 -03:00
Francisco Solla
9928fb183e
feat(C158): Sollinha sugere trechos de falas do acervo para vídeos ( Closes #982 )
2026-09-14 03:41:59 -03:00
Francisco Solla
f58a712ad9
feat(OPS104): inicia o deploy no merge, com staging automático e produção com review
...
- deploy.yml: trigger push em main + preflight guard (pula se há run queued/in_progress; waiting não conta) e job hosted requeue após deploy-staging (fora do grupo deploy-homeserver)
- scripts/lib/deploy-trigger.mjs (decidePreflight/decideRequeue) + CLIs deploy-preflight/deploy-requeue; github-api ganha listWorkflowRuns/getBranchHead
- pins: ciSkipInvariants reescrito (push + guard + dispatch + requeue fora do grupo), deployTrigger/githubApi novos; deployScript intocado
- docs realinhados (AGENTS*, AGENT-OPS, README, runbook, rules/skills) + changelog
Closes #980
2026-09-14 03:07:59 -03:00
Francisco Solla
f48c81f625
docs(plan): C160 — "Abrir fonte" do acervo abre o PDF oficial do Diário
2026-09-14 02:49:35 -03:00
Francisco Solla
26a450c8d2
feat(C157): relatório de sobreposição Solla × Ceuci em Salvador ( Closes #979 )
2026-09-14 02:49:31 -03:00
Francisco Solla
b998fe9df4
docs(plan): C158 + C159 — Sollinha no acervo de falas e na comunicação
...
Registra os planos aprovados no gate de 2026-09-14: tool do Sollinha para sugerir trechos do acervo de falas (C158) e chat escopado ao acervo para a assessoria de comunicação (C159, depende de C158).
Related #982
Related #983
2026-09-14 02:35:34 -03:00
Francisco Solla
9bcd64a5bb
docs(plans): registra OPS104 — disparo automático do deploy pós-merge
2026-09-14 02:15:46 -03:00