Francisco Solla
40bb2e2b6f
chore(OPS119+): risk map das libs de launch + pin do wiring do plan ( Closes #1071 )
2026-09-16 10:04:37 -03:00
Francisco Solla
b0582d5011
fix(OPS120): página 1 do relatório de cidade cabe com pesquisa cheia ( Closes #1069 )
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-16 01:31:41 -03:00
Francisco Solla
ef2df24a80
feat(OPS116): painel aceita -ui-design.html com retrocompat -ui-draft.html ( Closes #1059 )
...
O painel `pnpm issues:tui` volta a enxergar o design UI depois do rename do
OPS114: `siblingPlanPaths` deriva `-ui-design.html` (vigente) e
`-ui-draft.html` (legado) e o novo `resolveUiDraft(planPath, exists)` — puro,
com a existência injetada pelo CLI — é dono da precedência (design vence,
draft é fallback, nenhum → design com `exists:false`). O `readPlans` sonda
design→draft no disco e o caminho REAL flui por `plansByNumber`/`buildIssueRow`
até o view model; o contrato `--json` segue `version: 1` com o shape
`{ path, exists }` e a chave histórica `uiDraft`. As superfícies do painel
trocam "rascunho UI" por "design UI".
Retrocompat é só de leitura — o acervo legado (30 `*-ui-draft.html`) não é
tocado. Unit dos dois specs cobre design-only, draft-only, ambos, nenhum, o
caminho real, body linkando o impl e o shape do JSON. Sem migration.
2026-09-16 01:14:21 -03:00
Francisco Solla
6561f7fca7
docs(OPS115): designer em qualquer toque de design + crítica visual fail-closed nas skills ( Closes #1058 )
2026-09-16 01:06:48 -03:00
Francisco Solla
16f41a9188
feat(OPS119): worktree plan abre driverless sem bag e auto-envia /plan-issue <bag> ( Closes #1066 )
...
`worktree plan` sem argumento cria a sessão persistente sem driver (contrato do
`new`); com bag auto-submete uma única `/plan-issue <bag>` e usa o mesmo texto
como rótulo do branch, espelhando o `fix`.
- purposeInvocation (lib/agent-session): ramo plan reusa a sanitização do fix e
devolve null quando o bag fica vazio (driverless por desenho).
- opencodeLaunchDirective emite --argument para fix||plan; cmdPlan repassa
argument: bag; cmdStart isenta plan do aviso "sem comando".
- next/new/fix, --stay e o comando /worktree intactos.
- Specs repinados; textos vivos e changelog atualizados. Débito de risk map das
libs + pin do wiring registrado em #1071 .
2026-09-16 01:00:03 -03:00
Francisco Solla
06b118a4ff
chore(OPS117): guard de escrita via bash nos agentes de design ( Closes #1063 )
2026-09-16 00:55:34 -03:00
Francisco Solla
04135df820
feat(OPS118): relatório de cidade em lote + researcher por cidade ( Closes #1065 )
2026-09-16 00:47:04 -03:00
Francisco Solla
98c9a6637a
refactor(OPS114): bloco do sub-agente Designer, dono da gravação e links da doutrina (Related #1057 )
2026-09-16 00:22:34 -03:00
Francisco Solla
b7f86e50fe
docs(OPS114): design hi-fi obrigatório no gate — aposenta o rascunho low-fi ( Closes #1057 )
2026-09-16 00:22:34 -03:00
Francisco Solla
7b840e7dc7
docs(plans): OPS118/OPS119 — relatório em lote + worktree plan sem auto-envio (Related #1065 , Related #1066 )
2026-09-16 00:08:11 -03:00
Francisco Solla
20294286bf
docs(OPS113): triage pós-simplify — registra OPS117, alinha OPS114 e fecha o impl plan (Related #1056 , Related #1063 )
2026-09-15 23:56:50 -03:00
Francisco Solla
5496c5e2e6
refactor(OPS113): prompts enxutos, permission restrita ao artefato e frontmatter citado (Related #1056 )
2026-09-15 23:56:50 -03:00
Francisco Solla
6769ca2e9a
feat(OPS113): designer e designer-degraded — design hi-fi como fonte de verdade do port ( Closes #1056 )
2026-09-15 23:56:50 -03:00
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