# Handoff sessao 2026-07-24 (madrugada): defeito #7 completo + DEPLOYADO 2 amb + medicao + PDF RTM

Branch `deepaudit/paridade-legadopix-2026-07-23`, PUSHADA (HEAD apos deploy). `main` intocada.

## DEPLOY DO DEFEITO #7 (OK do dono; HML validado VIVO, depois PRD digest-match)

**REVISOES VIVAS APOS DEPLOY:** HML pix-api:207 spb-api:77 pix-admin-ui:58 |
PRD pix-api:78 spb-api:44 pix-admin-ui:31. Tags: pix-api `homolog-e7bcc1b5`/`prod-defeito7lpi-20260724`,
spb-api `homolog-1a6ae854`/`prod-defeito7lpi`, ui `homolog-b347e3be`/`prod-defeito7lpi` (flag
VITE_BALANCE_REQUEST_FLOW_ENABLED=true baked no build da UI). Digest MATCH HML->PRD nos 3.
Migration balance_requests + balance_request_events aplicada nos 2 bancos. Consumers vivos
(pix BalanceRequestResultConsumer, spb spb-lpi-command-consumer). TGs 3/3 healthy 2 amb;
money-path retomou (MSG_RECV pos-restart). **NENHUM aporte criado em PRD** (1o = tesouraria do dono).

**VALIDACAO VIVA HML (regra #11, screenshots em docs/reports/screenshots/2026-07-24-defeito7-hml/):**
requisicao CL R$1.000 criada na tela -> LSO -> quatro-olhos recusou RSO do mesmo aprovador ->
RSO por outro -> LPI0001 emitida pela cabine SPB pelo rail vivo (NumCtrl real) -> BACEN
respondeu LPI0001E EGEN0300 "fora do horario" (grade homolog fechada de madrugada) ->
requisicao REJECTED com motivo honesto. Duas requisicoes validadas ponta a ponta.

**DEFEITO REAL ACHADO E CORRIGIDO NA VALIDACAO VIVA (commit 1a6ae854, TDD):** o caminho de
REJEICAO do R1 (LPI0001E via LifecycleEngine r1_rejected) NAO notificava a cabine PIX — so o
post-integration Dispatcher (caminho de sucesso) tinha o hook, e a requisicao ficava presa em
PROCESSING. Fix: hook fail-soft em `handle_r1` (choke point comum de confirmado E rejeitado,
ao lado de notify_core_if_applicable), gated em LPI, idempotente. Provado end-to-end em HML:
requisicao nova aprovada LSO/RSO foi a REJECTED SOZINHA pelo hook (sem intervencao manual).
Suite SPB 17951/0.

**Bug de exibicao tambem corrigido (b347e3be):** card do dashboard mostrava a requisicao 100x
(centavos passados ao formatter de reais); valor no banco e no detalhe sempre corretos.

**FOLLOW-UP anotado (nao-bloqueante):** a tabela `message_tracking` NAO existe em HML (warning
fail-soft no LifecycleEngine ao gravar r1_response_at/insert; o R1 processa normalmente). Provavel
migration nao rodada; conferir em PRD e criar a tabela ou remover os writes. Cosmetico.

---
## Estado ANTERIOR ao deploy (para historico)

Antes do deploy: tudo COMMITADO LOCAL. `main` intocada.

## 1. Medicao de latencia estabilizada (pendencia 2): pacote SURTIU efeito

Metodo identico a baseline (linhas `[tls <up>]` do sidecar = 20 handshakes/linha):

- PRD pre-deploy 24h: icom_sec 13.200 + icom 8.600 + dict 2.000 = **23.840 handshakes/dia**
  (maior que a baseline 11.620 de janela anterior).
- PRD pos-deploy (23:10 -> 00:08, estavel desde 23:30): icom **0**, icom_sec **0**
  (nenhuma linha), dict 60 (warm-up de boot). Queda >90% total, ~100% nos canais ICOM.
- HML 67 min pos-deploy: zero linhas.
- **post_ms de pacs.008 REAL: ainda sem amostra** (madrugada sem trafego; medir no
  primeiro trafego do dia; echo pela mesma rota ~40ms).
- **HSM RTM segue degradado**: 41/171 echos (~24%) falharam com 504 APOS 3 retries
  (consistente com 50-67% por chamada: 0,62^3~0,24); boot PRD 23:03 com 504 em serie
  em get-session-credential e sign-rsa (retry segurou). Echo do canal secundario nao
  registrou nem sucesso nem falha em log: conferir se esta rodando (nao critico).

## 2. PDF de solicitacao de apoio a RTM (pendencia 3): PRONTO, aguarda OK para envio

`docs/reports/2026-07-24-hsm-rtm-solicitacao-apoio-504.{md,pdf}` (4 paginas): evidencias
(probe por endpoint, ocorrencias da noite, caso GEN0001), prova de que reduzimos nossa
carga >90% antes de pedir apoio, e 4 pedidos (validar/orientar, timeout 3s, health
lento, limites de capacidade para aumento de volume).

## 3. CCME/SME validado na fonte oficial (correcoes do dono INCORPORADAS)

- CCME = Conta Correspondente a Moeda Eletronica (conta); SME = familia de mensagens
  SPB que movimenta RB/CL<->CCME (SME0001-0004). LPI0002/0004 = pernas CCME<->PI.
- **A MONETARIE E EMISSORA DE MOEDA ELETRONICA, TEM CCME e tem CL; RB e de bancos**
  (anotado em memoria para nunca mais errar). Em PRD JA HA fluxo LPI/SME real: 7 dias
  = LPI0001 x12 OUT com R1 (rail proprio!), LPI0006 x40 IN, SME0001/2/3 com R1.

## 4. Defeito #7 (telas de reserva): IMPLEMENTADO fim a fim (TDD em tudo)

Plano: `docs/plans/2026-07-24-defeito7-telas-reserva-lpi.md`. Decisoes do dono:
todas as 4 pernas LPI; Opcao A com B parametrizavel; inject/adjust = ambos.

Commits (ordem): 44f1529e contexto BalanceRequests (tabelas balance_requests +
events, derivacao LPI fail-closed) | 69218e1f maquina LSO/RSO 4 olhos |
41184404 fix flake LimitsDailySpentTest (virada do dia BRT) | 905c695a dispatch
outbox monetarie.spb.lpi.request + apply_result + consumer do result |
d5b35c60 REST spi_service (fim do 404) | 914f8287 **500 admin PROVADO**
(Decimal.new(float) em balances.ex:104) + to_decimal + as_request=true |
74cb41cc gateway proxies reais + cancel | 85534c7f modo A/B
(BALANCE_REQUEST_EXECUTION_MODE, 409 + execution_mode nas listas) |
01f1f753 **lado SPB**: LpiCommandConsumer durable -> CommandExecutor pelo rail
vivo (create_message source pix_balance_request -> LifecycleEngine ->
RealDispatcher XSD+HSM+MQ), dedup por request_id (exclui failed), result via
outbox no pos-integracao (hook fail-soft so LPI), janela fechada = NAK 60s |
fc8cece6 **frontend**: pernas CL/CCME (RB removido do fluxo de requests),
conversao centavos->reais na borda, LSO/RSO funcional, spb_direct em consulta,
i18n 5 idiomas | 4f0ff4ea plano + registro-mestre + PDF RTM.

Suites TODAS verificadas por mim: spi 1079/0, settlement 1025/0, shared 1884/0,
spb bacen_gateway 17948/0, vitest 129/129, vue-tsc 0.

## PENDENCIAS (proxima sessao / dono)

1. **Deploy do defeito #7 com OK do dono**: pix-api + spb-api + pix-admin-ui HML
   primeiro (migration nova roda no release), validar VIVO (criar requisicao CL de
   valor pequeno em HML, aprovar LSO/RSO, ver LPI0001 sair e R1 fechar COMPLETED),
   ligar `VITE_BALANCE_REQUEST_FLOW_ENABLED=true` no build da UI, validacao visual
   regra #11, depois PRD (digest match). ATENCAO: primeiro aporte PRD = operacao
   real de tesouraria.
2. **post_ms de pacs.008 real** no primeiro trafego do dia + handshakes/dia apos 24h.
3. **Enviar o PDF a RTM** (aguarda aprovacao do texto pelo dono).
4. Follow-ups do #7 (nao bloqueiam): expor events da requisicao no GET (timeline
   completa na tela); campos de UI sem persistencia no backend (sourceDescription,
   expectedDate, comments de aprovacao); motor automatico por meta de saldo do
   legado (ChecaLimites: flags + min/max + MetaSaldo) como fase 2; LPI0005/0006 na
   tela; prefixo "CEC" default em coa_cod_handler.ex:284 (resquicio Cecresa).
5. Herdadas: merge branch -> main; SMS PRD + rotacao keys; validacao visual telas
   anteriores; frentes de PRODUTO/CONTROLE do registro-mestre.

Memorias: [[monetarie-deepaudit-paridade-legadopix-0723]] [[monetarie-institution-data]]
[[monetarie-hsm-rtm-504-latencia-0723]]
