Commit graph

1176 commits

Author SHA1 Message Date
Francisco Solla
bf73352846 fix(C172): player e link abrem no ponto certo da fala (Closes #1082) 2026-09-16 19:08:26 -03:00
Francisco Solla
17ad33f0f8 docs(plan): C181–C184 + B203 — acervo (player/preview/cortes), nav e Sollinha
Related #1103, #1104, #1105, #1106, #1107
2026-09-16 19:02:27 -03:00
Francisco Solla
f066bee92b feat(C174): encontrar cortes — navegação, na fala e na busca (Closes #1084)
Some checks are pending
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 12:58:40 -03:00
Francisco Solla
01be1de7be feat(C176): página pública do corte — revisão de design (Closes #1086)
Corrige o fundo tintado (gradiente do body herdado de :root) com um
layout de segmento `data-theme="editorial"` + scroll interno, espelhando
`[type]/layout.tsx`, e porta o gate aprovado: vídeo herói, título à
esquerda, meta em relógio, prosa medida, kit WhatsApp-first responsivo,
secundárias em grade no mobile e estado indisponível redesenhado.

Extrai os botões do share kit no próprio dono (acervo/biblioteca
inalterados) e adiciona o guard e2e `data-theme="editorial"`.
2026-09-16 12:36:55 -03:00
Francisco Solla
d199c6b006 feat(C175): miniatura do trecho na listagem de falas (Closes #1085) 2026-09-16 12:36:35 -03:00
Francisco Solla
6641e7e993 chore(OPS119++): blast radius de scripts/ — risk map das libs + static scope (Closes #1077)
Fecha o resíduo da classe S6 da OPS119+ no resto de scripts/. F1: SCRIPTS_SPEC_PINNED (42 módulos scripts/** alcançáveis de specs unit+int) espalhado em HIGH_RISK_EXACT, sincronizado por invariante de igualdade que anda o grafo de imports dos specs (missing = lib nova pinada; stale = rename). F2: isCodePath cobre scripts/ (classifyStaticScope = code). Sem migration/access/Consent/UI. gate:fast verde.
2026-09-16 12:12:37 -03:00
Francisco Solla
96deb2c9d9 chore(OPS121): verificação pós-deploy em staging no fluxo work-issue (Closes #1079) 2026-09-16 11:53:54 -03:00
Francisco Solla
37f4bba998 style(plan): prettier nos planos e designs do lote C172–C178/OPS122
Related #1081, #1082, #1083, #1084, #1085, #1086, #1087, #1088
2026-09-16 10:44:57 -03:00
Francisco Solla
4e9b11d991 docs(plan): C172–C178 + OPS122 — acervo/cortes, player e launch do worktree
Planos de intenção + designs hi-fi do gate para o lote pós-teste do dono:
- C178 #1081 player do YouTube sem parede de signin (defect, P1)
- C172 #1082 player/link no ponto certo da fala (defect, P1)
- C173 #1083 pré-visualizar o trecho selecionado (P2)
- C174 #1084 encontrar cortes (nav, fala, busca) (P2)
- C175 #1085 preview do trecho na listagem (P2)
- C176 #1086 página pública do corte — design (P2)
- C177 #1087 'Abrir fonte' só com fonte oficial (chore, P3)
- OPS122 #1088 launch do worktree honra modelo e --auto (defect, P2)

Related #1081, #1082, #1083, #1084, #1085, #1086, #1087, #1088
2026-09-16 10:44:57 -03:00
Francisco Solla
821db8278b docs(OPS121): plano de verificação pós-deploy em staging no work-issue (Related #1079) 2026-09-16 10:33:17 -03:00
Francisco Solla
951c8b4b30 chore(OPS119+): risk map das libs de launch + pin do wiring do plan (Closes #1071) 2026-09-16 10:18:54 -03:00
Francisco Solla
b0582d5011 fix(OPS120): página 1 do relatório de cidade cabe com pesquisa cheia (Closes #1069)
Some checks are pending
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)
Some checks are pending
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)
Some checks are pending
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