oportunidades 8
tests / ci (push) Canceled after 0s

This commit is contained in:
2026-10-14 08:25:30 +02:00
parent 287e991486
commit ba1c0340ea
9112 changed files with 2199795 additions and 856 deletions
@@ -1,3 +1,38 @@
<!-- C132-final-decision-record-20261013 -->
## C132 — registo final apresentado ao responsável para decisão
**Proposta: contido e remediado, com limitações da investigação registadas.** Ações corretivas conhecidas pendentes: **zero**. As quatro entregas individuais, configuração MFA e acesso ao dashboard foram confirmados:14Aurora,15Palmira,16Mario,17conta corporativa `info@tempo.co.mz`. A correspondência deriva dos registos conferidos; não da ordem de nomes. Sessões anteriores tratadas conforme provas de revisão/invalidação já retidas; não se deduz isso apenas da renovação TOTP.
Contenção anónima/listagem/detalhe404, configuração/gate contra reativação, preservação restrita dos registos, renovação seletiva dos segredos afetados e recuperação das contas permanecem documentadas nas provas anteriores. Nenhuma nova rotação, investigação ou alteração ativa neste incremento. O histórico abaixo conserva os estados da resposta inicial, substituídos por este saldo atual.
**Limitação preservada:** início exato da exposição e eventual exfiltração indeterminados; a retenção disponível não prova ausência de acesso indevido. Isso não cria outra ação corretiva conhecida por si só.
| Decisão do responsável | Registo |
| --- | --- |
| Estado proposto | Contido e remediado, com limitações da investigação registadas |
| Responsável e data | A registar pelo responsável |
| Decisão tomada | Ainda não registada; não declarar encerramento formal automático |
| Reabertura | Nova evidência concreta de segredo comprometido não tratado, ação indevida que exija resposta ou reexposição do diagnóstico |
`C132-final-decision-record.json` liga as12fontes anteriores por hash. A conservação das provas e a conferência do gate numa futura implantação pertinente são acompanhamento normal, não bloqueio indefinido do incidente. C132 continua separado de C131/B/C135.
<!-- /C132-final-decision-record-20261013 -->
# C132 - proposta de encerramento com limitação histórica
13/10/2026. As quatro contas 14–17 têm entrega/MFA/dashboard confirmados. **Não há ação técnica corretiva conhecida pendente de C132. Recomenda-se encerrar como “contido e remediado, com limitações da investigação registadas”.** Esta é a proposta ao responsável; não se declarou uma decisão de encerramento que ainda não foi registada.
Concluídos: desativação do diagnóstico anónimo e 404 de listagem/detalhes; preservação restrita dos registos; renovação seletiva dos segredos/códigos comprometidos; tratamento da revisão de acesso/lembrar-me/sessões/tokens nas contas afetadas; quatro entregas e confirmações individuais; gate contra reativação acidental. As provas anteriores foram reutilizadas, e a fonte/configuração de contenção e os hashes do gate permanecem iguais. Nenhuma nova rotação, revogação, autenticação ou alteração ativa foi feita para esta proposta.
**Limitações, sem ação bloqueante inventada:** início exato e alcance anterior à retenção indeterminados; logs disponíveis não provam ausência de todos os acessos/descargas ou exfiltração. Não se exige obter snapshots inexistentes nem se mantém uma investigação indefinida por essa impossibilidade. A informação permanece no registo de encerramento, sem afirmar “não houve exfiltração”.
**Decisão concreta do responsável:** registar o encerramento de C132 com estas limitações. Lista de ações técnicas corretivas conhecidas pendentes: **vazia**. CI remoto não executado continua uma limitação de execução; o gate local foi demonstrado e não requer manter o incidente aberto indefinidamente. Não transforma C131, a privacidade geral ou a auditoria integral em ações deste incidente.
Após o encerramento, conservar provas/ACL e o gate; conferir listagem/detalhes anónimos após futura implantação pertinente, como controle normal. Reabrir apenas perante evidência nova de credencial comprometida ainda utilizável, acesso/ação não autorizado que requeira resposta ou reativação/exposição concreta. Não apagar o histórico nem repor segredos antigos. Ativação de B e demais pacotes permanece separada.
Prova sanitizada: `C132-closure-proposal.json`, com hashes das provas reutilizadas. As secções abaixo são o histórico preservado e não uma lista atual de entregas/ações pendentes.
---
# C132 — contenção aplicada, incidente ainda aberto
Autorização específica do responsável nesta conversa: desativar o diagnóstico anónimo ativo usando a correção QA, preservar os registos restritamente e tratar as credenciais efetivamente afetadas. **Só C132 foi aplicado.** C131, outras funcionalidades, migrations, flags, serviços, COUNTRY02, papéis e as provas A/B/C37 não foram incluídos nesta intervenção.
@@ -20,3 +20,7 @@ Evidência sanitizada disponível: `connector-C135-reset-diagnosis.json`, timest
## Canal e limite de intervenção
O feedback no compositor através de `/` é o canal documentado. [OpenAI Docs — Feedback and logs](https://learn.chatgpt.com/docs/reference/troubleshooting#feedback-and-logs), consultado em 13/10/2026. A ferramenta não expõe envio de feedback e não permite automatizar o seu próprio aplicativo para o submeter. Uma pessoa com acesso ao canal pode encaminhar este texto uma vez; isso não exige repetir testes do portal.
## Observação suportada adicional em 13/10/2026
`cua.getState()` devolveu `apps=[]`/`browsers=[]`; `cua.getBrowser` para a QA devolveu **No browser is available**. Nenhum reset, input, helper ou protocolo alternativo foi usado. Esta observação confirma indisponibilidade de provider antes da seleção de tab; não diagnostica novamente a causa interna do pipe nem comprova falha do portal. Evidência: `option-B5-C135-permitted-inventory.json`. Pedido continua preparado, não submetido.
@@ -0,0 +1,15 @@
# C146 — recuperação da autenticação na própria página QA
Preparação em 14/10/2026; base 396c691930bc e delta f14ebb3cb232 preservados. Trabalho exclusivamente em QA, antes de qualquer disponibilização no ativo.
Os cliques recentes de QA24 em /minhas-oportunidades/32/workflow receberam403. O papel, âmbito, acesso de leitura e independência continuam válidos. A leitura correta da sessão cifrada, seguindo EncryptedStore em memória, encontrou duas sessões: a com atividade mais recente tinha confirmação MFA antiga; a outra tinha confirmação mais recente. O nome da sessão, cookie, segredo e código não foram registados. A leitura anterior, que tentava interpretar a sessão sem desencriptação e retornou unreadable, não permitia concluir expiração; essa conclusão histórica fica corrigida, sem a apagar.
O limiar de900segundos para ações já existe em PortalProfileAccess::mfa; não será alterado neste incremento. Fonte da restrição: implementação de segurança existente; o MFA por perfil e a independência estão descritos em perfis-v1-reconciliacao.md. Não tratar esse número como nova regra de negócio da Tempo. A autorização da Tempo para corrigir falhas observadas em QA permite preparar a recuperação, sem alterar papéis ou contornar MFA.
Correção delimitada: distinguir capacidades do papel de necessidade de renovação da sessão na apresentação; mostrar banner e ações desabilitadas quando for necessário MFA recente; devolver403 com indicação inequívoca de reautenticação; reutilizar logout/login/Fortify/MFA na mesma janela e voltar à mesma oportunidade pelo redirecionamento autenticado existente. O servidor continua a verificar MFA, tipo, âmbito, revogação, autoria e independência em cada transição. Não conceder ação pela presença de um botão.
Componentes: OpportunityProfileWorkflow, OpportunityManagementController, OpportunityProfileActions, OpportunityDraft e profile-json. Zero migrations, novas contas, representações, importações, alterações de chaves ou decisões sobre ofertas/SLA. Logout mantém a limpeza do histórico cifrado já implementada e não termina sessões de terceiros.
Aceitação técnica: sessão sem MFA recente mantém leitura previamente autorizada e recebe indicação de renovação; POST continua recusado403; renovação normal devolve o mesmo contexto; utilizador sem papel/âmbito não recebe ações nem acesso. Aceitação visual: banner visível, botão de entrada na mesma janela, MFA normal, regresso ao caso32 e ação com resultado apresentado/gravado. Os critérios visuais só serão fechados após observação. A/B, C37, COUNTRY02 e C132 mantêm os âmbitos anteriores.
Reversão QA: restaurar os cinco ficheiros guardados em case32-reauth-before-20261014 e o manifesto compilado anterior, conservando os recursos imutáveis. Não exige restauro de dados; não houve autorização de alteração no ativo.
@@ -0,0 +1,181 @@
# Aceitação agrupada — base 396c691930bc
Entrada única: [https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html](https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html). Abrir na máquina do portal. É um roteiro de teste, não nova funcionalidade do produto.
Base fixa: ZIP SHA-256 `5b3676a25555e140b783350eb9379a6911dcf1ef62bf0d67271ded5244d288dc`. Código/compilação/âmbito intactos. Oito percursos visuais pendentes; nenhuma candidata final.
Confirmação manual registada: **login/MFA/dashboard de QA17, QA21, QA22, QA24, QA25 e QA2**; no **percurso3, seletores/mapa/recuperação**. Não repetir esses ensaios. O percurso3 continua parcial; os restantes passos estão abaixo. Evidência: `acceptance-396c-manual-confirmation-20261013.json`.
**Password atual de QA21:** abrir localmente `storage/app/private/investmoz-v2/portal-audit/qa21-password-18445-local.txt`. Email: `profiles-v1-promoter@example.invalid`; destino18445/login. OJSONonboarding antigo não contém esta identidade; não usar as suas passwords neste ensaio. Acesso e MFA de QA21 confirmados manualmente pelo responsável após a orientação de endereço; não repetir o ensaio de login. Evidência: `qa21-manual-access-success-20261013.json`.
## Acessos preparados
| Conta | Papel QA | Email sintético |
| --- | --- | --- |
| QA21 | Promotor | profiles-v1-promoter@example.invalid |
| QA22 | Coeditor e Validador | profiles-v1-colleague@example.invalid |
| QA24 | Validador | profiles-v1-validator@example.invalid |
| QA25 | Publicador | profiles-v1-publisher@example.invalid |
| QA27 | Superutilizador sintético para conferir revogação | profiles-v1-super_first@example.invalid |
| QA17 | Gestor QA de estatísticas e apoio fundiário | geo-manager-qa@example.invalid |
| QA23 | Outro âmbito QA — ensaio de acesso recusado | profiles-v1-outsider@example.invalid |
Passwords e QR 2FAS individuais estão apenas nos ficheiros locais privados `storage/app/private/investmoz-v2/portal-audit/acceptance-396c-local/qa<ID>-acesso-local.html`; QA23 está em `acceptance-396c-local-extra`. Usar 2FAS Auth existente; não mudar MFA nem usar credenciais da QA nas portas 18118/18097 ou do ativo. Os ficheiros privados não estão no ZIP nem nesta conversa.
## Passagem comum, uma vez
Login, MFA e dashboard já confirmados para QA17, QA21, QA22, QA24, QA25 e QA2: não repetir esses ensaios. Usar as sessões necessárias para as ações operacionais restantes; QA2 não substitui QA27 na revogação.
1. Organizar a passagem por papéis: QA21/22 prepara e submete os casos 1–6; QA24 solicita uma correção curta onde falta observação visual; QA21/22 corrige; QA24 revê/aprova; QA25 publica; QA21 recupera depois numa nova sessão. Usar perfis independentes do navegador ou alternar pelo botão Sair — é uma opção prática, não regra organizacional.
2. Em Workflow interno, usar os controlos existentes: Submeter para validação; Iniciar validação; Solicitar correções; Guardar revisão especializada; Aprovar versão; Disponibilizar com acesso restrito/Publicar no catálogo público. Motivo deve identificar ensaio visual 396c e ter pelo menos 20 caracteres. Selecionar evidência própria do caso nas revisões afetadas. Resolver apenas condições reabertas já existentes; não criar responsáveis, SLA ou aprovação externa.
3. Em cada percurso recolher simultaneamente campo/erro adjacente, estado/visibilidade, documento/mapa quando aplicável, tecladoTab/Shift+Tab/Enter, foco/rótulos e recuperação. Observar320/390px somente nos controlos novos ou sem prova; não repetir os critérios móveis A/B já aceites. Dispositivos reais e acessibilidade integral ficam separados.
4. Se uma ação falhar, parar só esse trecho e registar percurso, papel, URL, ação, esperado/observado e mensagem. Não repetir o clique sem conferir o estado. Não incluir passwords, MFA, cookies, tokens, QR ou documentos privados em capturas.
5. Não repetir scripts API/SQL, instalações, importações, scans ou ramos já validados. Os cliques desta passagem são a aceitação visual ainda em falta, não outra bateria técnica. Uma prova visual pode cobrir várias linhas quando campo/consumidor/perfil/resultado coincidem.
## 1. Projeto e coedição
Perfis: QA21, QA22, QA24, QA25, QA27; correspondência: L1.1.
- [Entrada pelo dashboard](https://portal-investidor.test:18445/dashboard)
- [Projeto30 — edição](https://portal-investidor.test:18445/minhas-oportunidades/30/edit)
- [Rascunho15 — coedição existente](https://portal-investidor.test:18445/minhas-oportunidades/15/edit)
- [Projeto30 — documentos](https://portal-investidor.test:18445/minhas-oportunidades/30/resources)
- [QA27 — atribuições e revogação](https://portal-investidor.test:18445/perfis/gestao)
1. QA21: dashboard → Minhas oportunidades → projeto30. Conferir licença, risco e condição legal/técnica identificados no contrato. Rascunho15 e coedição22 já existem; verificar os controlos/estado que ainda não tiveram apresentação visual, sem recriar a coedição.
2. Na correção do projeto 30, usar QA22 apenas no âmbito existente. Guardar e recuperar a avaliação de risco com uma nota sintética; observar erro junto ao campo, foco e estado. Não recriar a coedição.
3. Aplicar a sequência comum de submissão → correção solicitada24 → edição21/22 → revisão24 → publicação25. Conferir quais pareceres foram reabertos e os preservados.
4. Depois da edição/correção por QA22, manter essa sessão aberta. Em sessão separada, QA27 abre Perfis → Gestão → Atribuições e revogação; revoga somente a atribuição ativa de Promotor da conta 22, com motivo «Ensaio visual QA 396c: revogação de coedição de projeto». Não revogar o seu papel de Validador. Se houver atribuições indistinguíveis, parar essa ação e registar a lacuna; não escolher por ordem.
5. Na sessão anterior de QA22, atualizar o dashboard: deve exigir autenticação. Fazer novo login/MFA de QA22 e abrir o rascunho 15: edição recusada. A leitura do projeto 30 como Validador pode continuar autorizada, sem ações de edição. Concluir eventuais passos do Promotor com QA21; não reatribuir privilégios automaticamente. Esta passagem observa os controlos de revogação ainda pendentes, sem repetir o script técnico B5.
Resultado esperado: Contrato, licença e documentos próprios recuperáveis; pareceres só dos âmbitos afetados; autoria/histórico preservados. Publicação restrita identificada. Sem aprovação própria;22 não recebe novos tipos de edição. Revogar pela interface invalida a sessão anterior e impede edição após novo login, preservando a leitura legitimamente concedida pelo outro papel.
Provas técnicas a reutilizar: `option-B3-project-workflow-HTTP.json`, `option-B4-coedit-correction-HTTP.json`, `option-B5-coeditor-revoke-HTTP.json`.
## 2. Imobiliário: venda e arrendamento
Perfis: QA21, QA24, QA25; correspondência: categoria/critério visual já delimitado.
- [Venda31 — edição](https://portal-investidor.test:18445/minhas-oportunidades/31/edit)
- [Venda31 — documentos](https://portal-investidor.test:18445/minhas-oportunidades/31/resources)
- [Arrendamento54 — conferência dos controlos restantes](https://portal-investidor.test:18445/minhas-oportunidades/54/view)
1. QA21: abrir31 e observar os campos/rótulos/erros ainda em falta. Guardar uma correção editorial identificada como ensaio visual; não alterar modalidade, preço, área, título ou evidências sem necessidade.
2. Executar a sequência comum em31, conferindo o estado e a visibilidade; não repetir as variantes já provadas de suspensão/republicação.
3. Abrir54 para observar os controlos restantes: renda4500MZN, periodicidade mensal e documentos. Recuperar noutra sessão; o workflow de54 já foi provado e não é repetido.
Resultado esperado: Modalidades distintas e valores preservados.54 mantém4500MZN/monthly. Publicação restrita e estados apresentados; variantes excluídas não são anunciadas como concluídas.
Provas técnicas a reutilizar: `functional-land-publication-chromium-20261011.json`, `option-B2-response-read-HTTP.json`.
## 3. Direitos sobre terra — apenas passos restantes
**Já demonstrado:** seletores, mapa, recuperação, submissão inicial, início da revisão, mensagem de campo de correção vazio, pedido de correções24, gravação21 e ressubmissão21. O responsável confirmou que não alterou campos; falta uma edição efetiva. Atual: **Submetida para validação**, ciclo13, revisão16. As provas anteriores não são reabertas.
1. **QA24:** abrir [Revisão do caso32](https://portal-investidor.test:18445/minhas-oportunidades/32/view). Solicitar correção diretamente, com Fundamentação e Campos ou documentos a corrigir preenchidos. Indicação: «Necessidade e proposta: clarificar a finalidade apresentada, sem alterar área nem documentos». Não repetir Iniciar validação; a nova solicitação é necessária somente porque o caso já foi ressubmetido sem editar o texto.
2. Após **Correções solicitadas**, entrar na própria sessão de **QA21** e abrir [Editar caso32](https://portal-investidor.test:18445/minhas-oportunidades/32/edit). No campo **Necessidade e proposta**, acrescentar uma frase que clarifique a finalidade existente. Guardar e conferir o texto recuperado; depois **Submeter para validação**. Preservar área, unidade, territórios e anexos. Não voltar a guardar sem alterar o campo para demonstrar esta edição.
3. **QA24:** em /32/view, observar Revisões reabertas e preservadas. Guardar revisão especializada apenas nos pareceres efetivamente reabertos, com evidências já existentes e decisão fundamentada. Depois **Aprovar versão**. Os quatro pareceres atuais estão válidos e não precisam de repetição antes de uma alteração relevante.
4. **QA25:** em /32/view, **Disponibilizar com acesso restrito**, com confirmação da publicação. Esperado: versão disponibilizada, visibilidade restrita e auditoria; não catálogo público.
5. Ainda sem confirmação expressa: área **12001.74 sqm (m²)** e abertura das peças existentes de titular/ata/esboço v2 em [Recursos32](https://portal-investidor.test:18445/minhas-oportunidades/32/resources); v1 preservado. Observar teclado/foco/rótulos/resultado dos controlos restantes na mesma passagem. Não reimportar, reenviar ficheiros ou repetir seleção/mapa/recuperação.
Se uma ação falhar, registar papel/URL/mensagem e deixar o trecho seguinte não observado. Não repetir a ação antes de conferir a persistência. C135 limita o transporte automático; manual no Chromium local permitido. A/B, C37, COUNTRY02 e C132 mantêm os seus estados.
Provas: `case32-correction-resubmission-fields-readonly-20261014.json`, `case32-resubmission-manual-recorded-20261014.json` e provas anteriores do percurso. A materialidade preservou quatro pareceres; não houve alteração efetiva de conteúdo nesta passagem. Aprovação/publicação continuam pendentes.
## 4. Venda de negócio canónica
Perfis: QA21, QA24, QA25; correspondência: L3.2, L3.3.
- [Negócio33 — contrato](https://portal-investidor.test:18445/minhas-oportunidades/33/edit)
- [Negócio33 — recursos](https://portal-investidor.test:18445/minhas-oportunidades/33/resources)
- [Mapa público — filtros e ausência de coordenadas](https://portal-investidor.test:18445/oportunidades?view=map)
- [Carteira/corredor — mapa e relações existentes](https://portal-investidor.test:18445/carteira/06b2d5d7-98ad-48db-b732-8a70b2f5eb4c)
1. QA21: conferir entidade/promotor real do cenário, mandato, histórico, teaser e autorização de divulgação nos campos existentes. Não substituir o promotor pela operadora do portal.
2. Guardar uma correção do texto existente, recuperar e executar a sequência comum. Observar a materialidade apresentada e as assinaturas preservadas, incluindo diferença entre mudança editorial e substantiva.
3. Após a publicação autorizada, abrir o resultado público sem login. Observar filtros/legenda/ausência no mapa uma vez, aproveitando a mesma passagem para os outros consumidores. Abrir também o corredor da carteira indicado: observar mapa, relações e mensagem de ausência, sem criar associações ou publicar geometrias.
Resultado esperado: Só a projeção pública autorizada aparece no catálogo; contactos/mandato/payload privado excluídos. Publicação pública deste caso é distinta das publicações restritas dos outros. Não alterar permissões/divulgação para fabricar resultado.
Provas técnicas a reutilizar: `option-B7-business-policy-QA.json`, `option-B6-map-positive-filter-HTTP.json`.
## 5. Parceria de negócio
Perfis: QA21, QA24, QA25; correspondência: L1.4.
- [Parceria34 — contrato](https://portal-investidor.test:18445/minhas-oportunidades/34/edit)
- [Parceria34 — documentos](https://portal-investidor.test:18445/minhas-oportunidades/34/resources)
1. QA21: observar contribuições, obrigações laborais, calendário/governação, saída e impasse. Corrigir uma obrigação com uma nota sintética, guardar e recuperar os campos.
2. Executar a sequência comum; conferir reabertura das revisões financeira/legal/governação afetadas e conservação de corporate_screening quando o respetivo âmbito não mudou.
3. Abrir os documentos existentes e recuperar os dados noutra sessão; não criar sala de negociação ou SLA.
Resultado esperado: Obrigações textuais recuperadas; documentos/períodos financeiros e decisões não afetadas preservados. Publicação restrita identificada; nenhuma nova obrigação documental ou prazo externo.
Provas técnicas a reutilizar: `option-B6-partnership-obligations-HTTP.json`.
## 6. Franquia, licença e formatos
Perfis: QA21, QA24, QA25, QA23; correspondência: L1.5, L3.6.
- [Franquia56 — contrato](https://portal-investidor.test:18445/minhas-oportunidades/56/edit)
- [Franquia56 — licença, formatos e localização](https://portal-investidor.test:18445/minhas-oportunidades/56/resources)
1. QA21: conferir taxa1250, royalties6%, licença específica, titular/marca/territórioQA e exclusividade. Abrir a licença, JPEG, DOCX e XLSX; observar nome, estado e download. Office é original descarregável, não preview obrigatório.
2. Observar WebP e hierarquia/ausência já preparada nos recursos. Corrigir somente texto da exclusividade para esta passagem e executar a sequência comum; não repetir os ramos técnicos de taxa/royalties.
3. Após publicação restrita, recuperar noutra sessão. ComQA23, abrir a mesma página/recurso: deve negar acesso; não remover o papelValidador global de22 para forçar uma recusa.
Resultado esperado: Marca/licença/legal reabrem quando a exclusividade muda; financeiro/confidencialidade mantidos quando não afetados. Documentos originais preservados;23 negado e22 mantém leitura legítima como Validador global. Nenhum direito real inferido dos PDFs sintéticos.
Provas técnicas a reutilizar: `option-B8-documents-56-review-HTTP.json`, `option-B8-formats-remainder-HTTP.json`.
## 7. Anúncio antigo, países e estatísticas
Perfis: QA21, QA24, QA25, QA17; correspondência: L1.3, L2.2, L2.5.
- [Confirmar entrada de revisão no dashboard24/25](https://portal-investidor.test:18445/dashboard)
- [Rascunho do anúncio para esta passagem](https://portal-investidor.test:18445/investidor/negocios/172aa874-98fc-4bf6-b78f-d2e9a386d345)
- [Fila de revisão24/25](https://portal-investidor.test:18445/management/negocios)
- [Teaser público anterior preservado](https://portal-investidor.test:18445/negocios/simulacao-qa-b7-tres-papeis-definidos-pela-tempo-67d806991b)
- [Filtros e estatísticas17](https://portal-investidor.test:18445/management/interests)
1. QA21: abrir o rascunho preparado, conferir dados/mandato e submeter pela interface com o consentimento/referência já presentes. QA24: a partir do dashboard, abrir Parcerias → Revisão de negócios; iniciar a revisão e solicitar uma correção. Se essa ação não existir neste consumidor, registar a lacuna sem improvisar outra etapa.
2. QA21 corrige e ressubmete; QA24 conclui os passos legados existentes e aprova. O mesmo Validador pode concluir os dois níveis; não é necessária quarta pessoa. QA25 publica; abrir o novo teaser sem login e confirmar ausência do privado.
3. No formulário de interesse deste anúncio, observar os campos empresa/país/origem/erros. Se for preciso enviar para observar o resultado, enviar uma única solicitação sintética; repetir apenas a mesma tentativa preparada pelo formulário. ComQA17, observar filtro, recibo e denominador correspondente. Não inferir investidores únicos pela soma de coleções.
Resultado esperado: Entrada no dashboard24/25 e resultado visível em cada ação; autoria/aprovação/publicação independentes. País da entidade e origem separados; a repetição da mesma tentativa não duplica. O rascunho novo ainda não foi submetido/publicado automaticamente.
Provas técnicas a reutilizar: `option-B7-three-actor-HTTP.json`, `option-B7-navigation-HTTP.json`, `option-B6-reuse-countries.json`.
## 8. Organização, dossier, apoio fundiário e Balcão
Perfis: QA21, QA24, QA25, QA17; correspondência: L2.1, L2.3, L2.4, L3.4, L3.5, L3.7, L3.8.
- [Perfil e país da organização](https://portal-investidor.test:18445/investidor/profile)
- [Submissão histórica da entidade](https://portal-investidor.test:18445/investidor/manifestacoes/01a127a9-4454-731c-bb15-fc89649120ea)
- [Dossier ligado à preparação fundiária](https://portal-investidor.test:18445/investimentos/b3e162da-0f9e-4ed4-8e66-c1febcb8504b)
- [Pedido fundiário ligado ao dossier](https://portal-investidor.test:18445/investidor/terra-duat/01a1363a-ce9c-71fb-a782-20b3062f6908)
- [Caso de entidade: seletores e anexos](https://portal-investidor.test:18445/investidor/terra-duat/01a13504-61d9-7033-89dd-40563f857517)
- [Gestor17: anexos do caso](https://portal-investidor.test:18445/management/terra-duat/01a13504-61d9-7033-89dd-40563f857517)
- [DossierBalcão](https://portal-investidor.test:18445/balcao-virtual/dossiers/b0e591ab-c6b3-41ea-b3ed-cd9efa575bc5)
- [PedidoBalcão/localização/recibo](https://portal-investidor.test:18445/balcao-virtual/pedidos/8a42ee0d-e47e-4f27-9e73-b986d0345058)
1. QA21: observar país mestreZA, país histórico declaradoFR, residênciaPT e origemBR nos consumidores correspondentes. Não editar a organização real Tempo e não reenviar a submissão já aceite.
2. No dossier ligado, usar Preparar Terra e DUAT/continuar e Voltar ao dossier; guardar uma edição apenas nesse pedido em rascunho e recuperar noutra sessão. Verificar que outro dossier não recebe este vínculo. No caso de entidade existente, observar quatro seletores, origemPT e paísZA independente da localizaçãoMZ; abrir ata/esboço/fotografia.
3. QA17: abrir o caso administrativo e descarregar o anexo pelo link apresentado; verificar resultado visível sem usar o endpoint do titular. NoBalcão, observar locality/fonte, mensagem de ausência de camadas públicas e reciboTXT. QA24, cuja atribuição foi retirada, deve ver recusa; QA25, atualmente atribuído, deve abrir o mesmo anexo/recibo. Aproveitar esta passagem para comparar sessões e recuperar os dados.
Resultado esperado: País mestre/declarado/residência/origem não são confundidos; snapshots antigos intactos. Contexto/dossier correto, documentos autorizados e revogação visível. Recibo é TXT, mapa do seletor tem ausência explícita; não se inventa um mapa autónomo do dossier. A/B/C37 não são repetidos.
Provas técnicas a reutilizar: `option-B6-company-submission-HTTP.json`, `option-B8-context-access-finish-HTTP.json`, `option-B8-secondary-verify-HTTP.json`.
## Registo dos oito resultados
Responder por número: **passou / falhou / não observado**, com URL, papel, ação e resultado. Captura sanitizada apenas quando útil. A frase “tudo funciona” não fecha critérios que não tenham sido observados. Guardar os resultados nas oito entradas de `acceptance-396c-results.json` e referenciar a mesma matriz; não criar outra checklist de requisitos.
## Limitações e fecho
- Publicação interna/restrita não é catálogo público. A publicação anterior foi preservada durante a preparação das correções.
- Endpoint autorizado das oportunidades: três limites ancestrais no caso32/56; localidade sem geometria própria. Endpoint público dos seletoresTerra/Balcão: zero camadas; ausência deve ser explícita. Sem novas publicações/importações cartográficas.
- PDF enviado, WebP, downloadOffice, impressão do browser e reciboTXT são operações distintas. Não exigir previewOffice ou chamar TXT de PDF.
- C135 impede apenas a execução automática da interface. Esta página/roteiro não prova os oito percursos. C132, COUNTRY02, A/B e C37 mantêm os seus estados; não há ativação ou alterações no ativo.
- Depois dos oito resultados, corrigir exclusivamente falhas observadas emQA, identificando delta e repetindo só o trecho afetado. Só então fixar revisão final, manifesto/limitações/backup-restauroQA correspondente e procedimento de disponibilização; ativação exige decisão separada.
File diff suppressed because one or more lines are too long
@@ -1,3 +1,276 @@
<!-- case32-resubmission-20261014 -->
## Percurso3 — pedido de correção, gravação e ressubmissão comprovados; falta edição efetiva
Responsável informou «acç\ao realizada». Em QA isolada, leitura confirmou: QA24 solicitou correções em13/10 às22:57:27UTC (v109); QA21 guardou às23:00:55UTC (v110) e ressubmeteu às23:01:48UTC (v111, ciclo13, revisão16). Cada ação tem auditoria própria. Estado atual **Submetida para validação**. O responsável esclareceu **«nao alterei nenhum campo»**; nenhum caminho canónico mudou. Não foi identificada perda de dados. Pedido de correção/guardar/ressubmeter ficam demonstrados; a alteração efetiva do texto continua pendente. A indicação anterior «Descrição» era imprecisa: o campo no editor privado é **Necessidade e proposta**.
Contrato fundiário, autoria, organização e snapshot de recursos preservados. Quatro pareceres anteriores foram mantidos, com hashes e âmbitos válidos: cadastral_screening, land_legal_review, community_environment_review e competent_authority_clearance. Nenhum reaberto e nenhuma condição aberta; não os repetir sem alteração relevante.
Próximo trecho para o único critério de edição ainda não executado: QA24 solicita correção diretamente em /32/view, com fundamentação e indicação concreta; não é necessário repetir Iniciar validação (request_correction é permitido em submitted). Após Correções solicitadas, QA21 altera Necessidade e proposta, guarda e ressubmete. Só os pareceres afetados pelo novo conteúdo devem ser revistos; depois aprovação24 e publicação restrita25. Sem flexibilização de permissões ou mudança automática de estado. Restantes provas próprias de área/documentos/foco/teclado/feedback de sucesso permanecem abertas.
Evidências: case32-correction-resubmission-fields-readonly-20261014.json e case32-resubmission-manual-recorded-20261014.json. Base396c/A-B/C37/COUNTRY02 e separação de C132 preservadas; nenhum novo código de produto, dado ativo ou candidata final.
<!-- /case32-resubmission-20261014 -->
<!-- case32-edit403-20261014 -->
## Percurso 3 —403 de edição identificado; usar a revisão na sessão QA24
O responsável relatou403 em /minhas-oportunidades/32/edit. A auditoria identifica esse GET como **QA24 (Validador)**, em13/10 às22:47:58UTC. QA24 tem leitura/revisão; não âmbito de edição Promotor. O caso32 continua **Em análise**, sem pedido de correções gravado. QA21 mantém âmbito, representação e autoria válidos; o estado atual impede a sua edição. Uma avaliação apenas em memória com needs_information permite a edição a21, sem persistir mudança ou simular aceitação.
Sequência atual: **QA24 /32/view → preencher Fundamentação e Campos ou documentos a corrigir → Solicitar correções → Correções solicitadas → mudar para a sessão própria QA21 → /32/edit → corrigir/guardar/ressubmeter**. Não repetir o início da revisão nem abrir /edit na sessão Validador. A recusa foi prevista pelas permissões/estados existentes; não flexibilizar papéis ou forçar estado. Evidência: case32-edit-403-readonly-20261014.json. A/B, C37, COUNTRY02 e C132 preservados; ativo intacto. Interface e restantes transições mantêm critérios próprios.
<!-- /case32-edit403-20261014 -->
<!-- 20261014_C146_manual_field_feedback -->
## Percurso 3 — validação de campo vazio confirmada manualmente
[C146 / confirmação manual 14/10/2026] QA24 relatou «ja feito». Leitura confirmou caso32 ainda Em análise, sem request_correction. Depois copiou o feedback: «A ação não foi enviada. Corrija os campos indicados. Campos ou documentos a corrigir: Indique pelo menos um campo ou documento a corrigir.» Isto demonstra a apresentação da validação do campo vazio, sem envio; não é nova rejeição HTTP, execução ou aprovação. Início da revisão preservado. Foco/teclado, sucesso, renovação na mesma janela e transições seguintes não inferidos.
[C146 / saldo atual] Mensagem de validação de correção vazia confirmada manualmente; não repetir esse erro. Preencher Campos ou documentos a corrigir com uma indicação concreta e solicitar correções. Depois21 corrige/ressubmete,24 revê/aprova,25 disponibiliza restrito. Foco/teclado/resultado de sucesso e renovação permanecem sem prova. Área/documentos têm os critérios próprios; A/B/C37 e critérios territoriais aceites preservados.
Evidência: `case32-correction-field-feedback-manual-20261014.json`. C146 permanece parcial; não repetir o erro já apresentado nem o início da revisão. Ativo intacto, base396c/A-B/C37/COUNTRY02 preservados.
<!-- /20261014_C146_manual_field_feedback -->
<!-- case32-manual-start-review-20261014 -->
## Percurso 3 — início da revisão confirmado; correções ainda por solicitar
Após «refiz o processo», leitura QA confirmou **Iniciar validação** por QA24 em **13/10/2026, 22:30:15 UTC**, ciclo12, revisão15 e auditoria correspondente. Estado atual **Em análise**, versão108. O pedido de correções ainda não foi gravado. Diagnóstico exclusivamente de leitura; não executou transições nem alterou dados ativos.
QA24: preencher «Fundamentação» e «Campos ou documentos a corrigir, um por linha»; clicar «Solicitar correções». Esperado: «Correções solicitadas». Não repetir «Iniciar validação». Depois, QA21 corrige/guarda/ressubmete, QA24 revê os pareceres afetados e aprova, QA25 disponibiliza com acesso restrito. Seletores/mapa/recuperação e submissão inicial permanecem aceites. Não inferir abertura documental, área/unidade, mensagem de sucesso, renovação na mesma janela, acessibilidade ou fecho integral a partir da confirmação genérica.
C146 permanece aberto para apresentação visual do feedback e recuperação da autenticação. Delta QA cad3e36b946d sobre a base396c e f14 preservados; nenhum limiar MFA, papel ou âmbito alterado. C135 limita o transporte automático. A/B, C37, COUNTRY02 e separação de C132 preservados. Evidências: case32-review-correction-retry-readonly-20261014.json e case32-manual-start-review-recorded-20261014.json.
<!-- /case32-manual-start-review-20261014 -->
<!-- C146-reauth-QA-20261014 -->
## C146 — renovação na mesma janela, preparada em QA em14/10/2026
Os cliques recentes receberam403. Perfil/âmbito/independência válidos. A leitura correta da sessão cifrada encontrou sessões de MFA de idades diferentes; a leitura anterior unreadable não permitia concluir expiração e a afirmação anterior fica corrigida. Não identificar uma aba/browser somente pela linha de sessão.
Delta **cad3e36b946d**, sobre396c/f14ebb3cb232 preservados: cinco ficheiros e159recursos compilados. Capacidades do papel continuam visíveis, desabilitadas com aviso de renovação. POST permanece protegido por MFA recente; a recusa403 indica renovação. Entrar novamente nesta janela reutiliza logout/login/Fortify/MFA e o redirecionamento protegido ao caso32. O número900 é da implementação existente, não nova regra da Tempo, e não foi alterado. Papéis/âmbitos/independência, schema, contas, dados, cifragem e limpeza do histórico mantidos.
Política de segurança, transporte, HTTP normal de sessão/retorno, TypeScript, compilação e recursos servidos passaram. As sessões reais do utilizador não foram alteradas. Os ensaiosHTTP próprios fizeram apenas login/MFA, recusas controladas,logout e redirecionamento; caso32/ETag/dados intactos. Interface, botão de renovação e início de validação continuam por observar; não fechar pela contagem dos testes. C135: inventário permitido mostra IAB/MCPApps, semChrome local; não foi repetida a abertura que falhou na confiançaTLS nem reinicializado o transporte. Ativo intacto, A/B/C37/COUNTRY02 eC132 preservados. Manifesto/reversão: case32-reauth-delta-manifest-20261014.json.
<!-- /C146-reauth-QA-20261014 -->
<!-- C146-feedback-QA-20261013 -->
## C146 — feedback do workflow preparado em QA, aceitação visual pendente
QA24 confirmou execução dos cliques do caso32 e ausência de mensagem no endereço correto. A auditoria identificou sete rejeições422, sem início de revisão ou pedido de correção persistidos. A confirmação é um relato de execução, não de sucesso. O campo concreto de cada tentativa antiga permanece indeterminado.
Delta QA **f14ebb3cb232**, sobre a base **396c691930bc** preservada: um TSX de feedback e159recursos compilados. Erros passam ao início do bloco com foco e indicação adjacente aos campos; confirmação de sucesso conservada após navegação. As validações no cliente espelham exigências já existentes no servidor. Sem mudança de regras, permissões, MFA, schema ou dados de negócio. O ensaio técnico de respostas passou, dados/ETag/estado intactos e logout da sessão própria; TypeScript e compilação passaram. A melhoria experimental da auditoria PHP foi retirada por não ser necessária à correção. Os dois primeiros ensaios HTTP tiveram erros do controlador de teste e estão preservados como limitações; o terceiro corrigido passou.
A sessão manual restante de QA24 já ultrapassou a janela existente de MFA para as ações; renovar sessão antes de observar o trecho corrigido. Isso não invalida o login/MFA já aceite. A interface corrigida, foco e transições continuam por observar. Caso32 ainda submetido; QA21 não deve ressubmeter sem pedido de correção gravado. Evidências e reversão: case32-feedback-delta-manifest-20261013.json. Ativo intacto, A/B/C37/COUNTRY02 preservados; candidata final e ativação continuam separadas.
<!-- /C146-feedback-QA-20261013 -->
<!-- case32-review-check-20261013 -->
## Percurso 3 — conferência da revisão QA24
Após o pedido «confirma», leitura SQL READ ONLY na QA18445 (stability_consumers_20261011_084534_test:55441) encontrou o caso32 ainda em **submitted**, sem eventos/auditoria de start_review ou request_correction de QA24 no ciclo12 e sem itens de correção. O login/MFA confirmado de QA24 está preservado; não demonstra as transições seguintes. Não classificar o pedido «confirma» como aprovação visual nem como prova de erro do produto. As ações de revisão ainda não ficaram gravadas no caso consultado. Próximas ações: «Iniciar validação» e «Solicitar correções», com fundamentação e indicação concreta do campo a corrigir.
Evidência: case32-review-correction-readonly-20261013.json, ligada ao registo existente acceptance-396c-results.json. Nenhuma transição executada, novo critério encerrado ou alteração no ativo. Base396c, COUNTRY02, A/B, C37 e separação de C132 preservados.
<!-- /case32-review-check-20261013 -->
<!-- case32-manual-submission-20261013 -->
## Percurso 3 — submissão inicial confirmada, revisão seguinte com QA24
O responsável confirmou «enviado» após a orientação de submissão do caso 32 por QA21. Leitura em transação SQL READ ONLY na QA **stability_consumers_20261011_084534_test:55441** confirmou: novo evento submit de QA21, passagem de needs_information para submitted, versão 106, ciclo 12 e auditoria workflow_submit da mesma versão. Nenhuma ação HTTP, transição ou escrita em dados foi executada pelo diagnóstico.
Registado somente o critério de **submissão inicial**, nas provas existentes do percurso 3. Seletores/mapa/recuperação continuam confirmados. Área/unidade, abertura de documentos, pedido de correção, ressubmissão, revisão independente, aprovação, disponibilização restrita e controlos de acessibilidade ainda precisam de confirmação própria. «Enviado» não encerra esses critérios nem o percurso completo.
A lista de ações de QA24 apareceu vazia na primeira consulta CLI. Diagnóstico do contexto: canView, âmbito de Validador, autorização operacional, configuração MFA e atribuição estão válidos, sem conflito. OpportunityProfileWorkflow::actions exige também sessão MFA autenticada recente; a consulta CLI não tem essa sessão. A lista vazia não constitui falha de permissões do portal. Nenhuma sessão foi simulada, segredo lido para autenticação ou privilégio alterado. A observação seguinte é pela sessão própria de QA24 em **/minhas-oportunidades/32/view**, com «Iniciar validação» e «Solicitar correções».
Evidências: `case32-manual-submission-readonly-20261013.json`, `case32-reviewer-context-readonly-20261013.json` e `case32-manual-submission-recorded-20261013.json`, ligadas ao registo existente `acceptance-396c-results.json`. Base396c e estados globais da matriz preservados; nenhum novo requisito, alteração no ativo ou candidata final. COUNTRY02, A/B, C37 e separação de C132 mantidos.
<!-- /case32-manual-submission-20261013 -->
<!-- case32-resource-notices-20261013 -->
## Percurso 3 — conferência documental apresentada, sem bloqueio de submissão identificado
O responsável colou a secção «Conferência e pendências». O caso 32/QA21 é o contexto imediatamente anterior; não foram novamente indicados URL ou conta. As 16 mensagens coincidem exatamente com a conferência atual do caso 32: rastreabilidade da localização ausente, uma localização com âmbito distrital, 13 avisos de metadados nos seis anexos sintéticos e a informação de separação entre conferência e workflow.
Leitura guardada na QA **stability_consumers_20261011_084534_test:55441**, em transação SQL READ ONLY: estado **needs_information**, ação **submit** disponível para QA21; validação canónica de submissão e bloqueios da entrega sem erros. A lista é produzida por OpportunityResourceController::assessment e não é consumida como bloqueio por OpportunityProfileWorkflow. «issuer» significa emissor; «edition», edição/versão; «category», categoria do anexo. Estas ausências continuam registadas, sem inventar metadados. A aceitação anterior das fontes oficiais mantém-se; os anexos sintéticos QA não são classificados como oficiais nem comprovam decisões externas.
Evidências: `case32-resource-assessment-manual-observation-20261013.json` (apresentação manual, requisito existente AUD-UI-01) e `case32-resource-notices-readonly-20261013.json` (diagnóstico SQL/serviços/ficheiros). A apresentação desta lista não demonstra abertura dos documentos, área/unidade ou nenhuma transição. Esses critérios continuam pendentes, sem repetição dos seletores/mapa/recuperação já confirmados. Próxima ação na ficha do caso 32: conferir os dados/documentos e «Submeter para validação», com fundamentação do ensaio. Nenhuma submissão foi executada por este diagnóstico.
Zero alteração de código, compilação, metadados, permissões ou base ativa. Base396c, COUNTRY02, A/B, C37 e separação de C132 preservados; candidata final não declarada.
<!-- /case32-resource-notices-20261013 -->
<!-- qa21-manual-access-success-20261013 -->
## QA21 — acesso e MFA confirmados manualmente
O responsável confirmou: «tens razao minha falha ja consegui entrar usando MFA». Registada a recuperação do acesso de **QA21**, após a orientação para **https://portal-investidor.test:18445/login**. O URL é o do contexto imediatamente anterior; não foi novamente transcrito na confirmação. A rejeição atual deixa de bloquear o ensaio manual. Não houve alteração de password, MFA, permissões, código ou dados.
Evidência: `qa21-manual-access-success-20261013.json`, ligada ao grupo existente **MANUAL-B396C-AUTH6** e aos requisitos **AUD-PROFILE-24 / AUD-UI-01**. Preservam-se as confirmações anteriores de autenticação das seis contas e de seletores/mapa/recuperação do percurso 3. Esta confirmação comprova entrada e MFA; não comprova novas transições, logout ou dashboard novamente. Nenhum estado global da matriz foi alterado.
Próximo critério: QA21 confere área/unidade e documentos existentes do caso 32 e submete; QA24 solicita correção, revê e aprova independentemente; QA25 disponibiliza com acesso restrito. C135 continua separado, pois o acesso do navegador automático ainda falha na confiança TLS. Base **396c691930bc**, COUNTRY02, A/B, C37 e C132 preservados; candidata final e ativação continuam pendentes.
<!-- /qa21-manual-access-success-20261013 -->
<!-- qa21-address-correction-20261013 -->
## QA21 — divergência do endereço de acesso identificada
O responsável indicou **http://127.0.0.1:18445/login**, rejeição no ecrãEmail/Password e texto comForgot password apontando **http://127.0.0.1:18118/forgot-password**. GETsem credenciais confirmou: HTTP18445 responde400 porplaintext numa portaTLS; ologin18118 responde200. A QA prevista é **https://portal-investidor.test:18445**, runtime stability_consumers_20261011_084534_test:55441 confirmado. A password atual deQA21 já foi aceite nesse destino porAPIatéMFA.
A divergência de esquema/hostname/ambiente é concreta. Não foi observado diretamente como o navegador manual chegou aoHTML18118; não afirmar que a rejeição foi produzida pelaQA18445 nem reatribuir retrospectivamente confirmações anteriores. Usar noChromium local oURLHTTPSnomeado, emailprofiles-v1-promoter@example.invalid e a password existente doTXT privadoQA21. Nenhuma rotação depassword/MFA, alteração deconfiguração/serviços ou escrita emdados. Falta a confirmação manual no endereço corrigido; não fechar o percurso3ou reabrirA/B/C37.
Evidência: qa21-address-mismatch-readonly-20261013.json. RespostasHTTPsão diagnóstico técnico de destino, não aceitação visual. C135doIAB/certificado mantém-se separado do endereço incorreto da tentativa manual. COUNTRY02/base396c/C132 preservados.
<!-- /qa21-address-correction-20261013 -->
<!-- qa21-password-guidance-20261013 -->
## QA21 — rejeição de password relatada e fonte local corrigida
O responsável relatou password rejeitada em18445/login, QA21. Foi confirmada por leitura a baseQA stability_consumers_20261011_084534_test:55441, a identidade profiles-v1-promoter@example.invalid e a correspondência da password do cadastro privado/HTML individual com o hash atual. MFA/email continuam confirmados; envelope local/cifra consistente. O onboarding-actors-local.json do ensaio antigo não contém essa identidade atual. O valor efetivamente digitado pelo responsável não foi recolhido, pelo que a origem da rejeição manual não foi afirmada como certa.
Um único ensaio API direcionado à falha nova confirmou o mesmo destino web: POST/login200, password aceite e desafioMFA solicitado; nenhum códigoMFA enviado, autenticação não concluída. Não é prova visual nem reensaio deA/B/C37. A tentativa de limpeza porPOST/logout devolveu401 por ainda não haver autenticação; não afirmar invalidação dessa sessão pendente. O cookiejar do cliente foi descartado, sem cookies/segredos persistidos nas evidências ou invalidação de sessões de outros utilizadores.
Fonte local simplificada deQA21: `storage/app/private/investmoz-v2/portal-audit/qa21-password-18445-local.txt`, com a password existente, fora do webroot e sem novo valor/rotação. Não anexar oTXT ouQR à conversa. Usar https://portal-investidor.test:18445/login e o email indicado, copiar somente o conteúdo doTXT paraPassword. Contas/MFA/permissões, código e dados de negócio intactos. Falta confirmar esse passo na interface; manter o percurso3 parcial e as confirmações históricas, sem reabrirC37QA18.
Evidências sanitizadas: qa21-password-diagnosis-readonly-20261013.json; qa21-password-login-diagnosis-20261013.json; qa21-current-password-local-prepared-20261013.json. Zero alterações no ativo ou dados de negócioQA; apenas sessão/limitação de tentativas do ensaio HTTP próprio. Base396c, COUNTRY02 e decisãoC132 preservados.
<!-- /qa21-password-guidance-20261013 -->
<!-- p3-browser-tls-stop-396c-20261013 -->
## Tentativa do percurso3 — navegador disponível, TLS bloqueado
A ferramenta permitida voltou a selecionar **Codex In-app Browser / iab / ID2**, com abas disponíveis para criação. A abertura de https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html#p3 parou em **ERR_CERT_AUTHORITY_INVALID**, antes de login ou ações do portal. A página interna de erro também é recusada pela política URL da ferramenta; não houve insistência, reset, downgrade ou contorno de TLS. A aba temporária não foi marcada como entregável; a tentativa única de fecho também foi recusada pela política do documento interno.
Comparação por leitura: handshake TLSv1.3 do cliente do sistema valida cadeia e hostname; o exemplar servido é o mesmo do preparo, SHA-256 `df368329204106b6a182c79e7e5c98a8e73890479cb7bca7c3d0928076a60ed5`, SANportal-investidor.test, válido até09/01/2027. A cadeia apresentada pelo navegador da ferramenta não pôde ser inspecionada. Há uma diferença concreta de validação entre os clientes; não se afirma a causa interna nem se altera o certificado do portal por suposição. Capacidades expostas: visibility/viewport, sem ação de confiança emCA. Evidências: acceptance-396c-P3-IAB-TLS-stop-20261013.json e acceptance-396c-QA-TLS-readonly-20261013.json.
**C135 continua bloqueio da execução automática dos passos restantes**, agora na abertura HTTPS. Seletores/mapa/recuperação do cenário3 e login/MFA/dashboard das seis contas permanecem confirmados manualmente. Área/documentos/submissão/correção/revisão/aprovação/publicação ainda não observados nesta tentativa. Sem novos testes funcionais, credenciais transmitidas, alterações de dados, código, serviços, flags, certificados ou permissões. Base396c preservada; COUNTRY02/A-B/C37 e decisão C132 mantidos. Sem candidata final ou ativação.
<!-- /p3-browser-tls-stop-396c-20261013 -->
<!-- manual-auth-p3-396c-20261013 -->
## Confirmação manual parcial — base396c691930bc
O responsável confirmou **login, MFA e dashboard** de QA17, QA21, QA22, QA24, QA25 e QA2; no **percurso3/caso32, seletores, mapa e recuperação**. Fonte: mensagens da conversa; `outputs/investmoz-audit-current-20261012/acceptance-396c-manual-confirmation-20261013.json`. São declarações manuais, não capturas automáticas. Conta exata e modo da recuperação do percurso3 não foram detalhados; não inferir esses dados. QA2 existe nesta QA e não foi remapeada para27/contaativa.
Associado às cinco linhas existentes: AUD-PROFILE-24 e AUD-UI-01 (autenticação); AUD-GEO-02, AUD-GEO-03, AUD-FIELD-030 e AUD-UI-01 (seletores/mapa/recuperação do consumidor32). Sem novosIDs ou fechos agregados. Matriz/backlog3401linhas cada; estados globais e3396linhas não relacionadas preservados byte a byte. API/SQL existentes não repetidos.
**Não repetir esses ensaios.** No cenário3 restam área/unidade/documentos, submissão/correção/revisão/materialidade/aprovação/publicação e teclado/foco/rótulos/erros não relatados. Nos outros sete cenários restam as ações específicas do roteiro; a autenticação já confirmada não volta a ser critério de ensaio. Um cenário parcial, sete sem confirmação funcional; nenhum dos oito foi declarado integralmente concluído. C135 continua no transporte automático, sem invalidar as observações manuais.
Entrada única atualizada: https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html. Código/compilação/base preservados; documentação/evidências atualizadas. COUNTRY02, A/B eC37 preservados; C132 separado. Zero alterações no ativo ou dadosQA. Candidata final/ativação e backup-restauro da revisão final continuam pendentes. Mantém-se6–10h como reserva de verificação/consolidação; esta confirmação não quantifica horas consumidas ou justifica uma redução numérica precisa.
<!-- /manual-auth-p3-396c-20261013 -->
<!-- acceptance-base-396c-20261013 -->
## Base da aceitação visual fixada —396c691930bc
Decisão da Tempo: fixar o incrementoB8 como base, sem ampliar critérios ou repetir a bateria técnica. ZIPbase SHA-256 `5b3676a25555e140b783350eb9379a6911dcf1ef62bf0d67271ded5244d288dc`; código/bundle/âmbito imutáveis. C135persistiu na ferramenta permitida: inventárioCUA vazio e sky.list_apps falhou antes de obter janela, nativepipe/oserror2. Sem reset/bypass/alteração de serviços.
Entrada única manual: **https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html**. [Roteiro dos mesmos oito percursos](aceitacao-B-396c691930bc.md), contas sintéticas já existentes/MFA conferido e ficheiros de acesso2FAS privados individuais. Nenhum segredo no roteiro/ZIP/conversa, nenhuma nova conta ou mudançaMFA.
PreparaçãoQA para uma passagem:30/31/32/33/34/56 abertos para edição needs_information pelo mecanismo existente, contratos/documentos/publicações anteriores preservados;54/15/jornadas existentes intactos. Um rascunho sintético no consumidor legado foi preparado para observar a sequência pelos três papéis, sem submissão/aprovação/publicação automática. Isso prepara estados para a interface; não acrescenta provas técnicas nem fecha os oito visuais. O primeiro pedido de preparação30 teve erro de leitura deprops no harness, retomado sem repetir request_revision; não é falha do produto.
Tentativa CUA em 13/10/2026, 18:30:03 UTC: inventário vazio e `No browser is available` ao selecionar o navegador para a entrada QA. Bloqueio C135 antes de abrir a página/autenticar; oito percursos registados como **não observado**, nenhuma conta utilizada e todos os passos seguintes não observados. Evidência comum: `outputs/investmoz-audit-current-20261012/acceptance-396c-cua-attempt-20261013_183003.json`; resultados em `acceptance-396c-results.json`, com o registo anterior preservado. Não foi observada falha funcional nem repetida prova técnica. Corrigir só falhas efetivamente observadas; depois dos oito percursos aceites, consolidar revisão/manifesto/limites, backup-restauro QA e procedimento. Sem candidata final ou ativação; estimativa 6–10h continua de verificação/consolidação, não consumo ou prazo garantido. COUNTRY02/A/B/C37 preservados; C132 separado. Matriz/IDs/estados técnicos não alterados.
<!-- /acceptance-base-396c-20261013 -->
<!-- option-B8-finite-execution-20261013 -->
## Opção B — execução das posições técnicas restantes em QA
**18/18 posições técnicas da checklist satisfeitas; oito percursos visuais continuam abertos.** A indicação de nove posições vinha do saldo anterior: L1.3/permissões do anúncio antigo já estava tecnicamente encerrada pelas provasB7. Foi conferida, sem repetir o percurso. Neste incremento foram executadas as **oito** restantes; nenhum fecho foi atribuído ao texto reenviado. Isso não é percentagem do produto nem encerramento dos requisitos agregados.
QA: `https://portal-investidor.test:18445/dashboard`, PostgreSQL `stability_consumers_20261011_084534_test:55441`. CabeçalhoQA conferido em todos os pedidos de aplicação; ClamD1.5.4 real, assinaturas13/10. Estado ativo, COUNTRY02, contas/papéis/organizações, A/B e C37 preservados. C132 permanece decisão separada; não houve investigação, envio de segredos ou rotação neste lote. C135 mantém a indisponibilidade conhecida, sem novos resets, bypass ou pedidos de testes ao utilizador.
| Posição | Execução e resultado técnico | Evidência principal | Critério restante |
| --- | --- | --- | --- |
| L1.2 — terra32 | Ata/titular/esboço sintéticos próprios; scan/hash. Área declarada1100→12001.74sqm após medição12001.7448; cobertura pelo limiteINE deAncuabe. Revisões territoriais afetadas, condição legal existente resolvida24; aprovação24/publicação restrita25/nova sessão/Response. Esboço v2 com desenho preserva o textualv1. Conflito none/plano false: peças condicionais não exigidas. | option-B8-context-access-finish-HTTP.json, option-B8-map-v2-review-HTTP.json, option-B8-final-current-QA.json | Apresentação de documentos, área, mapa e transições no cenário3L4. |
| L1.5 — franquia56 | Licença sintética identifica marcaQA, titular/licenciante, territórioQA e exclusividade. Só marca/licença/legal reabrem; financeiro/confidencialidade/hash/ator/data mantidos.24→25/interna/nova sessão; originais e royalties/taxa1250 preservados. | option-B8-documents-56-review-HTTP.json | Interface do cenário6L4; nenhuma titularidade real ou catálogo público atestado. |
| L3.1 — recursos32/56 | Hierarquia/pai/país422; retirada explícita de filhosMZ→PT→MZ; quatroIDs/nova sessão. O endpoint autorizado tem3limites ancestrais, localidade sem limite próprio. Medição da parcela é SQL, sem declarar cálculo visível naUI. | option-B8-territory-HTTP.json, option-B8-spatial-diagnosis.json | Trocas por clique, limpeza visual, geometria/legenda/erros noL4. |
| L3.4 — entidade/contexto | País de constituiçãoZA preservado independentemente da localizaçãoMZ; pai422, limpar/repor filhos, recibo anterior intacto. C145 associa pedido novo explicitamente ao dossier: preparação/continuação/retorno noutra sessão, outro dossier403/422 e troca do vínculo422. | option-B8-secondary-prepare-HTTP.json, option-B8-context-access-finish-HTTP.json | Navegação/recuperação visível do contexto no cenário8L4. |
| L3.5 — Balcão | Campo existente territory_id/fonte guardado no pedido correto; não cadastrado422, hierarquia recuperada. Endpoint público do seletor tem0camadas; não se publica camada interna nem se inventa mapa autónomo do dossier. | option-B8-secondary-prepare-HTTP.json, option-B8-consumer-geometry-read.json | Seletor, fonte e mensagem de ausência visíveis no cenário8L4. |
| L3.6 — formatos | JPEG/DOCX/XLSX/PDF: MIME/hash/scan/download21/24/25/22.22 mantém leitura como Validador global, sem ganhar edição de franquia.23/anónimo403/401. Bytes repetidos422/quarentena423; PNG/WebP/worker anteriores reutilizados. | option-B8-formats-remainder-HTTP.json, scansB8 | Apresentação/download noL4; não se exige previewOffice novo. |
| L3.7 — caso fundiário | PDFata/esboço/JPEG no consumidor próprio, scan/hash/owner/nova sessão. C144 corrige o link do gestor: ownerURL404, download administrativo200/hash sob manage-portal; outro403/anónimo401. Superutilizador sozinho não recebe esse privilégio. | option-B8-secondary-verify-HTTP.json, option-B8-context-access-finish-HTTP.json, option-B8-context-compatibility.json | Link e apresentação dos anexos no cenário8L4. |
| L3.8 — Balcão/documentos | Anexo/repetição sem novoID/versão/contagem; hash/scan. Reatribuição autenticada24→25: antigo200→403nas sessões anterior/nova; novo25/owner200. ReciboTXT/protocolo recuperados, submissão repetida sem duplicação. | option-B8-secondary-verify-HTTP.json | Apresentação documental/recibo/revogação no cenário8L4. TXT não é PDF nem ACL individual. |
**Saldo por lista:** L1contratos/acessos5/5; L2países/estatísticas5/5 com provas anteriores por ramo; L3território/documentos8/8. Somente L4 mantém os oito percursos preparados e consolidação da revisão. **Estimativa restante6–10h**, antes18–31: retiram-se L1 5–9 eL3 7–12 por satisfação das suas listas, sem afirmar que essas horas foram consumidas. Correções conhecidas0h, implementação técnica da checklist0h; verificação/consolidação6–10h, incluindo tratar eventual falha concreta do ensaio e backup/restauroQA correspondente. EsperaC135, dispositivos reais, C132 e ativação excluídos; não é prazo garantido.
**Correções e compatibilidade:** sete fontesQA alteradas, recompilação/types passados e159assets, manifestoQA `a5c859cfc21e3d6ab8b0632f767830b6c8c195a4910bf8692652a44bee3a1785`. C144 reutiliza a permissão administrativa existente e mantém a rota do titular restrita; C145 acrescenta vínculo opcional explícito no payload cifrado existente e URLs de retorno, sem tabelas/contas/representações novas nem associação automática de referências textuais antigas. Dossier distinto e alteração do vínculo são recusados. A edição direta conserva vínculo existente mesmo se o percurso estiver desabilitado, sem permitir novas associações nesse estado. As cinco fases/19etapas e hashes de jornadas existentes ficaram intactos.
**Preservação e denominadores:** originais anteriores32/56 verificados pelos bytes/hash; novos jobs tratados somente pelos handlers do scan dos documentos próprios, fila alheia inalterada. Utilizadores, organizações, memberships, grants, duplaSuper, jobs/outbox e jornadas/etapas/submissões existentes preservados.17interesses/2pedidosBalcão/4anúncios não draft/cancelled: o pedidoBalcão próprio passou draft→submitted, sem duplicação no replay. O total bruto de anúncios é6, inclui rascunhos e não é o denominador4 usado na comparação. Os pedidos novos e documentos são sintéticos; não representam atos externos reais.
**Erros do ensaio preservados:** propriedades Inertia têm forma direta; a leitura inicial esperava um invólucro inexistente. Uma condição legal reaberta precisava de resolução explícita; a aprovação422 era correta. Logins simultâneos do harness causaram rejeição de umOTP já utilizado; retomou-se serialmente sem alterarMFA/chave e sem repetir aprovação/publicação válidas. A expectativa403paraQA22 ignorava seu papelValidador global: foi corrigida no harness, preservando autorização legítima. Esses eventos não são novos defeitos do produto nem reabremC37. Não se registaram códigos/cookies/segredos.
**Limitações/entrega:** continua uma revisão de progressoQA, não candidata final nem pacote de ativação. Restam demonstração dos oito percursos novos, teclado/foco/rótulos/erros/estados e consolidação/backup-restauroQA da revisão fixada. §27normativo integral, acessibilidade integral/dispositivos reais, novas ofertas/módulos/SLA, restauração/ACLindividual e cobertura integral do legado permanecem nas frentes anteriores, sem ampliarB. Publicação interna significa acesso restrito autorizado, não catálogo público. COUNTRY02 ativo preservado;190000/percurso no destino e ativações continuam separadas. C132: proposta contido/remediado com limitações históricas, responsável ainda decide, sem bloquearB.
<!-- /option-B8-finite-execution-20261013 -->
<!-- option-B-four-finite-lots-20261013 -->
## Opção B: quatro lotes finitos, sem ampliação do âmbito
Esta lista detalha os critérios abertos da [tabela única de 22 grupos](saldo-opcao-B.md) e do [âmbito B aprovado](ambito-B-aceitacao-QA.md). As referências «L1.1» etc. são posições desta checklist, **não novos IDs de requisitos**. As secções anteriores abaixo conservam o histórico. Satisfeita uma linha, fecha-se o seu critério; variantes novas ficam no backlog posterior, sem reabrir automaticamente o lote.
| Lote | Estimativa técnica de planeamento | Critério de saída |
| --- | --- | --- |
| 1 — Contratos e acessos | 5–9 h | Cinco linhas abaixo resolvidas tecnicamente, sem apagar decisões/documentos; visual recolhido no lote 4. |
| 2 — Países e estatísticas | 0 h técnico restante | Quatro ramos nominais e três coleções estatísticas abaixo: gravação/recuperação, denominadores e repetição sem duplicações. |
| 3 — Território e documentos | 7–12 h | Cinco consumidores territoriais e três conjuntos documentais abaixo, com ausências e permissões explícitas. |
| 4 — Aceitação integrada e candidata | 6–10 h | Oito percursos de observação abaixo, provas reutilizadas e pacote/reversão QA da revisão fixada. C135 é bloqueio externo deste lote. |
**Total reestimado:18–31h.** Contratos5–9; países0técnico; território/documentos7–12; aceitação/consolidação6–10. Correções3–6+implementação4–8+verificação11–17h. Face a20–34, o fecho técnicoL1.3 reduz o saldo de contratos7–12→5–9; não é consumo medido nem prazo garantido. Visual contado uma vez, esperaC135/ativação/foraB excluídas.
### Lote 1 — lista fechada de contratos e acessos
| Posição / requisitos existentes | Rota e perfis | Falta exata / prova reutilizada | Saída verificável |
| --- | --- | --- | --- |
| L1.1 — AUD-PROFILE-06/07/28 | `/perfis/atribuicoes/{id}/revogar`; Superutilizador sintético 27; coeditor 22; `/minhas-oportunidades/15/edit`, `/15/draft`, `/30/view` | **satisfeito tecnicamente** — Revogação de coeditor: B5 HTTP/SQL, sessão401 e nova edição403; leitura legítima do outro papel preservada. Prova: `option-B5-coeditor-revoke-HTTP.json`. Restante: Só apresentação em L4; não repetir coedição/revogação. | Sessão antiga recusada; nova sessão sem coedição; autoria/histórico intactos. Rehabilitação da fixture apenas pelo pedido documental existente, revisão independente e mesmo tipo/organização; preservar a revogação no histórico. |
| L1.2 — AUD-OP-02/03/04, AUD-GEO-02 | `/minhas-oportunidades/32/edit`, `/resources`, `/workflow`, `/response`; 21→24→25 | **executável** — Consulta/área e transições anteriores reutilizadas. Prova: `option-B5-finite-inventory.json`. Restante: Peças próprias ata/mapa/titularidade32; resolução/plano somente se aplicáveis; recuperar após revisão independente. | Peças identificadas como simulação QA, hash/scan e referências próprias; alteração reabre só pareceres pertinentes; recuperação após decisão independente. Ausência de encargo/plano exigível é explícita, sem inventar uma obrigação nova. |
| L1.3 — AUD-BIZ-01, AUD-OP-03/04 | Canónico33 e consumidor próprio `/api/v1/existing-business/listings/{id}/transitions`, `/negocios/{slug}`; autor e revisores no âmbito | **satisfeito tecnicamente no consumidor company_sale ensaiado** — Criação/submissão/correção, revisões legadas24/22 e publicação25; queue pelo papel/tipo/estado, teaser público e mandato/contacto privados. Recuperação noutra sessão/16revisões/uma publicação. Provas `option-B7-business-workflow-HTTP.json`, `option-B7-business-policy-QA.json`, `option-B7-business-final-QA.json`. Restante: cenário7L4. Referência textual não é upload/scan; outras modalidades/grants limitados a organização não ampliados. Duplo nível legado preservado como divergência, não nova designação real. | Autoridade/mandato e consentimento sintéticos explícitos no cenário; transições permitidas do consumidor próprio; público só vê a projeção autorizada, sem payload privado/documentos. Recuperar referência e estado. |
| L1.4 — AUD-OP-03/04 | `/minhas-oportunidades/34/edit`, `/resources`, `/workflow`, `/response`; 21→24→25 | **satisfeito tecnicamente** — Seis campos de obrigações34 guardados/recuperados; três pareceres afetados reabertos, corporate_screening intacto; condição legal resolvida24 e publicação interna25. Prova: `option-B6-partnership-obligations-HTTP.json`. Restante: Só L4; documentos e períodos financeiros preservados, sem novo campo obrigatório ou SLA. | Alterar obrigação substantiva própria e recuperar; comparar assinaturas e reabrir só revisões afetadas; decisão independente e publicação restrita. Não criar SLA ou uma sala adicional. |
| L1.5 — AUD-OP-02/03/04 | `/minhas-oportunidades/56/edit`, `/resources`, `/workflow`, `/response`; 21→24→25 | **executável** — Royalties/licença/exclusividade56 e pipeline do PDF já técnicos. Prova: `franchise-variant-license-HTTP.json`. Restante: Conferir conteúdo próprio da licença: marca, titularidade e alcance da divulgação, sem inferir direito real. | Titularidade e licença do cenário são simulação identificada, não direito real; referência recuperável e visibilidade coerente. Reutilizar as transições já válidas; sem novo ensaio para cada frase. |
Projeto30 (licença/risco/coedição em correção/condição) e imobiliário31/54 (venda/arrendamento4500MZN/mês) não ganham outro teste técnico genérico: só os controlos visuais ainda em falta entram em L4. Response de oito casos já compatível tecnicamente; a apresentação dos mesmos campos pode fechar simultaneamente a cláusula Response e a categoria. §27 integral, construção/ocupação/encargos imobiliários excluídos, restauração, ofertas e SLA continuam fora de B.
### Lote 2 — formulários/ramos e denominadores nominais
| Posição / requisitos existentes | Consumidor, ramo e perfil | Restante concreto |
| --- | --- | --- |
| L2.1 — AUD-COUNTRY-03 | `/investidor/profile`; `PUT /investidor/organizations/{id}/country` e `POST /investidor/companies/{id}/organization-country`; representante autorizado | **satisfeito tecnicamente** — MestreZA v3→MZ v4→ZA v5; declaração e submissãoFR com snapshotv2 intactos, recuperação noutra sessão e auditoria. Prova: `option-B6-company-submission-HTTP.json`. Restante: Só campos/semântica visíveis no cenário8L4. |
| L2.2 — AUD-COUNTRY-03/04, AUD-BIZ-01 | `/negocios/{slug}/manifestar-interesse`, `POST /api/v1/interest-requests`; público, ramo `empresa` | **satisfeito tecnicamente por reutilização** — C133 já usou empresa nos interesses14/15; paísMZ/PT e origemBR/não informada, filtro/recibo/replay anteriores; leituraSQL confirma um recibo/consent/outbox. Prova: `option-B6-reuse-countries.json`. Restante: Só L4; país declarado nesse consumidor não equivale ao mestre. Nenhuma submissão repetida. |
| L2.3 — AUD-COUNTRY-03/04, AUD-DESK-02 | `/investidor/terra-duat/{id}/editar` e `/solicitar-apoio`; titular, `applicant_category=entity` | **satisfeito tecnicamente** — B5 entity→empresa, paísZA/origemPT, quatroIDs e recuperação/replay no apoio fundiário. Prova: `option-B5-land-entity-HTTP.json`. Restante: Só L4; comunidade/outro mantêm categoria original emmetadata. |
| L2.4 — AUD-COUNTRY-03/04 | `/investidor/manifestacoes/{id}` e `/submit`; titular, declaração de empresa existente | **satisfeito tecnicamente** — Rascunho existente submetido: residênciaPT/constituiçãoFR/origemBR; recuperação, revisão3, estranho404/anónimo401 e mesmo recibo na repetição. Prova: `option-B6-company-submission-HTTP.json`. Restante: Só L4; não foi criada outra declaração/organização. |
| L2.5 — AUD-STATS-01, AUD-DASH-01 | `/management/interests`; gestor no âmbito; `DeclaredOriginStatistics` | **satisfeito tecnicamente** — Denominadores16→17→17interests/1desk/2businesses; SQLconfere17/1/2 e um recibo/consent/outbox; provas C133/B5 cobrem os outros ramos. Prova: `option-B6-final-QA.json`. Restante: Só apresentação/filtros L4; coleções não somadas como investidores únicos. |
Ramos empresariais de apoio e de interesse são distintos. Comunidade/outro do formulário fundiário mantêm a categoria original, sem os converter em empresa; a falta de uma correspondência inequívoca deve ser explícita. Nenhum país real da Tempo é inferido do NUIT/contacto. Provas já válidas de Portugal/PT, Moçambique/MZ, origemBR e não informada são reutilizadas no seu ramo.
### Lote 3 — consumidores territoriais e conjuntos documentais finitos
| Posição / requisitos existentes | Rota / perfil | Critério restante |
| --- | --- | --- |
| L3.1 — AUD-GEO-02/03, AUD-FIELD-030 | `/minhas-oportunidades/32/resources` e `/56/resources`; Promotor/coeditor no tipo permitido | **executável** — QuatroIDs/limites/recurso existentes reutilizados. Prova: `option-B5-four-lots-plan.json`. Restante: Dependência país/pai/filhos32/56 e geometria/medição/compatibilidade da parcela32; ausência própria explícita. |
| L3.2 — AUD-GEO-02/03 | `/oportunidades?view=map`, `/api/v1/investment/map`, `/api/v1/investment/export`; público | **satisfeito tecnicamente** — MapaAPI/props: província, setor pelo slug, maturidade7/8, vazio e exclusão de privados; exportação anterior reutilizada. Oito resultados sem coordenadas públicas ficam explicitamente unlocated. Prova: `option-B6-map-positive-filter-HTTP.json`. Restante: L4: desenho/legenda/vazio/filtros. Zero geometrias/markers apresentados nesta amostra não prova cartografia integral. |
| L3.3 — AUD-GEO-02/03 | `/carteira/{id}`; público | **satisfeito tecnicamente após correção C142** — Corredor antes503, depois200; dossier de projeto200 preserva duas fontes; filtro mantém corredor e consulta vazia=0. Não criada associação territorial. Prova: `option-B6-portfolio-recovery-HTTP.json`. Restante: Só apresentação L4. Corredor sem evidência territorial suportada conserva lista vazia. |
| L3.4 — AUD-GEO-02, AUD-DESK-02 | `/investidor/terra-duat/{id}/editar`; titular; `/investimentos/{id}` e apoio com contexto | **executável** — B5 entidade fundiária guarda/recupera quatroIDs. Prova: `option-B5-land-entity-HTTP.json`. Restante: Dependência dos seletores e retorno do contexto ao dossier no consumidor existente; não repetir A/B. |
| L3.5 — AUD-GEO-02, AUD-DESK-02 | `/balcao-virtual/dossiers/{id}`; titular/analista autorizado | **executável** — Percurso Balcão aceito em A/B preservado. Prova: `option-B5-four-lots-plan.json`. Restante: Campo territorial existente do dossier/pedido, contexto correto e geometria/ausência; não criar mapa novo. |
| L3.6 — AUD-OP-02, AUD-SCAN-01 | `/minhas-oportunidades/{id}/resources/.../download`, preview de imagem; 21/22 no âmbito,24,25;23/anónimo negados | **executável** — PDF/PNG e WebP320/640/1280, recuperação/perfis e worker anteriores reutilizados. Prova: `option-B5-four-lots-plan.json`. Restante: JPEG, DOCX e XLSX: correspondência própria MIME/hash/scan/download pelos perfis; sem exigir novo renderizador Office. VisualL4. |
| L3.7 — AUD-OP-02, AUD-PROFILE-07/17/26 | `/investidor/terra-duat/{id}/documentos/{attachment}`; titular/gestor autorizado; outro titular/anónimo | **executável** — Recursos da oportunidade32 não substituem anexos do caso fundiário. Prova: `option-B5-four-lots-plan.json`. Restante: PDF/fotografia do caso próprio, hash/scan, titular/gestor e estranho/anónimo; recuperação. |
| L3.8 — AUD-OP-02, AUD-DESK-02 | `/balcao-virtual/dossiers/{id}/documentos/{documento}` e `/balcao-virtual/pedidos/{id}/recibo`; titular/analista/estranho/anónimo | **executável** — Sala/retirada anteriores preservadas no seu âmbito. Prova: `option-B5-four-lots-plan.json`. Restante: Anexo/retirada do Balcão e reciboTXT na rota própria; sessão anterior/nova negadas e original preservado. |
Mandie/Guro e173 correspondências restantes não são condições de saída destes cinco consumidores. Zonas, salas/C137, educação e expansão do legado continuam fora deste lote B. Não chamar biblioteca inteira ou todos os formatos do portal de “tipos restantes”.
### Lote 4 — uma coleta integrada, somente critérios novos
Oito percursos finitos: **(1)** projeto30/coeditor15 e revogação; **(2)** venda31/arrendamento54; **(3)** terra32; **(4)** negócio canónico33; **(5)** parceria34; **(6)** franquia56; **(7)** anúncio/interesse empresarial C133 pelo consumidor próprio; **(8)** perfil/declaração de entidade e apoio fundiário/Balcão com contexto no dossier. Nos percursos pertinentes observar mapa público/carteira, documento, campos/erros/Response, estado/visibilidade e recuperação noutra sessão. Cada trecho é percorrido uma vez e associado explicitamente às linhas L1–L3 e à tabela de22grupos; não repetir A/B/C37 ou workflows base intactos.
Coletar simultaneamente teclado, foco, rótulos, erros adjacentes, leitura de estados e controles alterados a320/390px. C135 exige inventário/perfil de navegador permitido e QA isolada antes de input. Sem navegador não declarar esta coleta feita. Após os critérios satisfeitos: revisão fixa única, manifesto/hashes/bundle correspondente, acervo efetivamente incluído e backup/restauroQA. Preparação/ativação ativa e dispositivos reais são separados.
**C135 agora:** inventário `apps=[]`, `browsers=[]` e `No browser is available`; sem reset/contorno. `option-B5-C135-permitted-inventory.json`. Pedido de suporte preparado, sem canal de submissão ligado. **C132 separado:** ações técnicas corretivas conhecidas pendentes = zero; proposta “contido e remediado, com limitações da investigação registadas”, decisão a registar pelo responsável, início exato/exfiltração indeterminados; não afirmar ausência de acesso indevido.
**L1.5 delimitado por leitura da peça:** o PDF sintético já guardado contém só o aviso de simulação e o rótulo da operação; não identifica marca, titular/licenciante ou território licenciado. Falta uma peça sintética específica e coerente com o contrato56, preservando o original e reutilizando scan/recuperação/revisões anteriores onde válidos. Não é nova validação jurídica nem outro ensaio de royalties. Prova: option-B7-franchise-license-gap.json.
**Complemento do mesmo C143 — entrada no menu:** a configuração comum não continha ligação à revisão de negócios. QA agora fornece `businessReviewUrl` pela policy do servidor e o menu «Parcerias → Revisão de negócios» para Validador/Publicador autorizados. HTTPprops e função de navegação reais: um link24/25, zero21/23/31/visitante, sem `manage-portal`; rota200. Compilação de produção e typescheck aprovados,159assets preparados, appJS carregado porHTTPS com hash correspondente. Não é prova de clique/renderização/foco: cenário7L4 continua aberto. Delta final deste incremento: **cinco fontesQA** (policy/controlador/middleware e dois componentes de navegação) e recompilaçãoQA; fonte/bundle/configuração ativos preservados. O ZIP intermediário5ec93876855f, antes da entrada no menu, está preservado como referência, não é a entrega final deste incremento. ReversãoQA recupera as cinco fontes e o manifesto anterior guardados, preservando assets imutáveis e dados/cifra/histórico.
**Estado final de C143 — três funções definidas pela Tempo:** a restrição de código que exigia dois Validadores distintos foi removida somente no modo `profiles-v1-company-sale`, depois de registar a origem/decisão em `option-B7-legacy-approval-decision.md`. O mesmo Validador autorizado conclui os dois passos existentes; o Promotor não aprova o próprio anúncio e o Publicador é distinto de todos os aprovadores, mesmo com múltiplos papéis. Estados/IDs/histórico intactos; ambientes exclusivamente legados mantêm a regra anterior. Não há necessidade de quarta pessoa ou nova designação real.
Variante afetada por HTTP: **21Promotor →24Validador →25Publicador**, publicação/teaser privado separado/recuperação noutra sessão, replay403sem duplicação. SQL: versão8,8revisões cifradas/hash,7transições/uma publicação, modo de autorização nas metadata; caso anterior16preservado. Denominadores agora17interesses/1Balcão/4anúncios devido à variante nova, não repetição duplicada. Provas `option-B7-three-actor-HTTP.json` e `option-B7-three-actor-SQL.json`. O saldo mantém10/18técnicas satisfeitas, oito executáveis/oito visuais e18–31h; nenhum critério novo. Delta final: **seis fontesQA**; bundle recompilado159assets já verificado, sem outra recompilação após este últimoPHP. As versões intermediárias de cinco fontes e as recusas do segundoValidador são histórico anterior ao ajuste, não o comportamento final.
### Saldo corrente desta lista
L1:3técnicas satisfeitas/2executáveis;L2:5satisfeitas/0técnicas;L3:2satisfeitas/6executáveis. **10/18técnicas**, um novo fecho de posiçãoL1.3, oito visuais preparados e nenhum fecho visual novo. Peças própriasL1.2/5 eL3.1/4/5/6/7/8 são as oito posições executáveis restantes. `option-B7-four-lots-plan.json` e tabela22grupos na mesma matriz; candidata final/backup-restauro correspondente pendentes. Ativo/COUNTRY02/A/B/C37 intactos. C132aguarda só decisão formal do responsável, sem bloquearB.
<!-- /option-B-four-finite-lots-20261013 -->
<!-- option-B4-exit-table-20261013 -->
## Opção B: tabela de 22 grupos atualizada e proposta de encerramento C132
[Tabela única dos critérios de saída](saldo-opcao-B.md). B4 demonstra coedição em correção apenas no projeto 30, condição interna preservada/reverificada, aprovação 24/publicação 25/nova sessão; revogação/visual pendentes. Oito contratos atuais compatíveis em leitura e oito Responses recuperados por API, sem repetir os workflows válidos. Não há delta do código do produto/bundle/permissões; ativo intacto.25–43 h continuam estimativa ligada ao saldo, não horas consumidas nem prazo garantido. A/B/C37 preservados.
**C132: encerramento proposto**, contenção/remediação/recuperação 14–17 concluídas. Sem ação técnica corretiva conhecida pendente; histórico incompleto é limitação documentada, não investigação indefinida. [Proposta e condições de reabertura](C132-incidente-contido.md). Não se registou decisão do responsável em seu nome.
<!-- /option-B4-exit-table-20261013 -->
<!-- option-B3-exit-table-20261013 -->
## Opção B: tabela única dos critérios de saída
@@ -1,3 +1,37 @@
<!-- C143-business-profile-20261013 -->
### C143 — anúncio antigo ignorava os perfis funcionais — corrigido em QA
Rotas: `GET /api/v1/existing-business/reviews`, `/management/negocios`, `/investidor/negocios/{id}`, `POST /api/v1/existing-business/listings/{id}/transitions`. Antes: Validador24 e Publicador25 com MFA e atribuições válidas recebiam403 na fila; listas de emails legadas vazias e exigência de `manage-portal` causavam a recusa. Esperado: acesso pelo papel, tipo/âmbito e estado aprovados, sem administração universal.
Correção somenteQA em doisPHP: policy reutiliza `PortalProfileAccess` e atribuições existentes, MFA efetivamente concluído, validade/revogação, exclusão operacional de Auditor e elevação/âmbito administrativo. Ponte mínima `company_sale`→permissão `business_sale`, sem alterar modalidade/cadastro. Fila filtrada antes de projetar ou desencriptar dados privados. Sem inferir organização a partir de nome/email/vínculo do autor: concessões restritas a organização não se tornam globais. Ambientes exclusivamente legados mantêm listas explícitas, sem permitir que revogação v1 restitua acesso amplo.
Anúncio próprio `0a4f4c58-b39c-493b-9339-948660ceecb9`: criação21, submissão, triagem/revisão24, correção21, revisão e nível124, nível222, publicação25. No ensaio foi identificado403 ao recuperar o estado aprovado pelo revisor; a policy v1 foi corrigida para leitura autorizada desse resultado, mantendo publicação independente. Histórico de estados/níveis legado intacto, não convertidos em estados canónicos. **Essa dupla aprovação é comportamento de implementação anterior, não uma nova exigência de designação de pessoas da Tempo**; a divergência face ao fluxo canónico está registada.
SQL: versão16,16revisões com cifra/hash recuperados,11transições/uma publicação. Dois eventos de submissão/tarefas correspondem à submissão inicial e ressubmissão após correção; repetição da publicação403 não acrescenta outra. Identidade/titular/mandato/contacto/condição privada ausentes no JSON público; título/teaser autorizado visível sem login. Outro titular403/anónimo401, autor/aprovadores não publicam, Auditor/acumulação/Superutilizador sem âmbito não ganham acesso. Revogação/expiração/tipo/organização foram verificados na policySQL em transaçõesQA revertidas, distintos das provasHTTP. Nenhuma alteração persistente das atribuições.
Os422por`value_meaning` e`asset_deal_kind` foram erros do roteiro, corrigidos no mesmo rascunho; nenhum anúncio duplicado. Mandato tem referência privada e declaração sintética, **não** upload/scan/validade jurídica certificados. Legado não dispõe neste consumidor de um upload de mandato que este ensaio pudesse demonstrar. OriginalC133, contas, organizações, vínculos, oportunidades, documentos, percurso e fila de jobs preservados por hash. Novo anúncio faz o denominador de negócios2→3, interesses17/Balcão1 intactos; não somar como pessoas únicas.
Provas: `option-B7-business-before-HTTP.json`, `option-B7-business-workflow-HTTP.approved-read-diagnosis.json`, `option-B7-business-workflow-HTTP.json`, `option-B7-business-policy-QA.json`, `option-B7-business-final-QA.json`, `option-B7-business-current-scope.json`, `option-B7-business-delta.json`. PHP lint aprovado, bundle inalterado/recompilação desnecessária, visualL4/C135 aberto. Ativo intacto. Reversão técnicaQA recupera os doisPHP anteriores privados e contém esse consumidor, preservando todos os dados/cifra/histórico.
**Complemento do mesmo C143 — entrada no menu:** a configuração comum não continha ligação à revisão de negócios. QA agora fornece `businessReviewUrl` pela policy do servidor e o menu «Parcerias → Revisão de negócios» para Validador/Publicador autorizados. HTTPprops e função de navegação reais: um link24/25, zero21/23/31/visitante, sem `manage-portal`; rota200. Compilação de produção e typescheck aprovados,159assets preparados, appJS carregado porHTTPS com hash correspondente. Não é prova de clique/renderização/foco: cenário7L4 continua aberto. Delta final deste incremento: **cinco fontesQA** (policy/controlador/middleware e dois componentes de navegação) e recompilaçãoQA; fonte/bundle/configuração ativos preservados. O ZIP intermediário5ec93876855f, antes da entrada no menu, está preservado como referência, não é a entrega final deste incremento. ReversãoQA recupera as cinco fontes e o manifesto anterior guardados, preservando assets imutáveis e dados/cifra/histórico.
**Estado final de C143 — três funções definidas pela Tempo:** a restrição de código que exigia dois Validadores distintos foi removida somente no modo `profiles-v1-company-sale`, depois de registar a origem/decisão em `option-B7-legacy-approval-decision.md`. O mesmo Validador autorizado conclui os dois passos existentes; o Promotor não aprova o próprio anúncio e o Publicador é distinto de todos os aprovadores, mesmo com múltiplos papéis. Estados/IDs/histórico intactos; ambientes exclusivamente legados mantêm a regra anterior. Não há necessidade de quarta pessoa ou nova designação real.
Variante afetada por HTTP: **21Promotor →24Validador →25Publicador**, publicação/teaser privado separado/recuperação noutra sessão, replay403sem duplicação. SQL: versão8,8revisões cifradas/hash,7transições/uma publicação, modo de autorização nas metadata; caso anterior16preservado. Denominadores agora17interesses/1Balcão/4anúncios devido à variante nova, não repetição duplicada. Provas `option-B7-three-actor-HTTP.json` e `option-B7-three-actor-SQL.json`. O saldo mantém10/18técnicas satisfeitas, oito executáveis/oito visuais e18–31h; nenhum critério novo. Delta final: **seis fontesQA**; bundle recompilado159assets já verificado, sem outra recompilação após este últimoPHP. As versões intermediárias de cinco fontes e as recusas do segundoValidador são histórico anterior ao ajuste, não o comportamento final.
<!-- /C143-business-profile-20261013 -->
<!-- C142-portfolio-20261013 -->
### C142 — carteira pública de corredor devolve503 — corrigido somente em QA
Reprodução sem autenticação: `GET /carteira/06b2d5d7-98ad-48db-b732-8a70b2f5eb4c`, QAHTTPS18445. Esperado: dossier existente e relações públicas, com ausência de geometria/fonte explícita onde não suportadas. Observado:503 com mensagem controlada de indisponibilidade. CausaCLI/stack sanitizada: `InvestmentRelations::dossier` escolhia `economic_clusters` e UUID vazio quando o dossier tinha só `corridor_id`; consulta de visibilidadeUUID gerava PostgreSQL22P02. O middleware apenas transmitia a chamada.
CorreçãoQA: selecionar fontes de projeto/cluster somente se o respetivo ID existir. Corredor sem associação de rastreabilidade suportada continua com evidências vazias; não se inventou ligação. HTTP após correção200 para corredor e projeto, duas fontes do projeto intactas, filtro mantém corredor, pesquisa vazia=0. Fonte anterior guardada privada; lint aprovado; umPHP, bundle inalterado, sem recompilação. O script de verificação teve KeyErrors ao presumir `kind`/posição da fonte nos props; corrigidos no harness, sem outras alterações de produto ou gravações.
Provas: `option-B6-portfolio-status.json`, `option-B6-portfolio-cause.json`, `option-B6-portfolio-delta.json`, `option-B6-portfolio-recovery-HTTP.json`. Critérios visuais continuamL4/C135. Ativo inalterado; a falha foi reproduzida naQA, não testada no destino neste lote. Restauração técnicaQA recupera oPHP anterior guardado e preserva todos os dados. Vinculado a AUD-GEO-02/03; nenhum requisito novo.
<!-- /C142-portfolio-20261013 -->
<!-- C132-contained-20261012 -->
## C132 contido no ativo — incidente ainda aberto
@@ -769,3 +803,44 @@ Reprodução: Promotor QA21, caso 32 emcorreção; guardar `canonical.land_right
Reprodução QA isolada: localização de 32 com área sem unidade ou unidade sem valor; validação da submissão aceitava ambos. Esperado: poder guardar e recuperar preparação incompleta, exigir o par ao submeter. Causa: validateSubmission não conferia area_value/area_unit do recurso ligado. Correção: conferência na submissão reutiliza catálogo existente; drafts continuam guardáveis. HTTP: guardar 200/recuperar→submeter 422 com campo→completarpar→replay 409 semduplicar→reverificargates/condição→24 aprova/25 publicarestrito→novasessão. Originais/IDs/história intactos; UIpendente. Provas `option-B2-submission-area-before/after.json`, `option-B2-area-draft-submission-HTTP.json`, `option-B2-final-QA.json`.
A validação inicialmente ensaiada no próprio save de recurso foi ajustada antes do lote final para respeitar rascunhos incompletos. Os 422 de resource_area_pair_HTTP no recibo intermediário C140 são históricos/supersedidos; C141 final guarda incompleto 200 e bloqueia apenas submissão. Não usar aquele trecho intermediário para descrever o estado atual.
### C144 — link documental administrativo fundiário aponta para rota do titular — corrigido em QA
Rota: /management/terra-duat/{id}, gestor com permissão existente manage-portal. Abrir um anexo de caso pertencente a21: o componente gerava /investidor/terra-duat/{id}/documentos/{anexo}, que corretamente devolvia404ao não titular. Esperado: recuperar o documento no âmbito administrativo já autorizado, sem tornar o endpoint do titular universal. Causa: link fixo e ausência de rota administrativa de download. CorreçãoQA: rota no grupo can:manage-portal reutiliza download/hash/scan/auditoria; componente escolhe management/investidor pela apresentação. ProvaHTTP: ownerURL404para gestor→nova rota200/hash; não gestor403/anónimo401. QA27Superutilizador sozinho canmanagefalse. Apresentação/clique visual pendentesL4. Nenhum privilégio ativo alterado.
### C145 — preparação fundiária perde o contexto do dossier — corrigido em QA
Rota: /investimentos/{id}, /investidor/terra-duat/novo e caso fundiário. Antes: ferramentas do percurso não incluíam preparação fundiária e o caso só guardava referência textual livre, sem vínculo explícito ou retorno recuperável ao dossier. Esperado: abrir a ferramenta no contexto escolhido, guardar/recuperar e voltar ao mesmo dossier, preservando acesso direto. CorreçãoQA: vínculo opcional explícito investor_path_case_id no payload cifrado existente, validação por proprietário/roteiro disponível e imutabilidade do vínculo; entrada/continuação e retorno aURLfixa do dossier. Não converte project_reference antiga nem infere relações. Nova sessão recupera ambos os links; outro dossierGET403/POST422, troca de vínculo422; caso antigo sem associação mantém null. Compatibilidade com percursoOFF permite conservar vínculo existente e editar ferramenta diretamente, impedindo nova associação nesse estado. Cinco fases/19etapas/IDs e jornadas preservados. VisualL4aberto; sem schema novo, edição ativa ou reensaioA/B/C37.
## C146 — rejeição do workflow sem resposta visível ao Validador — P1
Rota: https://portal-investidor.test:18445/minhas-oportunidades/32/view, QA24. Reprodução relatada: login/MFA aceite, executar Iniciar validação e Solicitar correções; o responsável não recebeu mensagem. Esperado: rejeição explica os campos e mantém dados, ou sucesso mostra estado atualizado e recuperável. Observado: sete POST /32/workflow receberam422; caso32 permaneceu submetido sem eventos dessas transições. Os campos das sete tentativas não foram registados, pelo que o motivo concreto de cada422 permanece indeterminado.
Código encontrado: mensagem no fim do bloco, foco apenas quando existe controlo com ID correspondente ao erro, e mensagem de sucesso perdida por navegação que reinicializa o componente. QA corrigida no delta f14ebb3cb232: resumo visível no início com foco, erros junto aos campos, verificação dos limites existentes no cliente e mensagem preservada após atualização. Um ficheiro TSX efetivamente alterado e159recursos compilados; auditoria PHP original reposta. Backend e segurança não foram flexibilizados.
Provas técnicas: case32-feedback-HTTP-QA-verified-props-20261013.json e case32-feedback-build-QA-20261013.json. API confirmou422 com campos e422 sem mapa de campos, com mensagem explícita, sem alteração de estado/ETag/dados. A sessão própria de ensaio terminou. A sessão manual restante de QA24 está fora da janela de MFA para ações e precisa de renovação; login anteriormente aceite não é reaberto. Correção visual ainda não demonstrada. Critério de fecho: na mesma rota, rejeição visível com foco e preservação; ação válida mostra novo estado e mantém confirmação depois da atualização. Reutilizar a sequência do percurso3, sem criar outro cenário. Base396c, COUNTRY02, A/B, C37 e C132 preservados.
### C146 — continuação em14/10/2026:403 e contexto da autenticação
<!-- C146-reauth-QA-20261014 -->
## C146 — renovação na mesma janela, preparada em QA em14/10/2026
Os cliques recentes receberam403. Perfil/âmbito/independência válidos. A leitura correta da sessão cifrada encontrou sessões de MFA de idades diferentes; a leitura anterior unreadable não permitia concluir expiração e a afirmação anterior fica corrigida. Não identificar uma aba/browser somente pela linha de sessão.
Delta **cad3e36b946d**, sobre396c/f14ebb3cb232 preservados: cinco ficheiros e159recursos compilados. Capacidades do papel continuam visíveis, desabilitadas com aviso de renovação. POST permanece protegido por MFA recente; a recusa403 indica renovação. Entrar novamente nesta janela reutiliza logout/login/Fortify/MFA e o redirecionamento protegido ao caso32. O número900 é da implementação existente, não nova regra da Tempo, e não foi alterado. Papéis/âmbitos/independência, schema, contas, dados, cifragem e limpeza do histórico mantidos.
Política de segurança, transporte, HTTP normal de sessão/retorno, TypeScript, compilação e recursos servidos passaram. As sessões reais do utilizador não foram alteradas. Os ensaiosHTTP próprios fizeram apenas login/MFA, recusas controladas,logout e redirecionamento; caso32/ETag/dados intactos. Interface, botão de renovação e início de validação continuam por observar; não fechar pela contagem dos testes. C135: inventário permitido mostra IAB/MCPApps, semChrome local; não foi repetida a abertura que falhou na confiançaTLS nem reinicializado o transporte. Ativo intacto, A/B/C37/COUNTRY02 eC132 preservados. Manifesto/reversão: case32-reauth-delta-manifest-20261014.json.
<!-- /C146-reauth-QA-20261014 -->
### C146 — recusa de edição observada em14/10/2026
<!-- case32-edit403-20261014 -->
## Percurso 3 —403 de edição identificado; usar a revisão na sessão QA24
O responsável relatou403 em /minhas-oportunidades/32/edit. A auditoria identifica esse GET como **QA24 (Validador)**, em13/10 às22:47:58UTC. QA24 tem leitura/revisão; não âmbito de edição Promotor. O caso32 continua **Em análise**, sem pedido de correções gravado. QA21 mantém âmbito, representação e autoria válidos; o estado atual impede a sua edição. Uma avaliação apenas em memória com needs_information permite a edição a21, sem persistir mudança ou simular aceitação.
Sequência atual: **QA24 /32/view → preencher Fundamentação e Campos ou documentos a corrigir → Solicitar correções → Correções solicitadas → mudar para a sessão própria QA21 → /32/edit → corrigir/guardar/ressubmeter**. Não repetir o início da revisão nem abrir /edit na sessão Validador. A recusa foi prevista pelas permissões/estados existentes; não flexibilizar papéis ou forçar estado. Evidência: case32-edit-403-readonly-20261014.json. A/B, C37, COUNTRY02 e C132 preservados; ativo intacto. Interface e restantes transições mantêm critérios próprios.
<!-- /case32-edit403-20261014 -->
@@ -1,3 +1,129 @@
<!-- option-B8-finite-execution-20261013 -->
## Opção B — execução das posições técnicas restantes em QA
**18/18 posições técnicas da checklist satisfeitas; oito percursos visuais continuam abertos.** A indicação de nove posições vinha do saldo anterior: L1.3/permissões do anúncio antigo já estava tecnicamente encerrada pelas provasB7. Foi conferida, sem repetir o percurso. Neste incremento foram executadas as **oito** restantes; nenhum fecho foi atribuído ao texto reenviado. Isso não é percentagem do produto nem encerramento dos requisitos agregados.
QA: `https://portal-investidor.test:18445/dashboard`, PostgreSQL `stability_consumers_20261011_084534_test:55441`. CabeçalhoQA conferido em todos os pedidos de aplicação; ClamD1.5.4 real, assinaturas13/10. Estado ativo, COUNTRY02, contas/papéis/organizações, A/B e C37 preservados. C132 permanece decisão separada; não houve investigação, envio de segredos ou rotação neste lote. C135 mantém a indisponibilidade conhecida, sem novos resets, bypass ou pedidos de testes ao utilizador.
| Posição | Execução e resultado técnico | Evidência principal | Critério restante |
| --- | --- | --- | --- |
| L1.2 — terra32 | Ata/titular/esboço sintéticos próprios; scan/hash. Área declarada1100→12001.74sqm após medição12001.7448; cobertura pelo limiteINE deAncuabe. Revisões territoriais afetadas, condição legal existente resolvida24; aprovação24/publicação restrita25/nova sessão/Response. Esboço v2 com desenho preserva o textualv1. Conflito none/plano false: peças condicionais não exigidas. | option-B8-context-access-finish-HTTP.json, option-B8-map-v2-review-HTTP.json, option-B8-final-current-QA.json | Apresentação de documentos, área, mapa e transições no cenário3L4. |
| L1.5 — franquia56 | Licença sintética identifica marcaQA, titular/licenciante, territórioQA e exclusividade. Só marca/licença/legal reabrem; financeiro/confidencialidade/hash/ator/data mantidos.24→25/interna/nova sessão; originais e royalties/taxa1250 preservados. | option-B8-documents-56-review-HTTP.json | Interface do cenário6L4; nenhuma titularidade real ou catálogo público atestado. |
| L3.1 — recursos32/56 | Hierarquia/pai/país422; retirada explícita de filhosMZ→PT→MZ; quatroIDs/nova sessão. O endpoint autorizado tem3limites ancestrais, localidade sem limite próprio. Medição da parcela é SQL, sem declarar cálculo visível naUI. | option-B8-territory-HTTP.json, option-B8-spatial-diagnosis.json | Trocas por clique, limpeza visual, geometria/legenda/erros noL4. |
| L3.4 — entidade/contexto | País de constituiçãoZA preservado independentemente da localizaçãoMZ; pai422, limpar/repor filhos, recibo anterior intacto. C145 associa pedido novo explicitamente ao dossier: preparação/continuação/retorno noutra sessão, outro dossier403/422 e troca do vínculo422. | option-B8-secondary-prepare-HTTP.json, option-B8-context-access-finish-HTTP.json | Navegação/recuperação visível do contexto no cenário8L4. |
| L3.5 — Balcão | Campo existente territory_id/fonte guardado no pedido correto; não cadastrado422, hierarquia recuperada. Endpoint público do seletor tem0camadas; não se publica camada interna nem se inventa mapa autónomo do dossier. | option-B8-secondary-prepare-HTTP.json, option-B8-consumer-geometry-read.json | Seletor, fonte e mensagem de ausência visíveis no cenário8L4. |
| L3.6 — formatos | JPEG/DOCX/XLSX/PDF: MIME/hash/scan/download21/24/25/22.22 mantém leitura como Validador global, sem ganhar edição de franquia.23/anónimo403/401. Bytes repetidos422/quarentena423; PNG/WebP/worker anteriores reutilizados. | option-B8-formats-remainder-HTTP.json, scansB8 | Apresentação/download noL4; não se exige previewOffice novo. |
| L3.7 — caso fundiário | PDFata/esboço/JPEG no consumidor próprio, scan/hash/owner/nova sessão. C144 corrige o link do gestor: ownerURL404, download administrativo200/hash sob manage-portal; outro403/anónimo401. Superutilizador sozinho não recebe esse privilégio. | option-B8-secondary-verify-HTTP.json, option-B8-context-access-finish-HTTP.json, option-B8-context-compatibility.json | Link e apresentação dos anexos no cenário8L4. |
| L3.8 — Balcão/documentos | Anexo/repetição sem novoID/versão/contagem; hash/scan. Reatribuição autenticada24→25: antigo200→403nas sessões anterior/nova; novo25/owner200. ReciboTXT/protocolo recuperados, submissão repetida sem duplicação. | option-B8-secondary-verify-HTTP.json | Apresentação documental/recibo/revogação no cenário8L4. TXT não é PDF nem ACL individual. |
**Saldo por lista:** L1contratos/acessos5/5; L2países/estatísticas5/5 com provas anteriores por ramo; L3território/documentos8/8. Somente L4 mantém os oito percursos preparados e consolidação da revisão. **Estimativa restante6–10h**, antes18–31: retiram-se L1 5–9 eL3 7–12 por satisfação das suas listas, sem afirmar que essas horas foram consumidas. Correções conhecidas0h, implementação técnica da checklist0h; verificação/consolidação6–10h, incluindo tratar eventual falha concreta do ensaio e backup/restauroQA correspondente. EsperaC135, dispositivos reais, C132 e ativação excluídos; não é prazo garantido.
**Correções e compatibilidade:** sete fontesQA alteradas, recompilação/types passados e159assets, manifestoQA `a5c859cfc21e3d6ab8b0632f767830b6c8c195a4910bf8692652a44bee3a1785`. C144 reutiliza a permissão administrativa existente e mantém a rota do titular restrita; C145 acrescenta vínculo opcional explícito no payload cifrado existente e URLs de retorno, sem tabelas/contas/representações novas nem associação automática de referências textuais antigas. Dossier distinto e alteração do vínculo são recusados. A edição direta conserva vínculo existente mesmo se o percurso estiver desabilitado, sem permitir novas associações nesse estado. As cinco fases/19etapas e hashes de jornadas existentes ficaram intactos.
**Preservação e denominadores:** originais anteriores32/56 verificados pelos bytes/hash; novos jobs tratados somente pelos handlers do scan dos documentos próprios, fila alheia inalterada. Utilizadores, organizações, memberships, grants, duplaSuper, jobs/outbox e jornadas/etapas/submissões existentes preservados.17interesses/2pedidosBalcão/4anúncios não draft/cancelled: o pedidoBalcão próprio passou draft→submitted, sem duplicação no replay. O total bruto de anúncios é6, inclui rascunhos e não é o denominador4 usado na comparação. Os pedidos novos e documentos são sintéticos; não representam atos externos reais.
**Erros do ensaio preservados:** propriedades Inertia têm forma direta; a leitura inicial esperava um invólucro inexistente. Uma condição legal reaberta precisava de resolução explícita; a aprovação422 era correta. Logins simultâneos do harness causaram rejeição de umOTP já utilizado; retomou-se serialmente sem alterarMFA/chave e sem repetir aprovação/publicação válidas. A expectativa403paraQA22 ignorava seu papelValidador global: foi corrigida no harness, preservando autorização legítima. Esses eventos não são novos defeitos do produto nem reabremC37. Não se registaram códigos/cookies/segredos.
**Limitações/entrega:** continua uma revisão de progressoQA, não candidata final nem pacote de ativação. Restam demonstração dos oito percursos novos, teclado/foco/rótulos/erros/estados e consolidação/backup-restauroQA da revisão fixada. §27normativo integral, acessibilidade integral/dispositivos reais, novas ofertas/módulos/SLA, restauração/ACLindividual e cobertura integral do legado permanecem nas frentes anteriores, sem ampliarB. Publicação interna significa acesso restrito autorizado, não catálogo público. COUNTRY02 ativo preservado;190000/percurso no destino e ativações continuam separadas. C132: proposta contido/remediado com limitações históricas, responsável ainda decide, sem bloquearB.
<!-- /option-B8-finite-execution-20261013 -->
<!-- option-B7-permissions-progress-20261013 -->
## Opção B — permissões do anúncio próprio reconciliadas em QA
**10 das18 posições técnicas satisfeitas; oito ainda executáveis; oito percursos visuais preparados.** A contagem é da checklist, não percentagem do produto ou fecho global. A/B/C37 permanecem aceites nos seus âmbitos; COUNTRY02 ativo preservado. Nenhuma nova aceitação visual, ativação ou alteração de permissões reais.
| Lista | Satisfeito tecnicamente | Restante | Estimativa restante |
| --- | --- | --- | --- |
| Contratos/acessos | L1.1 revogação; L1.3 anúncio próprio/permissões/teaser; L1.4 obrigações da parceria | L1.2 ata/mapa/titularidade32; L1.5 conteúdo da licença/marca/titularidade56 | 5–9 h |
| Países/estatísticas | L2.1–L2.5 nos ramos delimitados, com provas específicas | Somente apresentação noL4 | 0 h técnico |
| Território/documentos | L3.2 mapaAPI/filtros; L3.3 carteira | L3.1 seletores/parcela32/56; L3.4 entidade/contexto; L3.5 camposBalcão; L3.6 JPEG/DOCX/XLSX; L3.7 PDF/foto do caso; L3.8 anexo/retirada/reciboTXT | 7–12 h |
| Aceitação/consolidação | A/B/C37 reutilizados | Oito percursos preparados, visual conjunto e pacote final/backup-restauroQA correspondente | 6–10 h |
**Reestimativa:18–31 h**, face a20–34. O fecho técnicoL1.3 permite reestimar as duas posições de contratos abertas em5–9h, antes7–12. L2/L3/L4 não mudam. Tipos de trabalho:3–6h correções,4–8h implementação restante,11–17h verificação/consolidação. Não são horas consumidas ou prazo garantido; esperaC135 e ativação excluídas, visual contado uma vez.
**C143:** a fila legada exigia emails/configuração antigos e `manage-portal`; agora usa os perfis de Validador/Publicador já aprovados e filtra o consumidor `company_sale` pelo papel/tipo/estado. Não concedidos novos privilégios. Rascunho21 → submissão → correção solicitada24 → correção21 → dois níveis legados24/22 → publicação25 → outra sessão recupera. Mandato/titular/contacto/condições privadas não saem no JSON público; teaser autorizado200. Nova leitura autorizada do estado aprovado corrigida, sem permitir que revisores publiquem. SQLconfere16revisões cifradas/hash,11transições/uma publicação e nenhuma duplicação no replay recusado.
**Limites explícitos:** a ponte é só do anúncio `company_sale`; outras modalidades não foram traduzidas nem habilitadas. O consumidor tem referência textual privada do mandato, não upload/scan desse ficheiro. Não inferir organização por texto ou associação do autor; grants restritos a organização não ganham âmbito global. A dupla aprovação legada mantém estados/histórico anteriores e é divergência registada face à revisão/publicação canónica; não é uma nova exigência de nomeações da Tempo. Nenhum estado/global/regra real foi ativado.
Revogação/expiração/tipo incorreto/organização sem vínculo explícito não recuperam acesso pela lista antiga; Auditor ou acumulação de papéis não contorna. Prova dessas variantes é policy/SQL em transaçãoQA revertida, separada doHTTP normal de autoria/correção/publicação. Não consumidos jobs ou notificações externas; originalC133, permissões, outras entidades/documentos/percurso preservados. Denominadores agora17interesses/1Balcão/3anúncios, pois existe um anúncio próprio novo; snapshotB6de17/1/2 continua histórico válido.
### COUNTRY02, A/B e C37 — estado e próximo ato
| Elemento | Estado confirmado | O que falta |
| --- | --- | --- |
| COUNTRY02 | Ativo, flag ligada; preservado | Nenhuma nova instalação/libertação. Uso depende apenas do âmbito legítimo da organização existente. |
| A/B | Cenários aceites emQA, não flags de produção | Para uso do percurso no ativo: revisão delimitada/bundle/configuração, backup-restauro correspondente, prévia autenticada da extensão exata e ativação específica. Sem repetir A/B já válidos. |
| C37 | Falha de autenticaçãoQA18 encerrada | Nenhuma ativação própria nem repetição do login por causa deste lote. |
Leitura ativa sem escrita: `2026_10_09_190000_prepare_investor_path` **ausente**, colunas `investor_journeys.path_definition_id`/`journey_steps.path_detail` ausentes e `INVESTOR_PATH_ENABLED=false`. Outras migrations contêm190000 no nome, mas são parâmetros fiscais/Balcão antigo e não demonstram essa extensão. `option-B7-active-path-read.json`.190000não é dependência do workflow isolado e nenhum pacote foi aplicado aqui.
C135 continua apenas na aceitação visual, sem chamadas/resets novos; mesmos oito percursos preparados. C132 mantém o registo final para decisão, ações conhecidas concluídas/quatro recuperações/limitações históricas; nenhuma nova investigação nem bloqueio deB. Candidata final e ativação pendentes. [Lista corrente](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito), [mesmos22grupos](saldo-opcao-B.md). Retratos anteriores abaixo preservam história, não o saldo corrente.
**L1.5 delimitado por leitura da peça:** o PDF sintético já guardado contém só o aviso de simulação e o rótulo da operação; não identifica marca, titular/licenciante ou território licenciado. Falta uma peça sintética específica e coerente com o contrato56, preservando o original e reutilizando scan/recuperação/revisões anteriores onde válidos. Não é nova validação jurídica nem outro ensaio de royalties. Prova: option-B7-franchise-license-gap.json.
**Complemento do mesmo C143 — entrada no menu:** a configuração comum não continha ligação à revisão de negócios. QA agora fornece `businessReviewUrl` pela policy do servidor e o menu «Parcerias → Revisão de negócios» para Validador/Publicador autorizados. HTTPprops e função de navegação reais: um link24/25, zero21/23/31/visitante, sem `manage-portal`; rota200. Compilação de produção e typescheck aprovados,159assets preparados, appJS carregado porHTTPS com hash correspondente. Não é prova de clique/renderização/foco: cenário7L4 continua aberto. Delta final deste incremento: **cinco fontesQA** (policy/controlador/middleware e dois componentes de navegação) e recompilaçãoQA; fonte/bundle/configuração ativos preservados. O ZIP intermediário5ec93876855f, antes da entrada no menu, está preservado como referência, não é a entrega final deste incremento. ReversãoQA recupera as cinco fontes e o manifesto anterior guardados, preservando assets imutáveis e dados/cifra/histórico.
**Estado final de C143 — três funções definidas pela Tempo:** a restrição de código que exigia dois Validadores distintos foi removida somente no modo `profiles-v1-company-sale`, depois de registar a origem/decisão em `option-B7-legacy-approval-decision.md`. O mesmo Validador autorizado conclui os dois passos existentes; o Promotor não aprova o próprio anúncio e o Publicador é distinto de todos os aprovadores, mesmo com múltiplos papéis. Estados/IDs/histórico intactos; ambientes exclusivamente legados mantêm a regra anterior. Não há necessidade de quarta pessoa ou nova designação real.
Variante afetada por HTTP: **21Promotor →24Validador →25Publicador**, publicação/teaser privado separado/recuperação noutra sessão, replay403sem duplicação. SQL: versão8,8revisões cifradas/hash,7transições/uma publicação, modo de autorização nas metadata; caso anterior16preservado. Denominadores agora17interesses/1Balcão/4anúncios devido à variante nova, não repetição duplicada. Provas `option-B7-three-actor-HTTP.json` e `option-B7-three-actor-SQL.json`. O saldo mantém10/18técnicas satisfeitas, oito executáveis/oito visuais e18–31h; nenhum critério novo. Delta final: **seis fontesQA**; bundle recompilado159assets já verificado, sem outra recompilação após este últimoPHP. As versões intermediárias de cinco fontes e as recusas do segundoValidador são histórico anterior ao ajuste, não o comportamento final.
<!-- /option-B7-permissions-progress-20261013 -->
<!-- option-B6-finite-progress-20261013 -->
## Opção B — saldo das listas após o incremento QA
**9/18 posições técnicas satisfeitas;9ainda executáveis; oito percursos visuais abertos emL4/C135.** Isso conta posições da checklist, não requisitos globais nem percentagem do produto. Nenhum critério visual novo encerrado. A/B,C37,COUNTRY02 e o âmbitoB preservados; ativações e candidata final pendentes.
| Lista | Satisfeito tecnicamente | Restante técnico | Estimativa restante |
| --- | --- | --- | --- |
| L1 Contratos/acessos | L1.1 revogação; L1.4 obrigações de parceria | L1.2 peças de terra32;L1.3 mandato/divulgação no anúncio próprio e permissões;L1.5 titularidade/licença56 | 7–12h |
| L2 Países/estatísticas | L2.1–L2.5, cada ramo com prova própria ou reutilização explícita | Zero técnico desta lista; apresentação noL4 | 0h técnico |
| L3 Território/documentos | L3.2 mapa/filtrosAPI;L3.3 carteira corrigida | L3.1 seletores/parcela32/56;L3.4 entidadefundiária/contexto;L3.5 camposBalcão;L3.6 JPEG/DOCX/XLSX;L3.7 PDF/foto do caso;L3.8 anexo/retirada/reciboTXT | 7–12h |
| L4 Aceitação/consolidação | A/B e C37 reutilizados nos seus âmbitos | Oito percursos preparados; coleta visual conjunta e revisão/backup-restauroQA correspondente | 6–10h |
**Reestimativa:20–34h =4–8correções+5–9implementação restante+11–17verificação/consolidação.** A faixa25–43anterior foi conservada sem dedução por item; não era arredondamento de consumo medido nem reestimativa documentada de maior complexidade. Agora remove-se o trabalho técnicoL2(4–7h), L3passa8–14→7–12 após provas/fix da carteira; L1mantém7–12 porque as três posições abertas incluem a compatibilidade de permissões concretamente identificada no consumidor antigo de negócios. L4continua6–10, contado uma única vez. EsperaC135, incidente, dispositivos reais, foraB e ativação excluídos; não é prazo garantido.
Provas novas: manifestação empresarial guardada/submetida/noutra sessão, residênciaPT/constituiçãoFR/origemBR e snapshotv2 preservado após mestreZA→MZ→ZA; recibo/repetição e denominadores16→17→17/1/2. O ramoempresa C133 já estava provado: interesses14/15 sãoempresa, confirmado porSQL, sem nova submissão. Parceria34: seis obrigações textuais, só três revisões afetadas reabertas, corporate_screening intacto, condição legal resolvida24 e publicação interna25. Documentos/períodos financeiros conservados.
Mapa: setor pelo slug existente, província, maturidade7/8, vazio e exclusão de privados; oito resultados sem coordenadas públicas são apresentados pelaAPI como `missing_public_site_coordinates`, semmarkers/áreas inventados. Exportação anterior reutilizada. **C142** carteira de corredor503→200, fonte de projeto preservada; apenas umPHPQA mudou, sem recompilação. Ocorreu erro no harness sobre a forma dos props; corrigido no script, sem outra falha de produto.
Dependência executávelL1.3: listas de triagem/revisão/aprovação/publicação do anúncio antigo estão vazias emQA e a policy exige ainda `manage-portal`; os perfis21/24/25 aprovados não o têm. Reconciliar o consumidor com esses papéis/âmbitos, preservando sua autoria/histórico/independência, sem transformar administração universal ou uma terceira pessoa real em exigência nova. Não alterados configuração/papéis neste incremento. C135 não causa esse bloqueio técnico.
**C132:** [registo final para decisão](C132-incidente-contido.md), ações conhecidas pendenteszero, quatro contas recuperadas e sessões tratadas por provas anteriores. Proposta contido/remediado com limites históricos; início/exfiltração indeterminados, sem afirmar ausência de acesso indevido. Decisão formal ainda a registar pelo responsável, sem bloquearB.
[Checklist nominal atual](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito), [mesmos22grupos](saldo-opcao-B.md), `option-B6-four-lots-plan.json` e provas agrupadas preservam correspondência. Relatos anteriores abaixo são retratos datados, não o saldo atual. Nenhuma alteração na base/configuração/bundle ativos, nova instalação ou investigaçãoC132. C135: não houve chamada/reset neste incremento; mantém-se a indisponibilidade documentada do provider e o pedido de suporte preparado.
<!-- /option-B6-finite-progress-20261013 -->
<!-- option-B5-finite-progress-20261013 -->
## Opção B: quatro lotes delimitados e duas lacunas técnicas resolvidas
[Lista finita no backlog existente](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito); [mesma tabela de22grupos atualizada](saldo-opcao-B.md). Estimativa mantida25–43h: L1 7–12, L2 4–7, L3 8–14, L4 6–10; sem sobreposição nem alegação de horas consumidas.18 posições técnicas e8percursos de coleta visual; posições não são novosIDs. A/B/C37 preservados, ativações separadas.
- **L1.1 técnico satisfeito:** Superutilizador sintético27 revogou Promotor22 porHTTP; sessão anterior401, edição e escrita na nova sessão403; leitura200 pelo Validador restante mantida, sem ações operacionais por conflito. Repetição produz um só evento/revisão. Fixture reabilitada pelo pedido documental/revisão independente no mesmo tipo/organização, com novo grant; o grant revogado nunca foi reposto. Oportunidades/documentos/tarefas/dossier/representações/dupla preservados.
- **L2.3 técnico corrigido:** `requestSupport` gravava `individual` para todas as categorias. Reproduzido no controller/SQL em transação revertida; não foi provaHTTP antes. Corrigida apenas a factoryPHP daQA para `entity→empresa`, `individual→individual`, restantes→`outro`, preservando a categoria original emmetadata. Novo apoio de entidade porHTTP: paísZA/origemPT, quatroIDs, recuperação noutra sessão, replay202 mesmo recibo; alteração409, outro titular404/anónimo401. O recibo individual anterior continua202; nenhum valor histórico/hash reescrito.
- **L2.5 denominadores deste apoio demonstrados:** interesses15→16 na submissão e16 no replay; Balcão1/anúncios2 intactos. SQLconfere16/1/2 separadamente, com um caso/interesse/recibo/consentimento/outbox/evento. Não somar essas coleções como investidores únicos. Outros dois ramos nominais L2.2/L2.4 continuam na lista.
- **C135 independente:** inventário vazio e `No browser is available` pela ferramenta permitida, antes de selecionar tab. Sem reset/contorno. Nenhum critério visual novo encerrado. O canal de suporte continua indisponível para submissão; pedido preparado.
Delta do produto: **umPHP somente naQA**, backup da fonte anterior privado, lint aprovado, bundle inalterado e recompilação desnecessária. Código/configuração/bundle ativos conferidos por hash e preservados; nenhuma base ativa alterada. Não é revisão final ou autorização de implantação. Reversão técnicaQA: recuperar a fonte anterior guardada e limitar o ensaio do ramo; conservar o novo pedido, IDs, histórico e revogação. Não voltar a ativar o grant revogado nem reclassificar submissões antigas como parte da reversão.
**C132 separado:** todas as ações corretivas conhecidas e quatro recuperações concluídas; permanece a proposta “contido e remediado, com limitações da investigação registadas”, para decisão do responsável. Início exato/exfiltração indeterminados, sem afirmar ausência de acesso indevido. Não há outra ação técnica de incidente conhecida a inventar por causa do histórico incompleto.
<!-- /option-B5-finite-progress-20261013 -->
<!-- option-B-five-plan-reference-20261013 -->
**Saldo operacional atual:** [quatro lotes e listas finitas no backlog existente](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito); a tabela de22grupos permanece a mesma. Total25–43h mantido; C135 ainda sem browser permitido. A/B/C37 e ativo preservados.
<!-- /option-B-five-plan-reference-20261013 -->
<!-- option-B4-exit-table-20261013 -->
## Opção B: tabela de 22 grupos atualizada e proposta de encerramento C132
[Tabela única dos critérios de saída](saldo-opcao-B.md). B4 demonstra coedição em correção apenas no projeto 30, condição interna preservada/reverificada, aprovação 24/publicação 25/nova sessão; revogação/visual pendentes. Oito contratos atuais compatíveis em leitura e oito Responses recuperados por API, sem repetir os workflows válidos. Não há delta do código do produto/bundle/permissões; ativo intacto.25–43 h continuam estimativa ligada ao saldo, não horas consumidas nem prazo garantido. A/B/C37 preservados.
**C132: encerramento proposto**, contenção/remediação/recuperação 14–17 concluídas. Sem ação técnica corretiva conhecida pendente; histórico incompleto é limitação documentada, não investigação indefinida. [Proposta e condições de reabertura](C132-incidente-contido.md). Não se registou decisão do responsável em seu nome.
<!-- /option-B4-exit-table-20261013 -->
<!-- option-B3-exit-table-20261013 -->
## Opção B: tabela única dos critérios de saída
@@ -1,3 +1,285 @@
<!-- case32-resubmission-20261014 -->
## Percurso3 — pedido de correção, gravação e ressubmissão comprovados; falta edição efetiva
Responsável informou «acç\ao realizada». Em QA isolada, leitura confirmou: QA24 solicitou correções em13/10 às22:57:27UTC (v109); QA21 guardou às23:00:55UTC (v110) e ressubmeteu às23:01:48UTC (v111, ciclo13, revisão16). Cada ação tem auditoria própria. Estado atual **Submetida para validação**. O responsável esclareceu **«nao alterei nenhum campo»**; nenhum caminho canónico mudou. Não foi identificada perda de dados. Pedido de correção/guardar/ressubmeter ficam demonstrados; a alteração efetiva do texto continua pendente. A indicação anterior «Descrição» era imprecisa: o campo no editor privado é **Necessidade e proposta**.
Contrato fundiário, autoria, organização e snapshot de recursos preservados. Quatro pareceres anteriores foram mantidos, com hashes e âmbitos válidos: cadastral_screening, land_legal_review, community_environment_review e competent_authority_clearance. Nenhum reaberto e nenhuma condição aberta; não os repetir sem alteração relevante.
Próximo trecho para o único critério de edição ainda não executado: QA24 solicita correção diretamente em /32/view, com fundamentação e indicação concreta; não é necessário repetir Iniciar validação (request_correction é permitido em submitted). Após Correções solicitadas, QA21 altera Necessidade e proposta, guarda e ressubmete. Só os pareceres afetados pelo novo conteúdo devem ser revistos; depois aprovação24 e publicação restrita25. Sem flexibilização de permissões ou mudança automática de estado. Restantes provas próprias de área/documentos/foco/teclado/feedback de sucesso permanecem abertas.
Evidências: case32-correction-resubmission-fields-readonly-20261014.json e case32-resubmission-manual-recorded-20261014.json. Base396c/A-B/C37/COUNTRY02 e separação de C132 preservadas; nenhum novo código de produto, dado ativo ou candidata final.
<!-- /case32-resubmission-20261014 -->
<!-- case32-edit403-20261014 -->
## Percurso 3 —403 de edição identificado; usar a revisão na sessão QA24
O responsável relatou403 em /minhas-oportunidades/32/edit. A auditoria identifica esse GET como **QA24 (Validador)**, em13/10 às22:47:58UTC. QA24 tem leitura/revisão; não âmbito de edição Promotor. O caso32 continua **Em análise**, sem pedido de correções gravado. QA21 mantém âmbito, representação e autoria válidos; o estado atual impede a sua edição. Uma avaliação apenas em memória com needs_information permite a edição a21, sem persistir mudança ou simular aceitação.
Sequência atual: **QA24 /32/view → preencher Fundamentação e Campos ou documentos a corrigir → Solicitar correções → Correções solicitadas → mudar para a sessão própria QA21 → /32/edit → corrigir/guardar/ressubmeter**. Não repetir o início da revisão nem abrir /edit na sessão Validador. A recusa foi prevista pelas permissões/estados existentes; não flexibilizar papéis ou forçar estado. Evidência: case32-edit-403-readonly-20261014.json. A/B, C37, COUNTRY02 e C132 preservados; ativo intacto. Interface e restantes transições mantêm critérios próprios.
<!-- /case32-edit403-20261014 -->
<!-- 20261014_C146_manual_field_feedback -->
## Percurso 3 — validação de campo vazio confirmada manualmente
[C146 / confirmação manual 14/10/2026] QA24 relatou «ja feito». Leitura confirmou caso32 ainda Em análise, sem request_correction. Depois copiou o feedback: «A ação não foi enviada. Corrija os campos indicados. Campos ou documentos a corrigir: Indique pelo menos um campo ou documento a corrigir.» Isto demonstra a apresentação da validação do campo vazio, sem envio; não é nova rejeição HTTP, execução ou aprovação. Início da revisão preservado. Foco/teclado, sucesso, renovação na mesma janela e transições seguintes não inferidos.
[C146 / saldo atual] Mensagem de validação de correção vazia confirmada manualmente; não repetir esse erro. Preencher Campos ou documentos a corrigir com uma indicação concreta e solicitar correções. Depois21 corrige/ressubmete,24 revê/aprova,25 disponibiliza restrito. Foco/teclado/resultado de sucesso e renovação permanecem sem prova. Área/documentos têm os critérios próprios; A/B/C37 e critérios territoriais aceites preservados.
Evidência: `case32-correction-field-feedback-manual-20261014.json`. C146 permanece parcial; não repetir o erro já apresentado nem o início da revisão. Ativo intacto, base396c/A-B/C37/COUNTRY02 preservados.
<!-- /20261014_C146_manual_field_feedback -->
<!-- case32-manual-start-review-20261014 -->
## Percurso 3 — início da revisão confirmado; correções ainda por solicitar
Após «refiz o processo», leitura QA confirmou **Iniciar validação** por QA24 em **13/10/2026, 22:30:15 UTC**, ciclo12, revisão15 e auditoria correspondente. Estado atual **Em análise**, versão108. O pedido de correções ainda não foi gravado. Diagnóstico exclusivamente de leitura; não executou transições nem alterou dados ativos.
QA24: preencher «Fundamentação» e «Campos ou documentos a corrigir, um por linha»; clicar «Solicitar correções». Esperado: «Correções solicitadas». Não repetir «Iniciar validação». Depois, QA21 corrige/guarda/ressubmete, QA24 revê os pareceres afetados e aprova, QA25 disponibiliza com acesso restrito. Seletores/mapa/recuperação e submissão inicial permanecem aceites. Não inferir abertura documental, área/unidade, mensagem de sucesso, renovação na mesma janela, acessibilidade ou fecho integral a partir da confirmação genérica.
C146 permanece aberto para apresentação visual do feedback e recuperação da autenticação. Delta QA cad3e36b946d sobre a base396c e f14 preservados; nenhum limiar MFA, papel ou âmbito alterado. C135 limita o transporte automático. A/B, C37, COUNTRY02 e separação de C132 preservados. Evidências: case32-review-correction-retry-readonly-20261014.json e case32-manual-start-review-recorded-20261014.json.
<!-- /case32-manual-start-review-20261014 -->
<!-- C146-reauth-QA-20261014 -->
## C146 — renovação na mesma janela, preparada em QA em14/10/2026
Os cliques recentes receberam403. Perfil/âmbito/independência válidos. A leitura correta da sessão cifrada encontrou sessões de MFA de idades diferentes; a leitura anterior unreadable não permitia concluir expiração e a afirmação anterior fica corrigida. Não identificar uma aba/browser somente pela linha de sessão.
Delta **cad3e36b946d**, sobre396c/f14ebb3cb232 preservados: cinco ficheiros e159recursos compilados. Capacidades do papel continuam visíveis, desabilitadas com aviso de renovação. POST permanece protegido por MFA recente; a recusa403 indica renovação. Entrar novamente nesta janela reutiliza logout/login/Fortify/MFA e o redirecionamento protegido ao caso32. O número900 é da implementação existente, não nova regra da Tempo, e não foi alterado. Papéis/âmbitos/independência, schema, contas, dados, cifragem e limpeza do histórico mantidos.
Política de segurança, transporte, HTTP normal de sessão/retorno, TypeScript, compilação e recursos servidos passaram. As sessões reais do utilizador não foram alteradas. Os ensaiosHTTP próprios fizeram apenas login/MFA, recusas controladas,logout e redirecionamento; caso32/ETag/dados intactos. Interface, botão de renovação e início de validação continuam por observar; não fechar pela contagem dos testes. C135: inventário permitido mostra IAB/MCPApps, semChrome local; não foi repetida a abertura que falhou na confiançaTLS nem reinicializado o transporte. Ativo intacto, A/B/C37/COUNTRY02 eC132 preservados. Manifesto/reversão: case32-reauth-delta-manifest-20261014.json.
<!-- /C146-reauth-QA-20261014 -->
<!-- case32-form-presentation-20261014 -->
## 14/10/2026 — caso32: formulário apresentado, início de validação ainda não gravado
O responsável colou o bloco Workflow interno: fundamentação preenchida, condição sintética apresentada como verificada e opção Decisão: Aprovada no parecer especializado. Isso demonstra a apresentação desses controlos; não confirma o registo de revisão ou aprovação. Leitura QA isolada confirmou estado submitted, sem start_review/request_correction de QA24 no ciclo12. Próxima ação é o botão Iniciar validação. O estado in_review aparece na interface como Em análise; needs_information como Correções solicitadas. Nenhum clique foi executado pelo diagnóstico ou critério funcional encerrado. Evidência case32-review-correction-form-readonly-20261014.json, ligada ao mesmo acceptance-396c-results.json. DeltaQA f14ebb3cb232, base396c, COUNTRY02, A/B/C37 e separação deC132 preservados; ativo intacto.
<!-- /case32-form-presentation-20261014 -->
<!-- C146-feedback-QA-20261013 -->
## C146 — feedback do workflow preparado em QA, aceitação visual pendente
QA24 confirmou execução dos cliques do caso32 e ausência de mensagem no endereço correto. A auditoria identificou sete rejeições422, sem início de revisão ou pedido de correção persistidos. A confirmação é um relato de execução, não de sucesso. O campo concreto de cada tentativa antiga permanece indeterminado.
Delta QA **f14ebb3cb232**, sobre a base **396c691930bc** preservada: um TSX de feedback e159recursos compilados. Erros passam ao início do bloco com foco e indicação adjacente aos campos; confirmação de sucesso conservada após navegação. As validações no cliente espelham exigências já existentes no servidor. Sem mudança de regras, permissões, MFA, schema ou dados de negócio. O ensaio técnico de respostas passou, dados/ETag/estado intactos e logout da sessão própria; TypeScript e compilação passaram. A melhoria experimental da auditoria PHP foi retirada por não ser necessária à correção. Os dois primeiros ensaios HTTP tiveram erros do controlador de teste e estão preservados como limitações; o terceiro corrigido passou.
A sessão manual restante de QA24 já ultrapassou a janela existente de MFA para as ações; renovar sessão antes de observar o trecho corrigido. Isso não invalida o login/MFA já aceite. A interface corrigida, foco e transições continuam por observar. Caso32 ainda submetido; QA21 não deve ressubmeter sem pedido de correção gravado. Evidências e reversão: case32-feedback-delta-manifest-20261013.json. Ativo intacto, A/B/C37/COUNTRY02 preservados; candidata final e ativação continuam separadas.
<!-- /C146-feedback-QA-20261013 -->
<!-- case32-manual-submission-20261013 -->
## Percurso 3 — submissão inicial confirmada, revisão seguinte com QA24
O responsável confirmou «enviado» após a orientação de submissão do caso 32 por QA21. Leitura em transação SQL READ ONLY na QA **stability_consumers_20261011_084534_test:55441** confirmou: novo evento submit de QA21, passagem de needs_information para submitted, versão 106, ciclo 12 e auditoria workflow_submit da mesma versão. Nenhuma ação HTTP, transição ou escrita em dados foi executada pelo diagnóstico.
Registado somente o critério de **submissão inicial**, nas provas existentes do percurso 3. Seletores/mapa/recuperação continuam confirmados. Área/unidade, abertura de documentos, pedido de correção, ressubmissão, revisão independente, aprovação, disponibilização restrita e controlos de acessibilidade ainda precisam de confirmação própria. «Enviado» não encerra esses critérios nem o percurso completo.
A lista de ações de QA24 apareceu vazia na primeira consulta CLI. Diagnóstico do contexto: canView, âmbito de Validador, autorização operacional, configuração MFA e atribuição estão válidos, sem conflito. OpportunityProfileWorkflow::actions exige também sessão MFA autenticada recente; a consulta CLI não tem essa sessão. A lista vazia não constitui falha de permissões do portal. Nenhuma sessão foi simulada, segredo lido para autenticação ou privilégio alterado. A observação seguinte é pela sessão própria de QA24 em **/minhas-oportunidades/32/view**, com «Iniciar validação» e «Solicitar correções».
Evidências: `case32-manual-submission-readonly-20261013.json`, `case32-reviewer-context-readonly-20261013.json` e `case32-manual-submission-recorded-20261013.json`, ligadas ao registo existente `acceptance-396c-results.json`. Base396c e estados globais da matriz preservados; nenhum novo requisito, alteração no ativo ou candidata final. COUNTRY02, A/B, C37 e separação de C132 mantidos.
<!-- /case32-manual-submission-20261013 -->
<!-- case32-resource-notices-20261013 -->
## Percurso 3 — conferência documental apresentada, sem bloqueio de submissão identificado
O responsável colou a secção «Conferência e pendências». O caso 32/QA21 é o contexto imediatamente anterior; não foram novamente indicados URL ou conta. As 16 mensagens coincidem exatamente com a conferência atual do caso 32: rastreabilidade da localização ausente, uma localização com âmbito distrital, 13 avisos de metadados nos seis anexos sintéticos e a informação de separação entre conferência e workflow.
Leitura guardada na QA **stability_consumers_20261011_084534_test:55441**, em transação SQL READ ONLY: estado **needs_information**, ação **submit** disponível para QA21; validação canónica de submissão e bloqueios da entrega sem erros. A lista é produzida por OpportunityResourceController::assessment e não é consumida como bloqueio por OpportunityProfileWorkflow. «issuer» significa emissor; «edition», edição/versão; «category», categoria do anexo. Estas ausências continuam registadas, sem inventar metadados. A aceitação anterior das fontes oficiais mantém-se; os anexos sintéticos QA não são classificados como oficiais nem comprovam decisões externas.
Evidências: `case32-resource-assessment-manual-observation-20261013.json` (apresentação manual, requisito existente AUD-UI-01) e `case32-resource-notices-readonly-20261013.json` (diagnóstico SQL/serviços/ficheiros). A apresentação desta lista não demonstra abertura dos documentos, área/unidade ou nenhuma transição. Esses critérios continuam pendentes, sem repetição dos seletores/mapa/recuperação já confirmados. Próxima ação na ficha do caso 32: conferir os dados/documentos e «Submeter para validação», com fundamentação do ensaio. Nenhuma submissão foi executada por este diagnóstico.
Zero alteração de código, compilação, metadados, permissões ou base ativa. Base396c, COUNTRY02, A/B, C37 e separação de C132 preservados; candidata final não declarada.
<!-- /case32-resource-notices-20261013 -->
<!-- qa21-manual-access-success-20261013 -->
## QA21 — acesso e MFA confirmados manualmente
O responsável confirmou: «tens razao minha falha ja consegui entrar usando MFA». Registada a recuperação do acesso de **QA21**, após a orientação para **https://portal-investidor.test:18445/login**. O URL é o do contexto imediatamente anterior; não foi novamente transcrito na confirmação. A rejeição atual deixa de bloquear o ensaio manual. Não houve alteração de password, MFA, permissões, código ou dados.
Evidência: `qa21-manual-access-success-20261013.json`, ligada ao grupo existente **MANUAL-B396C-AUTH6** e aos requisitos **AUD-PROFILE-24 / AUD-UI-01**. Preservam-se as confirmações anteriores de autenticação das seis contas e de seletores/mapa/recuperação do percurso 3. Esta confirmação comprova entrada e MFA; não comprova novas transições, logout ou dashboard novamente. Nenhum estado global da matriz foi alterado.
Próximo critério: QA21 confere área/unidade e documentos existentes do caso 32 e submete; QA24 solicita correção, revê e aprova independentemente; QA25 disponibiliza com acesso restrito. C135 continua separado, pois o acesso do navegador automático ainda falha na confiança TLS. Base **396c691930bc**, COUNTRY02, A/B, C37 e C132 preservados; candidata final e ativação continuam pendentes.
<!-- /qa21-manual-access-success-20261013 -->
<!-- qa21-address-correction-20261013 -->
## QA21 — divergência do endereço de acesso identificada
O responsável indicou **http://127.0.0.1:18445/login**, rejeição no ecrãEmail/Password e texto comForgot password apontando **http://127.0.0.1:18118/forgot-password**. GETsem credenciais confirmou: HTTP18445 responde400 porplaintext numa portaTLS; ologin18118 responde200. A QA prevista é **https://portal-investidor.test:18445**, runtime stability_consumers_20261011_084534_test:55441 confirmado. A password atual deQA21 já foi aceite nesse destino porAPIatéMFA.
A divergência de esquema/hostname/ambiente é concreta. Não foi observado diretamente como o navegador manual chegou aoHTML18118; não afirmar que a rejeição foi produzida pelaQA18445 nem reatribuir retrospectivamente confirmações anteriores. Usar noChromium local oURLHTTPSnomeado, emailprofiles-v1-promoter@example.invalid e a password existente doTXT privadoQA21. Nenhuma rotação depassword/MFA, alteração deconfiguração/serviços ou escrita emdados. Falta a confirmação manual no endereço corrigido; não fechar o percurso3ou reabrirA/B/C37.
Evidência: qa21-address-mismatch-readonly-20261013.json. RespostasHTTPsão diagnóstico técnico de destino, não aceitação visual. C135doIAB/certificado mantém-se separado do endereço incorreto da tentativa manual. COUNTRY02/base396c/C132 preservados.
<!-- /qa21-address-correction-20261013 -->
<!-- qa21-password-guidance-20261013 -->
## QA21 — rejeição de password relatada e fonte local corrigida
O responsável relatou password rejeitada em18445/login, QA21. Foi confirmada por leitura a baseQA stability_consumers_20261011_084534_test:55441, a identidade profiles-v1-promoter@example.invalid e a correspondência da password do cadastro privado/HTML individual com o hash atual. MFA/email continuam confirmados; envelope local/cifra consistente. O onboarding-actors-local.json do ensaio antigo não contém essa identidade atual. O valor efetivamente digitado pelo responsável não foi recolhido, pelo que a origem da rejeição manual não foi afirmada como certa.
Um único ensaio API direcionado à falha nova confirmou o mesmo destino web: POST/login200, password aceite e desafioMFA solicitado; nenhum códigoMFA enviado, autenticação não concluída. Não é prova visual nem reensaio deA/B/C37. A tentativa de limpeza porPOST/logout devolveu401 por ainda não haver autenticação; não afirmar invalidação dessa sessão pendente. O cookiejar do cliente foi descartado, sem cookies/segredos persistidos nas evidências ou invalidação de sessões de outros utilizadores.
Fonte local simplificada deQA21: `storage/app/private/investmoz-v2/portal-audit/qa21-password-18445-local.txt`, com a password existente, fora do webroot e sem novo valor/rotação. Não anexar oTXT ouQR à conversa. Usar https://portal-investidor.test:18445/login e o email indicado, copiar somente o conteúdo doTXT paraPassword. Contas/MFA/permissões, código e dados de negócio intactos. Falta confirmar esse passo na interface; manter o percurso3 parcial e as confirmações históricas, sem reabrirC37QA18.
Evidências sanitizadas: qa21-password-diagnosis-readonly-20261013.json; qa21-password-login-diagnosis-20261013.json; qa21-current-password-local-prepared-20261013.json. Zero alterações no ativo ou dados de negócioQA; apenas sessão/limitação de tentativas do ensaio HTTP próprio. Base396c, COUNTRY02 e decisãoC132 preservados.
<!-- /qa21-password-guidance-20261013 -->
<!-- p3-browser-tls-stop-396c-20261013 -->
## Tentativa do percurso3 — navegador disponível, TLS bloqueado
A ferramenta permitida voltou a selecionar **Codex In-app Browser / iab / ID2**, com abas disponíveis para criação. A abertura de https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html#p3 parou em **ERR_CERT_AUTHORITY_INVALID**, antes de login ou ações do portal. A página interna de erro também é recusada pela política URL da ferramenta; não houve insistência, reset, downgrade ou contorno de TLS. A aba temporária não foi marcada como entregável; a tentativa única de fecho também foi recusada pela política do documento interno.
Comparação por leitura: handshake TLSv1.3 do cliente do sistema valida cadeia e hostname; o exemplar servido é o mesmo do preparo, SHA-256 `df368329204106b6a182c79e7e5c98a8e73890479cb7bca7c3d0928076a60ed5`, SANportal-investidor.test, válido até09/01/2027. A cadeia apresentada pelo navegador da ferramenta não pôde ser inspecionada. Há uma diferença concreta de validação entre os clientes; não se afirma a causa interna nem se altera o certificado do portal por suposição. Capacidades expostas: visibility/viewport, sem ação de confiança emCA. Evidências: acceptance-396c-P3-IAB-TLS-stop-20261013.json e acceptance-396c-QA-TLS-readonly-20261013.json.
**C135 continua bloqueio da execução automática dos passos restantes**, agora na abertura HTTPS. Seletores/mapa/recuperação do cenário3 e login/MFA/dashboard das seis contas permanecem confirmados manualmente. Área/documentos/submissão/correção/revisão/aprovação/publicação ainda não observados nesta tentativa. Sem novos testes funcionais, credenciais transmitidas, alterações de dados, código, serviços, flags, certificados ou permissões. Base396c preservada; COUNTRY02/A-B/C37 e decisão C132 mantidos. Sem candidata final ou ativação.
<!-- /p3-browser-tls-stop-396c-20261013 -->
<!-- manual-auth-p3-396c-20261013 -->
## Confirmação manual parcial — base396c691930bc
O responsável confirmou **login, MFA e dashboard** de QA17, QA21, QA22, QA24, QA25 e QA2; no **percurso3/caso32, seletores, mapa e recuperação**. Fonte: mensagens da conversa; `outputs/investmoz-audit-current-20261012/acceptance-396c-manual-confirmation-20261013.json`. São declarações manuais, não capturas automáticas. Conta exata e modo da recuperação do percurso3 não foram detalhados; não inferir esses dados. QA2 existe nesta QA e não foi remapeada para27/contaativa.
Associado às cinco linhas existentes: AUD-PROFILE-24 e AUD-UI-01 (autenticação); AUD-GEO-02, AUD-GEO-03, AUD-FIELD-030 e AUD-UI-01 (seletores/mapa/recuperação do consumidor32). Sem novosIDs ou fechos agregados. Matriz/backlog3401linhas cada; estados globais e3396linhas não relacionadas preservados byte a byte. API/SQL existentes não repetidos.
**Não repetir esses ensaios.** No cenário3 restam área/unidade/documentos, submissão/correção/revisão/materialidade/aprovação/publicação e teclado/foco/rótulos/erros não relatados. Nos outros sete cenários restam as ações específicas do roteiro; a autenticação já confirmada não volta a ser critério de ensaio. Um cenário parcial, sete sem confirmação funcional; nenhum dos oito foi declarado integralmente concluído. C135 continua no transporte automático, sem invalidar as observações manuais.
Entrada única atualizada: https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html. Código/compilação/base preservados; documentação/evidências atualizadas. COUNTRY02, A/B eC37 preservados; C132 separado. Zero alterações no ativo ou dadosQA. Candidata final/ativação e backup-restauro da revisão final continuam pendentes. Mantém-se6–10h como reserva de verificação/consolidação; esta confirmação não quantifica horas consumidas ou justifica uma redução numérica precisa.
<!-- /manual-auth-p3-396c-20261013 -->
<!-- acceptance-base-396c-20261013 -->
## Base da aceitação visual fixada —396c691930bc
Decisão da Tempo: fixar o incrementoB8 como base, sem ampliar critérios ou repetir a bateria técnica. ZIPbase SHA-256 `5b3676a25555e140b783350eb9379a6911dcf1ef62bf0d67271ded5244d288dc`; código/bundle/âmbito imutáveis. C135persistiu na ferramenta permitida: inventárioCUA vazio e sky.list_apps falhou antes de obter janela, nativepipe/oserror2. Sem reset/bypass/alteração de serviços.
Entrada única manual: **https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html**. [Roteiro dos mesmos oito percursos](aceitacao-B-396c691930bc.md), contas sintéticas já existentes/MFA conferido e ficheiros de acesso2FAS privados individuais. Nenhum segredo no roteiro/ZIP/conversa, nenhuma nova conta ou mudançaMFA.
PreparaçãoQA para uma passagem:30/31/32/33/34/56 abertos para edição needs_information pelo mecanismo existente, contratos/documentos/publicações anteriores preservados;54/15/jornadas existentes intactos. Um rascunho sintético no consumidor legado foi preparado para observar a sequência pelos três papéis, sem submissão/aprovação/publicação automática. Isso prepara estados para a interface; não acrescenta provas técnicas nem fecha os oito visuais. O primeiro pedido de preparação30 teve erro de leitura deprops no harness, retomado sem repetir request_revision; não é falha do produto.
Tentativa CUA em 13/10/2026, 18:30:03 UTC: inventário vazio e `No browser is available` ao selecionar o navegador para a entrada QA. Bloqueio C135 antes de abrir a página/autenticar; oito percursos registados como **não observado**, nenhuma conta utilizada e todos os passos seguintes não observados. Evidência comum: `outputs/investmoz-audit-current-20261012/acceptance-396c-cua-attempt-20261013_183003.json`; resultados em `acceptance-396c-results.json`, com o registo anterior preservado. Não foi observada falha funcional nem repetida prova técnica. Corrigir só falhas efetivamente observadas; depois dos oito percursos aceites, consolidar revisão/manifesto/limites, backup-restauro QA e procedimento. Sem candidata final ou ativação; estimativa 6–10h continua de verificação/consolidação, não consumo ou prazo garantido. COUNTRY02/A/B/C37 preservados; C132 separado. Matriz/IDs/estados técnicos não alterados.
<!-- /acceptance-base-396c-20261013 -->
<!-- option-B8-finite-execution-20261013 -->
## Opção B — execução das posições técnicas restantes em QA
**18/18 posições técnicas da checklist satisfeitas; oito percursos visuais continuam abertos.** A indicação de nove posições vinha do saldo anterior: L1.3/permissões do anúncio antigo já estava tecnicamente encerrada pelas provasB7. Foi conferida, sem repetir o percurso. Neste incremento foram executadas as **oito** restantes; nenhum fecho foi atribuído ao texto reenviado. Isso não é percentagem do produto nem encerramento dos requisitos agregados.
QA: `https://portal-investidor.test:18445/dashboard`, PostgreSQL `stability_consumers_20261011_084534_test:55441`. CabeçalhoQA conferido em todos os pedidos de aplicação; ClamD1.5.4 real, assinaturas13/10. Estado ativo, COUNTRY02, contas/papéis/organizações, A/B e C37 preservados. C132 permanece decisão separada; não houve investigação, envio de segredos ou rotação neste lote. C135 mantém a indisponibilidade conhecida, sem novos resets, bypass ou pedidos de testes ao utilizador.
| Posição | Execução e resultado técnico | Evidência principal | Critério restante |
| --- | --- | --- | --- |
| L1.2 — terra32 | Ata/titular/esboço sintéticos próprios; scan/hash. Área declarada1100→12001.74sqm após medição12001.7448; cobertura pelo limiteINE deAncuabe. Revisões territoriais afetadas, condição legal existente resolvida24; aprovação24/publicação restrita25/nova sessão/Response. Esboço v2 com desenho preserva o textualv1. Conflito none/plano false: peças condicionais não exigidas. | option-B8-context-access-finish-HTTP.json, option-B8-map-v2-review-HTTP.json, option-B8-final-current-QA.json | Apresentação de documentos, área, mapa e transições no cenário3L4. |
| L1.5 — franquia56 | Licença sintética identifica marcaQA, titular/licenciante, territórioQA e exclusividade. Só marca/licença/legal reabrem; financeiro/confidencialidade/hash/ator/data mantidos.24→25/interna/nova sessão; originais e royalties/taxa1250 preservados. | option-B8-documents-56-review-HTTP.json | Interface do cenário6L4; nenhuma titularidade real ou catálogo público atestado. |
| L3.1 — recursos32/56 | Hierarquia/pai/país422; retirada explícita de filhosMZ→PT→MZ; quatroIDs/nova sessão. O endpoint autorizado tem3limites ancestrais, localidade sem limite próprio. Medição da parcela é SQL, sem declarar cálculo visível naUI. | option-B8-territory-HTTP.json, option-B8-spatial-diagnosis.json | Trocas por clique, limpeza visual, geometria/legenda/erros noL4. |
| L3.4 — entidade/contexto | País de constituiçãoZA preservado independentemente da localizaçãoMZ; pai422, limpar/repor filhos, recibo anterior intacto. C145 associa pedido novo explicitamente ao dossier: preparação/continuação/retorno noutra sessão, outro dossier403/422 e troca do vínculo422. | option-B8-secondary-prepare-HTTP.json, option-B8-context-access-finish-HTTP.json | Navegação/recuperação visível do contexto no cenário8L4. |
| L3.5 — Balcão | Campo existente territory_id/fonte guardado no pedido correto; não cadastrado422, hierarquia recuperada. Endpoint público do seletor tem0camadas; não se publica camada interna nem se inventa mapa autónomo do dossier. | option-B8-secondary-prepare-HTTP.json, option-B8-consumer-geometry-read.json | Seletor, fonte e mensagem de ausência visíveis no cenário8L4. |
| L3.6 — formatos | JPEG/DOCX/XLSX/PDF: MIME/hash/scan/download21/24/25/22.22 mantém leitura como Validador global, sem ganhar edição de franquia.23/anónimo403/401. Bytes repetidos422/quarentena423; PNG/WebP/worker anteriores reutilizados. | option-B8-formats-remainder-HTTP.json, scansB8 | Apresentação/download noL4; não se exige previewOffice novo. |
| L3.7 — caso fundiário | PDFata/esboço/JPEG no consumidor próprio, scan/hash/owner/nova sessão. C144 corrige o link do gestor: ownerURL404, download administrativo200/hash sob manage-portal; outro403/anónimo401. Superutilizador sozinho não recebe esse privilégio. | option-B8-secondary-verify-HTTP.json, option-B8-context-access-finish-HTTP.json, option-B8-context-compatibility.json | Link e apresentação dos anexos no cenário8L4. |
| L3.8 — Balcão/documentos | Anexo/repetição sem novoID/versão/contagem; hash/scan. Reatribuição autenticada24→25: antigo200→403nas sessões anterior/nova; novo25/owner200. ReciboTXT/protocolo recuperados, submissão repetida sem duplicação. | option-B8-secondary-verify-HTTP.json | Apresentação documental/recibo/revogação no cenário8L4. TXT não é PDF nem ACL individual. |
**Saldo por lista:** L1contratos/acessos5/5; L2países/estatísticas5/5 com provas anteriores por ramo; L3território/documentos8/8. Somente L4 mantém os oito percursos preparados e consolidação da revisão. **Estimativa restante6–10h**, antes18–31: retiram-se L1 5–9 eL3 7–12 por satisfação das suas listas, sem afirmar que essas horas foram consumidas. Correções conhecidas0h, implementação técnica da checklist0h; verificação/consolidação6–10h, incluindo tratar eventual falha concreta do ensaio e backup/restauroQA correspondente. EsperaC135, dispositivos reais, C132 e ativação excluídos; não é prazo garantido.
**Correções e compatibilidade:** sete fontesQA alteradas, recompilação/types passados e159assets, manifestoQA `a5c859cfc21e3d6ab8b0632f767830b6c8c195a4910bf8692652a44bee3a1785`. C144 reutiliza a permissão administrativa existente e mantém a rota do titular restrita; C145 acrescenta vínculo opcional explícito no payload cifrado existente e URLs de retorno, sem tabelas/contas/representações novas nem associação automática de referências textuais antigas. Dossier distinto e alteração do vínculo são recusados. A edição direta conserva vínculo existente mesmo se o percurso estiver desabilitado, sem permitir novas associações nesse estado. As cinco fases/19etapas e hashes de jornadas existentes ficaram intactos.
**Preservação e denominadores:** originais anteriores32/56 verificados pelos bytes/hash; novos jobs tratados somente pelos handlers do scan dos documentos próprios, fila alheia inalterada. Utilizadores, organizações, memberships, grants, duplaSuper, jobs/outbox e jornadas/etapas/submissões existentes preservados.17interesses/2pedidosBalcão/4anúncios não draft/cancelled: o pedidoBalcão próprio passou draft→submitted, sem duplicação no replay. O total bruto de anúncios é6, inclui rascunhos e não é o denominador4 usado na comparação. Os pedidos novos e documentos são sintéticos; não representam atos externos reais.
**Erros do ensaio preservados:** propriedades Inertia têm forma direta; a leitura inicial esperava um invólucro inexistente. Uma condição legal reaberta precisava de resolução explícita; a aprovação422 era correta. Logins simultâneos do harness causaram rejeição de umOTP já utilizado; retomou-se serialmente sem alterarMFA/chave e sem repetir aprovação/publicação válidas. A expectativa403paraQA22 ignorava seu papelValidador global: foi corrigida no harness, preservando autorização legítima. Esses eventos não são novos defeitos do produto nem reabremC37. Não se registaram códigos/cookies/segredos.
**Limitações/entrega:** continua uma revisão de progressoQA, não candidata final nem pacote de ativação. Restam demonstração dos oito percursos novos, teclado/foco/rótulos/erros/estados e consolidação/backup-restauroQA da revisão fixada. §27normativo integral, acessibilidade integral/dispositivos reais, novas ofertas/módulos/SLA, restauração/ACLindividual e cobertura integral do legado permanecem nas frentes anteriores, sem ampliarB. Publicação interna significa acesso restrito autorizado, não catálogo público. COUNTRY02 ativo preservado;190000/percurso no destino e ativações continuam separadas. C132: proposta contido/remediado com limitações históricas, responsável ainda decide, sem bloquearB.
<!-- /option-B8-finite-execution-20261013 -->
<!-- option-B7-permissions-progress-20261013 -->
## Opção B — permissões do anúncio próprio reconciliadas em QA
**10 das18 posições técnicas satisfeitas; oito ainda executáveis; oito percursos visuais preparados.** A contagem é da checklist, não percentagem do produto ou fecho global. A/B/C37 permanecem aceites nos seus âmbitos; COUNTRY02 ativo preservado. Nenhuma nova aceitação visual, ativação ou alteração de permissões reais.
| Lista | Satisfeito tecnicamente | Restante | Estimativa restante |
| --- | --- | --- | --- |
| Contratos/acessos | L1.1 revogação; L1.3 anúncio próprio/permissões/teaser; L1.4 obrigações da parceria | L1.2 ata/mapa/titularidade32; L1.5 conteúdo da licença/marca/titularidade56 | 5–9 h |
| Países/estatísticas | L2.1–L2.5 nos ramos delimitados, com provas específicas | Somente apresentação noL4 | 0 h técnico |
| Território/documentos | L3.2 mapaAPI/filtros; L3.3 carteira | L3.1 seletores/parcela32/56; L3.4 entidade/contexto; L3.5 camposBalcão; L3.6 JPEG/DOCX/XLSX; L3.7 PDF/foto do caso; L3.8 anexo/retirada/reciboTXT | 7–12 h |
| Aceitação/consolidação | A/B/C37 reutilizados | Oito percursos preparados, visual conjunto e pacote final/backup-restauroQA correspondente | 6–10 h |
**Reestimativa:18–31 h**, face a20–34. O fecho técnicoL1.3 permite reestimar as duas posições de contratos abertas em5–9h, antes7–12. L2/L3/L4 não mudam. Tipos de trabalho:3–6h correções,4–8h implementação restante,11–17h verificação/consolidação. Não são horas consumidas ou prazo garantido; esperaC135 e ativação excluídas, visual contado uma vez.
**C143:** a fila legada exigia emails/configuração antigos e `manage-portal`; agora usa os perfis de Validador/Publicador já aprovados e filtra o consumidor `company_sale` pelo papel/tipo/estado. Não concedidos novos privilégios. Rascunho21 → submissão → correção solicitada24 → correção21 → dois níveis legados24/22 → publicação25 → outra sessão recupera. Mandato/titular/contacto/condições privadas não saem no JSON público; teaser autorizado200. Nova leitura autorizada do estado aprovado corrigida, sem permitir que revisores publiquem. SQLconfere16revisões cifradas/hash,11transições/uma publicação e nenhuma duplicação no replay recusado.
**Limites explícitos:** a ponte é só do anúncio `company_sale`; outras modalidades não foram traduzidas nem habilitadas. O consumidor tem referência textual privada do mandato, não upload/scan desse ficheiro. Não inferir organização por texto ou associação do autor; grants restritos a organização não ganham âmbito global. A dupla aprovação legada mantém estados/histórico anteriores e é divergência registada face à revisão/publicação canónica; não é uma nova exigência de nomeações da Tempo. Nenhum estado/global/regra real foi ativado.
Revogação/expiração/tipo incorreto/organização sem vínculo explícito não recuperam acesso pela lista antiga; Auditor ou acumulação de papéis não contorna. Prova dessas variantes é policy/SQL em transaçãoQA revertida, separada doHTTP normal de autoria/correção/publicação. Não consumidos jobs ou notificações externas; originalC133, permissões, outras entidades/documentos/percurso preservados. Denominadores agora17interesses/1Balcão/3anúncios, pois existe um anúncio próprio novo; snapshotB6de17/1/2 continua histórico válido.
### COUNTRY02, A/B e C37 — estado e próximo ato
| Elemento | Estado confirmado | O que falta |
| --- | --- | --- |
| COUNTRY02 | Ativo, flag ligada; preservado | Nenhuma nova instalação/libertação. Uso depende apenas do âmbito legítimo da organização existente. |
| A/B | Cenários aceites emQA, não flags de produção | Para uso do percurso no ativo: revisão delimitada/bundle/configuração, backup-restauro correspondente, prévia autenticada da extensão exata e ativação específica. Sem repetir A/B já válidos. |
| C37 | Falha de autenticaçãoQA18 encerrada | Nenhuma ativação própria nem repetição do login por causa deste lote. |
Leitura ativa sem escrita: `2026_10_09_190000_prepare_investor_path` **ausente**, colunas `investor_journeys.path_definition_id`/`journey_steps.path_detail` ausentes e `INVESTOR_PATH_ENABLED=false`. Outras migrations contêm190000 no nome, mas são parâmetros fiscais/Balcão antigo e não demonstram essa extensão. `option-B7-active-path-read.json`.190000não é dependência do workflow isolado e nenhum pacote foi aplicado aqui.
C135 continua apenas na aceitação visual, sem chamadas/resets novos; mesmos oito percursos preparados. C132 mantém o registo final para decisão, ações conhecidas concluídas/quatro recuperações/limitações históricas; nenhuma nova investigação nem bloqueio deB. Candidata final e ativação pendentes. [Lista corrente](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito), [mesmos22grupos](saldo-opcao-B.md). Retratos anteriores abaixo preservam história, não o saldo corrente.
**L1.5 delimitado por leitura da peça:** o PDF sintético já guardado contém só o aviso de simulação e o rótulo da operação; não identifica marca, titular/licenciante ou território licenciado. Falta uma peça sintética específica e coerente com o contrato56, preservando o original e reutilizando scan/recuperação/revisões anteriores onde válidos. Não é nova validação jurídica nem outro ensaio de royalties. Prova: option-B7-franchise-license-gap.json.
**Complemento do mesmo C143 — entrada no menu:** a configuração comum não continha ligação à revisão de negócios. QA agora fornece `businessReviewUrl` pela policy do servidor e o menu «Parcerias → Revisão de negócios» para Validador/Publicador autorizados. HTTPprops e função de navegação reais: um link24/25, zero21/23/31/visitante, sem `manage-portal`; rota200. Compilação de produção e typescheck aprovados,159assets preparados, appJS carregado porHTTPS com hash correspondente. Não é prova de clique/renderização/foco: cenário7L4 continua aberto. Delta final deste incremento: **cinco fontesQA** (policy/controlador/middleware e dois componentes de navegação) e recompilaçãoQA; fonte/bundle/configuração ativos preservados. O ZIP intermediário5ec93876855f, antes da entrada no menu, está preservado como referência, não é a entrega final deste incremento. ReversãoQA recupera as cinco fontes e o manifesto anterior guardados, preservando assets imutáveis e dados/cifra/histórico.
**Estado final de C143 — três funções definidas pela Tempo:** a restrição de código que exigia dois Validadores distintos foi removida somente no modo `profiles-v1-company-sale`, depois de registar a origem/decisão em `option-B7-legacy-approval-decision.md`. O mesmo Validador autorizado conclui os dois passos existentes; o Promotor não aprova o próprio anúncio e o Publicador é distinto de todos os aprovadores, mesmo com múltiplos papéis. Estados/IDs/histórico intactos; ambientes exclusivamente legados mantêm a regra anterior. Não há necessidade de quarta pessoa ou nova designação real.
Variante afetada por HTTP: **21Promotor →24Validador →25Publicador**, publicação/teaser privado separado/recuperação noutra sessão, replay403sem duplicação. SQL: versão8,8revisões cifradas/hash,7transições/uma publicação, modo de autorização nas metadata; caso anterior16preservado. Denominadores agora17interesses/1Balcão/4anúncios devido à variante nova, não repetição duplicada. Provas `option-B7-three-actor-HTTP.json` e `option-B7-three-actor-SQL.json`. O saldo mantém10/18técnicas satisfeitas, oito executáveis/oito visuais e18–31h; nenhum critério novo. Delta final: **seis fontesQA**; bundle recompilado159assets já verificado, sem outra recompilação após este últimoPHP. As versões intermediárias de cinco fontes e as recusas do segundoValidador são histórico anterior ao ajuste, não o comportamento final.
<!-- /option-B7-permissions-progress-20261013 -->
<!-- option-B6-finite-progress-20261013 -->
## Opção B — saldo das listas após o incremento QA
**9/18 posições técnicas satisfeitas;9ainda executáveis; oito percursos visuais abertos emL4/C135.** Isso conta posições da checklist, não requisitos globais nem percentagem do produto. Nenhum critério visual novo encerrado. A/B,C37,COUNTRY02 e o âmbitoB preservados; ativações e candidata final pendentes.
| Lista | Satisfeito tecnicamente | Restante técnico | Estimativa restante |
| --- | --- | --- | --- |
| L1 Contratos/acessos | L1.1 revogação; L1.4 obrigações de parceria | L1.2 peças de terra32;L1.3 mandato/divulgação no anúncio próprio e permissões;L1.5 titularidade/licença56 | 7–12h |
| L2 Países/estatísticas | L2.1–L2.5, cada ramo com prova própria ou reutilização explícita | Zero técnico desta lista; apresentação noL4 | 0h técnico |
| L3 Território/documentos | L3.2 mapa/filtrosAPI;L3.3 carteira corrigida | L3.1 seletores/parcela32/56;L3.4 entidadefundiária/contexto;L3.5 camposBalcão;L3.6 JPEG/DOCX/XLSX;L3.7 PDF/foto do caso;L3.8 anexo/retirada/reciboTXT | 7–12h |
| L4 Aceitação/consolidação | A/B e C37 reutilizados nos seus âmbitos | Oito percursos preparados; coleta visual conjunta e revisão/backup-restauroQA correspondente | 6–10h |
**Reestimativa:20–34h =4–8correções+5–9implementação restante+11–17verificação/consolidação.** A faixa25–43anterior foi conservada sem dedução por item; não era arredondamento de consumo medido nem reestimativa documentada de maior complexidade. Agora remove-se o trabalho técnicoL2(4–7h), L3passa8–14→7–12 após provas/fix da carteira; L1mantém7–12 porque as três posições abertas incluem a compatibilidade de permissões concretamente identificada no consumidor antigo de negócios. L4continua6–10, contado uma única vez. EsperaC135, incidente, dispositivos reais, foraB e ativação excluídos; não é prazo garantido.
Provas novas: manifestação empresarial guardada/submetida/noutra sessão, residênciaPT/constituiçãoFR/origemBR e snapshotv2 preservado após mestreZA→MZ→ZA; recibo/repetição e denominadores16→17→17/1/2. O ramoempresa C133 já estava provado: interesses14/15 sãoempresa, confirmado porSQL, sem nova submissão. Parceria34: seis obrigações textuais, só três revisões afetadas reabertas, corporate_screening intacto, condição legal resolvida24 e publicação interna25. Documentos/períodos financeiros conservados.
Mapa: setor pelo slug existente, província, maturidade7/8, vazio e exclusão de privados; oito resultados sem coordenadas públicas são apresentados pelaAPI como `missing_public_site_coordinates`, semmarkers/áreas inventados. Exportação anterior reutilizada. **C142** carteira de corredor503→200, fonte de projeto preservada; apenas umPHPQA mudou, sem recompilação. Ocorreu erro no harness sobre a forma dos props; corrigido no script, sem outra falha de produto.
Dependência executávelL1.3: listas de triagem/revisão/aprovação/publicação do anúncio antigo estão vazias emQA e a policy exige ainda `manage-portal`; os perfis21/24/25 aprovados não o têm. Reconciliar o consumidor com esses papéis/âmbitos, preservando sua autoria/histórico/independência, sem transformar administração universal ou uma terceira pessoa real em exigência nova. Não alterados configuração/papéis neste incremento. C135 não causa esse bloqueio técnico.
**C132:** [registo final para decisão](C132-incidente-contido.md), ações conhecidas pendenteszero, quatro contas recuperadas e sessões tratadas por provas anteriores. Proposta contido/remediado com limites históricos; início/exfiltração indeterminados, sem afirmar ausência de acesso indevido. Decisão formal ainda a registar pelo responsável, sem bloquearB.
[Checklist nominal atual](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito), [mesmos22grupos](saldo-opcao-B.md), `option-B6-four-lots-plan.json` e provas agrupadas preservam correspondência. Relatos anteriores abaixo são retratos datados, não o saldo atual. Nenhuma alteração na base/configuração/bundle ativos, nova instalação ou investigaçãoC132. C135: não houve chamada/reset neste incremento; mantém-se a indisponibilidade documentada do provider e o pedido de suporte preparado.
<!-- /option-B6-finite-progress-20261013 -->
<!-- option-B5-finite-progress-20261013 -->
## Opção B: quatro lotes delimitados e duas lacunas técnicas resolvidas
[Lista finita no backlog existente](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito); [mesma tabela de22grupos atualizada](saldo-opcao-B.md). Estimativa mantida25–43h: L1 7–12, L2 4–7, L3 8–14, L4 6–10; sem sobreposição nem alegação de horas consumidas.18 posições técnicas e8percursos de coleta visual; posições não são novosIDs. A/B/C37 preservados, ativações separadas.
- **L1.1 técnico satisfeito:** Superutilizador sintético27 revogou Promotor22 porHTTP; sessão anterior401, edição e escrita na nova sessão403; leitura200 pelo Validador restante mantida, sem ações operacionais por conflito. Repetição produz um só evento/revisão. Fixture reabilitada pelo pedido documental/revisão independente no mesmo tipo/organização, com novo grant; o grant revogado nunca foi reposto. Oportunidades/documentos/tarefas/dossier/representações/dupla preservados.
- **L2.3 técnico corrigido:** `requestSupport` gravava `individual` para todas as categorias. Reproduzido no controller/SQL em transação revertida; não foi provaHTTP antes. Corrigida apenas a factoryPHP daQA para `entity→empresa`, `individual→individual`, restantes→`outro`, preservando a categoria original emmetadata. Novo apoio de entidade porHTTP: paísZA/origemPT, quatroIDs, recuperação noutra sessão, replay202 mesmo recibo; alteração409, outro titular404/anónimo401. O recibo individual anterior continua202; nenhum valor histórico/hash reescrito.
- **L2.5 denominadores deste apoio demonstrados:** interesses15→16 na submissão e16 no replay; Balcão1/anúncios2 intactos. SQLconfere16/1/2 separadamente, com um caso/interesse/recibo/consentimento/outbox/evento. Não somar essas coleções como investidores únicos. Outros dois ramos nominais L2.2/L2.4 continuam na lista.
- **C135 independente:** inventário vazio e `No browser is available` pela ferramenta permitida, antes de selecionar tab. Sem reset/contorno. Nenhum critério visual novo encerrado. O canal de suporte continua indisponível para submissão; pedido preparado.
Delta do produto: **umPHP somente naQA**, backup da fonte anterior privado, lint aprovado, bundle inalterado e recompilação desnecessária. Código/configuração/bundle ativos conferidos por hash e preservados; nenhuma base ativa alterada. Não é revisão final ou autorização de implantação. Reversão técnicaQA: recuperar a fonte anterior guardada e limitar o ensaio do ramo; conservar o novo pedido, IDs, histórico e revogação. Não voltar a ativar o grant revogado nem reclassificar submissões antigas como parte da reversão.
**C132 separado:** todas as ações corretivas conhecidas e quatro recuperações concluídas; permanece a proposta “contido e remediado, com limitações da investigação registadas”, para decisão do responsável. Início exato/exfiltração indeterminados, sem afirmar ausência de acesso indevido. Não há outra ação técnica de incidente conhecida a inventar por causa do histórico incompleto.
<!-- /option-B5-finite-progress-20261013 -->
<!-- option-B-five-plan-reference-20261013 -->
**Saldo operacional atual:** [quatro lotes e listas finitas no backlog existente](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito); a tabela de22grupos permanece a mesma. Total25–43h mantido; C135 ainda sem browser permitido. A/B/C37 e ativo preservados.
<!-- /option-B-five-plan-reference-20261013 -->
<!-- option-B4-exit-table-20261013 -->
## Opção B: tabela de 22 grupos atualizada e proposta de encerramento C132
[Tabela única dos critérios de saída](saldo-opcao-B.md). B4 demonstra coedição em correção apenas no projeto 30, condição interna preservada/reverificada, aprovação 24/publicação 25/nova sessão; revogação/visual pendentes. Oito contratos atuais compatíveis em leitura e oito Responses recuperados por API, sem repetir os workflows válidos. Não há delta do código do produto/bundle/permissões; ativo intacto.25–43 h continuam estimativa ligada ao saldo, não horas consumidas nem prazo garantido. A/B/C37 preservados.
**C132: encerramento proposto**, contenção/remediação/recuperação 14–17 concluídas. Sem ação técnica corretiva conhecida pendente; histórico incompleto é limitação documentada, não investigação indefinida. [Proposta e condições de reabertura](C132-incidente-contido.md). Não se registou decisão do responsável em seu nome.
<!-- /option-B4-exit-table-20261013 -->
<!-- option-B3-exit-table-20261013 -->
## Opção B: tabela única dos critérios de saída
File diff suppressed because one or more lines are too long
@@ -1,3 +1,287 @@
<!-- case32-resubmission-20261014 -->
## Percurso3 — pedido de correção, gravação e ressubmissão comprovados; falta edição efetiva
Responsável informou «acç\ao realizada». Em QA isolada, leitura confirmou: QA24 solicitou correções em13/10 às22:57:27UTC (v109); QA21 guardou às23:00:55UTC (v110) e ressubmeteu às23:01:48UTC (v111, ciclo13, revisão16). Cada ação tem auditoria própria. Estado atual **Submetida para validação**. O responsável esclareceu **«nao alterei nenhum campo»**; nenhum caminho canónico mudou. Não foi identificada perda de dados. Pedido de correção/guardar/ressubmeter ficam demonstrados; a alteração efetiva do texto continua pendente. A indicação anterior «Descrição» era imprecisa: o campo no editor privado é **Necessidade e proposta**.
Contrato fundiário, autoria, organização e snapshot de recursos preservados. Quatro pareceres anteriores foram mantidos, com hashes e âmbitos válidos: cadastral_screening, land_legal_review, community_environment_review e competent_authority_clearance. Nenhum reaberto e nenhuma condição aberta; não os repetir sem alteração relevante.
Próximo trecho para o único critério de edição ainda não executado: QA24 solicita correção diretamente em /32/view, com fundamentação e indicação concreta; não é necessário repetir Iniciar validação (request_correction é permitido em submitted). Após Correções solicitadas, QA21 altera Necessidade e proposta, guarda e ressubmete. Só os pareceres afetados pelo novo conteúdo devem ser revistos; depois aprovação24 e publicação restrita25. Sem flexibilização de permissões ou mudança automática de estado. Restantes provas próprias de área/documentos/foco/teclado/feedback de sucesso permanecem abertas.
Evidências: case32-correction-resubmission-fields-readonly-20261014.json e case32-resubmission-manual-recorded-20261014.json. Base396c/A-B/C37/COUNTRY02 e separação de C132 preservadas; nenhum novo código de produto, dado ativo ou candidata final.
<!-- /case32-resubmission-20261014 -->
<!-- case32-edit403-20261014 -->
## Percurso 3 —403 de edição identificado; usar a revisão na sessão QA24
O responsável relatou403 em /minhas-oportunidades/32/edit. A auditoria identifica esse GET como **QA24 (Validador)**, em13/10 às22:47:58UTC. QA24 tem leitura/revisão; não âmbito de edição Promotor. O caso32 continua **Em análise**, sem pedido de correções gravado. QA21 mantém âmbito, representação e autoria válidos; o estado atual impede a sua edição. Uma avaliação apenas em memória com needs_information permite a edição a21, sem persistir mudança ou simular aceitação.
Sequência atual: **QA24 /32/view → preencher Fundamentação e Campos ou documentos a corrigir → Solicitar correções → Correções solicitadas → mudar para a sessão própria QA21 → /32/edit → corrigir/guardar/ressubmeter**. Não repetir o início da revisão nem abrir /edit na sessão Validador. A recusa foi prevista pelas permissões/estados existentes; não flexibilizar papéis ou forçar estado. Evidência: case32-edit-403-readonly-20261014.json. A/B, C37, COUNTRY02 e C132 preservados; ativo intacto. Interface e restantes transições mantêm critérios próprios.
<!-- /case32-edit403-20261014 -->
<!-- 20261014_C146_manual_field_feedback -->
## Percurso 3 — validação de campo vazio confirmada manualmente
[C146 / confirmação manual 14/10/2026] QA24 relatou «ja feito». Leitura confirmou caso32 ainda Em análise, sem request_correction. Depois copiou o feedback: «A ação não foi enviada. Corrija os campos indicados. Campos ou documentos a corrigir: Indique pelo menos um campo ou documento a corrigir.» Isto demonstra a apresentação da validação do campo vazio, sem envio; não é nova rejeição HTTP, execução ou aprovação. Início da revisão preservado. Foco/teclado, sucesso, renovação na mesma janela e transições seguintes não inferidos.
[C146 / saldo atual] Mensagem de validação de correção vazia confirmada manualmente; não repetir esse erro. Preencher Campos ou documentos a corrigir com uma indicação concreta e solicitar correções. Depois21 corrige/ressubmete,24 revê/aprova,25 disponibiliza restrito. Foco/teclado/resultado de sucesso e renovação permanecem sem prova. Área/documentos têm os critérios próprios; A/B/C37 e critérios territoriais aceites preservados.
Evidência: `case32-correction-field-feedback-manual-20261014.json`. C146 permanece parcial; não repetir o erro já apresentado nem o início da revisão. Ativo intacto, base396c/A-B/C37/COUNTRY02 preservados.
<!-- /20261014_C146_manual_field_feedback -->
<!-- case32-manual-start-review-20261014 -->
## Percurso 3 — início da revisão confirmado; correções ainda por solicitar
Após «refiz o processo», leitura QA confirmou **Iniciar validação** por QA24 em **13/10/2026, 22:30:15 UTC**, ciclo12, revisão15 e auditoria correspondente. Estado atual **Em análise**, versão108. O pedido de correções ainda não foi gravado. Diagnóstico exclusivamente de leitura; não executou transições nem alterou dados ativos.
QA24: preencher «Fundamentação» e «Campos ou documentos a corrigir, um por linha»; clicar «Solicitar correções». Esperado: «Correções solicitadas». Não repetir «Iniciar validação». Depois, QA21 corrige/guarda/ressubmete, QA24 revê os pareceres afetados e aprova, QA25 disponibiliza com acesso restrito. Seletores/mapa/recuperação e submissão inicial permanecem aceites. Não inferir abertura documental, área/unidade, mensagem de sucesso, renovação na mesma janela, acessibilidade ou fecho integral a partir da confirmação genérica.
C146 permanece aberto para apresentação visual do feedback e recuperação da autenticação. Delta QA cad3e36b946d sobre a base396c e f14 preservados; nenhum limiar MFA, papel ou âmbito alterado. C135 limita o transporte automático. A/B, C37, COUNTRY02 e separação de C132 preservados. Evidências: case32-review-correction-retry-readonly-20261014.json e case32-manual-start-review-recorded-20261014.json.
<!-- /case32-manual-start-review-20261014 -->
<!-- C146-reauth-QA-20261014 -->
## C146 — renovação na mesma janela, preparada em QA em14/10/2026
Os cliques recentes receberam403. Perfil/âmbito/independência válidos. A leitura correta da sessão cifrada encontrou sessões de MFA de idades diferentes; a leitura anterior unreadable não permitia concluir expiração e a afirmação anterior fica corrigida. Não identificar uma aba/browser somente pela linha de sessão.
Delta **cad3e36b946d**, sobre396c/f14ebb3cb232 preservados: cinco ficheiros e159recursos compilados. Capacidades do papel continuam visíveis, desabilitadas com aviso de renovação. POST permanece protegido por MFA recente; a recusa403 indica renovação. Entrar novamente nesta janela reutiliza logout/login/Fortify/MFA e o redirecionamento protegido ao caso32. O número900 é da implementação existente, não nova regra da Tempo, e não foi alterado. Papéis/âmbitos/independência, schema, contas, dados, cifragem e limpeza do histórico mantidos.
Política de segurança, transporte, HTTP normal de sessão/retorno, TypeScript, compilação e recursos servidos passaram. As sessões reais do utilizador não foram alteradas. Os ensaiosHTTP próprios fizeram apenas login/MFA, recusas controladas,logout e redirecionamento; caso32/ETag/dados intactos. Interface, botão de renovação e início de validação continuam por observar; não fechar pela contagem dos testes. C135: inventário permitido mostra IAB/MCPApps, semChrome local; não foi repetida a abertura que falhou na confiançaTLS nem reinicializado o transporte. Ativo intacto, A/B/C37/COUNTRY02 eC132 preservados. Manifesto/reversão: case32-reauth-delta-manifest-20261014.json.
<!-- /C146-reauth-QA-20261014 -->
<!-- C146-feedback-QA-20261013 -->
## C146 — feedback do workflow preparado em QA, aceitação visual pendente
QA24 confirmou execução dos cliques do caso32 e ausência de mensagem no endereço correto. A auditoria identificou sete rejeições422, sem início de revisão ou pedido de correção persistidos. A confirmação é um relato de execução, não de sucesso. O campo concreto de cada tentativa antiga permanece indeterminado.
Delta QA **f14ebb3cb232**, sobre a base **396c691930bc** preservada: um TSX de feedback e159recursos compilados. Erros passam ao início do bloco com foco e indicação adjacente aos campos; confirmação de sucesso conservada após navegação. As validações no cliente espelham exigências já existentes no servidor. Sem mudança de regras, permissões, MFA, schema ou dados de negócio. O ensaio técnico de respostas passou, dados/ETag/estado intactos e logout da sessão própria; TypeScript e compilação passaram. A melhoria experimental da auditoria PHP foi retirada por não ser necessária à correção. Os dois primeiros ensaios HTTP tiveram erros do controlador de teste e estão preservados como limitações; o terceiro corrigido passou.
A sessão manual restante de QA24 já ultrapassou a janela existente de MFA para as ações; renovar sessão antes de observar o trecho corrigido. Isso não invalida o login/MFA já aceite. A interface corrigida, foco e transições continuam por observar. Caso32 ainda submetido; QA21 não deve ressubmeter sem pedido de correção gravado. Evidências e reversão: case32-feedback-delta-manifest-20261013.json. Ativo intacto, A/B/C37/COUNTRY02 preservados; candidata final e ativação continuam separadas.
<!-- /C146-feedback-QA-20261013 -->
<!-- case32-review-check-20261013 -->
## Percurso 3 — conferência da revisão QA24
Após o pedido «confirma», leitura SQL READ ONLY na QA18445 (stability_consumers_20261011_084534_test:55441) encontrou o caso32 ainda em **submitted**, sem eventos/auditoria de start_review ou request_correction de QA24 no ciclo12 e sem itens de correção. O login/MFA confirmado de QA24 está preservado; não demonstra as transições seguintes. Não classificar o pedido «confirma» como aprovação visual nem como prova de erro do produto. As ações de revisão ainda não ficaram gravadas no caso consultado. Próximas ações: «Iniciar validação» e «Solicitar correções», com fundamentação e indicação concreta do campo a corrigir.
Evidência: case32-review-correction-readonly-20261013.json, ligada ao registo existente acceptance-396c-results.json. Nenhuma transição executada, novo critério encerrado ou alteração no ativo. Base396c, COUNTRY02, A/B, C37 e separação de C132 preservados.
<!-- /case32-review-check-20261013 -->
<!-- case32-manual-submission-20261013 -->
## Percurso 3 — submissão inicial confirmada, revisão seguinte com QA24
O responsável confirmou «enviado» após a orientação de submissão do caso 32 por QA21. Leitura em transação SQL READ ONLY na QA **stability_consumers_20261011_084534_test:55441** confirmou: novo evento submit de QA21, passagem de needs_information para submitted, versão 106, ciclo 12 e auditoria workflow_submit da mesma versão. Nenhuma ação HTTP, transição ou escrita em dados foi executada pelo diagnóstico.
Registado somente o critério de **submissão inicial**, nas provas existentes do percurso 3. Seletores/mapa/recuperação continuam confirmados. Área/unidade, abertura de documentos, pedido de correção, ressubmissão, revisão independente, aprovação, disponibilização restrita e controlos de acessibilidade ainda precisam de confirmação própria. «Enviado» não encerra esses critérios nem o percurso completo.
A lista de ações de QA24 apareceu vazia na primeira consulta CLI. Diagnóstico do contexto: canView, âmbito de Validador, autorização operacional, configuração MFA e atribuição estão válidos, sem conflito. OpportunityProfileWorkflow::actions exige também sessão MFA autenticada recente; a consulta CLI não tem essa sessão. A lista vazia não constitui falha de permissões do portal. Nenhuma sessão foi simulada, segredo lido para autenticação ou privilégio alterado. A observação seguinte é pela sessão própria de QA24 em **/minhas-oportunidades/32/view**, com «Iniciar validação» e «Solicitar correções».
Evidências: `case32-manual-submission-readonly-20261013.json`, `case32-reviewer-context-readonly-20261013.json` e `case32-manual-submission-recorded-20261013.json`, ligadas ao registo existente `acceptance-396c-results.json`. Base396c e estados globais da matriz preservados; nenhum novo requisito, alteração no ativo ou candidata final. COUNTRY02, A/B, C37 e separação de C132 mantidos.
<!-- /case32-manual-submission-20261013 -->
<!-- case32-resource-notices-20261013 -->
## Percurso 3 — conferência documental apresentada, sem bloqueio de submissão identificado
O responsável colou a secção «Conferência e pendências». O caso 32/QA21 é o contexto imediatamente anterior; não foram novamente indicados URL ou conta. As 16 mensagens coincidem exatamente com a conferência atual do caso 32: rastreabilidade da localização ausente, uma localização com âmbito distrital, 13 avisos de metadados nos seis anexos sintéticos e a informação de separação entre conferência e workflow.
Leitura guardada na QA **stability_consumers_20261011_084534_test:55441**, em transação SQL READ ONLY: estado **needs_information**, ação **submit** disponível para QA21; validação canónica de submissão e bloqueios da entrega sem erros. A lista é produzida por OpportunityResourceController::assessment e não é consumida como bloqueio por OpportunityProfileWorkflow. «issuer» significa emissor; «edition», edição/versão; «category», categoria do anexo. Estas ausências continuam registadas, sem inventar metadados. A aceitação anterior das fontes oficiais mantém-se; os anexos sintéticos QA não são classificados como oficiais nem comprovam decisões externas.
Evidências: `case32-resource-assessment-manual-observation-20261013.json` (apresentação manual, requisito existente AUD-UI-01) e `case32-resource-notices-readonly-20261013.json` (diagnóstico SQL/serviços/ficheiros). A apresentação desta lista não demonstra abertura dos documentos, área/unidade ou nenhuma transição. Esses critérios continuam pendentes, sem repetição dos seletores/mapa/recuperação já confirmados. Próxima ação na ficha do caso 32: conferir os dados/documentos e «Submeter para validação», com fundamentação do ensaio. Nenhuma submissão foi executada por este diagnóstico.
Zero alteração de código, compilação, metadados, permissões ou base ativa. Base396c, COUNTRY02, A/B, C37 e separação de C132 preservados; candidata final não declarada.
<!-- /case32-resource-notices-20261013 -->
<!-- qa21-manual-access-success-20261013 -->
## QA21 — acesso e MFA confirmados manualmente
O responsável confirmou: «tens razao minha falha ja consegui entrar usando MFA». Registada a recuperação do acesso de **QA21**, após a orientação para **https://portal-investidor.test:18445/login**. O URL é o do contexto imediatamente anterior; não foi novamente transcrito na confirmação. A rejeição atual deixa de bloquear o ensaio manual. Não houve alteração de password, MFA, permissões, código ou dados.
Evidência: `qa21-manual-access-success-20261013.json`, ligada ao grupo existente **MANUAL-B396C-AUTH6** e aos requisitos **AUD-PROFILE-24 / AUD-UI-01**. Preservam-se as confirmações anteriores de autenticação das seis contas e de seletores/mapa/recuperação do percurso 3. Esta confirmação comprova entrada e MFA; não comprova novas transições, logout ou dashboard novamente. Nenhum estado global da matriz foi alterado.
Próximo critério: QA21 confere área/unidade e documentos existentes do caso 32 e submete; QA24 solicita correção, revê e aprova independentemente; QA25 disponibiliza com acesso restrito. C135 continua separado, pois o acesso do navegador automático ainda falha na confiança TLS. Base **396c691930bc**, COUNTRY02, A/B, C37 e C132 preservados; candidata final e ativação continuam pendentes.
<!-- /qa21-manual-access-success-20261013 -->
<!-- qa21-address-correction-20261013 -->
## QA21 — divergência do endereço de acesso identificada
O responsável indicou **http://127.0.0.1:18445/login**, rejeição no ecrãEmail/Password e texto comForgot password apontando **http://127.0.0.1:18118/forgot-password**. GETsem credenciais confirmou: HTTP18445 responde400 porplaintext numa portaTLS; ologin18118 responde200. A QA prevista é **https://portal-investidor.test:18445**, runtime stability_consumers_20261011_084534_test:55441 confirmado. A password atual deQA21 já foi aceite nesse destino porAPIatéMFA.
A divergência de esquema/hostname/ambiente é concreta. Não foi observado diretamente como o navegador manual chegou aoHTML18118; não afirmar que a rejeição foi produzida pelaQA18445 nem reatribuir retrospectivamente confirmações anteriores. Usar noChromium local oURLHTTPSnomeado, emailprofiles-v1-promoter@example.invalid e a password existente doTXT privadoQA21. Nenhuma rotação depassword/MFA, alteração deconfiguração/serviços ou escrita emdados. Falta a confirmação manual no endereço corrigido; não fechar o percurso3ou reabrirA/B/C37.
Evidência: qa21-address-mismatch-readonly-20261013.json. RespostasHTTPsão diagnóstico técnico de destino, não aceitação visual. C135doIAB/certificado mantém-se separado do endereço incorreto da tentativa manual. COUNTRY02/base396c/C132 preservados.
<!-- /qa21-address-correction-20261013 -->
<!-- qa21-password-guidance-20261013 -->
## QA21 — rejeição de password relatada e fonte local corrigida
O responsável relatou password rejeitada em18445/login, QA21. Foi confirmada por leitura a baseQA stability_consumers_20261011_084534_test:55441, a identidade profiles-v1-promoter@example.invalid e a correspondência da password do cadastro privado/HTML individual com o hash atual. MFA/email continuam confirmados; envelope local/cifra consistente. O onboarding-actors-local.json do ensaio antigo não contém essa identidade atual. O valor efetivamente digitado pelo responsável não foi recolhido, pelo que a origem da rejeição manual não foi afirmada como certa.
Um único ensaio API direcionado à falha nova confirmou o mesmo destino web: POST/login200, password aceite e desafioMFA solicitado; nenhum códigoMFA enviado, autenticação não concluída. Não é prova visual nem reensaio deA/B/C37. A tentativa de limpeza porPOST/logout devolveu401 por ainda não haver autenticação; não afirmar invalidação dessa sessão pendente. O cookiejar do cliente foi descartado, sem cookies/segredos persistidos nas evidências ou invalidação de sessões de outros utilizadores.
Fonte local simplificada deQA21: `storage/app/private/investmoz-v2/portal-audit/qa21-password-18445-local.txt`, com a password existente, fora do webroot e sem novo valor/rotação. Não anexar oTXT ouQR à conversa. Usar https://portal-investidor.test:18445/login e o email indicado, copiar somente o conteúdo doTXT paraPassword. Contas/MFA/permissões, código e dados de negócio intactos. Falta confirmar esse passo na interface; manter o percurso3 parcial e as confirmações históricas, sem reabrirC37QA18.
Evidências sanitizadas: qa21-password-diagnosis-readonly-20261013.json; qa21-password-login-diagnosis-20261013.json; qa21-current-password-local-prepared-20261013.json. Zero alterações no ativo ou dados de negócioQA; apenas sessão/limitação de tentativas do ensaio HTTP próprio. Base396c, COUNTRY02 e decisãoC132 preservados.
<!-- /qa21-password-guidance-20261013 -->
<!-- p3-browser-tls-stop-396c-20261013 -->
## Tentativa do percurso3 — navegador disponível, TLS bloqueado
A ferramenta permitida voltou a selecionar **Codex In-app Browser / iab / ID2**, com abas disponíveis para criação. A abertura de https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html#p3 parou em **ERR_CERT_AUTHORITY_INVALID**, antes de login ou ações do portal. A página interna de erro também é recusada pela política URL da ferramenta; não houve insistência, reset, downgrade ou contorno de TLS. A aba temporária não foi marcada como entregável; a tentativa única de fecho também foi recusada pela política do documento interno.
Comparação por leitura: handshake TLSv1.3 do cliente do sistema valida cadeia e hostname; o exemplar servido é o mesmo do preparo, SHA-256 `df368329204106b6a182c79e7e5c98a8e73890479cb7bca7c3d0928076a60ed5`, SANportal-investidor.test, válido até09/01/2027. A cadeia apresentada pelo navegador da ferramenta não pôde ser inspecionada. Há uma diferença concreta de validação entre os clientes; não se afirma a causa interna nem se altera o certificado do portal por suposição. Capacidades expostas: visibility/viewport, sem ação de confiança emCA. Evidências: acceptance-396c-P3-IAB-TLS-stop-20261013.json e acceptance-396c-QA-TLS-readonly-20261013.json.
**C135 continua bloqueio da execução automática dos passos restantes**, agora na abertura HTTPS. Seletores/mapa/recuperação do cenário3 e login/MFA/dashboard das seis contas permanecem confirmados manualmente. Área/documentos/submissão/correção/revisão/aprovação/publicação ainda não observados nesta tentativa. Sem novos testes funcionais, credenciais transmitidas, alterações de dados, código, serviços, flags, certificados ou permissões. Base396c preservada; COUNTRY02/A-B/C37 e decisão C132 mantidos. Sem candidata final ou ativação.
<!-- /p3-browser-tls-stop-396c-20261013 -->
<!-- manual-auth-p3-396c-20261013 -->
## Confirmação manual parcial — base396c691930bc
O responsável confirmou **login, MFA e dashboard** de QA17, QA21, QA22, QA24, QA25 e QA2; no **percurso3/caso32, seletores, mapa e recuperação**. Fonte: mensagens da conversa; `outputs/investmoz-audit-current-20261012/acceptance-396c-manual-confirmation-20261013.json`. São declarações manuais, não capturas automáticas. Conta exata e modo da recuperação do percurso3 não foram detalhados; não inferir esses dados. QA2 existe nesta QA e não foi remapeada para27/contaativa.
Associado às cinco linhas existentes: AUD-PROFILE-24 e AUD-UI-01 (autenticação); AUD-GEO-02, AUD-GEO-03, AUD-FIELD-030 e AUD-UI-01 (seletores/mapa/recuperação do consumidor32). Sem novosIDs ou fechos agregados. Matriz/backlog3401linhas cada; estados globais e3396linhas não relacionadas preservados byte a byte. API/SQL existentes não repetidos.
**Não repetir esses ensaios.** No cenário3 restam área/unidade/documentos, submissão/correção/revisão/materialidade/aprovação/publicação e teclado/foco/rótulos/erros não relatados. Nos outros sete cenários restam as ações específicas do roteiro; a autenticação já confirmada não volta a ser critério de ensaio. Um cenário parcial, sete sem confirmação funcional; nenhum dos oito foi declarado integralmente concluído. C135 continua no transporte automático, sem invalidar as observações manuais.
Entrada única atualizada: https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html. Código/compilação/base preservados; documentação/evidências atualizadas. COUNTRY02, A/B eC37 preservados; C132 separado. Zero alterações no ativo ou dadosQA. Candidata final/ativação e backup-restauro da revisão final continuam pendentes. Mantém-se6–10h como reserva de verificação/consolidação; esta confirmação não quantifica horas consumidas ou justifica uma redução numérica precisa.
<!-- /manual-auth-p3-396c-20261013 -->
<!-- acceptance-base-396c-20261013 -->
## Base da aceitação visual fixada —396c691930bc
Decisão da Tempo: fixar o incrementoB8 como base, sem ampliar critérios ou repetir a bateria técnica. ZIPbase SHA-256 `5b3676a25555e140b783350eb9379a6911dcf1ef62bf0d67271ded5244d288dc`; código/bundle/âmbito imutáveis. C135persistiu na ferramenta permitida: inventárioCUA vazio e sky.list_apps falhou antes de obter janela, nativepipe/oserror2. Sem reset/bypass/alteração de serviços.
Entrada única manual: **https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html**. [Roteiro dos mesmos oito percursos](aceitacao-B-396c691930bc.md), contas sintéticas já existentes/MFA conferido e ficheiros de acesso2FAS privados individuais. Nenhum segredo no roteiro/ZIP/conversa, nenhuma nova conta ou mudançaMFA.
PreparaçãoQA para uma passagem:30/31/32/33/34/56 abertos para edição needs_information pelo mecanismo existente, contratos/documentos/publicações anteriores preservados;54/15/jornadas existentes intactos. Um rascunho sintético no consumidor legado foi preparado para observar a sequência pelos três papéis, sem submissão/aprovação/publicação automática. Isso prepara estados para a interface; não acrescenta provas técnicas nem fecha os oito visuais. O primeiro pedido de preparação30 teve erro de leitura deprops no harness, retomado sem repetir request_revision; não é falha do produto.
Tentativa CUA em 13/10/2026, 18:30:03 UTC: inventário vazio e `No browser is available` ao selecionar o navegador para a entrada QA. Bloqueio C135 antes de abrir a página/autenticar; oito percursos registados como **não observado**, nenhuma conta utilizada e todos os passos seguintes não observados. Evidência comum: `outputs/investmoz-audit-current-20261012/acceptance-396c-cua-attempt-20261013_183003.json`; resultados em `acceptance-396c-results.json`, com o registo anterior preservado. Não foi observada falha funcional nem repetida prova técnica. Corrigir só falhas efetivamente observadas; depois dos oito percursos aceites, consolidar revisão/manifesto/limites, backup-restauro QA e procedimento. Sem candidata final ou ativação; estimativa 6–10h continua de verificação/consolidação, não consumo ou prazo garantido. COUNTRY02/A/B/C37 preservados; C132 separado. Matriz/IDs/estados técnicos não alterados.
<!-- /acceptance-base-396c-20261013 -->
<!-- option-B8-finite-execution-20261013 -->
## Opção B — execução das posições técnicas restantes em QA
**18/18 posições técnicas da checklist satisfeitas; oito percursos visuais continuam abertos.** A indicação de nove posições vinha do saldo anterior: L1.3/permissões do anúncio antigo já estava tecnicamente encerrada pelas provasB7. Foi conferida, sem repetir o percurso. Neste incremento foram executadas as **oito** restantes; nenhum fecho foi atribuído ao texto reenviado. Isso não é percentagem do produto nem encerramento dos requisitos agregados.
QA: `https://portal-investidor.test:18445/dashboard`, PostgreSQL `stability_consumers_20261011_084534_test:55441`. CabeçalhoQA conferido em todos os pedidos de aplicação; ClamD1.5.4 real, assinaturas13/10. Estado ativo, COUNTRY02, contas/papéis/organizações, A/B e C37 preservados. C132 permanece decisão separada; não houve investigação, envio de segredos ou rotação neste lote. C135 mantém a indisponibilidade conhecida, sem novos resets, bypass ou pedidos de testes ao utilizador.
| Posição | Execução e resultado técnico | Evidência principal | Critério restante |
| --- | --- | --- | --- |
| L1.2 — terra32 | Ata/titular/esboço sintéticos próprios; scan/hash. Área declarada1100→12001.74sqm após medição12001.7448; cobertura pelo limiteINE deAncuabe. Revisões territoriais afetadas, condição legal existente resolvida24; aprovação24/publicação restrita25/nova sessão/Response. Esboço v2 com desenho preserva o textualv1. Conflito none/plano false: peças condicionais não exigidas. | option-B8-context-access-finish-HTTP.json, option-B8-map-v2-review-HTTP.json, option-B8-final-current-QA.json | Apresentação de documentos, área, mapa e transições no cenário3L4. |
| L1.5 — franquia56 | Licença sintética identifica marcaQA, titular/licenciante, territórioQA e exclusividade. Só marca/licença/legal reabrem; financeiro/confidencialidade/hash/ator/data mantidos.24→25/interna/nova sessão; originais e royalties/taxa1250 preservados. | option-B8-documents-56-review-HTTP.json | Interface do cenário6L4; nenhuma titularidade real ou catálogo público atestado. |
| L3.1 — recursos32/56 | Hierarquia/pai/país422; retirada explícita de filhosMZ→PT→MZ; quatroIDs/nova sessão. O endpoint autorizado tem3limites ancestrais, localidade sem limite próprio. Medição da parcela é SQL, sem declarar cálculo visível naUI. | option-B8-territory-HTTP.json, option-B8-spatial-diagnosis.json | Trocas por clique, limpeza visual, geometria/legenda/erros noL4. |
| L3.4 — entidade/contexto | País de constituiçãoZA preservado independentemente da localizaçãoMZ; pai422, limpar/repor filhos, recibo anterior intacto. C145 associa pedido novo explicitamente ao dossier: preparação/continuação/retorno noutra sessão, outro dossier403/422 e troca do vínculo422. | option-B8-secondary-prepare-HTTP.json, option-B8-context-access-finish-HTTP.json | Navegação/recuperação visível do contexto no cenário8L4. |
| L3.5 — Balcão | Campo existente territory_id/fonte guardado no pedido correto; não cadastrado422, hierarquia recuperada. Endpoint público do seletor tem0camadas; não se publica camada interna nem se inventa mapa autónomo do dossier. | option-B8-secondary-prepare-HTTP.json, option-B8-consumer-geometry-read.json | Seletor, fonte e mensagem de ausência visíveis no cenário8L4. |
| L3.6 — formatos | JPEG/DOCX/XLSX/PDF: MIME/hash/scan/download21/24/25/22.22 mantém leitura como Validador global, sem ganhar edição de franquia.23/anónimo403/401. Bytes repetidos422/quarentena423; PNG/WebP/worker anteriores reutilizados. | option-B8-formats-remainder-HTTP.json, scansB8 | Apresentação/download noL4; não se exige previewOffice novo. |
| L3.7 — caso fundiário | PDFata/esboço/JPEG no consumidor próprio, scan/hash/owner/nova sessão. C144 corrige o link do gestor: ownerURL404, download administrativo200/hash sob manage-portal; outro403/anónimo401. Superutilizador sozinho não recebe esse privilégio. | option-B8-secondary-verify-HTTP.json, option-B8-context-access-finish-HTTP.json, option-B8-context-compatibility.json | Link e apresentação dos anexos no cenário8L4. |
| L3.8 — Balcão/documentos | Anexo/repetição sem novoID/versão/contagem; hash/scan. Reatribuição autenticada24→25: antigo200→403nas sessões anterior/nova; novo25/owner200. ReciboTXT/protocolo recuperados, submissão repetida sem duplicação. | option-B8-secondary-verify-HTTP.json | Apresentação documental/recibo/revogação no cenário8L4. TXT não é PDF nem ACL individual. |
**Saldo por lista:** L1contratos/acessos5/5; L2países/estatísticas5/5 com provas anteriores por ramo; L3território/documentos8/8. Somente L4 mantém os oito percursos preparados e consolidação da revisão. **Estimativa restante6–10h**, antes18–31: retiram-se L1 5–9 eL3 7–12 por satisfação das suas listas, sem afirmar que essas horas foram consumidas. Correções conhecidas0h, implementação técnica da checklist0h; verificação/consolidação6–10h, incluindo tratar eventual falha concreta do ensaio e backup/restauroQA correspondente. EsperaC135, dispositivos reais, C132 e ativação excluídos; não é prazo garantido.
**Correções e compatibilidade:** sete fontesQA alteradas, recompilação/types passados e159assets, manifestoQA `a5c859cfc21e3d6ab8b0632f767830b6c8c195a4910bf8692652a44bee3a1785`. C144 reutiliza a permissão administrativa existente e mantém a rota do titular restrita; C145 acrescenta vínculo opcional explícito no payload cifrado existente e URLs de retorno, sem tabelas/contas/representações novas nem associação automática de referências textuais antigas. Dossier distinto e alteração do vínculo são recusados. A edição direta conserva vínculo existente mesmo se o percurso estiver desabilitado, sem permitir novas associações nesse estado. As cinco fases/19etapas e hashes de jornadas existentes ficaram intactos.
**Preservação e denominadores:** originais anteriores32/56 verificados pelos bytes/hash; novos jobs tratados somente pelos handlers do scan dos documentos próprios, fila alheia inalterada. Utilizadores, organizações, memberships, grants, duplaSuper, jobs/outbox e jornadas/etapas/submissões existentes preservados.17interesses/2pedidosBalcão/4anúncios não draft/cancelled: o pedidoBalcão próprio passou draft→submitted, sem duplicação no replay. O total bruto de anúncios é6, inclui rascunhos e não é o denominador4 usado na comparação. Os pedidos novos e documentos são sintéticos; não representam atos externos reais.
**Erros do ensaio preservados:** propriedades Inertia têm forma direta; a leitura inicial esperava um invólucro inexistente. Uma condição legal reaberta precisava de resolução explícita; a aprovação422 era correta. Logins simultâneos do harness causaram rejeição de umOTP já utilizado; retomou-se serialmente sem alterarMFA/chave e sem repetir aprovação/publicação válidas. A expectativa403paraQA22 ignorava seu papelValidador global: foi corrigida no harness, preservando autorização legítima. Esses eventos não são novos defeitos do produto nem reabremC37. Não se registaram códigos/cookies/segredos.
**Limitações/entrega:** continua uma revisão de progressoQA, não candidata final nem pacote de ativação. Restam demonstração dos oito percursos novos, teclado/foco/rótulos/erros/estados e consolidação/backup-restauroQA da revisão fixada. §27normativo integral, acessibilidade integral/dispositivos reais, novas ofertas/módulos/SLA, restauração/ACLindividual e cobertura integral do legado permanecem nas frentes anteriores, sem ampliarB. Publicação interna significa acesso restrito autorizado, não catálogo público. COUNTRY02 ativo preservado;190000/percurso no destino e ativações continuam separadas. C132: proposta contido/remediado com limitações históricas, responsável ainda decide, sem bloquearB.
<!-- /option-B8-finite-execution-20261013 -->
<!-- option-B7-permissions-progress-20261013 -->
## Opção B — permissões do anúncio próprio reconciliadas em QA
**10 das18 posições técnicas satisfeitas; oito ainda executáveis; oito percursos visuais preparados.** A contagem é da checklist, não percentagem do produto ou fecho global. A/B/C37 permanecem aceites nos seus âmbitos; COUNTRY02 ativo preservado. Nenhuma nova aceitação visual, ativação ou alteração de permissões reais.
| Lista | Satisfeito tecnicamente | Restante | Estimativa restante |
| --- | --- | --- | --- |
| Contratos/acessos | L1.1 revogação; L1.3 anúncio próprio/permissões/teaser; L1.4 obrigações da parceria | L1.2 ata/mapa/titularidade32; L1.5 conteúdo da licença/marca/titularidade56 | 5–9 h |
| Países/estatísticas | L2.1–L2.5 nos ramos delimitados, com provas específicas | Somente apresentação noL4 | 0 h técnico |
| Território/documentos | L3.2 mapaAPI/filtros; L3.3 carteira | L3.1 seletores/parcela32/56; L3.4 entidade/contexto; L3.5 camposBalcão; L3.6 JPEG/DOCX/XLSX; L3.7 PDF/foto do caso; L3.8 anexo/retirada/reciboTXT | 7–12 h |
| Aceitação/consolidação | A/B/C37 reutilizados | Oito percursos preparados, visual conjunto e pacote final/backup-restauroQA correspondente | 6–10 h |
**Reestimativa:18–31 h**, face a20–34. O fecho técnicoL1.3 permite reestimar as duas posições de contratos abertas em5–9h, antes7–12. L2/L3/L4 não mudam. Tipos de trabalho:3–6h correções,4–8h implementação restante,11–17h verificação/consolidação. Não são horas consumidas ou prazo garantido; esperaC135 e ativação excluídas, visual contado uma vez.
**C143:** a fila legada exigia emails/configuração antigos e `manage-portal`; agora usa os perfis de Validador/Publicador já aprovados e filtra o consumidor `company_sale` pelo papel/tipo/estado. Não concedidos novos privilégios. Rascunho21 → submissão → correção solicitada24 → correção21 → dois níveis legados24/22 → publicação25 → outra sessão recupera. Mandato/titular/contacto/condições privadas não saem no JSON público; teaser autorizado200. Nova leitura autorizada do estado aprovado corrigida, sem permitir que revisores publiquem. SQLconfere16revisões cifradas/hash,11transições/uma publicação e nenhuma duplicação no replay recusado.
**Limites explícitos:** a ponte é só do anúncio `company_sale`; outras modalidades não foram traduzidas nem habilitadas. O consumidor tem referência textual privada do mandato, não upload/scan desse ficheiro. Não inferir organização por texto ou associação do autor; grants restritos a organização não ganham âmbito global. A dupla aprovação legada mantém estados/histórico anteriores e é divergência registada face à revisão/publicação canónica; não é uma nova exigência de nomeações da Tempo. Nenhum estado/global/regra real foi ativado.
Revogação/expiração/tipo incorreto/organização sem vínculo explícito não recuperam acesso pela lista antiga; Auditor ou acumulação de papéis não contorna. Prova dessas variantes é policy/SQL em transaçãoQA revertida, separada doHTTP normal de autoria/correção/publicação. Não consumidos jobs ou notificações externas; originalC133, permissões, outras entidades/documentos/percurso preservados. Denominadores agora17interesses/1Balcão/3anúncios, pois existe um anúncio próprio novo; snapshotB6de17/1/2 continua histórico válido.
### COUNTRY02, A/B e C37 — estado e próximo ato
| Elemento | Estado confirmado | O que falta |
| --- | --- | --- |
| COUNTRY02 | Ativo, flag ligada; preservado | Nenhuma nova instalação/libertação. Uso depende apenas do âmbito legítimo da organização existente. |
| A/B | Cenários aceites emQA, não flags de produção | Para uso do percurso no ativo: revisão delimitada/bundle/configuração, backup-restauro correspondente, prévia autenticada da extensão exata e ativação específica. Sem repetir A/B já válidos. |
| C37 | Falha de autenticaçãoQA18 encerrada | Nenhuma ativação própria nem repetição do login por causa deste lote. |
Leitura ativa sem escrita: `2026_10_09_190000_prepare_investor_path` **ausente**, colunas `investor_journeys.path_definition_id`/`journey_steps.path_detail` ausentes e `INVESTOR_PATH_ENABLED=false`. Outras migrations contêm190000 no nome, mas são parâmetros fiscais/Balcão antigo e não demonstram essa extensão. `option-B7-active-path-read.json`.190000não é dependência do workflow isolado e nenhum pacote foi aplicado aqui.
C135 continua apenas na aceitação visual, sem chamadas/resets novos; mesmos oito percursos preparados. C132 mantém o registo final para decisão, ações conhecidas concluídas/quatro recuperações/limitações históricas; nenhuma nova investigação nem bloqueio deB. Candidata final e ativação pendentes. [Lista corrente](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito), [mesmos22grupos](saldo-opcao-B.md). Retratos anteriores abaixo preservam história, não o saldo corrente.
**L1.5 delimitado por leitura da peça:** o PDF sintético já guardado contém só o aviso de simulação e o rótulo da operação; não identifica marca, titular/licenciante ou território licenciado. Falta uma peça sintética específica e coerente com o contrato56, preservando o original e reutilizando scan/recuperação/revisões anteriores onde válidos. Não é nova validação jurídica nem outro ensaio de royalties. Prova: option-B7-franchise-license-gap.json.
**Complemento do mesmo C143 — entrada no menu:** a configuração comum não continha ligação à revisão de negócios. QA agora fornece `businessReviewUrl` pela policy do servidor e o menu «Parcerias → Revisão de negócios» para Validador/Publicador autorizados. HTTPprops e função de navegação reais: um link24/25, zero21/23/31/visitante, sem `manage-portal`; rota200. Compilação de produção e typescheck aprovados,159assets preparados, appJS carregado porHTTPS com hash correspondente. Não é prova de clique/renderização/foco: cenário7L4 continua aberto. Delta final deste incremento: **cinco fontesQA** (policy/controlador/middleware e dois componentes de navegação) e recompilaçãoQA; fonte/bundle/configuração ativos preservados. O ZIP intermediário5ec93876855f, antes da entrada no menu, está preservado como referência, não é a entrega final deste incremento. ReversãoQA recupera as cinco fontes e o manifesto anterior guardados, preservando assets imutáveis e dados/cifra/histórico.
**Estado final de C143 — três funções definidas pela Tempo:** a restrição de código que exigia dois Validadores distintos foi removida somente no modo `profiles-v1-company-sale`, depois de registar a origem/decisão em `option-B7-legacy-approval-decision.md`. O mesmo Validador autorizado conclui os dois passos existentes; o Promotor não aprova o próprio anúncio e o Publicador é distinto de todos os aprovadores, mesmo com múltiplos papéis. Estados/IDs/histórico intactos; ambientes exclusivamente legados mantêm a regra anterior. Não há necessidade de quarta pessoa ou nova designação real.
Variante afetada por HTTP: **21Promotor →24Validador →25Publicador**, publicação/teaser privado separado/recuperação noutra sessão, replay403sem duplicação. SQL: versão8,8revisões cifradas/hash,7transições/uma publicação, modo de autorização nas metadata; caso anterior16preservado. Denominadores agora17interesses/1Balcão/4anúncios devido à variante nova, não repetição duplicada. Provas `option-B7-three-actor-HTTP.json` e `option-B7-three-actor-SQL.json`. O saldo mantém10/18técnicas satisfeitas, oito executáveis/oito visuais e18–31h; nenhum critério novo. Delta final: **seis fontesQA**; bundle recompilado159assets já verificado, sem outra recompilação após este últimoPHP. As versões intermediárias de cinco fontes e as recusas do segundoValidador são histórico anterior ao ajuste, não o comportamento final.
<!-- /option-B7-permissions-progress-20261013 -->
<!-- option-B6-finite-progress-20261013 -->
## Opção B — saldo das listas após o incremento QA
**9/18 posições técnicas satisfeitas;9ainda executáveis; oito percursos visuais abertos emL4/C135.** Isso conta posições da checklist, não requisitos globais nem percentagem do produto. Nenhum critério visual novo encerrado. A/B,C37,COUNTRY02 e o âmbitoB preservados; ativações e candidata final pendentes.
| Lista | Satisfeito tecnicamente | Restante técnico | Estimativa restante |
| --- | --- | --- | --- |
| L1 Contratos/acessos | L1.1 revogação; L1.4 obrigações de parceria | L1.2 peças de terra32;L1.3 mandato/divulgação no anúncio próprio e permissões;L1.5 titularidade/licença56 | 7–12h |
| L2 Países/estatísticas | L2.1–L2.5, cada ramo com prova própria ou reutilização explícita | Zero técnico desta lista; apresentação noL4 | 0h técnico |
| L3 Território/documentos | L3.2 mapa/filtrosAPI;L3.3 carteira corrigida | L3.1 seletores/parcela32/56;L3.4 entidadefundiária/contexto;L3.5 camposBalcão;L3.6 JPEG/DOCX/XLSX;L3.7 PDF/foto do caso;L3.8 anexo/retirada/reciboTXT | 7–12h |
| L4 Aceitação/consolidação | A/B e C37 reutilizados nos seus âmbitos | Oito percursos preparados; coleta visual conjunta e revisão/backup-restauroQA correspondente | 6–10h |
**Reestimativa:20–34h =4–8correções+5–9implementação restante+11–17verificação/consolidação.** A faixa25–43anterior foi conservada sem dedução por item; não era arredondamento de consumo medido nem reestimativa documentada de maior complexidade. Agora remove-se o trabalho técnicoL2(4–7h), L3passa8–14→7–12 após provas/fix da carteira; L1mantém7–12 porque as três posições abertas incluem a compatibilidade de permissões concretamente identificada no consumidor antigo de negócios. L4continua6–10, contado uma única vez. EsperaC135, incidente, dispositivos reais, foraB e ativação excluídos; não é prazo garantido.
Provas novas: manifestação empresarial guardada/submetida/noutra sessão, residênciaPT/constituiçãoFR/origemBR e snapshotv2 preservado após mestreZA→MZ→ZA; recibo/repetição e denominadores16→17→17/1/2. O ramoempresa C133 já estava provado: interesses14/15 sãoempresa, confirmado porSQL, sem nova submissão. Parceria34: seis obrigações textuais, só três revisões afetadas reabertas, corporate_screening intacto, condição legal resolvida24 e publicação interna25. Documentos/períodos financeiros conservados.
Mapa: setor pelo slug existente, província, maturidade7/8, vazio e exclusão de privados; oito resultados sem coordenadas públicas são apresentados pelaAPI como `missing_public_site_coordinates`, semmarkers/áreas inventados. Exportação anterior reutilizada. **C142** carteira de corredor503→200, fonte de projeto preservada; apenas umPHPQA mudou, sem recompilação. Ocorreu erro no harness sobre a forma dos props; corrigido no script, sem outra falha de produto.
Dependência executávelL1.3: listas de triagem/revisão/aprovação/publicação do anúncio antigo estão vazias emQA e a policy exige ainda `manage-portal`; os perfis21/24/25 aprovados não o têm. Reconciliar o consumidor com esses papéis/âmbitos, preservando sua autoria/histórico/independência, sem transformar administração universal ou uma terceira pessoa real em exigência nova. Não alterados configuração/papéis neste incremento. C135 não causa esse bloqueio técnico.
**C132:** [registo final para decisão](C132-incidente-contido.md), ações conhecidas pendenteszero, quatro contas recuperadas e sessões tratadas por provas anteriores. Proposta contido/remediado com limites históricos; início/exfiltração indeterminados, sem afirmar ausência de acesso indevido. Decisão formal ainda a registar pelo responsável, sem bloquearB.
[Checklist nominal atual](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito), [mesmos22grupos](saldo-opcao-B.md), `option-B6-four-lots-plan.json` e provas agrupadas preservam correspondência. Relatos anteriores abaixo são retratos datados, não o saldo atual. Nenhuma alteração na base/configuração/bundle ativos, nova instalação ou investigaçãoC132. C135: não houve chamada/reset neste incremento; mantém-se a indisponibilidade documentada do provider e o pedido de suporte preparado.
<!-- /option-B6-finite-progress-20261013 -->
<!-- option-B5-finite-progress-20261013 -->
## Opção B: quatro lotes delimitados e duas lacunas técnicas resolvidas
[Lista finita no backlog existente](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito); [mesma tabela de22grupos atualizada](saldo-opcao-B.md). Estimativa mantida25–43h: L1 7–12, L2 4–7, L3 8–14, L4 6–10; sem sobreposição nem alegação de horas consumidas.18 posições técnicas e8percursos de coleta visual; posições não são novosIDs. A/B/C37 preservados, ativações separadas.
- **L1.1 técnico satisfeito:** Superutilizador sintético27 revogou Promotor22 porHTTP; sessão anterior401, edição e escrita na nova sessão403; leitura200 pelo Validador restante mantida, sem ações operacionais por conflito. Repetição produz um só evento/revisão. Fixture reabilitada pelo pedido documental/revisão independente no mesmo tipo/organização, com novo grant; o grant revogado nunca foi reposto. Oportunidades/documentos/tarefas/dossier/representações/dupla preservados.
- **L2.3 técnico corrigido:** `requestSupport` gravava `individual` para todas as categorias. Reproduzido no controller/SQL em transação revertida; não foi provaHTTP antes. Corrigida apenas a factoryPHP daQA para `entity→empresa`, `individual→individual`, restantes→`outro`, preservando a categoria original emmetadata. Novo apoio de entidade porHTTP: paísZA/origemPT, quatroIDs, recuperação noutra sessão, replay202 mesmo recibo; alteração409, outro titular404/anónimo401. O recibo individual anterior continua202; nenhum valor histórico/hash reescrito.
- **L2.5 denominadores deste apoio demonstrados:** interesses15→16 na submissão e16 no replay; Balcão1/anúncios2 intactos. SQLconfere16/1/2 separadamente, com um caso/interesse/recibo/consentimento/outbox/evento. Não somar essas coleções como investidores únicos. Outros dois ramos nominais L2.2/L2.4 continuam na lista.
- **C135 independente:** inventário vazio e `No browser is available` pela ferramenta permitida, antes de selecionar tab. Sem reset/contorno. Nenhum critério visual novo encerrado. O canal de suporte continua indisponível para submissão; pedido preparado.
Delta do produto: **umPHP somente naQA**, backup da fonte anterior privado, lint aprovado, bundle inalterado e recompilação desnecessária. Código/configuração/bundle ativos conferidos por hash e preservados; nenhuma base ativa alterada. Não é revisão final ou autorização de implantação. Reversão técnicaQA: recuperar a fonte anterior guardada e limitar o ensaio do ramo; conservar o novo pedido, IDs, histórico e revogação. Não voltar a ativar o grant revogado nem reclassificar submissões antigas como parte da reversão.
**C132 separado:** todas as ações corretivas conhecidas e quatro recuperações concluídas; permanece a proposta “contido e remediado, com limitações da investigação registadas”, para decisão do responsável. Início exato/exfiltração indeterminados, sem afirmar ausência de acesso indevido. Não há outra ação técnica de incidente conhecida a inventar por causa do histórico incompleto.
<!-- /option-B5-finite-progress-20261013 -->
<!-- option-B-five-plan-reference-20261013 -->
**Saldo operacional atual:** [quatro lotes e listas finitas no backlog existente](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito); a tabela de22grupos permanece a mesma. Total25–43h mantido; C135 ainda sem browser permitido. A/B/C37 e ativo preservados.
<!-- /option-B-five-plan-reference-20261013 -->
<!-- option-B4-exit-table-20261013 -->
## Opção B: tabela de 22 grupos atualizada e proposta de encerramento C132
[Tabela única dos critérios de saída](saldo-opcao-B.md). B4 demonstra coedição em correção apenas no projeto 30, condição interna preservada/reverificada, aprovação 24/publicação 25/nova sessão; revogação/visual pendentes. Oito contratos atuais compatíveis em leitura e oito Responses recuperados por API, sem repetir os workflows válidos. Não há delta do código do produto/bundle/permissões; ativo intacto.25–43 h continuam estimativa ligada ao saldo, não horas consumidas nem prazo garantido. A/B/C37 preservados.
**C132: encerramento proposto**, contenção/remediação/recuperação 14–17 concluídas. Sem ação técnica corretiva conhecida pendente; histórico incompleto é limitação documentada, não investigação indefinida. [Proposta e condições de reabertura](C132-incidente-contido.md). Não se registou decisão do responsável em seu nome.
<!-- /option-B4-exit-table-20261013 -->
<!-- option-B3-exit-table-20261013 -->
## Opção B: tabela única dos critérios de saída
@@ -1,45 +1,298 @@
<!-- case32-resubmission-20261014 -->
## Percurso3 — pedido de correção, gravação e ressubmissão comprovados; falta edição efetiva
Responsável informou «acç\ao realizada». Em QA isolada, leitura confirmou: QA24 solicitou correções em13/10 às22:57:27UTC (v109); QA21 guardou às23:00:55UTC (v110) e ressubmeteu às23:01:48UTC (v111, ciclo13, revisão16). Cada ação tem auditoria própria. Estado atual **Submetida para validação**. O responsável esclareceu **«nao alterei nenhum campo»**; nenhum caminho canónico mudou. Não foi identificada perda de dados. Pedido de correção/guardar/ressubmeter ficam demonstrados; a alteração efetiva do texto continua pendente. A indicação anterior «Descrição» era imprecisa: o campo no editor privado é **Necessidade e proposta**.
Contrato fundiário, autoria, organização e snapshot de recursos preservados. Quatro pareceres anteriores foram mantidos, com hashes e âmbitos válidos: cadastral_screening, land_legal_review, community_environment_review e competent_authority_clearance. Nenhum reaberto e nenhuma condição aberta; não os repetir sem alteração relevante.
Próximo trecho para o único critério de edição ainda não executado: QA24 solicita correção diretamente em /32/view, com fundamentação e indicação concreta; não é necessário repetir Iniciar validação (request_correction é permitido em submitted). Após Correções solicitadas, QA21 altera Necessidade e proposta, guarda e ressubmete. Só os pareceres afetados pelo novo conteúdo devem ser revistos; depois aprovação24 e publicação restrita25. Sem flexibilização de permissões ou mudança automática de estado. Restantes provas próprias de área/documentos/foco/teclado/feedback de sucesso permanecem abertas.
Evidências: case32-correction-resubmission-fields-readonly-20261014.json e case32-resubmission-manual-recorded-20261014.json. Base396c/A-B/C37/COUNTRY02 e separação de C132 preservadas; nenhum novo código de produto, dado ativo ou candidata final.
<!-- /case32-resubmission-20261014 -->
<!-- case32-edit403-20261014 -->
## Percurso 3 —403 de edição identificado; usar a revisão na sessão QA24
O responsável relatou403 em /minhas-oportunidades/32/edit. A auditoria identifica esse GET como **QA24 (Validador)**, em13/10 às22:47:58UTC. QA24 tem leitura/revisão; não âmbito de edição Promotor. O caso32 continua **Em análise**, sem pedido de correções gravado. QA21 mantém âmbito, representação e autoria válidos; o estado atual impede a sua edição. Uma avaliação apenas em memória com needs_information permite a edição a21, sem persistir mudança ou simular aceitação.
Sequência atual: **QA24 /32/view → preencher Fundamentação e Campos ou documentos a corrigir → Solicitar correções → Correções solicitadas → mudar para a sessão própria QA21 → /32/edit → corrigir/guardar/ressubmeter**. Não repetir o início da revisão nem abrir /edit na sessão Validador. A recusa foi prevista pelas permissões/estados existentes; não flexibilizar papéis ou forçar estado. Evidência: case32-edit-403-readonly-20261014.json. A/B, C37, COUNTRY02 e C132 preservados; ativo intacto. Interface e restantes transições mantêm critérios próprios.
<!-- /case32-edit403-20261014 -->
<!-- 20261014_C146_manual_field_feedback -->
## Percurso 3 — validação de campo vazio confirmada manualmente
[C146 / confirmação manual 14/10/2026] QA24 relatou «ja feito». Leitura confirmou caso32 ainda Em análise, sem request_correction. Depois copiou o feedback: «A ação não foi enviada. Corrija os campos indicados. Campos ou documentos a corrigir: Indique pelo menos um campo ou documento a corrigir.» Isto demonstra a apresentação da validação do campo vazio, sem envio; não é nova rejeição HTTP, execução ou aprovação. Início da revisão preservado. Foco/teclado, sucesso, renovação na mesma janela e transições seguintes não inferidos.
[C146 / saldo atual] Mensagem de validação de correção vazia confirmada manualmente; não repetir esse erro. Preencher Campos ou documentos a corrigir com uma indicação concreta e solicitar correções. Depois21 corrige/ressubmete,24 revê/aprova,25 disponibiliza restrito. Foco/teclado/resultado de sucesso e renovação permanecem sem prova. Área/documentos têm os critérios próprios; A/B/C37 e critérios territoriais aceites preservados.
Evidência: `case32-correction-field-feedback-manual-20261014.json`. C146 permanece parcial; não repetir o erro já apresentado nem o início da revisão. Ativo intacto, base396c/A-B/C37/COUNTRY02 preservados.
<!-- /20261014_C146_manual_field_feedback -->
<!-- case32-manual-start-review-20261014 -->
## Percurso 3 — início da revisão confirmado; correções ainda por solicitar
Após «refiz o processo», leitura QA confirmou **Iniciar validação** por QA24 em **13/10/2026, 22:30:15 UTC**, ciclo12, revisão15 e auditoria correspondente. Estado atual **Em análise**, versão108. O pedido de correções ainda não foi gravado. Diagnóstico exclusivamente de leitura; não executou transições nem alterou dados ativos.
QA24: preencher «Fundamentação» e «Campos ou documentos a corrigir, um por linha»; clicar «Solicitar correções». Esperado: «Correções solicitadas». Não repetir «Iniciar validação». Depois, QA21 corrige/guarda/ressubmete, QA24 revê os pareceres afetados e aprova, QA25 disponibiliza com acesso restrito. Seletores/mapa/recuperação e submissão inicial permanecem aceites. Não inferir abertura documental, área/unidade, mensagem de sucesso, renovação na mesma janela, acessibilidade ou fecho integral a partir da confirmação genérica.
C146 permanece aberto para apresentação visual do feedback e recuperação da autenticação. Delta QA cad3e36b946d sobre a base396c e f14 preservados; nenhum limiar MFA, papel ou âmbito alterado. C135 limita o transporte automático. A/B, C37, COUNTRY02 e separação de C132 preservados. Evidências: case32-review-correction-retry-readonly-20261014.json e case32-manual-start-review-recorded-20261014.json.
<!-- /case32-manual-start-review-20261014 -->
<!-- C146-reauth-QA-20261014 -->
## C146 — renovação na mesma janela, preparada em QA em14/10/2026
Os cliques recentes receberam403. Perfil/âmbito/independência válidos. A leitura correta da sessão cifrada encontrou sessões de MFA de idades diferentes; a leitura anterior unreadable não permitia concluir expiração e a afirmação anterior fica corrigida. Não identificar uma aba/browser somente pela linha de sessão.
Delta **cad3e36b946d**, sobre396c/f14ebb3cb232 preservados: cinco ficheiros e159recursos compilados. Capacidades do papel continuam visíveis, desabilitadas com aviso de renovação. POST permanece protegido por MFA recente; a recusa403 indica renovação. Entrar novamente nesta janela reutiliza logout/login/Fortify/MFA e o redirecionamento protegido ao caso32. O número900 é da implementação existente, não nova regra da Tempo, e não foi alterado. Papéis/âmbitos/independência, schema, contas, dados, cifragem e limpeza do histórico mantidos.
Política de segurança, transporte, HTTP normal de sessão/retorno, TypeScript, compilação e recursos servidos passaram. As sessões reais do utilizador não foram alteradas. Os ensaiosHTTP próprios fizeram apenas login/MFA, recusas controladas,logout e redirecionamento; caso32/ETag/dados intactos. Interface, botão de renovação e início de validação continuam por observar; não fechar pela contagem dos testes. C135: inventário permitido mostra IAB/MCPApps, semChrome local; não foi repetida a abertura que falhou na confiançaTLS nem reinicializado o transporte. Ativo intacto, A/B/C37/COUNTRY02 eC132 preservados. Manifesto/reversão: case32-reauth-delta-manifest-20261014.json.
<!-- /C146-reauth-QA-20261014 -->
<!-- C146-feedback-QA-20261013 -->
## C146 — feedback do workflow preparado em QA, aceitação visual pendente
QA24 confirmou execução dos cliques do caso32 e ausência de mensagem no endereço correto. A auditoria identificou sete rejeições422, sem início de revisão ou pedido de correção persistidos. A confirmação é um relato de execução, não de sucesso. O campo concreto de cada tentativa antiga permanece indeterminado.
Delta QA **f14ebb3cb232**, sobre a base **396c691930bc** preservada: um TSX de feedback e159recursos compilados. Erros passam ao início do bloco com foco e indicação adjacente aos campos; confirmação de sucesso conservada após navegação. As validações no cliente espelham exigências já existentes no servidor. Sem mudança de regras, permissões, MFA, schema ou dados de negócio. O ensaio técnico de respostas passou, dados/ETag/estado intactos e logout da sessão própria; TypeScript e compilação passaram. A melhoria experimental da auditoria PHP foi retirada por não ser necessária à correção. Os dois primeiros ensaios HTTP tiveram erros do controlador de teste e estão preservados como limitações; o terceiro corrigido passou.
A sessão manual restante de QA24 já ultrapassou a janela existente de MFA para as ações; renovar sessão antes de observar o trecho corrigido. Isso não invalida o login/MFA já aceite. A interface corrigida, foco e transições continuam por observar. Caso32 ainda submetido; QA21 não deve ressubmeter sem pedido de correção gravado. Evidências e reversão: case32-feedback-delta-manifest-20261013.json. Ativo intacto, A/B/C37/COUNTRY02 preservados; candidata final e ativação continuam separadas.
<!-- /C146-feedback-QA-20261013 -->
<!-- case32-manual-submission-20261013 -->
## Percurso 3 — submissão inicial confirmada, revisão seguinte com QA24
O responsável confirmou «enviado» após a orientação de submissão do caso 32 por QA21. Leitura em transação SQL READ ONLY na QA **stability_consumers_20261011_084534_test:55441** confirmou: novo evento submit de QA21, passagem de needs_information para submitted, versão 106, ciclo 12 e auditoria workflow_submit da mesma versão. Nenhuma ação HTTP, transição ou escrita em dados foi executada pelo diagnóstico.
Registado somente o critério de **submissão inicial**, nas provas existentes do percurso 3. Seletores/mapa/recuperação continuam confirmados. Área/unidade, abertura de documentos, pedido de correção, ressubmissão, revisão independente, aprovação, disponibilização restrita e controlos de acessibilidade ainda precisam de confirmação própria. «Enviado» não encerra esses critérios nem o percurso completo.
A lista de ações de QA24 apareceu vazia na primeira consulta CLI. Diagnóstico do contexto: canView, âmbito de Validador, autorização operacional, configuração MFA e atribuição estão válidos, sem conflito. OpportunityProfileWorkflow::actions exige também sessão MFA autenticada recente; a consulta CLI não tem essa sessão. A lista vazia não constitui falha de permissões do portal. Nenhuma sessão foi simulada, segredo lido para autenticação ou privilégio alterado. A observação seguinte é pela sessão própria de QA24 em **/minhas-oportunidades/32/view**, com «Iniciar validação» e «Solicitar correções».
Evidências: `case32-manual-submission-readonly-20261013.json`, `case32-reviewer-context-readonly-20261013.json` e `case32-manual-submission-recorded-20261013.json`, ligadas ao registo existente `acceptance-396c-results.json`. Base396c e estados globais da matriz preservados; nenhum novo requisito, alteração no ativo ou candidata final. COUNTRY02, A/B, C37 e separação de C132 mantidos.
<!-- /case32-manual-submission-20261013 -->
<!-- case32-resource-notices-20261013 -->
## Percurso 3 — conferência documental apresentada, sem bloqueio de submissão identificado
O responsável colou a secção «Conferência e pendências». O caso 32/QA21 é o contexto imediatamente anterior; não foram novamente indicados URL ou conta. As 16 mensagens coincidem exatamente com a conferência atual do caso 32: rastreabilidade da localização ausente, uma localização com âmbito distrital, 13 avisos de metadados nos seis anexos sintéticos e a informação de separação entre conferência e workflow.
Leitura guardada na QA **stability_consumers_20261011_084534_test:55441**, em transação SQL READ ONLY: estado **needs_information**, ação **submit** disponível para QA21; validação canónica de submissão e bloqueios da entrega sem erros. A lista é produzida por OpportunityResourceController::assessment e não é consumida como bloqueio por OpportunityProfileWorkflow. «issuer» significa emissor; «edition», edição/versão; «category», categoria do anexo. Estas ausências continuam registadas, sem inventar metadados. A aceitação anterior das fontes oficiais mantém-se; os anexos sintéticos QA não são classificados como oficiais nem comprovam decisões externas.
Evidências: `case32-resource-assessment-manual-observation-20261013.json` (apresentação manual, requisito existente AUD-UI-01) e `case32-resource-notices-readonly-20261013.json` (diagnóstico SQL/serviços/ficheiros). A apresentação desta lista não demonstra abertura dos documentos, área/unidade ou nenhuma transição. Esses critérios continuam pendentes, sem repetição dos seletores/mapa/recuperação já confirmados. Próxima ação na ficha do caso 32: conferir os dados/documentos e «Submeter para validação», com fundamentação do ensaio. Nenhuma submissão foi executada por este diagnóstico.
Zero alteração de código, compilação, metadados, permissões ou base ativa. Base396c, COUNTRY02, A/B, C37 e separação de C132 preservados; candidata final não declarada.
<!-- /case32-resource-notices-20261013 -->
<!-- qa21-manual-access-success-20261013 -->
## QA21 — acesso e MFA confirmados manualmente
O responsável confirmou: «tens razao minha falha ja consegui entrar usando MFA». Registada a recuperação do acesso de **QA21**, após a orientação para **https://portal-investidor.test:18445/login**. O URL é o do contexto imediatamente anterior; não foi novamente transcrito na confirmação. A rejeição atual deixa de bloquear o ensaio manual. Não houve alteração de password, MFA, permissões, código ou dados.
Evidência: `qa21-manual-access-success-20261013.json`, ligada ao grupo existente **MANUAL-B396C-AUTH6** e aos requisitos **AUD-PROFILE-24 / AUD-UI-01**. Preservam-se as confirmações anteriores de autenticação das seis contas e de seletores/mapa/recuperação do percurso 3. Esta confirmação comprova entrada e MFA; não comprova novas transições, logout ou dashboard novamente. Nenhum estado global da matriz foi alterado.
Próximo critério: QA21 confere área/unidade e documentos existentes do caso 32 e submete; QA24 solicita correção, revê e aprova independentemente; QA25 disponibiliza com acesso restrito. C135 continua separado, pois o acesso do navegador automático ainda falha na confiança TLS. Base **396c691930bc**, COUNTRY02, A/B, C37 e C132 preservados; candidata final e ativação continuam pendentes.
<!-- /qa21-manual-access-success-20261013 -->
<!-- qa21-address-correction-20261013 -->
## QA21 — divergência do endereço de acesso identificada
O responsável indicou **http://127.0.0.1:18445/login**, rejeição no ecrãEmail/Password e texto comForgot password apontando **http://127.0.0.1:18118/forgot-password**. GETsem credenciais confirmou: HTTP18445 responde400 porplaintext numa portaTLS; ologin18118 responde200. A QA prevista é **https://portal-investidor.test:18445**, runtime stability_consumers_20261011_084534_test:55441 confirmado. A password atual deQA21 já foi aceite nesse destino porAPIatéMFA.
A divergência de esquema/hostname/ambiente é concreta. Não foi observado diretamente como o navegador manual chegou aoHTML18118; não afirmar que a rejeição foi produzida pelaQA18445 nem reatribuir retrospectivamente confirmações anteriores. Usar noChromium local oURLHTTPSnomeado, emailprofiles-v1-promoter@example.invalid e a password existente doTXT privadoQA21. Nenhuma rotação depassword/MFA, alteração deconfiguração/serviços ou escrita emdados. Falta a confirmação manual no endereço corrigido; não fechar o percurso3ou reabrirA/B/C37.
Evidência: qa21-address-mismatch-readonly-20261013.json. RespostasHTTPsão diagnóstico técnico de destino, não aceitação visual. C135doIAB/certificado mantém-se separado do endereço incorreto da tentativa manual. COUNTRY02/base396c/C132 preservados.
<!-- /qa21-address-correction-20261013 -->
<!-- qa21-password-guidance-20261013 -->
## QA21 — rejeição de password relatada e fonte local corrigida
O responsável relatou password rejeitada em18445/login, QA21. Foi confirmada por leitura a baseQA stability_consumers_20261011_084534_test:55441, a identidade profiles-v1-promoter@example.invalid e a correspondência da password do cadastro privado/HTML individual com o hash atual. MFA/email continuam confirmados; envelope local/cifra consistente. O onboarding-actors-local.json do ensaio antigo não contém essa identidade atual. O valor efetivamente digitado pelo responsável não foi recolhido, pelo que a origem da rejeição manual não foi afirmada como certa.
Um único ensaio API direcionado à falha nova confirmou o mesmo destino web: POST/login200, password aceite e desafioMFA solicitado; nenhum códigoMFA enviado, autenticação não concluída. Não é prova visual nem reensaio deA/B/C37. A tentativa de limpeza porPOST/logout devolveu401 por ainda não haver autenticação; não afirmar invalidação dessa sessão pendente. O cookiejar do cliente foi descartado, sem cookies/segredos persistidos nas evidências ou invalidação de sessões de outros utilizadores.
Fonte local simplificada deQA21: `storage/app/private/investmoz-v2/portal-audit/qa21-password-18445-local.txt`, com a password existente, fora do webroot e sem novo valor/rotação. Não anexar oTXT ouQR à conversa. Usar https://portal-investidor.test:18445/login e o email indicado, copiar somente o conteúdo doTXT paraPassword. Contas/MFA/permissões, código e dados de negócio intactos. Falta confirmar esse passo na interface; manter o percurso3 parcial e as confirmações históricas, sem reabrirC37QA18.
Evidências sanitizadas: qa21-password-diagnosis-readonly-20261013.json; qa21-password-login-diagnosis-20261013.json; qa21-current-password-local-prepared-20261013.json. Zero alterações no ativo ou dados de negócioQA; apenas sessão/limitação de tentativas do ensaio HTTP próprio. Base396c, COUNTRY02 e decisãoC132 preservados.
<!-- /qa21-password-guidance-20261013 -->
<!-- p3-browser-tls-stop-396c-20261013 -->
## Tentativa do percurso3 — navegador disponível, TLS bloqueado
A ferramenta permitida voltou a selecionar **Codex In-app Browser / iab / ID2**, com abas disponíveis para criação. A abertura de https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html#p3 parou em **ERR_CERT_AUTHORITY_INVALID**, antes de login ou ações do portal. A página interna de erro também é recusada pela política URL da ferramenta; não houve insistência, reset, downgrade ou contorno de TLS. A aba temporária não foi marcada como entregável; a tentativa única de fecho também foi recusada pela política do documento interno.
Comparação por leitura: handshake TLSv1.3 do cliente do sistema valida cadeia e hostname; o exemplar servido é o mesmo do preparo, SHA-256 `df368329204106b6a182c79e7e5c98a8e73890479cb7bca7c3d0928076a60ed5`, SANportal-investidor.test, válido até09/01/2027. A cadeia apresentada pelo navegador da ferramenta não pôde ser inspecionada. Há uma diferença concreta de validação entre os clientes; não se afirma a causa interna nem se altera o certificado do portal por suposição. Capacidades expostas: visibility/viewport, sem ação de confiança emCA. Evidências: acceptance-396c-P3-IAB-TLS-stop-20261013.json e acceptance-396c-QA-TLS-readonly-20261013.json.
**C135 continua bloqueio da execução automática dos passos restantes**, agora na abertura HTTPS. Seletores/mapa/recuperação do cenário3 e login/MFA/dashboard das seis contas permanecem confirmados manualmente. Área/documentos/submissão/correção/revisão/aprovação/publicação ainda não observados nesta tentativa. Sem novos testes funcionais, credenciais transmitidas, alterações de dados, código, serviços, flags, certificados ou permissões. Base396c preservada; COUNTRY02/A-B/C37 e decisão C132 mantidos. Sem candidata final ou ativação.
<!-- /p3-browser-tls-stop-396c-20261013 -->
<!-- manual-auth-p3-396c-20261013 -->
## Confirmação manual parcial — base396c691930bc
O responsável confirmou **login, MFA e dashboard** de QA17, QA21, QA22, QA24, QA25 e QA2; no **percurso3/caso32, seletores, mapa e recuperação**. Fonte: mensagens da conversa; `outputs/investmoz-audit-current-20261012/acceptance-396c-manual-confirmation-20261013.json`. São declarações manuais, não capturas automáticas. Conta exata e modo da recuperação do percurso3 não foram detalhados; não inferir esses dados. QA2 existe nesta QA e não foi remapeada para27/contaativa.
Associado às cinco linhas existentes: AUD-PROFILE-24 e AUD-UI-01 (autenticação); AUD-GEO-02, AUD-GEO-03, AUD-FIELD-030 e AUD-UI-01 (seletores/mapa/recuperação do consumidor32). Sem novosIDs ou fechos agregados. Matriz/backlog3401linhas cada; estados globais e3396linhas não relacionadas preservados byte a byte. API/SQL existentes não repetidos.
**Não repetir esses ensaios.** No cenário3 restam área/unidade/documentos, submissão/correção/revisão/materialidade/aprovação/publicação e teclado/foco/rótulos/erros não relatados. Nos outros sete cenários restam as ações específicas do roteiro; a autenticação já confirmada não volta a ser critério de ensaio. Um cenário parcial, sete sem confirmação funcional; nenhum dos oito foi declarado integralmente concluído. C135 continua no transporte automático, sem invalidar as observações manuais.
Entrada única atualizada: https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html. Código/compilação/base preservados; documentação/evidências atualizadas. COUNTRY02, A/B eC37 preservados; C132 separado. Zero alterações no ativo ou dadosQA. Candidata final/ativação e backup-restauro da revisão final continuam pendentes. Mantém-se6–10h como reserva de verificação/consolidação; esta confirmação não quantifica horas consumidas ou justifica uma redução numérica precisa.
<!-- /manual-auth-p3-396c-20261013 -->
<!-- acceptance-base-396c-20261013 -->
## Base da aceitação visual fixada —396c691930bc
Decisão da Tempo: fixar o incrementoB8 como base, sem ampliar critérios ou repetir a bateria técnica. ZIPbase SHA-256 `5b3676a25555e140b783350eb9379a6911dcf1ef62bf0d67271ded5244d288dc`; código/bundle/âmbito imutáveis. C135persistiu na ferramenta permitida: inventárioCUA vazio e sky.list_apps falhou antes de obter janela, nativepipe/oserror2. Sem reset/bypass/alteração de serviços.
Entrada única manual: **https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html**. [Roteiro dos mesmos oito percursos](aceitacao-B-396c691930bc.md), contas sintéticas já existentes/MFA conferido e ficheiros de acesso2FAS privados individuais. Nenhum segredo no roteiro/ZIP/conversa, nenhuma nova conta ou mudançaMFA.
PreparaçãoQA para uma passagem:30/31/32/33/34/56 abertos para edição needs_information pelo mecanismo existente, contratos/documentos/publicações anteriores preservados;54/15/jornadas existentes intactos. Um rascunho sintético no consumidor legado foi preparado para observar a sequência pelos três papéis, sem submissão/aprovação/publicação automática. Isso prepara estados para a interface; não acrescenta provas técnicas nem fecha os oito visuais. O primeiro pedido de preparação30 teve erro de leitura deprops no harness, retomado sem repetir request_revision; não é falha do produto.
Tentativa CUA em 13/10/2026, 18:30:03 UTC: inventário vazio e `No browser is available` ao selecionar o navegador para a entrada QA. Bloqueio C135 antes de abrir a página/autenticar; oito percursos registados como **não observado**, nenhuma conta utilizada e todos os passos seguintes não observados. Evidência comum: `outputs/investmoz-audit-current-20261012/acceptance-396c-cua-attempt-20261013_183003.json`; resultados em `acceptance-396c-results.json`, com o registo anterior preservado. Não foi observada falha funcional nem repetida prova técnica. Corrigir só falhas efetivamente observadas; depois dos oito percursos aceites, consolidar revisão/manifesto/limites, backup-restauro QA e procedimento. Sem candidata final ou ativação; estimativa 6–10h continua de verificação/consolidação, não consumo ou prazo garantido. COUNTRY02/A/B/C37 preservados; C132 separado. Matriz/IDs/estados técnicos não alterados.
<!-- /acceptance-base-396c-20261013 -->
<!-- option-B8-finite-execution-20261013 -->
## Opção B — execução das posições técnicas restantes em QA
**18/18 posições técnicas da checklist satisfeitas; oito percursos visuais continuam abertos.** A indicação de nove posições vinha do saldo anterior: L1.3/permissões do anúncio antigo já estava tecnicamente encerrada pelas provasB7. Foi conferida, sem repetir o percurso. Neste incremento foram executadas as **oito** restantes; nenhum fecho foi atribuído ao texto reenviado. Isso não é percentagem do produto nem encerramento dos requisitos agregados.
QA: `https://portal-investidor.test:18445/dashboard`, PostgreSQL `stability_consumers_20261011_084534_test:55441`. CabeçalhoQA conferido em todos os pedidos de aplicação; ClamD1.5.4 real, assinaturas13/10. Estado ativo, COUNTRY02, contas/papéis/organizações, A/B e C37 preservados. C132 permanece decisão separada; não houve investigação, envio de segredos ou rotação neste lote. C135 mantém a indisponibilidade conhecida, sem novos resets, bypass ou pedidos de testes ao utilizador.
| Posição | Execução e resultado técnico | Evidência principal | Critério restante |
| --- | --- | --- | --- |
| L1.2 — terra32 | Ata/titular/esboço sintéticos próprios; scan/hash. Área declarada1100→12001.74sqm após medição12001.7448; cobertura pelo limiteINE deAncuabe. Revisões territoriais afetadas, condição legal existente resolvida24; aprovação24/publicação restrita25/nova sessão/Response. Esboço v2 com desenho preserva o textualv1. Conflito none/plano false: peças condicionais não exigidas. | option-B8-context-access-finish-HTTP.json, option-B8-map-v2-review-HTTP.json, option-B8-final-current-QA.json | Apresentação de documentos, área, mapa e transições no cenário3L4. |
| L1.5 — franquia56 | Licença sintética identifica marcaQA, titular/licenciante, territórioQA e exclusividade. Só marca/licença/legal reabrem; financeiro/confidencialidade/hash/ator/data mantidos.24→25/interna/nova sessão; originais e royalties/taxa1250 preservados. | option-B8-documents-56-review-HTTP.json | Interface do cenário6L4; nenhuma titularidade real ou catálogo público atestado. |
| L3.1 — recursos32/56 | Hierarquia/pai/país422; retirada explícita de filhosMZ→PT→MZ; quatroIDs/nova sessão. O endpoint autorizado tem3limites ancestrais, localidade sem limite próprio. Medição da parcela é SQL, sem declarar cálculo visível naUI. | option-B8-territory-HTTP.json, option-B8-spatial-diagnosis.json | Trocas por clique, limpeza visual, geometria/legenda/erros noL4. |
| L3.4 — entidade/contexto | País de constituiçãoZA preservado independentemente da localizaçãoMZ; pai422, limpar/repor filhos, recibo anterior intacto. C145 associa pedido novo explicitamente ao dossier: preparação/continuação/retorno noutra sessão, outro dossier403/422 e troca do vínculo422. | option-B8-secondary-prepare-HTTP.json, option-B8-context-access-finish-HTTP.json | Navegação/recuperação visível do contexto no cenário8L4. |
| L3.5 — Balcão | Campo existente territory_id/fonte guardado no pedido correto; não cadastrado422, hierarquia recuperada. Endpoint público do seletor tem0camadas; não se publica camada interna nem se inventa mapa autónomo do dossier. | option-B8-secondary-prepare-HTTP.json, option-B8-consumer-geometry-read.json | Seletor, fonte e mensagem de ausência visíveis no cenário8L4. |
| L3.6 — formatos | JPEG/DOCX/XLSX/PDF: MIME/hash/scan/download21/24/25/22.22 mantém leitura como Validador global, sem ganhar edição de franquia.23/anónimo403/401. Bytes repetidos422/quarentena423; PNG/WebP/worker anteriores reutilizados. | option-B8-formats-remainder-HTTP.json, scansB8 | Apresentação/download noL4; não se exige previewOffice novo. |
| L3.7 — caso fundiário | PDFata/esboço/JPEG no consumidor próprio, scan/hash/owner/nova sessão. C144 corrige o link do gestor: ownerURL404, download administrativo200/hash sob manage-portal; outro403/anónimo401. Superutilizador sozinho não recebe esse privilégio. | option-B8-secondary-verify-HTTP.json, option-B8-context-access-finish-HTTP.json, option-B8-context-compatibility.json | Link e apresentação dos anexos no cenário8L4. |
| L3.8 — Balcão/documentos | Anexo/repetição sem novoID/versão/contagem; hash/scan. Reatribuição autenticada24→25: antigo200→403nas sessões anterior/nova; novo25/owner200. ReciboTXT/protocolo recuperados, submissão repetida sem duplicação. | option-B8-secondary-verify-HTTP.json | Apresentação documental/recibo/revogação no cenário8L4. TXT não é PDF nem ACL individual. |
**Saldo por lista:** L1contratos/acessos5/5; L2países/estatísticas5/5 com provas anteriores por ramo; L3território/documentos8/8. Somente L4 mantém os oito percursos preparados e consolidação da revisão. **Estimativa restante6–10h**, antes18–31: retiram-se L1 5–9 eL3 7–12 por satisfação das suas listas, sem afirmar que essas horas foram consumidas. Correções conhecidas0h, implementação técnica da checklist0h; verificação/consolidação6–10h, incluindo tratar eventual falha concreta do ensaio e backup/restauroQA correspondente. EsperaC135, dispositivos reais, C132 e ativação excluídos; não é prazo garantido.
**Correções e compatibilidade:** sete fontesQA alteradas, recompilação/types passados e159assets, manifestoQA `a5c859cfc21e3d6ab8b0632f767830b6c8c195a4910bf8692652a44bee3a1785`. C144 reutiliza a permissão administrativa existente e mantém a rota do titular restrita; C145 acrescenta vínculo opcional explícito no payload cifrado existente e URLs de retorno, sem tabelas/contas/representações novas nem associação automática de referências textuais antigas. Dossier distinto e alteração do vínculo são recusados. A edição direta conserva vínculo existente mesmo se o percurso estiver desabilitado, sem permitir novas associações nesse estado. As cinco fases/19etapas e hashes de jornadas existentes ficaram intactos.
**Preservação e denominadores:** originais anteriores32/56 verificados pelos bytes/hash; novos jobs tratados somente pelos handlers do scan dos documentos próprios, fila alheia inalterada. Utilizadores, organizações, memberships, grants, duplaSuper, jobs/outbox e jornadas/etapas/submissões existentes preservados.17interesses/2pedidosBalcão/4anúncios não draft/cancelled: o pedidoBalcão próprio passou draft→submitted, sem duplicação no replay. O total bruto de anúncios é6, inclui rascunhos e não é o denominador4 usado na comparação. Os pedidos novos e documentos são sintéticos; não representam atos externos reais.
**Erros do ensaio preservados:** propriedades Inertia têm forma direta; a leitura inicial esperava um invólucro inexistente. Uma condição legal reaberta precisava de resolução explícita; a aprovação422 era correta. Logins simultâneos do harness causaram rejeição de umOTP já utilizado; retomou-se serialmente sem alterarMFA/chave e sem repetir aprovação/publicação válidas. A expectativa403paraQA22 ignorava seu papelValidador global: foi corrigida no harness, preservando autorização legítima. Esses eventos não são novos defeitos do produto nem reabremC37. Não se registaram códigos/cookies/segredos.
**Limitações/entrega:** continua uma revisão de progressoQA, não candidata final nem pacote de ativação. Restam demonstração dos oito percursos novos, teclado/foco/rótulos/erros/estados e consolidação/backup-restauroQA da revisão fixada. §27normativo integral, acessibilidade integral/dispositivos reais, novas ofertas/módulos/SLA, restauração/ACLindividual e cobertura integral do legado permanecem nas frentes anteriores, sem ampliarB. Publicação interna significa acesso restrito autorizado, não catálogo público. COUNTRY02 ativo preservado;190000/percurso no destino e ativações continuam separadas. C132: proposta contido/remediado com limitações históricas, responsável ainda decide, sem bloquearB.
<!-- /option-B8-finite-execution-20261013 -->
<!-- option-B7-permissions-progress-20261013 -->
## Opção B — permissões do anúncio próprio reconciliadas em QA
**10 das18 posições técnicas satisfeitas; oito ainda executáveis; oito percursos visuais preparados.** A contagem é da checklist, não percentagem do produto ou fecho global. A/B/C37 permanecem aceites nos seus âmbitos; COUNTRY02 ativo preservado. Nenhuma nova aceitação visual, ativação ou alteração de permissões reais.
| Lista | Satisfeito tecnicamente | Restante | Estimativa restante |
| --- | --- | --- | --- |
| Contratos/acessos | L1.1 revogação; L1.3 anúncio próprio/permissões/teaser; L1.4 obrigações da parceria | L1.2 ata/mapa/titularidade32; L1.5 conteúdo da licença/marca/titularidade56 | 5–9 h |
| Países/estatísticas | L2.1–L2.5 nos ramos delimitados, com provas específicas | Somente apresentação noL4 | 0 h técnico |
| Território/documentos | L3.2 mapaAPI/filtros; L3.3 carteira | L3.1 seletores/parcela32/56; L3.4 entidade/contexto; L3.5 camposBalcão; L3.6 JPEG/DOCX/XLSX; L3.7 PDF/foto do caso; L3.8 anexo/retirada/reciboTXT | 7–12 h |
| Aceitação/consolidação | A/B/C37 reutilizados | Oito percursos preparados, visual conjunto e pacote final/backup-restauroQA correspondente | 6–10 h |
**Reestimativa:18–31 h**, face a20–34. O fecho técnicoL1.3 permite reestimar as duas posições de contratos abertas em5–9h, antes7–12. L2/L3/L4 não mudam. Tipos de trabalho:3–6h correções,4–8h implementação restante,11–17h verificação/consolidação. Não são horas consumidas ou prazo garantido; esperaC135 e ativação excluídas, visual contado uma vez.
**C143:** a fila legada exigia emails/configuração antigos e `manage-portal`; agora usa os perfis de Validador/Publicador já aprovados e filtra o consumidor `company_sale` pelo papel/tipo/estado. Não concedidos novos privilégios. Rascunho21 → submissão → correção solicitada24 → correção21 → dois níveis legados24/22 → publicação25 → outra sessão recupera. Mandato/titular/contacto/condições privadas não saem no JSON público; teaser autorizado200. Nova leitura autorizada do estado aprovado corrigida, sem permitir que revisores publiquem. SQLconfere16revisões cifradas/hash,11transições/uma publicação e nenhuma duplicação no replay recusado.
**Limites explícitos:** a ponte é só do anúncio `company_sale`; outras modalidades não foram traduzidas nem habilitadas. O consumidor tem referência textual privada do mandato, não upload/scan desse ficheiro. Não inferir organização por texto ou associação do autor; grants restritos a organização não ganham âmbito global. A dupla aprovação legada mantém estados/histórico anteriores e é divergência registada face à revisão/publicação canónica; não é uma nova exigência de nomeações da Tempo. Nenhum estado/global/regra real foi ativado.
Revogação/expiração/tipo incorreto/organização sem vínculo explícito não recuperam acesso pela lista antiga; Auditor ou acumulação de papéis não contorna. Prova dessas variantes é policy/SQL em transaçãoQA revertida, separada doHTTP normal de autoria/correção/publicação. Não consumidos jobs ou notificações externas; originalC133, permissões, outras entidades/documentos/percurso preservados. Denominadores agora17interesses/1Balcão/3anúncios, pois existe um anúncio próprio novo; snapshotB6de17/1/2 continua histórico válido.
### COUNTRY02, A/B e C37 — estado e próximo ato
| Elemento | Estado confirmado | O que falta |
| --- | --- | --- |
| COUNTRY02 | Ativo, flag ligada; preservado | Nenhuma nova instalação/libertação. Uso depende apenas do âmbito legítimo da organização existente. |
| A/B | Cenários aceites emQA, não flags de produção | Para uso do percurso no ativo: revisão delimitada/bundle/configuração, backup-restauro correspondente, prévia autenticada da extensão exata e ativação específica. Sem repetir A/B já válidos. |
| C37 | Falha de autenticaçãoQA18 encerrada | Nenhuma ativação própria nem repetição do login por causa deste lote. |
Leitura ativa sem escrita: `2026_10_09_190000_prepare_investor_path` **ausente**, colunas `investor_journeys.path_definition_id`/`journey_steps.path_detail` ausentes e `INVESTOR_PATH_ENABLED=false`. Outras migrations contêm190000 no nome, mas são parâmetros fiscais/Balcão antigo e não demonstram essa extensão. `option-B7-active-path-read.json`.190000não é dependência do workflow isolado e nenhum pacote foi aplicado aqui.
C135 continua apenas na aceitação visual, sem chamadas/resets novos; mesmos oito percursos preparados. C132 mantém o registo final para decisão, ações conhecidas concluídas/quatro recuperações/limitações históricas; nenhuma nova investigação nem bloqueio deB. Candidata final e ativação pendentes. [Lista corrente](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito), [mesmos22grupos](saldo-opcao-B.md). Retratos anteriores abaixo preservam história, não o saldo corrente.
**L1.5 delimitado por leitura da peça:** o PDF sintético já guardado contém só o aviso de simulação e o rótulo da operação; não identifica marca, titular/licenciante ou território licenciado. Falta uma peça sintética específica e coerente com o contrato56, preservando o original e reutilizando scan/recuperação/revisões anteriores onde válidos. Não é nova validação jurídica nem outro ensaio de royalties. Prova: option-B7-franchise-license-gap.json.
**Complemento do mesmo C143 — entrada no menu:** a configuração comum não continha ligação à revisão de negócios. QA agora fornece `businessReviewUrl` pela policy do servidor e o menu «Parcerias → Revisão de negócios» para Validador/Publicador autorizados. HTTPprops e função de navegação reais: um link24/25, zero21/23/31/visitante, sem `manage-portal`; rota200. Compilação de produção e typescheck aprovados,159assets preparados, appJS carregado porHTTPS com hash correspondente. Não é prova de clique/renderização/foco: cenário7L4 continua aberto. Delta final deste incremento: **cinco fontesQA** (policy/controlador/middleware e dois componentes de navegação) e recompilaçãoQA; fonte/bundle/configuração ativos preservados. O ZIP intermediário5ec93876855f, antes da entrada no menu, está preservado como referência, não é a entrega final deste incremento. ReversãoQA recupera as cinco fontes e o manifesto anterior guardados, preservando assets imutáveis e dados/cifra/histórico.
**Estado final de C143 — três funções definidas pela Tempo:** a restrição de código que exigia dois Validadores distintos foi removida somente no modo `profiles-v1-company-sale`, depois de registar a origem/decisão em `option-B7-legacy-approval-decision.md`. O mesmo Validador autorizado conclui os dois passos existentes; o Promotor não aprova o próprio anúncio e o Publicador é distinto de todos os aprovadores, mesmo com múltiplos papéis. Estados/IDs/histórico intactos; ambientes exclusivamente legados mantêm a regra anterior. Não há necessidade de quarta pessoa ou nova designação real.
Variante afetada por HTTP: **21Promotor →24Validador →25Publicador**, publicação/teaser privado separado/recuperação noutra sessão, replay403sem duplicação. SQL: versão8,8revisões cifradas/hash,7transições/uma publicação, modo de autorização nas metadata; caso anterior16preservado. Denominadores agora17interesses/1Balcão/4anúncios devido à variante nova, não repetição duplicada. Provas `option-B7-three-actor-HTTP.json` e `option-B7-three-actor-SQL.json`. O saldo mantém10/18técnicas satisfeitas, oito executáveis/oito visuais e18–31h; nenhum critério novo. Delta final: **seis fontesQA**; bundle recompilado159assets já verificado, sem outra recompilação após este últimoPHP. As versões intermediárias de cinco fontes e as recusas do segundoValidador são histórico anterior ao ajuste, não o comportamento final.
<!-- /option-B7-permissions-progress-20261013 -->
<!-- option-B6-finite-progress-20261013 -->
## Opção B — saldo das listas após o incremento QA
**9/18 posições técnicas satisfeitas;9ainda executáveis; oito percursos visuais abertos emL4/C135.** Isso conta posições da checklist, não requisitos globais nem percentagem do produto. Nenhum critério visual novo encerrado. A/B,C37,COUNTRY02 e o âmbitoB preservados; ativações e candidata final pendentes.
| Lista | Satisfeito tecnicamente | Restante técnico | Estimativa restante |
| --- | --- | --- | --- |
| L1 Contratos/acessos | L1.1 revogação; L1.4 obrigações de parceria | L1.2 peças de terra32;L1.3 mandato/divulgação no anúncio próprio e permissões;L1.5 titularidade/licença56 | 7–12h |
| L2 Países/estatísticas | L2.1–L2.5, cada ramo com prova própria ou reutilização explícita | Zero técnico desta lista; apresentação noL4 | 0h técnico |
| L3 Território/documentos | L3.2 mapa/filtrosAPI;L3.3 carteira corrigida | L3.1 seletores/parcela32/56;L3.4 entidadefundiária/contexto;L3.5 camposBalcão;L3.6 JPEG/DOCX/XLSX;L3.7 PDF/foto do caso;L3.8 anexo/retirada/reciboTXT | 7–12h |
| L4 Aceitação/consolidação | A/B e C37 reutilizados nos seus âmbitos | Oito percursos preparados; coleta visual conjunta e revisão/backup-restauroQA correspondente | 6–10h |
**Reestimativa:20–34h =4–8correções+5–9implementação restante+11–17verificação/consolidação.** A faixa25–43anterior foi conservada sem dedução por item; não era arredondamento de consumo medido nem reestimativa documentada de maior complexidade. Agora remove-se o trabalho técnicoL2(4–7h), L3passa8–14→7–12 após provas/fix da carteira; L1mantém7–12 porque as três posições abertas incluem a compatibilidade de permissões concretamente identificada no consumidor antigo de negócios. L4continua6–10, contado uma única vez. EsperaC135, incidente, dispositivos reais, foraB e ativação excluídos; não é prazo garantido.
Provas novas: manifestação empresarial guardada/submetida/noutra sessão, residênciaPT/constituiçãoFR/origemBR e snapshotv2 preservado após mestreZA→MZ→ZA; recibo/repetição e denominadores16→17→17/1/2. O ramoempresa C133 já estava provado: interesses14/15 sãoempresa, confirmado porSQL, sem nova submissão. Parceria34: seis obrigações textuais, só três revisões afetadas reabertas, corporate_screening intacto, condição legal resolvida24 e publicação interna25. Documentos/períodos financeiros conservados.
Mapa: setor pelo slug existente, província, maturidade7/8, vazio e exclusão de privados; oito resultados sem coordenadas públicas são apresentados pelaAPI como `missing_public_site_coordinates`, semmarkers/áreas inventados. Exportação anterior reutilizada. **C142** carteira de corredor503→200, fonte de projeto preservada; apenas umPHPQA mudou, sem recompilação. Ocorreu erro no harness sobre a forma dos props; corrigido no script, sem outra falha de produto.
Dependência executávelL1.3: listas de triagem/revisão/aprovação/publicação do anúncio antigo estão vazias emQA e a policy exige ainda `manage-portal`; os perfis21/24/25 aprovados não o têm. Reconciliar o consumidor com esses papéis/âmbitos, preservando sua autoria/histórico/independência, sem transformar administração universal ou uma terceira pessoa real em exigência nova. Não alterados configuração/papéis neste incremento. C135 não causa esse bloqueio técnico.
**C132:** [registo final para decisão](C132-incidente-contido.md), ações conhecidas pendenteszero, quatro contas recuperadas e sessões tratadas por provas anteriores. Proposta contido/remediado com limites históricos; início/exfiltração indeterminados, sem afirmar ausência de acesso indevido. Decisão formal ainda a registar pelo responsável, sem bloquearB.
[Checklist nominal atual](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito), [mesmos22grupos](saldo-opcao-B.md), `option-B6-four-lots-plan.json` e provas agrupadas preservam correspondência. Relatos anteriores abaixo são retratos datados, não o saldo atual. Nenhuma alteração na base/configuração/bundle ativos, nova instalação ou investigaçãoC132. C135: não houve chamada/reset neste incremento; mantém-se a indisponibilidade documentada do provider e o pedido de suporte preparado.
<!-- /option-B6-finite-progress-20261013 -->
<!-- option-B-five-plan-reference-20261013 -->
**Saldo operacional atual:** [quatro lotes e listas finitas no backlog existente](backlog.md#opção-b-quatro-lotes-finitos-sem-ampliação-do-âmbito); a tabela de22grupos permanece a mesma. Total25–43h mantido; C135 ainda sem browser permitido. A/B/C37 e ativo preservados.
<!-- /option-B-five-plan-reference-20261013 -->
# Opção B - tabela única dos critérios de saída
13/10/2026. Âmbito fixado em [ambito-B-aceitacao-QA.md](ambito-B-aceitacao-QA.md), SHA-256 `7583e2f85bed065efc0d8592bdfd304144de7b8b6d390230e2ee049e45422714`. Exclusivamente QA; ativação separada. A/B e C37 mantêm os fechos.
Esta é a vista consolidada da matriz existente, não outro inventário/backlog: cada linha agrupa critérios com prova efetivamente comum. As colunas não são estados exclusivos: um grupo pode ter trabalho executável e visual bloqueado ao mesmo tempo. “Concluído” refere-se apenas ao critério e ambiente explicitados. Os históricos anteriores estão preservados em `audit-history-before-B3-20261013/saldo-opcao-B.md`.
| Critério de saída / correspondência | Concluído e evidência | Trabalho ainda executável em QA | Bloqueado por C135 | Outra dependência concreta |
| Critério e correspondência | Concluído e evidência | Trabalho executável | C135 | Outra dependência |
| --- | --- | --- | --- | --- |
| A/B: percurso integrado nos critérios aceites<br>AUD-DESK-02 | Fecho visual preservado: criação, outra sessão, aplicabilidade, resultado no dossier correto, Balcão e tarefa paralela; 320/390 px. Referência: execucao-percurso-i 1-i 3.md e fechos aceites. | Nenhum reensaio dos mesmos critérios. Variantes não cobertas estão na linha de compatibilidade do percurso. | Não para o fecho existente. | Nenhuma; cinco fases/19 etapas preservadas. |
| C37: autenticação QA18<br> | Confirmação manual e provas anteriores de login/MFA, sessão, logout e recuperação; fecho no âmbito QA18. | Nenhum; não foi alterada a autenticação. | Não para o fecho existente. | Nenhuma; não confundir com recuperação C132. |
| Dashboard, rascunho e coedição<br>AUD-PROFILE-06, AUD-PROFILE-07 | COEDIT-GEO/WF6: dashboard → Minhas oportunidades/Nova oportunidade; rascunho recuperável e coedição base. | Promotor/coeditor: /minhas-oportunidades/{id}/edit e /resources; verificar coedição durante correção e perda de acesso após revogação no âmbito certo. | Só apresentação/erros das variantes ainda sem prova. | Reutilizar contas sintéticas existentes; sem funcionários reais ou novas nomeações. |
| Workflow e independência transversal<br>AUD-OP-03, AUD-OP-04, AUD-PROFILE-28 | WF6/MAT6/LEASE54: criar → submeter → corrigir → rever/aprovar → publicar; autor/múltiplos papéis impedidos, suspensão/republicação 31 e recurso 34 em provas próprias. | Completar somente variantes abaixo em /workflow, Promotor 21/Validador 24/Publicador 25; manter revisão apenas do âmbito alterado e historial. | Visual das variantes novas e respetiva visibilidade/estado. | 030000/040000 instaladas no clone; sem 190000 para workflow isolado. Restauração e ACL individual fora de B. |
| Projeto de investimento — 30/52<br>AUD-OP-03, AUD-OP-04 | B3 API/SQL: PDF próprio sintético, scan/hash/cifra, licença aplicável → revisão jurídica → aprovação 24/publicação restrita 25 → outra sessão. Parecer técnico preservado. option-B3-project-workflow-HTTP.json e option-B3-final-QA.json. | Conferir os pressupostos e evidências do cenário que ainda não estejam cobertos por WF6/MAT6; não repetir a licença não aplicável ou B3. | Ver documento/estado/campos novos no editor e recuperar pela interface. | Licença ensaiada é sintética, sem ato real; a condição de scan foi resolvida na QA, ver linha documental. |
| Imobiliário — venda 31 e arrendamento 54<br>AUD-OP-03, AUD-OP-04 | LEASE54: renda 4500 MZN/mês e documentos preservados em correção/revisão/publicação/recuperação; venda 31 com suspensão/republicação próprias. | Reconciliar apenas compatibilidade dos documentos/estados dos ramos incluídos em /edit, /resources e /workflow; recuperar os valores sem reensaio completo 54. | Rótulos/controlos alterados ou sem prova. | Construção/ocupação/limites urbanísticos sem percurso completo permanecem variantes excluídas, não um bloqueio do ramo aceite. |
| Direitos sobre terra — 32<br>AUD-OP-03, AUD-OP-04, AUD-GEO-02 | C140/C141 API/SQL: unidade explícita, área 1100 sem conversão, rascunho incompleto 200/submissão 422, condição antiga reverificada, aprovação 24/publicação 25/recuperação; comunidade sintética B1. | Peças próprias da consulta/encargos e medição poligonal compatível; /edit, /resources, /response, perfis 21/24/25. Não usar o PDF genérico como ata/mapa concluídos. | Unidade, erros junto aos campos, condição e mapas novos. | Documento/geometry próprios do cenário; limite administrativo não comprova parcela/direito. Mandie/Guro continua ambíguo fora da correspondência inequívoca. |
| Venda de negócio — canónico 33 e consumidor C133<br>AUD-OP-03, AUD-OP-04, AUD-BIZ-01 | 33 API: exercício existente/materialidade e maturidade 7/8 pelo workflow público. C133: interesse individual/entidade, país/origem e persistência API/SQL, sem prova de publicação do anúncio. | Mandato, promotor real e divulgação autorizada; publicar pelo consumidor próprio /negocios/{slug}, verificar interesse e recuperação. Não usar 33 para fechar C133. | C134 e visual do anúncio/interesse/pesquisa próprios. | Preparar fundamento/documento sintético correspondente em QA. Ofertas e variante modular sem histórico continuam decisões separadas. |
| Parceria de negócio — 34<br>AUD-OP-03, AUD-OP-04 | B1 API: contribuição monetária/não monetária → revisão financeira/governação, outras assinaturas preservadas → aprovação/publicação/recuperação. | Conferir obrigações e documentos dos campos incluídos ainda sem prova própria, usando /edit, /resources e /workflow. | Apresentação dos campos/decisões novos. | Sala adicional/C137 fora de B; não é requisito para publicar o contrato ensaiado. |
| Franquia — 35/56<br>AUD-OP-02, AUD-OP-03, AUD-OP-04 | C136/FR-ROY-LIC56/B-FR-EXCLUSIVITY: taxa 1250, royalties 6%, documento próprio e exclusividade; revisões afetadas, aprovação 24/publicação restrita 25/nova sessão. | Conferir a evidência de titularidade/documentos do ramo incluído e coerência da visibilidade; /edit, /resources e /workflow. Reutilizar os ensaios de royalties/licença. | Taxa, royalties, licença, exclusividade, documento e visibilidade das variantes novas. | Não inferir licença/titularidade real dos documentos QA; divulgação mantém decisão própria do processo. |
| Response: compatibilidade incluída<br>AUD-OP-03, AUD-OP-04, OP-FIELD-location-area_value, OP-FIELD-location-area_unit, OP-FIELD-parcel-area | READ248/C140/C141: IDs/versões e campos de área/unidade recuperáveis no adaptador, option-B2-response-read-HTTP.json; normative_response_complete=false. | Verificar compatibilidade dos campos alterados com os consumidores da candidata delimitada; /minhas-oportunidades/{id}/response. Não migrar os endpoints normativos por omissão. | Resultado apresentado dos campos novos. | §27 normativo integral fora de B; não anunciar conformidade total nem transformar essa evolução em pré-condição artificial. |
| País mestre da organização<br>AUD-COUNTRY-03 | COUNTRY02 e provas de país de constituição/mestre anteriores válidas; residência e origem distinguem-se. | Titular/representante: /settings/profile e cadastro mestre; testar reutilização e snapshot antigo nas variantes ainda não cobertas, preservando origem. | Formulários novos/alterados: seleção, erro e resultado recuperado. | Em QA usar entidade sintética; não inferir país real da Tempo. Nenhuma representação real é criada para demonstrar. |
| Residência, país da entidade e origem por formulário<br>AUD-COUNTRY-03, AUD-COUNTRY-04, AUD-BIZ-01 | C133 API/SQL e C138 HTTP: residênciaPortugal/origemBR recuperadas, contexto territorial e mesmo recibo no replay; país de entidade tem ramo próprio. | Completar cobertura dos ramos pertinentes em /negocios/{slug}/manifestar-interesse e /investidor/terra-duat/{id}/editar, campo → gravação → outra sessão. | C134/C138: campos, validação, recuperação e diferença semântica visíveis. | Sem inferência por IP/residência; provar o consumidor correto, não generalizar o individual para entidades. |
| Filtros e estatísticas após submissão<br>AUD-STATS-01, AUD-DASH-01 | FILTERS e C138: filtroISO PT/origemBR e coleção de origem estável na repetição; C133 tem persistência própria. | Gestor no âmbito: /management/interests; filtros/coleções de cada consumidor incluído, submissão/replay e recuperação. Conferir denominadores e critérios aplicados à coleção. | Totais, filtros e mensagens após submissão nos consumidores novos. | Estatística global não recebe filtros da listagem por semelhança; necessitam correspondência explícita. |
| Seletores/recursos territoriais de oportunidades<br>AUD-GEO-02, AUD-GEO-03, AUD-FIELD-030 | COEDIT-GEO/TR4-QA56 e C140/C141: IDs/hierarquia recuperados, guarda incompleta e área/unidade, documentos/cadastro próprios. | Promotor/coeditor: /minhas-oportunidades/{id}/resources; troca de pai limpa filhos, guardar/recuperar e medição/compatibilidade da geometria de cada caso incluído. | Selecionar e apresentar limites, ausência de geometria, legenda e teclado. | Território cadastrado, geometria disponível e apresentação são critérios distintos; lacunas oficiais não se preenchem por invenção. |
| Mapa público, carteira e filtros<br>AUD-GEO-02, AUD-GEO-03 | Pesquisa/referências/cartografia API anteriores e maturidade 7/8 HTTP válidas; exportação pública tem prova própria CSV-PUBLIC. | Público: /oportunidades?view=map, /api/v 1/investment/map e /carteira/{id}; verificar geometria/filtros/contexto, exclusão de camada/documento interno. | Desenho, legenda, mapa vazio, foco/teclado e resultado filtrado. | Não depende de concluir todas as correspondências; usar só associações inequívocas disponíveis e explicitar as ausências. |
| Território dos consumidores do dossier/Balcão/fundiário<br>AUD-GEO-02, AUD-DESK-02 | A/B e C138 preservam contexto/IDs no dossier e apoio fundiário; não são provas de todos os mapas. | Titular/analista no âmbito: /investimentos/{id}, /investidor/terra-duat/{id}/editar e /balcao-virtual/dossiers/{id}; verificar os seletores/mapas ainda sem prova própria. | Limites/ausência de geometria e seleção/recuperação por consumidor. | Sem integração externa/decisão de terra simulada como real; preparação paralela mantém-se. |
| Originais, scan, derivadas e processamento<br>AUD-OP-02, AUD-SCAN-01 | DER-QA56/provas worker anteriores; B3: PDF específico cifrado, scan real/hash, quarentena 423, replay 409/bytes duplicados 422, um original e fila alheia intacta. | Completar peças/tipos documentais dos ramos incluídos e recovery próprios; /resources/documents e documentos do Balcão/fundiário. Não repetir todos os ensaios de worker. | Estados de quarentena/scan/derivadas e apresentação WebP/PDF nos componentes afetados. | ClamD QA13310: assinaturas expiradas foram atualizadas 28150→28152, limiar 48 h intacto. Disponível agora; freshness necessária a cada scan. B3 executou só o seu handler, não novo ensaio do worker supervisionado. |
| Acesso e recuperação documental<br>AUD-OP-02, AUD-PROFILE-07, AUD-PROFILE-17, AUD-PROFILE-26 | DOC-BOUNDARY/DER-QA56 e B3: Promotor/Validador/Publicador autorizados 200, outra organização 403/anónimo 401, mesmo PDF/hash noutra sessão. | Concluir tipos e perfis dos consumidores incluídos ainda não cobertos: /resources/.../download, preview de imagens, /balcao-virtual/dossiers/{id}/documentos/{documento} e fundiário /documentos/{anexo}. | Abrir original/derivada, apresentar erros e estados com o perfil correto. | ACL individual de oportunidades continua desligada; recibo TXT e impressão do browser não são PDF servidor etiquetado. Não disponibilizar fluxo que exponha conteúdo confidencial. |
| Compatibilidade do percurso além dos critérios A/B<br>AUD-DESK-02 | B-PATH-READY: 190000 existente, 5 fases/19 etapas/13 contextos, contexto privado alheio 403; A/B integrado já fechado. | Investidor: /investimentos/{id} → ferramentas/Balcão; apenas variantes/resultados/documentos alterados ou sem cobertura, noutra sessão e sem mistura de projetos. | Variantes novas: próxima ação, contexto/retorno e estados apresentados. | 190000 já instalado em QA; CRM externo não é dependência. Não renumerar roteiros ou acrescentar barreiras de preparação. |
| Acessibilidade dos comportamentos novos<br>AUD-UI-01, AUD-PROFILE-25 | A11 Y-OP e 320/390 px já válidos no seu âmbito; C140 prepara rótulo/ajuda/erro, build preservado. | Rever marcação e corrigir defeito concreto encontrado nos controles alterados; usar rotas acima, sem repetir telas intactas. | Teclado, foco, rótulos, erro junto ao campo, leitura dos estados e móvel dos controles novos. | Dispositivos reais e acessibilidade integral têm prova distinta fora deste fecho. Nenhuma observação nova por HTML/API. |
| Candidata delimitada e recuperação correspondente<br>AUD-UI-01, AUD-DESK-02 | Types/buildB2 e 157 recursos HTTPS/hash válidos. B3 não altera fontes/bundle do produto; originais/dados/permissões/configuração ativos preservados. | Concluir os critérios abertos desta tabela, curar o bundle do âmbitoB, fixar revisão/manifesto e renovar backup/restauro QA da revisão/acervo incluídos. | A demonstração integrada dos critérios novos é condição de saída; API/hash não substituem a interface. | Revisão final ainda não fixada. Backup/restauro do destino e ativação dependem do procedimento próprio, fora desta execução. |
| A/B: percurso integrado nos critérios aceites<br>AUD-DESK-02 | Fecho visual A/B preservado nos critérios aceites, incluindo320/390px; execucao-percurso-i1-i3.md. Sem reensaio. | Nenhum reensaio dos mesmos critérios. Variantes não cobertas estão na linha de compatibilidade do percurso. | Não para o fecho existente. | Nenhuma; cinco fases/19 etapas preservadas. |
| C37: autenticação QA18<br> | Fecho manual/HTTP anterior da autenticaçãoQA18, logout e recuperação preservado; sem reensaio. | Nenhum; não foi alterada a autenticação. | Não para o fecho existente. | Nenhuma; não confundir com recuperação C132. |
| Dashboard, rascunho e coedição<br>AUD-PROFILE-06, AUD-PROFILE-07 | Criação/gravação/coedição já provadas; revogação e nova sessão B5. Não se repetiu rascunho comum. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Workflow e independência transversal<br>AUD-OP-03, AUD-OP-04, AUD-PROFILE-28 | Seis categorias canónicas e independência por perfil/múltiplos papéis; B7 anúncio antigo21→24→25. Provas de correção, suspensão/recurso/republicação anteriores reutilizadas. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Projeto de investimento — 30/52<br>AUD-OP-03, AUD-OP-04 | Projeto30/52: risco/correção/licenciamento, materialidade aninhada e publicação restrita já provados B3; sem novos critérios. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Imobiliário — venda31 e arrendamento54<br>AUD-OP-03, AUD-OP-04 | Venda31/arrendamento54: contrato, renda4500MZN/monthly, originais e publicação restrita anteriores preservados. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Direitos sobre terra — 32<br>AUD-OP-03, AUD-OP-04, AUD-GEO-02 | Terra32: ata/titular/esboço próprios, scans, área corrigida12001.74sqm, revisões afetadas e condição legal resolvida24→publicação restrita25→nova sessão/Response. B8 esboço v2 preserva v1. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Venda de negócio — canónico33 e consumidor C133<br>AUD-OP-03, AUD-OP-04, AUD-BIZ-01 | Negócio33 e anúncio company_sale: mandato/teaser/confidencialidade e três papéis daTempo; B7. C133 continua prova de interesses, distinta de publicação. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Parceria de negócio — 34<br>AUD-OP-03, AUD-OP-04 | Parceria34: seis obrigações e só três pareceres afetados B6; corporate_screening/financeiros originais preservados. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Franquia — 35/56<br>AUD-OP-02, AUD-OP-03, AUD-OP-04 | Franquia56: licença específica marcaQA/titular sintético/territórioQA; B8 só marca/licença/legal reabertos, financeiro/confidencialidade mantidos,24→25/nova sessão. Royalties/exclusividade prévios reutilizados. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Response: compatibilidade incluída<br>AUD-OP-03, AUD-OP-04, OP-FIELD-location-area_value, OP-FIELD-location-area_unit, OP-FIELD-parcel-area | Response e oito contratos compatíveis já recuperados; B8 referencia peças/área32 e licença56. Não equivale a§27normativo integral. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| País mestre da organização<br>AUD-COUNTRY-03 | COUNTRY02 mestre já ativo; QA mestreZA→MZ→ZA, snapshots anterioresFR intactos B6. Organização/representação legítimas continuam fluxo próprio no destino. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Residência, país da entidade e origem por formulário<br>AUD-COUNTRY-03, AUD-COUNTRY-04, AUD-BIZ-01 | Cinco ramosL2 provados por formulário: residência/constituição/origem, negócio empresarial e apoio fundiário de entidade; B5/B6/C133 sem novas submissões. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Filtros e estatísticas após submissão<br>AUD-STATS-01, AUD-DASH-01 | Denominadores/filtros/replay B5/B6/C133 preservados. B8=17interesses/2pedidosBalcão/4anúncios não draft/cancelled; apenas um pedido próprio novo submetido, repetição não duplica. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Seletores/recursos territoriais de oportunidades<br>AUD-GEO-02, AUD-GEO-03, AUD-FIELD-030 | B8 recursos32/56: pai/país incompatíveis422, limpar/repor quatroIDs explicitamente, outra sessão;3limites ancestrais no endpoint autorizado, sem geometria da localidade. Parcela32 coberta pelo INE/área medida. Manual396c: seletores/mapa/recuperação do caso32 confirmados, sem extrapolar56. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário3: seletores/mapa/recuperação confirmados; restam documentos/área/transições e controlos acessíveis não relatados. Outros consumidores mantêm pendências específicas. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Mapa público, carteira e filtros<br>AUD-GEO-02, AUD-GEO-03 | MapaAPI/filtros/privados/ausência e carteiraUUID C142 B6. Sem marcadores/limites publicados por inferência. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Território dos consumidores do dossier/Balcão/fundiário<br>AUD-GEO-02, AUD-DESK-02 | B8 caso de entidade e campo territory_id do pedidoBalcão recuperados com fonte/hierarquia. C145: contexto explícito do dossier e retorno noutra sessão. Endpoint público dos dois seletores:0camadas disponíveis, ausência explícita; sem publicação implícita. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Originais, scan, derivadas e processamento<br>AUD-OP-02, AUD-SCAN-01 | B8 JPEG/DOCX/XLSX/PDF: MIME/hash/scan/download, bytes repetidos recusados. PNG/WebP320/640/1280 e interrupção/worker/replay anteriores reutilizados; só handlers dos novos jobs executados. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Acesso e recuperação documental<br>AUD-OP-02, AUD-PROFILE-07, AUD-PROFILE-17, AUD-PROFILE-26 | B8 anexos fundiários/gestor C144 e Balcão por titular/analista: autorizado200/hash, estranho/anónimo negados; reatribuição24→25 revoga sessão anterior/nova. QA22 mantém leitura como Validador global, sem ganhar edição de franquia. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Compatibilidade do percurso além dos critérios A/B<br>AUD-DESK-02 | C145 recupera vínculo explícito Terra/DUAT↔dossier e recusa outro dono/troca de projeto. Campo opcional no payload cifrado existente; casos antigos não inferidos. Cinco fases/19etapas e A/B intactos. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Acessibilidade dos comportamentos novos<br>AUD-UI-01, AUD-PROFILE-25 | Erros/rótulos/foco preparados no código e provas anteriores preservadas. Sem nova prova visual/teclado neste incremento. | Sem item técnico adicional conhecido da lista finita. Corrigir apenas falhas concretas no ensaio visual. | Cenário correspondenteL4: interação, resultado apresentado, erros, teclado/foco e recuperação. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
| Candidata delimitada e recuperação correspondente<br>AUD-UI-01, AUD-DESK-02 | Compilação produçãoQA159assets/types; hashes/código ativo e scope preservados. Incremento de revisão, não candidata final: faltam oito visuais e backup/restauroQA da revisão fixada. | Consolidar a revisão após os oito visuais; renovar backup/restauroQA correspondente e manifesto. | Fixa-se a candidata final após a aceitação visual, não antes. | ForaB/ativação separados; C132 e nomeações reais não bloqueiamQA. |
## Esforço ligado aos critérios restantes
**25–43 horas permanece uma estimativa de trabalho restante**, face à faixa inicial 40–72. Não corresponde a horas efetivamente consumidas, percentagem de conclusão ou prazo garantido. Mantida após esta prova; não reduzir automaticamente pelo número de casos corrigidos. Correções 5–10 h, implementação já pedida 5–10 h e verificação 15–23 h, incluindo consolidação/recuperação QA final.
As parcelas, sem somar repetidamente as linhas da tabela: perfis/coedição 2–4 h; contratos das seis categorias/Response compatível 5–8 h; países/origem/filtros/estatísticas 4–7 h; mapas/seletores 4–7 h; documentos 4–7 h; acessibilidade dos controles novos 4–5 h; compatibilidade do percurso/consolidação 2–5 h. Correspondência por linha em `option-B3-exit-criteria.json`, com as faixas originais em `option-B2-remaining-effort.json`. As parcelas somam 25–43, sem sobreposição com os 20–38 h do complemento adiado ou 76–152 h de evolução distinta. Espera C135/suporte, incidente C132, dispositivos reais e ativação não entram na estimativa.
As parcelas, sem somar repetidamente as linhas da tabela: perfis/coedição 2–4 h; contratos das seis categorias/Response compatível 5–8 h; países/origem/filtros/estatísticas 4–7 h; mapas/seletores 4–7 h; documentos 4–7 h; acessibilidade dos controles novos 4–5 h; compatibilidade do percurso/consolidação 2–5 h. Correspondência por linha em `option-B6-exit-criteria.json`, com as faixas originais em `option-B2-remaining-effort.json`. As parcelas somam 25–43, sem sobreposição com os 20–38 h do complemento adiado ou 76–152 h de evolução distinta. Espera C135/suporte, incidente C132, dispositivos reais e ativação não entram na estimativa.
## Novo avanço executável e dependências
Projeto 30: licença aplicável e PDF próprio **sintéticos** passaram por envio/quarentena, scan real/hash/cifra, recuperação/permissões, reabertura apenas jurídica, aprovação 24/publicação 25 restrita e outra sessão.154 tarefas anteriores preservadas; 2 novas só de 30, sem prazos. Um recurso para os mesmos bytes. Falta a observação visual; não é licença externa real nem fecho de todas as regras jurídicas. Sem alteração do código do produto, não exigiu recompilação do bundleB2.
O scanner QA13310 respondia com assinaturas de 11/10, idade 48, 09 h, ultrapassando o limite existente 48 h. Foi atualizado só o diretório QA e recarregado só esse endpoint; versão 28152/data 13/10, saúde disponível, limite inalterado. A tentativa 423 foi preservada e retomada no mesmo documento, sem repetir upload. Executado só o handler do documento próprio, fila alheia intacta; provas anteriores do worker supervisionado não são substituídas. A dependência foi resolvida emQA; a atualidade das assinaturas continua necessária a cada scan. O scanner/serviços ativos não foram alterados.
O scanner QA13310 respondia com assinaturas de 11/10, idade 48,09 h, ultrapassando o limite existente 48 h. Foi atualizado só o diretório QA e recarregado só esse endpoint; versão 28152/data 13/10, saúde disponível, limite inalterado. A tentativa 423 foi preservada e retomada no mesmo documento, sem repetir upload. Executado só o handler do documento próprio, fila alheia intacta; provas anteriores do worker supervisionado não são substituídas. A dependência foi resolvida emQA; a atualidade das assinaturas continua necessária a cada scan. O scanner/serviços ativos não foram alterados.
C135 mantém o diagnóstico distinto: último registo 12/10 às 23:18 UTC+2, pipe nativo ausente/os error 2 antes de selecionar o portal. Não houve novo reset, contorno ou tentativa nesta execução. Suporte preparado, sem canal ligado para envio. Critérios visuais novos continuam abertos; não se transferem sucessivamente para o proprietário.
@@ -47,6 +300,11 @@ C135 mantém o diagnóstico distinto: último registo 12/10 às 23:18 UTC+2, pip
Entrada QA: **https://portal-investidor.test:18445/dashboard**. Contas sintéticas e instruções privadas locais; nenhum segredo neste relatório. A tabela apresenta 22 grupos de critérios, 2 com fecho integral no seu âmbito(A/B e C37). Os demais têm coberturas parciais claramente descritas; a quantidade não é percentagem de conclusão de requisitos.
Próximo trabalho independente: coedição em correção/revogação, mandato/divulgação no consumidor correto de negócio, país mestre/snapshots e medições/mapas dos consumidores incluídos. Não ampliar B por variantes experimentais, legado/ofertas/SLA ou §27 integral. Candidata final não fixada; renovação correspondente de backup/restauro continua pendente. Fontes/configuração/bundle/COUNTRY02 ativos intactos.
Próximo trabalho independente: revogação do acesso de coeditor, mandato/divulgação no consumidor correto de negócio, país mestre/snapshots e medições/mapas dos consumidores incluídos. Não ampliar B por variantes experimentais, legado/ofertas/SLA ou §27 integral. Candidata final não fixada; renovação correspondente de backup/restauro continua pendente. Fontes/configuração/bundle/COUNTRY02 ativos intactos.
**C132, separado:** a conta 15 confirmou recebido/MFA/dashboard.14–17 recuperadas, critério individual concluído, sessões tratadas pelas provas anteriores; nenhum reenvio/rotação/novo teste de sessões. Limites da investigação histórica mantêm o incidente aberto; esta recuperação não fecha a auditoria global.
**C132, separado:** ações corretivas conhecidas e recuperação 14–17 concluídas. Proposta: encerrar como contido/remediado com limitações históricas registadas. Não há ação técnica corretiva pendente identificada; a decisão concreta é registar o encerramento. História incompleta é limitação, não pendência indefinida. Preservar provas/gate e reabrir só perante facto concreto novo. Ver C132-incidente-contido.md; nenhum teste/rotação/alteração ativa novo.
## Continuação B4 em QA, sem nova implementação
Coedição em correção do projeto 30 passou por pedido 24, edição/submissão 22, recuperação 21, reabertura técnica apenas, condição antiga reverificada, aprovação 24/publicação restrita 25/nova sessão. Revogação e apresentação visual ainda não demonstradas. Contratos atuais de 30/31/32/33/34/35/54/56 conferidos por leitura; oito Responses recuperados por API. Não repete workflow dos outros sete casos nem comprova interface ou §27 integral.156 tarefas anteriores preservadas,4 novas próprias 30, sem prazos. Nenhuma fonte/bundle/permissão/conta/serviço do produto foi alterada. Estimativa 25–43 h mantida, ligada aos critérios da tabela, sem contabilizar tempo consumido ou garantir prazo.
@@ -1,3 +1,11 @@
<!-- option-B4-exit-table-20261013 -->
## Opção B: tabela de 22 grupos atualizada e proposta de encerramento C132
[Tabela única dos critérios de saída](saldo-opcao-B.md). B4 demonstra coedição em correção apenas no projeto 30, condição interna preservada/reverificada, aprovação 24/publicação 25/nova sessão; revogação/visual pendentes. Oito contratos atuais compatíveis em leitura e oito Responses recuperados por API, sem repetir os workflows válidos. Não há delta do código do produto/bundle/permissões; ativo intacto.25–43 h continuam estimativa ligada ao saldo, não horas consumidas nem prazo garantido. A/B/C37 preservados.
**C132: encerramento proposto**, contenção/remediação/recuperação 14–17 concluídas. Sem ação técnica corretiva conhecida pendente; histórico incompleto é limitação documentada, não investigação indefinida. [Proposta e condições de reabertura](C132-incidente-contido.md). Não se registou decisão do responsável em seu nome.
<!-- /option-B4-exit-table-20261013 -->
<!-- option-B3-exit-table-20261013 -->
## Opção B: tabela única dos critérios de saída
@@ -1,3 +1,11 @@
<!-- option-B4-exit-table-20261013 -->
## Opção B: tabela de 22 grupos atualizada e proposta de encerramento C132
[Tabela única dos critérios de saída](saldo-opcao-B.md). B4 demonstra coedição em correção apenas no projeto 30, condição interna preservada/reverificada, aprovação 24/publicação 25/nova sessão; revogação/visual pendentes. Oito contratos atuais compatíveis em leitura e oito Responses recuperados por API, sem repetir os workflows válidos. Não há delta do código do produto/bundle/permissões; ativo intacto.25–43 h continuam estimativa ligada ao saldo, não horas consumidas nem prazo garantido. A/B/C37 preservados.
**C132: encerramento proposto**, contenção/remediação/recuperação 14–17 concluídas. Sem ação técnica corretiva conhecida pendente; histórico incompleto é limitação documentada, não investigação indefinida. [Proposta e condições de reabertura](C132-incidente-contido.md). Não se registou decisão do responsável em seu nome.
<!-- /option-B4-exit-table-20261013 -->
<!-- option-B3-exit-table-20261013 -->
## Opção B: tabela única dos critérios de saída
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,18 @@
[
{
"file": "matriz-requisitos.csv",
"updated_ID": "AUD-UI-01",
"rows": 3401,
"unrelated_records_byte_preserved": 3400,
"states_and_IDs_preserved": true,
"sha256": "f94ada7506276899574f47f1c890a61bde73cb570291b048f497d1e1c8658aa2"
},
{
"file": "backlog-priorizado.csv",
"updated_ID": "AUD-UI-01",
"rows": 3401,
"unrelated_records_byte_preserved": 3400,
"states_and_IDs_preserved": true,
"sha256": "6f34666635ab63618a03e16a21fab7661ced18aa106fa0a3a078946e413a8510"
}
]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,32 @@
[
{
"file": "docs\\investmoz\\v2\\auditoria-portal\\matriz-requisitos.csv",
"rows": 3401,
"updated_ids": [
"AUD-FIELD-030",
"AUD-GEO-02",
"AUD-GEO-03",
"AUD-PROFILE-24",
"AUD-UI-01"
],
"unrelated_records_preserved": 3396,
"statuses_preserved": true,
"before_sha256": "5e8069dd18eccc6fe15316981e70856ea30a7eb9d61c7d1a1622a2f71bf3415d",
"after_sha256": "4bb61f78a14672f0720b6971e0132ea94d4434b8fbccfc1194c4b0527154177a"
},
{
"file": "docs\\investmoz\\v2\\auditoria-portal\\backlog-priorizado.csv",
"rows": 3401,
"updated_ids": [
"AUD-FIELD-030",
"AUD-GEO-02",
"AUD-GEO-03",
"AUD-PROFILE-24",
"AUD-UI-01"
],
"unrelated_records_preserved": 3396,
"statuses_preserved": true,
"before_sha256": "3f5bb97ee10f99fe7e9f5bd3a15be09336979235f9847ebbb865f16ebf996ebb",
"after_sha256": "f747a8acb542547e0357e746eb174d4fa40a1dc72b7d957df8c4412430c338ed"
}
]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,18 @@
[
{
"file": "matriz-requisitos.csv",
"updated_ID": "AUD-UI-01",
"rows": 3401,
"unrelated_records_byte_preserved": 3400,
"states_and_IDs_preserved": true,
"sha256": "0f85cfc9da64836b645fc0efbaa41166ef89ca3fabeac88742ea7e4b888636c3"
},
{
"file": "backlog-priorizado.csv",
"updated_ID": "AUD-UI-01",
"rows": 3401,
"unrelated_records_byte_preserved": 3400,
"states_and_IDs_preserved": true,
"sha256": "2954e75165dd80ec179242277100c7261208a3082fbea88a7a41f9ffd65047b7"
}
]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,18 @@
[
{
"file": "matriz-requisitos.csv",
"rows": 3401,
"ID_updated": "AUD-UI-01",
"unrelated_records_byte_preserved": 3400,
"states_preserved": true,
"sha256": "fc226394f00ce861ba39c8142c96c00a0bdb57ed42e6cd401775ccf876e3988e"
},
{
"file": "backlog-priorizado.csv",
"rows": 3401,
"ID_updated": "AUD-UI-01",
"unrelated_records_byte_preserved": 3400,
"states_preserved": true,
"sha256": "f4c00f70a93ff9ddc1e02773c2886be523ccb6b7e1a45de4c5f055e836ac45ae"
}
]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,18 @@
[
{
"file": "matriz-requisitos.csv",
"updated_ID": "AUD-UI-01",
"rows": 3401,
"unrelated_records_byte_preserved": 3400,
"states_and_IDs_preserved": true,
"sha256": "03645828ac3a0cd3aa9d58cbfb0a1c1dc98dfd60c00dbee39f65adb0820eec3a"
},
{
"file": "backlog-priorizado.csv",
"updated_ID": "AUD-UI-01",
"rows": 3401,
"unrelated_records_byte_preserved": 3400,
"states_and_IDs_preserved": true,
"sha256": "8c8198fbe0cc62778888652deef5332fb67960bad916caec18f346b4ec39f057"
}
]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,18 @@
[
{
"file": "matriz-requisitos.csv",
"updated_ID": "AUD-UI-01",
"rows": 3401,
"unrelated_records_byte_preserved": 3400,
"states_and_IDs_preserved": true,
"sha256": "9fd1b35960d7d435dab9a4305b96023efb05100d52ade87780c183ce27ad60a7"
},
{
"file": "backlog-priorizado.csv",
"updated_ID": "AUD-UI-01",
"rows": 3401,
"unrelated_records_byte_preserved": 3400,
"states_and_IDs_preserved": true,
"sha256": "e658c59f09022d4f5645532564e528fac7aeb12211bf58ff6d30f114e42af8ea"
}
]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,18 @@
[
{
"file": "matriz-requisitos.csv",
"updated_ID": "AUD-UI-01",
"rows": 3401,
"unrelated_records_byte_preserved": 3400,
"states_and_IDs_preserved": true,
"sha256": "e55c7767774d598646845e56277cfa61d9ff0a5e9ba80c3496f2b77081c0a2e1"
},
{
"file": "backlog-priorizado.csv",
"updated_ID": "AUD-UI-01",
"rows": 3401,
"unrelated_records_byte_preserved": 3400,
"states_and_IDs_preserved": true,
"sha256": "ad3af282d1d8406fb666588b5d55897e977db832866435ed9305044425f3cea8"
}
]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

@@ -0,0 +1,76 @@
{
"at": "2026-10-13T09:45:19.745812+00:00",
"case": "C132",
"status": "closure_proposed_with_documented_investigation_limits",
"corrective_actions_pending": [],
"holder_access_pending": [],
"individual_recovery_complete": true,
"session_treatment_covered_by_previous_evidence": true,
"no_new_session_revocation_or_rotation": true,
"recommendation": "Encerrar C132 como contido e remediado, com limitação histórica registada; preservar provas e reabrir só perante facto concreto novo.",
"responsible_decision": "Registar a decisão de encerramento com os limites descritos; não há ação técnica corretiva conhecida pendente.",
"limits": [
"Início exato da exposição indeterminado por retenção/histórico incompleto.",
"Registos disponíveis não provam ausência integral de acessos/descargas ou exfiltração.",
"Alcance anterior aos registos preservados não pode ser reconstruído sem nova evidência."
],
"reopen_on": [
"Nova evidência de credencial utilizável comprometida não tratada.",
"Acesso/ação não autorizado concreto que exija resposta adicional.",
"Diagnóstico reativado ou registos restritos novamente expostos."
],
"routine_followup_not_incident_blocker": "Conservar evidências restritas e gate de implantação; repetir listagem/detalhe anónimos após futura implantação pertinente.",
"source_configuration_and_guard_hashes_unchanged": true,
"active_changes": 0,
"new_HTTP_or_login_tests": false,
"sources": [
{
"file": "C132-http-contained.json",
"sha256": "89a36d93ed39dd8207384e64373597ca36d9c0bebac67dc19cab50980fb32d16"
},
{
"file": "C132-rotation-active.json",
"sha256": "93bbbcf16dab95c6c955963ca2652ac9b002978e8225bb247e967f6a0a6e5695"
},
{
"file": "C132-session-review.json",
"sha256": "04cc4e17369ff323139b3a527453161a30b75c11f715278172c7d28935c0a002"
},
{
"file": "C132-session-revocation-QA.json",
"sha256": "5a1be0ed5c20172277172adac5c6056e8988c91fd098abf7818c6f5ee23e7f42"
},
{
"file": "C132-ACL-verification.json",
"sha256": "e1ce41a7dd86ae4e584473da9972d46057bc84c24945bacbbbcba2400be5e1a6"
},
{
"file": "C132-deployment-guard-proof.json",
"sha256": "d7243fb837f3093153dd2b5973457d20300e9c91e63827a1bcc1dc4fe9a52fef"
},
{
"file": "C132-access-review.json",
"sha256": "61a795f04c37d18ab503b95dc498d72f05cc9aaf4dc95d91e347099a19a4359e"
},
{
"file": "C132-exposure-period.json",
"sha256": "21e5e7c21491024885b5f0d9c52266d48256816cf1e283a0f0672e2239d8b41e"
},
{
"file": "C132-account14-manual-recovery.json",
"sha256": "238b7a432aec96e6b924b09b3e5b900115cfb6611fa1e94aa8871bd1042f91e8"
},
{
"file": "C132-account15-manual-recovery.json",
"sha256": "f1906543139a0f61a687d0588167bc74b42d065fb6aa11036bf9e3035d65f46b"
},
{
"file": "C132-account16-manual-recovery.json",
"sha256": "bb07f5dca997791e5f9d474cf234424876b5a3eaec9237a4d89193cf9c4a537e"
},
{
"file": "C132-account17-manual-recovery.json",
"sha256": "fd2458ee9594d836c88b297abb6cffb2cfcef5ce96fd888c488992c063d7b0b1"
}
]
}
@@ -0,0 +1,108 @@
{
"at": "2026-10-13T12:26:10.245325+00:00",
"case": "C132",
"proposed_status": "contido e remediado, com limitações da investigação registadas",
"known_corrective_actions_pending": [],
"accounts_recovered": [
{
"id": 14,
"email": "aurora.chachuaio@tempo.co.mz",
"individual_delivery": true,
"MFA_configured_confirmed": true,
"dashboard_confirmed": true
},
{
"id": 15,
"email": "palmira.matsinhe@tempo.co.mz",
"individual_delivery": true,
"MFA_configured_confirmed": true,
"dashboard_confirmed": true
},
{
"id": 16,
"email": "mario.melembe@tempo.co.mz",
"individual_delivery": true,
"MFA_configured_confirmed": true,
"dashboard_confirmed": true
},
{
"id": 17,
"email": "info@tempo.co.mz",
"individual_delivery": true,
"MFA_configured_confirmed": true,
"dashboard_confirmed": true
}
],
"sessions_treated_by_prior_proofs": true,
"known_actions_complete": true,
"investigation_limits": [
"Início exato da exposição indeterminado por retenção/histórico incompleto.",
"Registos disponíveis não provam ausência integral de acessos/descargas ou exfiltração.",
"Alcance anterior aos registos preservados não pode ser reconstruído sem nova evidência."
],
"no_absence_of_unauthorized_access_claim": true,
"responsible_decision": {
"recorded": false,
"responsible": null,
"date": null,
"decision": null
},
"reopen_only_on": [
"Nova evidência de credencial utilizável comprometida não tratada.",
"Acesso/ação não autorizado concreto que exija resposta adicional.",
"Diagnóstico reativado ou registos restritos novamente expostos."
],
"routine_followup": "Conservar evidências restritas e gate de implantação; repetir listagem/detalhe anónimos após futura implantação pertinente.",
"new_investigation_or_rotations": false,
"does_not_block_B": true,
"sources": [
{
"file": "C132-http-contained.json",
"sha256": "89a36d93ed39dd8207384e64373597ca36d9c0bebac67dc19cab50980fb32d16"
},
{
"file": "C132-rotation-active.json",
"sha256": "93bbbcf16dab95c6c955963ca2652ac9b002978e8225bb247e967f6a0a6e5695"
},
{
"file": "C132-session-review.json",
"sha256": "04cc4e17369ff323139b3a527453161a30b75c11f715278172c7d28935c0a002"
},
{
"file": "C132-session-revocation-QA.json",
"sha256": "5a1be0ed5c20172277172adac5c6056e8988c91fd098abf7818c6f5ee23e7f42"
},
{
"file": "C132-ACL-verification.json",
"sha256": "e1ce41a7dd86ae4e584473da9972d46057bc84c24945bacbbbcba2400be5e1a6"
},
{
"file": "C132-deployment-guard-proof.json",
"sha256": "d7243fb837f3093153dd2b5973457d20300e9c91e63827a1bcc1dc4fe9a52fef"
},
{
"file": "C132-access-review.json",
"sha256": "61a795f04c37d18ab503b95dc498d72f05cc9aaf4dc95d91e347099a19a4359e"
},
{
"file": "C132-exposure-period.json",
"sha256": "21e5e7c21491024885b5f0d9c52266d48256816cf1e283a0f0672e2239d8b41e"
},
{
"file": "C132-account14-manual-recovery.json",
"sha256": "238b7a432aec96e6b924b09b3e5b900115cfb6611fa1e94aa8871bd1042f91e8"
},
{
"file": "C132-account15-manual-recovery.json",
"sha256": "f1906543139a0f61a687d0588167bc74b42d065fb6aa11036bf9e3035d65f46b"
},
{
"file": "C132-account16-manual-recovery.json",
"sha256": "bb07f5dca997791e5f9d474cf234424876b5a3eaec9237a4d89193cf9c4a537e"
},
{
"file": "C132-account17-manual-recovery.json",
"sha256": "fd2458ee9594d836c88b297abb6cffb2cfcef5ce96fd888c488992c063d7b0b1"
}
]
}
@@ -55,5 +55,9 @@
"incident_closed": false,
"C131_included": false,
"secrets_or_values_recorded": false,
"individual_recovery_criterion_complete": true
"individual_recovery_criterion_complete": true,
"closure_status": "closure_proposed_with_documented_investigation_limits",
"corrective_actions_pending": [],
"investigation_incomplete_is_limitation_not_pending_action": true,
"closure_proposal": "C132-closure-proposal.json"
}
@@ -0,0 +1,37 @@
# InvesteMoz — roteiro agrupado de aceitação
Base de produto fixa: **396c691930bc**. Este ZIP contém apenas documentação e comprovativos de preparação; não substitui o ZIP do produto, não é candidata final e não autoriza implantação.
## Começar
1. Na máquina do portal, abrir **https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html**. A entrada verifica a base QA `stability_consumers_20261011_084534_test:55441`; se houver divergência, não executar ações.
2. Abrir localmente os acessos individuais em `storage/app/private/investmoz-v2/portal-audit/acceptance-396c-local/qa<ID>-acesso-local.html`. QA23 fica em `acceptance-396c-local-extra`. Contas, password e MFA foram conferidos sem os alterar; nunca enviar esses ficheiros, QR ou códigos para a conversa.
3. Seguir o roteiro por papéis e recuperar os resultados depois numa nova sessão. Não repetir instalações, importações, scripts técnicos ou os fechos A/B e C37.
4. Devolver os oito resultados como passou/falhou/não observado, indicando papel, URL, ação e esperado/observado. Os campos de `acceptance-396c-results.json` estão vazios deliberadamente.
| Percurso | Contas QA | Dados preparados |
| --- | --- | --- |
| 1. Projeto/coedição e revogação | 21, 22, 24, 25, 27 | Projeto 30 e rascunho 15 |
| 2. Imobiliário | 21, 24, 25 | Venda 31 e arrendamento 54 |
| 3. Direitos sobre terra | 21, 24, 25 | Caso 32, ata/esboço e hierarquia Ancuabe |
| 4. Venda de negócio canónica/mapa/carteira | 21, 24, 25; consulta pública | Caso 33 e corredor existente |
| 5. Parceria | 21, 24, 25 | Caso 34 e obrigações existentes |
| 6. Franquia/licença/formatos | 21, 24, 25, 23 | Caso 56; licença, JPEG, PDF, DOCX, XLSX, WebP |
| 7. Consumidor de negócio antigo/estatísticas | 21, 24, 25, 17 | Novo rascunho sintético, teaser anterior preservado |
| 8. Países/dossier/Terra/Balcão | 21, 24, 25, 17 | Dossier e casos já ligados; documentos/recibo |
QA17 é o gestor sintético deste ambiente, distinto da conta corporativa 17 do ativo. QA27 serve apenas o controlo administrativo de revogação; não substitui Validador/Publicador. Uma revogação observada pode ser deixada auditada: os passos restantes do Promotor seguem com QA21, sem reatribuição automática.
## Estado e limitações
- C135 confirmado: a ferramenta permitida devolve inventário vazio; o transporte nativo falha em `sky.list_apps`, antes de obter janela, com pipe indisponível/os error 2. Nenhum reset ou contorno usado. A causa interna do transporte continua indeterminada.
- A entrada responde por HTTPS reconhecido, com todos os links no mesmo ambiente QA. Isso prova disponibilidade técnica, não apresentação nem interação na interface.
- Os seis casos 30/31/32/33/34/56 foram preparados em `needs_information` pelo mecanismo existente, preservando contratos, documentos e publicações anteriores. Foi criado um único rascunho sintético no consumidor antigo; nenhuma submissão/aprovação/publicação automática nessa preparação. 15/54 e os percursos A/B foram preservados.
- As 18 posições técnicas continuam satisfeitas pelas provas anteriores. Os oito percursos visuais, acessibilidade dos comportamentos incluídos e resultados apresentados permanecem pendentes. Dispositivos reais/acessibilidade integral continuam separados.
- Publicação interna significa acesso restrito. Endpoint público dos seletores Terra/Balcão: zero camadas; oportunidades autorizadas: três limites ancestrais, localidade sem geometria própria. Sem importação/publicação de camadas neste lote. Recibo do Balcão é TXT; Office é original descarregável.
- COUNTRY02 ativo, A/B e C37 preservados. C132 permanece decisão separada. Nenhuma escrita no ativo, alteração de papéis reais, serviços ou flags.
- Restam 6–10 horas estimadas de verificação/consolidação, não horas consumidas nem prazo garantido. Após a aceitação, corrigir apenas falhas observadas e fixar revisão/manifesto/limitações, backup-restauro QA correspondente e procedimento. Não há candidata final nem novo backup/restauro final neste pacote.
## Integridade
ZIP original do produto: `investmoz-B-posicoes-tecnicas-QA-revisao-20261013.zip`, SHA-256 `5b3676a25555e140b783350eb9379a6911dcf1ef62bf0d67271ded5244d288dc`. As 29 fontes e 159 recursos compilados continuam correspondentes. O manifesto suplementar identifica os ficheiros deste roteiro; o código do produto não foi recompilado ou alterado nesta preparação.
@@ -0,0 +1,45 @@
{
"at": "2026-10-13T20:02:58.085264+00:00",
"base_review": "396c691930bc",
"scenario": 3,
"entry_url": "https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html#p3",
"selected_browser": {
"id": "2",
"name": "Codex In-app Browser",
"type": "iab"
},
"browser_available": true,
"first_failure": "initial_HTTPS_navigation_before_login",
"browser_error": "net::ERR_CERT_AUTHORITY_INVALID",
"browser_document_not_opened": true,
"QA_account_used": null,
"remaining_steps_result": "não observado",
"confirmed_criteria_preserved": [
"seletores",
"mapa",
"recuperação"
],
"new_visual_acceptance": 0,
"technical_functional_tests_repeated": 0,
"TLS_comparison_evidence": "acceptance-396c-QA-TLS-readonly-20261013.json",
"same_QA_leaf_sha256_as_reference": "df368329204106b6a182c79e7e5c98a8e73890479cb7bca7c3d0928076a60ed5",
"browser_presented_certificate_chain_not_inspected": true,
"cause_scope": "O navegador da ferramenta rejeita a autoridade. O cliente TLS do sistema valida a cadeia/hostname e a QA serve o mesmo exemplar; a causa interna no navegador/proxy não foi determinada.",
"advertised_browser_capabilities": [
"visibility",
"viewport"
],
"certificate_trust_action_exposed": false,
"error_document_access": "Página interna data: rejeitada pela política URL da ferramenta; sem nova tentativa.",
"cleanup": "Fecho da aba tentado uma vez, também rejeitado pela política da página interna; aba não marcada como entregável.",
"new_navigation_retries": 0,
"resets": 0,
"TLS_bypass": false,
"HTTP_downgrade": false,
"trust_store_changes": 0,
"credentials_read_or_transmitted": false,
"active_changes": 0,
"QA_data_changes": 0,
"final_candidate": false,
"C132_separate": true
}
@@ -0,0 +1,12 @@
{
"base_review": "396c691930bc",
"remaining_manual_steps": 7,
"sources_product_changed": 0,
"QA_data_changes": 0,
"active_changes": 0,
"visual_acceptance_added": 0,
"guide_sha256": "f8b4a45a672797fab1653b928aa6b2a2dbc12d467eaf2ca81b2875b39674747c",
"entry_sha256": "20c2dd68e47c4be52acd8bcf02a856cc1c75582c182d98733b11854850125c51",
"manifest_sha256": "55eb55ee303750e773600a23dbe3753c2c989413fdf70926e5cbc0e466bd122b",
"final_candidate": false
}
@@ -0,0 +1,29 @@
{
"at": "2026-10-13T20:00:43.966375+00:00",
"target": "portal-investidor.test:18445",
"operation": "TLS handshake only, no HTTP request or authentication",
"active_changes": 0,
"QA_data_changes": 0,
"trust_store_changes": 0,
"verification_disabled": false,
"system_client_chain_and_hostname_verified": true,
"protocol": "TLSv1.3",
"leaf_sha256": "df368329204106b6a182c79e7e5c98a8e73890479cb7bca7c3d0928076a60ed5",
"issuer": [
[
[
"commonName",
"InvestMoz portal-investidor.test local 20261011"
]
]
],
"SAN": [
[
"DNS",
"portal-investidor.test"
]
],
"notBefore": "Oct 11 07:44:24 2026 GMT",
"notAfter": "Jan 9 07:49:24 2027 GMT",
"same_leaf_as_prepared_reference": true
}
@@ -0,0 +1,22 @@
{
"attachment": {
"page_id": "page_dc08a603a4f0819190ead0169eb73599",
"reference": "library-file:fde1_bGliZmlsZV8zeFJqdnQ3ak1YdEluRjgxN3FfT0Vn_FileDrive_c902110ccc308191b2f4f6a2fc8c014a",
"file_name": "investmoz-396c-aceitacao-manual-QA-20261013-208bd911ffa940a3b8e218a18f02695a.zip",
"mime_type": "application/zip",
"byte_size": 30663,
"sha256": "94f079a0116cbdc0ac9fb3e125347fe493030004a71f8035860b6c25c6003f88",
"file_access_confirmed": true,
"is_image": false,
"markdown": "[InvesteMoz 396c roteiro agrupado de aceitação QA](library-file:fde1_bGliZmlsZV8zeFJqdnQ3ak1YdEluRjgxN3FfT0Vn_FileDrive_c902110ccc308191b2f4f6a2fc8c014a)",
"inserted": false,
"next_step": "Read the Page and use edit_page with its fresh guards to insert markdown."
},
"page": {
"page_id": "page_dc08a603a4f0819190ead0169eb73599",
"sequence": 16,
"original_blocks_preserved": 101,
"changed_existing_blocks": 3,
"manual_attachment_confirmed": true
}
}
@@ -0,0 +1,46 @@
{
"attempt_at": "2026-10-13T18:30:03+00:00",
"base_review": "396c691930bc",
"entry_url": "https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html",
"tool": "mcp__cua_repl",
"calls": [
{
"api": "cua.getState",
"result": {
"apps": [],
"browsers": []
}
},
{
"api": "cua.getBrowser",
"requested_url": "https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html",
"result": "No browser is available"
}
],
"blocker": "C135",
"first_blocked_point": "browser_selection_before_page_open_and_authentication",
"page_opened": false,
"QA_accounts_used": [],
"product_requests_performed": 0,
"shared_evidence_for_scenarios": [
1,
2,
3,
4,
5,
6,
7,
8
],
"product_failure_observed": false,
"technical_proofs_repeated": false,
"visual_acceptance_complete": false,
"final_candidate": false,
"active_changes": 0,
"QA_data_changes": 0,
"resets": 0,
"alternative_transport_used": false,
"COUNTRY02_preserved": true,
"AB_and_C37_repeated": false,
"C132_separate": true
}
@@ -0,0 +1,25 @@
{
"at": "2026-10-13T18:11:51.329956+00:00",
"result": "ready_for_manual_observation_not_accepted",
"base_review": "396c691930bc",
"entry_url": "https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html",
"entry_HTTP": 200,
"entry_sha256": "247783064cbbc6af1afd04d6d3289f3a472200270d6a0968138fdce7d0e1f076",
"TLS_bypass": false,
"QA_target": {
"database": "stability_consumers_20261011_084534_test",
"port": "55441"
},
"same_QA_runtime_confirmed": true,
"scenario_cards": 8,
"all_route_links_same_QA_origin": true,
"baseline_product_files_verified": 188,
"base_code_and_bundle_unchanged": true,
"active_code_configuration_preserved": true,
"private_access_files_not_HTTP_served": true,
"MFA_rotations": 0,
"new_visual_proofs": 0,
"new_technical_acceptance_tests": 0,
"active_writes": 0,
"final_candidate": false
}
@@ -0,0 +1,67 @@
{
"at": "2026-10-13T17:42:30+00:00",
"target": {
"database": "stability_consumers_20261011_084534_test",
"port": 55441
},
"database_writes": 0,
"active_writes": 0,
"MFA_or_password_changes": 0,
"QR_or_credentials_attached": false,
"files": [
{
"id": 21,
"label": "Promotor",
"email": "profiles-v1-promoter@example.invalid",
"file": "C:\\laragon\\www\\portal-investidor\/storage\/app\/private\/investmoz-v2\/portal-audit\/acceptance-396c-local\/qa21-acesso-local.html",
"password_verified": true,
"MFA_verified": true,
"MFA_rotated": false
},
{
"id": 22,
"label": "Coeditor e Validador",
"email": "profiles-v1-colleague@example.invalid",
"file": "C:\\laragon\\www\\portal-investidor\/storage\/app\/private\/investmoz-v2\/portal-audit\/acceptance-396c-local\/qa22-acesso-local.html",
"password_verified": true,
"MFA_verified": true,
"MFA_rotated": false
},
{
"id": 24,
"label": "Validador",
"email": "profiles-v1-validator@example.invalid",
"file": "C:\\laragon\\www\\portal-investidor\/storage\/app\/private\/investmoz-v2\/portal-audit\/acceptance-396c-local\/qa24-acesso-local.html",
"password_verified": true,
"MFA_verified": true,
"MFA_rotated": false
},
{
"id": 25,
"label": "Publicador",
"email": "profiles-v1-publisher@example.invalid",
"file": "C:\\laragon\\www\\portal-investidor\/storage\/app\/private\/investmoz-v2\/portal-audit\/acceptance-396c-local\/qa25-acesso-local.html",
"password_verified": true,
"MFA_verified": true,
"MFA_rotated": false
},
{
"id": 27,
"label": "Superutilizador sintético para conferir revogação",
"email": "profiles-v1-super_first@example.invalid",
"file": "C:\\laragon\\www\\portal-investidor\/storage\/app\/private\/investmoz-v2\/portal-audit\/acceptance-396c-local\/qa27-acesso-local.html",
"password_verified": true,
"MFA_verified": true,
"MFA_rotated": false
},
{
"id": 17,
"label": "Gestor QA de estatísticas e apoio fundiário",
"email": "geo-manager-qa@example.invalid",
"file": "C:\\laragon\\www\\portal-investidor\/storage\/app\/private\/investmoz-v2\/portal-audit\/acceptance-396c-local\/qa17-acesso-local.html",
"password_verified": true,
"MFA_verified": true,
"MFA_rotated": false
}
]
}
@@ -0,0 +1,13 @@
<?php
ini_set('zend.exception_ignore_args','1');putenv('STABILITY_QA_MODE=consumers');$acceptRoot=dirname(__DIR__,2);$acceptQA=$acceptRoot.'/storage/app/private/investmoz-v2/portal-audit/portal-stability-source-20261011_083742';$app=require $acceptQA.'/tools/portal-stability-runtime.php';$db=Illuminate\Support\Facades\DB::connection();$t=(array)$db->selectOne('SELECT current_database() AS database,inet_server_port() AS port');if($t!==['database'=>'stability_consumers_20261011_084534_test','port'=>55441])throw new RuntimeException('QA isolation required');$db->beginTransaction();$db->statement('SET TRANSACTION READ ONLY');
try{
$private=$acceptRoot.'/storage/app/private/investmoz-v2/portal-audit';$data=json_decode(file_get_contents($private.'/profiles-v1-actors-private.json'),true,512,JSON_THROW_ON_ERROR);$actors=[];
foreach([21=>'Promotor',22=>'Coeditor e Validador',24=>'Validador',25=>'Publicador',27=>'Superutilizador sintético para conferir revogação']as$id=>$label){$matches=array_filter($data,fn($a)=>is_array($a)&&($a['id']??null)===$id);if(count($matches)!==1)throw new RuntimeException('Single local QA identity required');$actors[]=['id'=>$id,'label'=>$label,'local'=>array_values($matches)[0]];}
$m=json_decode(file_get_contents(__DIR__.'/acceptance-396c-preflight.json'),true,512,JSON_THROW_ON_ERROR)['actors']['manager'];$actors[]=['id'=>$m['id'],'label'=>'Gestor QA de estatísticas e apoio fundiário','local'=>json_decode(file_get_contents($private.'/i0-qa-actor-private.json'),true,512,JSON_THROW_ON_ERROR)];
$folder=$private.'/acceptance-396c-local';if(is_dir($folder))throw new RuntimeException('Preserve existing local access files');mkdir($folder,0700,true);$result=[];$escape=fn($s)=>htmlspecialchars((string)$s,ENT_QUOTES|ENT_SUBSTITUTE,'UTF-8');
foreach($actors as$a){$u=App\Models\User::findOrFail($a['id']);$local=$a['local'];if(!str_ends_with($u->email,'@example.invalid')||!Illuminate\Support\Facades\Hash::check($local['password'],$u->password)||!$u->two_factor_confirmed_at||!hash_equals($local['totp_secret']??$local['secret'],Laravel\Fortify\Fortify::currentEncrypter()->decrypt($u->two_factor_secret)))throw new RuntimeException('Prepared credential binding mismatch');$svg=$u->twoFactorQrCodeSvg();$file=$folder.'/qa'.$u->id.'-acesso-local.html';
$html='<!doctype html><html lang="pt"><meta charset="utf-8"><title>QA18445 — '.$escape($a['label']).'</title><style>body{font:18px system-ui;max-width:720px;margin:28px auto;padding:16px}svg{width:300px;height:300px}code{overflow-wrap:anywhere}details{border:1px solid #ccc;padding:14px;margin:12px 0}</style><h1>QA18445 · '.$escape($a['label']).' · conta'.$u->id.'</h1><p>Conta sintética já existente. Somente <a href="https://portal-investidor.test:18445/login">https://portal-investidor.test:18445/login</a>.</p><p>Email: <strong>'.$escape($u->email).'</strong></p><details><summary>Mostrar password local desta conta QA</summary><p><code>'.$escape($local['password']).'</code></p></details><details><summary>Configuração existente no 2FAS Auth — QR privado</summary>'.$svg.'<p>Se já tens a entrada desta conta, continua a usá-la. Este QR usa o mesmo segredo confirmado; não altera MFA nem a conta. Identifica a entrada como InvestMoz QA18445 '.$escape($a['label']).' '.$u->id.'.</p></details><p>Usa o 2FAS Auth, com hora automática. TOTP é o formato do código; não precisas de mudar de aplicação. O QR é local e não usa serviço externo.</p><p>Não anexar, fotografar, enviar por email ou copiar passwords/QR/códigos para a conversa. Não usar credenciais do ativo ou da QA18118/18097.</p><p>Para separar papéis, usa perfis distintos do navegador. Janelas privadas do mesmo perfil partilham sessão.</p></html>';
file_put_contents($file,$html);chmod($file,0600);$result[]=['id'=>$u->id,'label'=>$a['label'],'email'=>$u->email,'file'=>$file,'password_verified'=>true,'MFA_verified'=>true,'MFA_rotated'=>false];unset($svg,$html,$local);
}
$receipt=['at'=>gmdate('c'),'target'=>$t,'database_writes'=>0,'active_writes'=>0,'MFA_or_password_changes'=>0,'QR_or_credentials_attached'=>false,'files'=>$result];file_put_contents(__DIR__.'/acceptance-396c-local-access.json',json_encode($receipt,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_THROW_ON_ERROR));echo json_encode(['prepared_files'=>count($result),'directory'=>$folder,'target'=>$t,'database_writes'=>0,'active_writes'=>0,'MFA_or_password_changes'=>0],JSON_UNESCAPED_UNICODE);
}finally{$db->rollBack();}
@@ -0,0 +1,22 @@
{
"at": "2026-10-13T17:46:47+00:00",
"target": {
"database": "stability_consumers_20261011_084534_test",
"port": 55441
},
"database_writes": 0,
"active_writes": 0,
"MFA_or_password_changes": 0,
"QR_or_credentials_attached": false,
"files": [
{
"id": 23,
"label": "Outro âmbito QA — ensaio de acesso recusado",
"email": "profiles-v1-outsider@example.invalid",
"file": "C:\\laragon\\www\\portal-investidor\/storage\/app\/private\/investmoz-v2\/portal-audit\/acceptance-396c-local-extra\/qa23-acesso-local.html",
"password_verified": true,
"MFA_verified": true,
"MFA_rotated": false
}
]
}
@@ -0,0 +1,12 @@
<?php
ini_set('zend.exception_ignore_args','1');putenv('STABILITY_QA_MODE=consumers');$acceptRoot=dirname(__DIR__,2);$acceptQA=$acceptRoot.'/storage/app/private/investmoz-v2/portal-audit/portal-stability-source-20261011_083742';$app=require $acceptQA.'/tools/portal-stability-runtime.php';$db=Illuminate\Support\Facades\DB::connection();$t=(array)$db->selectOne('SELECT current_database() AS database,inet_server_port() AS port');if($t!==['database'=>'stability_consumers_20261011_084534_test','port'=>55441])throw new RuntimeException('QA isolation required');$db->beginTransaction();$db->statement('SET TRANSACTION READ ONLY');
try{
$private=$acceptRoot.'/storage/app/private/investmoz-v2/portal-audit';$data=json_decode(file_get_contents($private.'/profiles-v1-actors-private.json'),true,512,JSON_THROW_ON_ERROR);$actors=[];
foreach([23=>'Outro âmbito QA — ensaio de acesso recusado']as$id=>$label){$matches=array_filter($data,fn($a)=>is_array($a)&&($a['id']??null)===$id);if(count($matches)!==1)throw new RuntimeException('Single local QA identity required');$actors[]=['id'=>$id,'label'=>$label,'local'=>array_values($matches)[0]];}
$folder=$private.'/acceptance-396c-local-extra';if(is_dir($folder))throw new RuntimeException('Preserve existing local access files');mkdir($folder,0700,true);$result=[];$escape=fn($s)=>htmlspecialchars((string)$s,ENT_QUOTES|ENT_SUBSTITUTE,'UTF-8');
foreach($actors as$a){$u=App\Models\User::findOrFail($a['id']);$local=$a['local'];if(!str_ends_with($u->email,'@example.invalid')||!Illuminate\Support\Facades\Hash::check($local['password'],$u->password)||!$u->two_factor_confirmed_at||!hash_equals($local['totp_secret']??$local['secret'],Laravel\Fortify\Fortify::currentEncrypter()->decrypt($u->two_factor_secret)))throw new RuntimeException('Prepared credential binding mismatch');$svg=$u->twoFactorQrCodeSvg();$file=$folder.'/qa'.$u->id.'-acesso-local.html';
$html='<!doctype html><html lang="pt"><meta charset="utf-8"><title>QA18445 — '.$escape($a['label']).'</title><style>body{font:18px system-ui;max-width:720px;margin:28px auto;padding:16px}svg{width:300px;height:300px}code{overflow-wrap:anywhere}details{border:1px solid #ccc;padding:14px;margin:12px 0}</style><h1>QA18445 · '.$escape($a['label']).' · conta'.$u->id.'</h1><p>Conta sintética já existente. Somente <a href="https://portal-investidor.test:18445/login">https://portal-investidor.test:18445/login</a>.</p><p>Email: <strong>'.$escape($u->email).'</strong></p><details><summary>Mostrar password local desta conta QA</summary><p><code>'.$escape($local['password']).'</code></p></details><details><summary>Configuração existente no 2FAS Auth — QR privado</summary>'.$svg.'<p>Se já tens a entrada desta conta, continua a usá-la. Este QR usa o mesmo segredo confirmado; não altera MFA nem a conta. Identifica a entrada como InvestMoz QA18445 '.$escape($a['label']).' '.$u->id.'.</p></details><p>Usa o 2FAS Auth, com hora automática. TOTP é o formato do código; não precisas de mudar de aplicação. O QR é local e não usa serviço externo.</p><p>Não anexar, fotografar, enviar por email ou copiar passwords/QR/códigos para a conversa. Não usar credenciais do ativo ou da QA18118/18097.</p><p>Para separar papéis, usa perfis distintos do navegador. Janelas privadas do mesmo perfil partilham sessão.</p></html>';
file_put_contents($file,$html);chmod($file,0600);$result[]=['id'=>$u->id,'label'=>$a['label'],'email'=>$u->email,'file'=>$file,'password_verified'=>true,'MFA_verified'=>true,'MFA_rotated'=>false];unset($svg,$html,$local);
}
$receipt=['at'=>gmdate('c'),'target'=>$t,'database_writes'=>0,'active_writes'=>0,'MFA_or_password_changes'=>0,'QR_or_credentials_attached'=>false,'files'=>$result];file_put_contents(__DIR__.'/acceptance-396c-local-extra-access.json',json_encode($receipt,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_THROW_ON_ERROR));echo json_encode(['prepared_files'=>count($result),'directory'=>$folder,'target'=>$t,'database_writes'=>0,'active_writes'=>0,'MFA_or_password_changes'=>0],JSON_UNESCAPED_UNICODE);
}finally{$db->rollBack();}
@@ -0,0 +1,431 @@
{
"at": "2026-10-13T17:54:44.897186+00:00",
"base_review": "396c691930bc",
"base_ZIP_sha256": "5b3676a25555e140b783350eb9379a6911dcf1ef62bf0d67271ded5244d288dc",
"base_scope_sha256": "7583e2f85bed065efc0d8592bdfd304144de7b8b6d390230e2ee049e45422714",
"entry_url": "https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html",
"QA_target": {
"database": "stability_consumers_20261011_084534_test",
"port": 55441
},
"product_code_changed": false,
"production_bundle_changed": false,
"active_changes": 0,
"base_final_candidate": false,
"new_visual_acceptance": 3,
"browser_status": {
"cua_inventory": {
"apps": [],
"browsers": []
},
"native_stage": "sky.list_apps",
"native_error": "Computer Use native pipe is unavailable; failed to connect native pipe; os error 2",
"resets": 0,
"protocol_bypass": false
},
"manual_access_prepared_existing_accounts": [
21,
22,
24,
25,
27,
17,
23
],
"QA_credentials_delivered_locally_not_in_package": true,
"scenarios": [
{
"number": 1,
"name": "Projeto e coedição",
"positions": [
"L1.1"
],
"actors": [
21,
22,
24,
25,
27
],
"routes": [
[
"/dashboard",
"Entrada pelo dashboard"
],
[
"/minhas-oportunidades/30/edit",
"Projeto30 — edição"
],
[
"/minhas-oportunidades/15/edit",
"Rascunho15 — coedição existente"
],
[
"/minhas-oportunidades/30/resources",
"Projeto30 — documentos"
],
[
"/perfis/gestao",
"QA27 — atribuições e revogação"
]
],
"steps": [
"QA21: dashboard → Minhas oportunidades → projeto30. Conferir licença, risco e condição legal/técnica identificados no contrato. Rascunho15 e coedição22 já existem; verificar os controlos/estado que ainda não tiveram apresentação visual, sem recriar a coedição.",
"Na correção do projeto 30, usar QA22 apenas no âmbito existente. Guardar e recuperar a avaliação de risco com uma nota sintética; observar erro junto ao campo, foco e estado. Não recriar a coedição.",
"Aplicar a sequência comum de submissão → correção solicitada24 → edição21/22 → revisão24 → publicação25. Conferir quais pareceres foram reabertos e os preservados.",
"Depois da edição/correção por QA22, manter essa sessão aberta. Em sessão separada, QA27 abre Perfis → Gestão → Atribuições e revogação; revoga somente a atribuição ativa de Promotor da conta 22, com motivo «Ensaio visual QA 396c: revogação de coedição de projeto». Não revogar o seu papel de Validador. Se houver atribuições indistinguíveis, parar essa ação e registar a lacuna; não escolher por ordem.",
"Na sessão anterior de QA22, atualizar o dashboard: deve exigir autenticação. Fazer novo login/MFA de QA22 e abrir o rascunho 15: edição recusada. A leitura do projeto 30 como Validador pode continuar autorizada, sem ações de edição. Concluir eventuais passos do Promotor com QA21; não reatribuir privilégios automaticamente. Esta passagem observa os controlos de revogação ainda pendentes, sem repetir o script técnico B5."
],
"expected": [
"Contrato, licença e documentos próprios recuperáveis; pareceres só dos âmbitos afetados; autoria/histórico preservados.",
"Publicação restrita identificada. Sem aprovação própria;22 não recebe novos tipos de edição.",
"Revogar pela interface invalida a sessão anterior e impede edição após novo login, preservando a leitura legitimamente concedida pelo outro papel."
],
"technical_evidence": [
"option-B3-project-workflow-HTTP.json",
"option-B4-coedit-correction-HTTP.json",
"option-B5-coeditor-revoke-HTTP.json"
]
},
{
"number": 2,
"name": "Imobiliário: venda e arrendamento",
"positions": [],
"actors": [
21,
24,
25
],
"routes": [
[
"/minhas-oportunidades/31/edit",
"Venda31 — edição"
],
[
"/minhas-oportunidades/31/resources",
"Venda31 — documentos"
],
[
"/minhas-oportunidades/54/view",
"Arrendamento54 — conferência dos controlos restantes"
]
],
"steps": [
"QA21: abrir31 e observar os campos/rótulos/erros ainda em falta. Guardar uma correção editorial identificada como ensaio visual; não alterar modalidade, preço, área, título ou evidências sem necessidade.",
"Executar a sequência comum em31, conferindo o estado e a visibilidade; não repetir as variantes já provadas de suspensão/republicação.",
"Abrir54 para observar os controlos restantes: renda4500MZN, periodicidade mensal e documentos. Recuperar noutra sessão; o workflow de54 já foi provado e não é repetido."
],
"expected": [
"Modalidades distintas e valores preservados.54 mantém4500MZN/monthly.",
"Publicação restrita e estados apresentados; variantes excluídas não são anunciadas como concluídas."
],
"technical_evidence": [
"functional-land-publication-chromium-20261011.json",
"option-B2-response-read-HTTP.json"
]
},
{
"number": 3,
"name": "Direitos sobre terra",
"positions": [
"L1.2",
"L3.1"
],
"actors": [
21,
24,
25
],
"routes": [
[
"/minhas-oportunidades/32/edit",
"Terra32 — edição"
],
[
"/minhas-oportunidades/32/resources",
"Terra32 — seletor, mapas e documentos"
]
],
"steps": [
"QA21: observar apenas a apresentação da área 12001.74 sqm, unidade e documentos próprios de titular, ata e esboço espacial v2. Abrir o PDF pelo controlo apresentado; o exemplar v1 continua preservado.",
"Executar somente as transições ainda sem observação: submissão → correção solicitada por QA24 → correção por QA21 → revisão independente/materialidade → aprovação QA24 → publicação QA25. Conferir pareceres afetados/preservados, condições e estado/visibilidade apresentados. Usar os dados territoriais já confirmados; não repetir seleção, mapa ou recuperação.",
"Na mesma passagem, observar teclado/foco/rótulos/erros dos controlos ainda não relatados. Não criar nova condição, documento obrigatório ou prazo."
],
"expected": [
"Área/unidade e documentos apresentados corretamente; originais/v1 preservados.",
"Transições e decisões apresentadas por perfis independentes; materialidade limitada aos pareceres afetados; publicação no âmbito autorizado.",
"Teclado/foco/rótulos/erros observados somente nos controlos restantes."
],
"technical_evidence": [
"option-B8-territory-HTTP.json",
"option-B8-map-v2-review-HTTP.json",
"option-B8-final-current-QA.json"
],
"manual_confirmed_criteria": [
"seletores",
"mapa",
"recuperação"
]
},
{
"number": 4,
"name": "Venda de negócio canónica",
"positions": [
"L3.2",
"L3.3"
],
"actors": [
21,
24,
25
],
"routes": [
[
"/minhas-oportunidades/33/edit",
"Negócio33 — contrato"
],
[
"/minhas-oportunidades/33/resources",
"Negócio33 — recursos"
],
[
"/oportunidades?view=map",
"Mapa público — filtros e ausência de coordenadas"
],
[
"/carteira/06b2d5d7-98ad-48db-b732-8a70b2f5eb4c",
"Carteira/corredor — mapa e relações existentes"
]
],
"steps": [
"QA21: conferir entidade/promotor real do cenário, mandato, histórico, teaser e autorização de divulgação nos campos existentes. Não substituir o promotor pela operadora do portal.",
"Guardar uma correção do texto existente, recuperar e executar a sequência comum. Observar a materialidade apresentada e as assinaturas preservadas, incluindo diferença entre mudança editorial e substantiva.",
"Após a publicação autorizada, abrir o resultado público sem login. Observar filtros/legenda/ausência no mapa uma vez, aproveitando a mesma passagem para os outros consumidores. Abrir também o corredor da carteira indicado: observar mapa, relações e mensagem de ausência, sem criar associações ou publicar geometrias."
],
"expected": [
"Só a projeção pública autorizada aparece no catálogo; contactos/mandato/payload privado excluídos.",
"Publicação pública deste caso é distinta das publicações restritas dos outros. Não alterar permissões/divulgação para fabricar resultado."
],
"technical_evidence": [
"option-B7-business-policy-QA.json",
"option-B6-map-positive-filter-HTTP.json"
]
},
{
"number": 5,
"name": "Parceria de negócio",
"positions": [
"L1.4"
],
"actors": [
21,
24,
25
],
"routes": [
[
"/minhas-oportunidades/34/edit",
"Parceria34 — contrato"
],
[
"/minhas-oportunidades/34/resources",
"Parceria34 — documentos"
]
],
"steps": [
"QA21: observar contribuições, obrigações laborais, calendário/governação, saída e impasse. Corrigir uma obrigação com uma nota sintética, guardar e recuperar os campos.",
"Executar a sequência comum; conferir reabertura das revisões financeira/legal/governação afetadas e conservação de corporate_screening quando o respetivo âmbito não mudou.",
"Abrir os documentos existentes e recuperar os dados noutra sessão; não criar sala de negociação ou SLA."
],
"expected": [
"Obrigações textuais recuperadas; documentos/períodos financeiros e decisões não afetadas preservados.",
"Publicação restrita identificada; nenhuma nova obrigação documental ou prazo externo."
],
"technical_evidence": [
"option-B6-partnership-obligations-HTTP.json"
]
},
{
"number": 6,
"name": "Franquia, licença e formatos",
"positions": [
"L1.5",
"L3.6"
],
"actors": [
21,
24,
25,
23
],
"routes": [
[
"/minhas-oportunidades/56/edit",
"Franquia56 — contrato"
],
[
"/minhas-oportunidades/56/resources",
"Franquia56 — licença, formatos e localização"
]
],
"steps": [
"QA21: conferir taxa1250, royalties6%, licença específica, titular/marca/territórioQA e exclusividade. Abrir a licença, JPEG, DOCX e XLSX; observar nome, estado e download. Office é original descarregável, não preview obrigatório.",
"Observar WebP e hierarquia/ausência já preparada nos recursos. Corrigir somente texto da exclusividade para esta passagem e executar a sequência comum; não repetir os ramos técnicos de taxa/royalties.",
"Após publicação restrita, recuperar noutra sessão. ComQA23, abrir a mesma página/recurso: deve negar acesso; não remover o papelValidador global de22 para forçar uma recusa."
],
"expected": [
"Marca/licença/legal reabrem quando a exclusividade muda; financeiro/confidencialidade mantidos quando não afetados.",
"Documentos originais preservados;23 negado e22 mantém leitura legítima como Validador global. Nenhum direito real inferido dos PDFs sintéticos."
],
"technical_evidence": [
"option-B8-documents-56-review-HTTP.json",
"option-B8-formats-remainder-HTTP.json"
]
},
{
"number": 7,
"name": "Anúncio antigo, países e estatísticas",
"positions": [
"L1.3",
"L2.2",
"L2.5"
],
"actors": [
21,
24,
25,
17
],
"routes": [
[
"/dashboard",
"Confirmar entrada de revisão no dashboard24/25"
],
[
"/investidor/negocios/172aa874-98fc-4bf6-b78f-d2e9a386d345",
"Rascunho do anúncio para esta passagem"
],
[
"/management/negocios",
"Fila de revisão24/25"
],
[
"/negocios/simulacao-qa-b7-tres-papeis-definidos-pela-tempo-67d806991b",
"Teaser público anterior preservado"
],
[
"/management/interests",
"Filtros e estatísticas17"
]
],
"steps": [
"QA21: abrir o rascunho preparado, conferir dados/mandato e submeter pela interface com o consentimento/referência já presentes. QA24: a partir do dashboard, abrir Parcerias → Revisão de negócios; iniciar a revisão e solicitar uma correção. Se essa ação não existir neste consumidor, registar a lacuna sem improvisar outra etapa.",
"QA21 corrige e ressubmete; QA24 conclui os passos legados existentes e aprova. O mesmo Validador pode concluir os dois níveis; não é necessária quarta pessoa. QA25 publica; abrir o novo teaser sem login e confirmar ausência do privado.",
"No formulário de interesse deste anúncio, observar os campos empresa/país/origem/erros. Se for preciso enviar para observar o resultado, enviar uma única solicitação sintética; repetir apenas a mesma tentativa preparada pelo formulário. ComQA17, observar filtro, recibo e denominador correspondente. Não inferir investidores únicos pela soma de coleções."
],
"expected": [
"Entrada no dashboard24/25 e resultado visível em cada ação; autoria/aprovação/publicação independentes.",
"País da entidade e origem separados; a repetição da mesma tentativa não duplica. O rascunho novo ainda não foi submetido/publicado automaticamente."
],
"technical_evidence": [
"option-B7-three-actor-HTTP.json",
"option-B7-navigation-HTTP.json",
"option-B6-reuse-countries.json"
]
},
{
"number": 8,
"name": "Organização, dossier, apoio fundiário e Balcão",
"positions": [
"L2.1",
"L2.3",
"L2.4",
"L3.4",
"L3.5",
"L3.7",
"L3.8"
],
"actors": [
21,
24,
25,
17
],
"routes": [
[
"/investidor/profile",
"Perfil e país da organização"
],
[
"/investidor/manifestacoes/01a127a9-4454-731c-bb15-fc89649120ea",
"Submissão histórica da entidade"
],
[
"/investimentos/b3e162da-0f9e-4ed4-8e66-c1febcb8504b",
"Dossier ligado à preparação fundiária"
],
[
"/investidor/terra-duat/01a1363a-ce9c-71fb-a782-20b3062f6908",
"Pedido fundiário ligado ao dossier"
],
[
"/investidor/terra-duat/01a13504-61d9-7033-89dd-40563f857517",
"Caso de entidade: seletores e anexos"
],
[
"/management/terra-duat/01a13504-61d9-7033-89dd-40563f857517",
"Gestor17: anexos do caso"
],
[
"/balcao-virtual/dossiers/b0e591ab-c6b3-41ea-b3ed-cd9efa575bc5",
"DossierBalcão"
],
[
"/balcao-virtual/pedidos/8a42ee0d-e47e-4f27-9e73-b986d0345058",
"PedidoBalcão/localização/recibo"
]
],
"steps": [
"QA21: observar país mestreZA, país histórico declaradoFR, residênciaPT e origemBR nos consumidores correspondentes. Não editar a organização real Tempo e não reenviar a submissão já aceite.",
"No dossier ligado, usar Preparar Terra e DUAT/continuar e Voltar ao dossier; guardar uma edição apenas nesse pedido em rascunho e recuperar noutra sessão. Verificar que outro dossier não recebe este vínculo. No caso de entidade existente, observar quatro seletores, origemPT e paísZA independente da localizaçãoMZ; abrir ata/esboço/fotografia.",
"QA17: abrir o caso administrativo e descarregar o anexo pelo link apresentado; verificar resultado visível sem usar o endpoint do titular. NoBalcão, observar locality/fonte, mensagem de ausência de camadas públicas e reciboTXT. QA24, cuja atribuição foi retirada, deve ver recusa; QA25, atualmente atribuído, deve abrir o mesmo anexo/recibo. Aproveitar esta passagem para comparar sessões e recuperar os dados."
],
"expected": [
"País mestre/declarado/residência/origem não são confundidos; snapshots antigos intactos.",
"Contexto/dossier correto, documentos autorizados e revogação visível. Recibo éTXT, mapa do seletor tem ausência explícita; não se inventa um mapa autónomo do dossier. A/B/C37 não são repetidos."
],
"technical_evidence": [
"option-B6-company-submission-HTTP.json",
"option-B8-context-access-finish-HTTP.json",
"option-B8-secondary-verify-HTTP.json"
]
}
],
"common_steps": [
"Login, MFA e dashboard já confirmados para QA17, QA21, QA22, QA24, QA25 e QA2: não repetir esses ensaios. Usar as sessões necessárias para as ações operacionais restantes; QA2 não substitui QA27 na revogação.",
"Organizar a passagem por papéis: QA21/22 prepara e submete os casos1–6; QA24 solicita uma correção curta onde falta observação visual; QA21/22 corrige; QA24 revê/aprova; QA25 publica; QA21 recupera depois numa nova sessão. Usar perfis independentes do navegador ou alternar pelo botãoSair — é uma opção prática, não regra organizacional.",
"Em Workflow interno, usar os controlos existentes: Submeter para validação; Iniciar validação; Solicitar correções; Guardar revisão especializada; Aprovar versão; Disponibilizar com acesso restrito/Publicar no catálogo público. Motivo deve identificar ensaio visual396c e ter pelo menos20caracteres. Selecionar evidência própria do caso nas revisões afetadas. Resolver apenas condições reabertas já existentes; não criar responsáveis, SLA ou aprovação externa.",
"Em cada percurso recolher simultaneamente campo/erro adjacente, estado/visibilidade, documento/mapa quando aplicável, tecladoTab/Shift+Tab/Enter, foco/rótulos e recuperação. Observar320/390px somente nos controlos novos ou sem prova; não repetir os critérios móveisA/B já aceites. Dispositivos reais e acessibilidade integral ficam separados.",
"Se uma ação falhar, parar só esse trecho e registar percurso, papel, URL, ação, esperado/observado e mensagem. Não repetir o clique sem conferir o estado. Não incluir passwords, MFA, cookies, tokens, QR ou documentos privados em capturas.",
"Não repetir scriptsAPI/SQL, instalações, importações, scans ou ramos já validados. Os cliques desta passagem são a aceitação visual ainda em falta, não outra bateria técnica. Uma prova visual pode cobrir várias linhas quando campo/consumidor/perfil/resultado coincidem."
],
"limitations": [
"Publicação interna/restrita não é catálogo público. A publicação anterior foi preservada durante a preparação das correções.",
"Endpoint autorizado das oportunidades: três limites ancestrais no caso32/56; localidade sem geometria própria. Endpoint público dos seletoresTerra/Balcão: zerocamadas; ausência deve ser explícita. Sem novas publicações/importações cartográficas.",
"PDF enviado, WebP, downloadOffice, impressão do browser e reciboTXT são operações distintas. Não exigir previewOffice ou chamarTXT dePDF.",
"C135 impede apenas a execução automática da interface. Esta página/roteiro não prova os oito percursos. C132, COUNTRY02, A/B eC37 mantêm os seus estados; não há ativação ou alterações no ativo.",
"Depois dos oito resultados, corrigir exclusivamente falhas observadas emQA, identificando delta e repetindo só o trecho afetado. Só então fixar revisão final, manifesto/limitações/backup-restauroQA correspondente e procedimento de disponibilização; ativação exige decisão separada."
],
"manual_guide_updated_at": "2026-10-13T18:11:17.484540+00:00",
"manual_confirmation_evidence": "acceptance-396c-manual-confirmation-20261013.json",
"manual_confirmation_recorded_at": "2026-10-13T19:44:07.707961+00:00",
"new_visual_acceptance_scope": "Três critérios declarados do cenário3, não três percursos nem aceitação global.",
"authentication_manual_confirmed_accounts": [
17,
21,
22,
24,
25,
2
]
}
@@ -0,0 +1,413 @@
{
"at": "2026-10-13T17:54:44.897186+00:00",
"base_review": "396c691930bc",
"base_ZIP_sha256": "5b3676a25555e140b783350eb9379a6911dcf1ef62bf0d67271ded5244d288dc",
"base_scope_sha256": "7583e2f85bed065efc0d8592bdfd304144de7b8b6d390230e2ee049e45422714",
"entry_url": "https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html",
"QA_target": {
"database": "stability_consumers_20261011_084534_test",
"port": 55441
},
"product_code_changed": false,
"production_bundle_changed": false,
"active_changes": 0,
"base_final_candidate": false,
"new_visual_acceptance": 0,
"browser_status": {
"cua_inventory": {
"apps": [],
"browsers": []
},
"native_stage": "sky.list_apps",
"native_error": "Computer Use native pipe is unavailable; failed to connect native pipe; os error 2",
"resets": 0,
"protocol_bypass": false
},
"manual_access_prepared_existing_accounts": [
21,
22,
24,
25,
27,
17,
23
],
"QA_credentials_delivered_locally_not_in_package": true,
"scenarios": [
{
"number": 1,
"name": "Projeto e coedição",
"positions": [
"L1.1"
],
"actors": [
21,
22,
24,
25,
27
],
"routes": [
[
"/dashboard",
"Entrada pelo dashboard"
],
[
"/minhas-oportunidades/30/edit",
"Projeto30 — edição"
],
[
"/minhas-oportunidades/15/edit",
"Rascunho15 — coedição existente"
],
[
"/minhas-oportunidades/30/resources",
"Projeto30 — documentos"
],
[
"/perfis/gestao",
"QA27 — atribuições e revogação"
]
],
"steps": [
"QA21: dashboard → Minhas oportunidades → projeto30. Conferir licença, risco e condição legal/técnica identificados no contrato. Rascunho15 e coedição22 já existem; verificar os controlos/estado que ainda não tiveram apresentação visual, sem recriar a coedição.",
"Na correção do projeto 30, usar QA22 apenas no âmbito existente. Guardar e recuperar a avaliação de risco com uma nota sintética; observar erro junto ao campo, foco e estado. Não recriar a coedição.",
"Aplicar a sequência comum de submissão → correção solicitada24 → edição21/22 → revisão24 → publicação25. Conferir quais pareceres foram reabertos e os preservados.",
"Depois da edição/correção por QA22, manter essa sessão aberta. Em sessão separada, QA27 abre Perfis → Gestão → Atribuições e revogação; revoga somente a atribuição ativa de Promotor da conta 22, com motivo «Ensaio visual QA 396c: revogação de coedição de projeto». Não revogar o seu papel de Validador. Se houver atribuições indistinguíveis, parar essa ação e registar a lacuna; não escolher por ordem.",
"Na sessão anterior de QA22, atualizar o dashboard: deve exigir autenticação. Fazer novo login/MFA de QA22 e abrir o rascunho 15: edição recusada. A leitura do projeto 30 como Validador pode continuar autorizada, sem ações de edição. Concluir eventuais passos do Promotor com QA21; não reatribuir privilégios automaticamente. Esta passagem observa os controlos de revogação ainda pendentes, sem repetir o script técnico B5."
],
"expected": [
"Contrato, licença e documentos próprios recuperáveis; pareceres só dos âmbitos afetados; autoria/histórico preservados.",
"Publicação restrita identificada. Sem aprovação própria;22 não recebe novos tipos de edição.",
"Revogar pela interface invalida a sessão anterior e impede edição após novo login, preservando a leitura legitimamente concedida pelo outro papel."
],
"technical_evidence": [
"option-B3-project-workflow-HTTP.json",
"option-B4-coedit-correction-HTTP.json",
"option-B5-coeditor-revoke-HTTP.json"
]
},
{
"number": 2,
"name": "Imobiliário: venda e arrendamento",
"positions": [],
"actors": [
21,
24,
25
],
"routes": [
[
"/minhas-oportunidades/31/edit",
"Venda31 — edição"
],
[
"/minhas-oportunidades/31/resources",
"Venda31 — documentos"
],
[
"/minhas-oportunidades/54/view",
"Arrendamento54 — conferência dos controlos restantes"
]
],
"steps": [
"QA21: abrir31 e observar os campos/rótulos/erros ainda em falta. Guardar uma correção editorial identificada como ensaio visual; não alterar modalidade, preço, área, título ou evidências sem necessidade.",
"Executar a sequência comum em31, conferindo o estado e a visibilidade; não repetir as variantes já provadas de suspensão/republicação.",
"Abrir54 para observar os controlos restantes: renda4500MZN, periodicidade mensal e documentos. Recuperar noutra sessão; o workflow de54 já foi provado e não é repetido."
],
"expected": [
"Modalidades distintas e valores preservados.54 mantém4500MZN/monthly.",
"Publicação restrita e estados apresentados; variantes excluídas não são anunciadas como concluídas."
],
"technical_evidence": [
"functional-land-publication-chromium-20261011.json",
"option-B2-response-read-HTTP.json"
]
},
{
"number": 3,
"name": "Direitos sobre terra",
"positions": [
"L1.2",
"L3.1"
],
"actors": [
21,
24,
25
],
"routes": [
[
"/minhas-oportunidades/32/edit",
"Terra32 — edição"
],
[
"/minhas-oportunidades/32/resources",
"Terra32 — seletor, mapas e documentos"
]
],
"steps": [
"QA21: conferir área12001.74sqm e os documentos próprios de titular, ata e esboço espacialv2. Abrir o PDF; o exemplarv1 permanece preservado.",
"Nos recursos, selecionar Cabo Delgado → Ancuabe → Ancuabe → Ancuabe-Sede. Observar os três limites ancestrais e a ausência de limite próprio da localidade. Alterar pai/país no preenchimento, confirmar limpeza dos filhos e erro junto ao campo; repor a seleção original antes de guardar.",
"Executar a sequência comum. Na revisão, conferir a materialidade e resolver explicitamente apenas uma condição antiga que o sistema reabra; não criar outra condição ou prazo. Conferir o esboço/ata e recuperar após publicação."
],
"expected": [
"Valores/IDs/documentos recuperados; mapa distingue limite administrativo de parcela/direito.",
"O scan já é limpo. Não reimportar camadas nem inventar autorização externa. Plano não exigido e conflito declarado none não criam peça obrigatória nova."
],
"technical_evidence": [
"option-B8-territory-HTTP.json",
"option-B8-map-v2-review-HTTP.json",
"option-B8-final-current-QA.json"
]
},
{
"number": 4,
"name": "Venda de negócio canónica",
"positions": [
"L3.2",
"L3.3"
],
"actors": [
21,
24,
25
],
"routes": [
[
"/minhas-oportunidades/33/edit",
"Negócio33 — contrato"
],
[
"/minhas-oportunidades/33/resources",
"Negócio33 — recursos"
],
[
"/oportunidades?view=map",
"Mapa público — filtros e ausência de coordenadas"
],
[
"/carteira/06b2d5d7-98ad-48db-b732-8a70b2f5eb4c",
"Carteira/corredor — mapa e relações existentes"
]
],
"steps": [
"QA21: conferir entidade/promotor real do cenário, mandato, histórico, teaser e autorização de divulgação nos campos existentes. Não substituir o promotor pela operadora do portal.",
"Guardar uma correção do texto existente, recuperar e executar a sequência comum. Observar a materialidade apresentada e as assinaturas preservadas, incluindo diferença entre mudança editorial e substantiva.",
"Após a publicação autorizada, abrir o resultado público sem login. Observar filtros/legenda/ausência no mapa uma vez, aproveitando a mesma passagem para os outros consumidores. Abrir também o corredor da carteira indicado: observar mapa, relações e mensagem de ausência, sem criar associações ou publicar geometrias."
],
"expected": [
"Só a projeção pública autorizada aparece no catálogo; contactos/mandato/payload privado excluídos.",
"Publicação pública deste caso é distinta das publicações restritas dos outros. Não alterar permissões/divulgação para fabricar resultado."
],
"technical_evidence": [
"option-B7-business-policy-QA.json",
"option-B6-map-positive-filter-HTTP.json"
]
},
{
"number": 5,
"name": "Parceria de negócio",
"positions": [
"L1.4"
],
"actors": [
21,
24,
25
],
"routes": [
[
"/minhas-oportunidades/34/edit",
"Parceria34 — contrato"
],
[
"/minhas-oportunidades/34/resources",
"Parceria34 — documentos"
]
],
"steps": [
"QA21: observar contribuições, obrigações laborais, calendário/governação, saída e impasse. Corrigir uma obrigação com uma nota sintética, guardar e recuperar os campos.",
"Executar a sequência comum; conferir reabertura das revisões financeira/legal/governação afetadas e conservação de corporate_screening quando o respetivo âmbito não mudou.",
"Abrir os documentos existentes e recuperar os dados noutra sessão; não criar sala de negociação ou SLA."
],
"expected": [
"Obrigações textuais recuperadas; documentos/períodos financeiros e decisões não afetadas preservados.",
"Publicação restrita identificada; nenhuma nova obrigação documental ou prazo externo."
],
"technical_evidence": [
"option-B6-partnership-obligations-HTTP.json"
]
},
{
"number": 6,
"name": "Franquia, licença e formatos",
"positions": [
"L1.5",
"L3.6"
],
"actors": [
21,
24,
25,
23
],
"routes": [
[
"/minhas-oportunidades/56/edit",
"Franquia56 — contrato"
],
[
"/minhas-oportunidades/56/resources",
"Franquia56 — licença, formatos e localização"
]
],
"steps": [
"QA21: conferir taxa1250, royalties6%, licença específica, titular/marca/territórioQA e exclusividade. Abrir a licença, JPEG, DOCX e XLSX; observar nome, estado e download. Office é original descarregável, não preview obrigatório.",
"Observar WebP e hierarquia/ausência já preparada nos recursos. Corrigir somente texto da exclusividade para esta passagem e executar a sequência comum; não repetir os ramos técnicos de taxa/royalties.",
"Após publicação restrita, recuperar noutra sessão. ComQA23, abrir a mesma página/recurso: deve negar acesso; não remover o papelValidador global de22 para forçar uma recusa."
],
"expected": [
"Marca/licença/legal reabrem quando a exclusividade muda; financeiro/confidencialidade mantidos quando não afetados.",
"Documentos originais preservados;23 negado e22 mantém leitura legítima como Validador global. Nenhum direito real inferido dos PDFs sintéticos."
],
"technical_evidence": [
"option-B8-documents-56-review-HTTP.json",
"option-B8-formats-remainder-HTTP.json"
]
},
{
"number": 7,
"name": "Anúncio antigo, países e estatísticas",
"positions": [
"L1.3",
"L2.2",
"L2.5"
],
"actors": [
21,
24,
25,
17
],
"routes": [
[
"/dashboard",
"Confirmar entrada de revisão no dashboard24/25"
],
[
"/investidor/negocios/172aa874-98fc-4bf6-b78f-d2e9a386d345",
"Rascunho do anúncio para esta passagem"
],
[
"/management/negocios",
"Fila de revisão24/25"
],
[
"/negocios/simulacao-qa-b7-tres-papeis-definidos-pela-tempo-67d806991b",
"Teaser público anterior preservado"
],
[
"/management/interests",
"Filtros e estatísticas17"
]
],
"steps": [
"QA21: abrir o rascunho preparado, conferir dados/mandato e submeter pela interface com o consentimento/referência já presentes. QA24: a partir do dashboard, abrir Parcerias → Revisão de negócios; iniciar a revisão e solicitar uma correção. Se essa ação não existir neste consumidor, registar a lacuna sem improvisar outra etapa.",
"QA21 corrige e ressubmete; QA24 conclui os passos legados existentes e aprova. O mesmo Validador pode concluir os dois níveis; não é necessária quarta pessoa. QA25 publica; abrir o novo teaser sem login e confirmar ausência do privado.",
"No formulário de interesse deste anúncio, observar os campos empresa/país/origem/erros. Se for preciso enviar para observar o resultado, enviar uma única solicitação sintética; repetir apenas a mesma tentativa preparada pelo formulário. ComQA17, observar filtro, recibo e denominador correspondente. Não inferir investidores únicos pela soma de coleções."
],
"expected": [
"Entrada no dashboard24/25 e resultado visível em cada ação; autoria/aprovação/publicação independentes.",
"País da entidade e origem separados; a repetição da mesma tentativa não duplica. O rascunho novo ainda não foi submetido/publicado automaticamente."
],
"technical_evidence": [
"option-B7-three-actor-HTTP.json",
"option-B7-navigation-HTTP.json",
"option-B6-reuse-countries.json"
]
},
{
"number": 8,
"name": "Organização, dossier, apoio fundiário e Balcão",
"positions": [
"L2.1",
"L2.3",
"L2.4",
"L3.4",
"L3.5",
"L3.7",
"L3.8"
],
"actors": [
21,
24,
25,
17
],
"routes": [
[
"/investidor/profile",
"Perfil e país da organização"
],
[
"/investidor/manifestacoes/01a127a9-4454-731c-bb15-fc89649120ea",
"Submissão histórica da entidade"
],
[
"/investimentos/b3e162da-0f9e-4ed4-8e66-c1febcb8504b",
"Dossier ligado à preparação fundiária"
],
[
"/investidor/terra-duat/01a1363a-ce9c-71fb-a782-20b3062f6908",
"Pedido fundiário ligado ao dossier"
],
[
"/investidor/terra-duat/01a13504-61d9-7033-89dd-40563f857517",
"Caso de entidade: seletores e anexos"
],
[
"/management/terra-duat/01a13504-61d9-7033-89dd-40563f857517",
"Gestor17: anexos do caso"
],
[
"/balcao-virtual/dossiers/b0e591ab-c6b3-41ea-b3ed-cd9efa575bc5",
"DossierBalcão"
],
[
"/balcao-virtual/pedidos/8a42ee0d-e47e-4f27-9e73-b986d0345058",
"PedidoBalcão/localização/recibo"
]
],
"steps": [
"QA21: observar país mestreZA, país histórico declaradoFR, residênciaPT e origemBR nos consumidores correspondentes. Não editar a organização real Tempo e não reenviar a submissão já aceite.",
"No dossier ligado, usar Preparar Terra e DUAT/continuar e Voltar ao dossier; guardar uma edição apenas nesse pedido em rascunho e recuperar noutra sessão. Verificar que outro dossier não recebe este vínculo. No caso de entidade existente, observar quatro seletores, origemPT e paísZA independente da localizaçãoMZ; abrir ata/esboço/fotografia.",
"QA17: abrir o caso administrativo e descarregar o anexo pelo link apresentado; verificar resultado visível sem usar o endpoint do titular. NoBalcão, observar locality/fonte, mensagem de ausência de camadas públicas e reciboTXT. QA24, cuja atribuição foi retirada, deve ver recusa; QA25, atualmente atribuído, deve abrir o mesmo anexo/recibo. Aproveitar esta passagem para comparar sessões e recuperar os dados."
],
"expected": [
"País mestre/declarado/residência/origem não são confundidos; snapshots antigos intactos.",
"Contexto/dossier correto, documentos autorizados e revogação visível. Recibo éTXT, mapa do seletor tem ausência explícita; não se inventa um mapa autónomo do dossier. A/B/C37 não são repetidos."
],
"technical_evidence": [
"option-B6-company-submission-HTTP.json",
"option-B8-context-access-finish-HTTP.json",
"option-B8-secondary-verify-HTTP.json"
]
}
],
"common_steps": [
"Organizar a passagem por papéis: QA21/22 prepara e submete os casos1–6; QA24 solicita uma correção curta onde falta observação visual; QA21/22 corrige; QA24 revê/aprova; QA25 publica; QA21 recupera depois numa nova sessão. Usar perfis independentes do navegador ou alternar pelo botãoSair — é uma opção prática, não regra organizacional.",
"Em Workflow interno, usar os controlos existentes: Submeter para validação; Iniciar validação; Solicitar correções; Guardar revisão especializada; Aprovar versão; Disponibilizar com acesso restrito/Publicar no catálogo público. Motivo deve identificar ensaio visual396c e ter pelo menos20caracteres. Selecionar evidência própria do caso nas revisões afetadas. Resolver apenas condições reabertas já existentes; não criar responsáveis, SLA ou aprovação externa.",
"Em cada percurso recolher simultaneamente campo/erro adjacente, estado/visibilidade, documento/mapa quando aplicável, tecladoTab/Shift+Tab/Enter, foco/rótulos e recuperação. Observar320/390px somente nos controlos novos ou sem prova; não repetir os critérios móveisA/B já aceites. Dispositivos reais e acessibilidade integral ficam separados.",
"Se uma ação falhar, parar só esse trecho e registar percurso, papel, URL, ação, esperado/observado e mensagem. Não repetir o clique sem conferir o estado. Não incluir passwords, MFA, cookies, tokens, QR ou documentos privados em capturas.",
"Não repetir scriptsAPI/SQL, instalações, importações, scans ou ramos já validados. Os cliques desta passagem são a aceitação visual ainda em falta, não outra bateria técnica. Uma prova visual pode cobrir várias linhas quando campo/consumidor/perfil/resultado coincidem."
],
"limitations": [
"Publicação interna/restrita não é catálogo público. A publicação anterior foi preservada durante a preparação das correções.",
"Endpoint autorizado das oportunidades: três limites ancestrais no caso32/56; localidade sem geometria própria. Endpoint público dos seletoresTerra/Balcão: zerocamadas; ausência deve ser explícita. Sem novas publicações/importações cartográficas.",
"PDF enviado, WebP, downloadOffice, impressão do browser e reciboTXT são operações distintas. Não exigir previewOffice ou chamarTXT dePDF.",
"C135 impede apenas a execução automática da interface. Esta página/roteiro não prova os oito percursos. C132, COUNTRY02, A/B eC37 mantêm os seus estados; não há ativação ou alterações no ativo.",
"Depois dos oito resultados, corrigir exclusivamente falhas observadas emQA, identificando delta e repetindo só o trecho afetado. Só então fixar revisão final, manifesto/limitações/backup-restauroQA correspondente e procedimento de disponibilização; ativação exige decisão separada."
],
"manual_guide_updated_at": "2026-10-13T18:11:17.484540+00:00"
}
@@ -0,0 +1,474 @@
{
"at": "2026-10-13T17:54:44.897186+00:00",
"base_review": "396c691930bc",
"base_ZIP_sha256": "5b3676a25555e140b783350eb9379a6911dcf1ef62bf0d67271ded5244d288dc",
"base_scope_sha256": "7583e2f85bed065efc0d8592bdfd304144de7b8b6d390230e2ee049e45422714",
"entry_url": "https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html",
"QA_target": {
"database": "stability_consumers_20261011_084534_test",
"port": 55441
},
"product_code_changed": false,
"production_bundle_changed": false,
"active_changes": 0,
"base_final_candidate": false,
"new_visual_acceptance": 3,
"browser_status": {
"cua_inventory": {
"apps": [],
"browsers": []
},
"native_stage": "sky.list_apps",
"native_error": "Computer Use native pipe is unavailable; failed to connect native pipe; os error 2",
"resets": 0,
"protocol_bypass": false,
"current_selected_browser": "Codex In-app Browser / iab / ID2",
"current_blocker": "ERR_CERT_AUTHORITY_INVALID before initial page open",
"TLS_comparison": "Same QA certificate as reference; system client verifies; browser presented chain not inspected"
},
"manual_access_prepared_existing_accounts": [
21,
22,
24,
25,
27,
17,
23
],
"QA_credentials_delivered_locally_not_in_package": true,
"scenarios": [
{
"number": 1,
"name": "Projeto e coedição",
"positions": [
"L1.1"
],
"actors": [
21,
22,
24,
25,
27
],
"routes": [
[
"/dashboard",
"Entrada pelo dashboard"
],
[
"/minhas-oportunidades/30/edit",
"Projeto30 — edição"
],
[
"/minhas-oportunidades/15/edit",
"Rascunho15 — coedição existente"
],
[
"/minhas-oportunidades/30/resources",
"Projeto30 — documentos"
],
[
"/perfis/gestao",
"QA27 — atribuições e revogação"
]
],
"steps": [
"QA21: dashboard → Minhas oportunidades → projeto30. Conferir licença, risco e condição legal/técnica identificados no contrato. Rascunho15 e coedição22 já existem; verificar os controlos/estado que ainda não tiveram apresentação visual, sem recriar a coedição.",
"Na correção do projeto 30, usar QA22 apenas no âmbito existente. Guardar e recuperar a avaliação de risco com uma nota sintética; observar erro junto ao campo, foco e estado. Não recriar a coedição.",
"Aplicar a sequência comum de submissão → correção solicitada24 → edição21/22 → revisão24 → publicação25. Conferir quais pareceres foram reabertos e os preservados.",
"Depois da edição/correção por QA22, manter essa sessão aberta. Em sessão separada, QA27 abre Perfis → Gestão → Atribuições e revogação; revoga somente a atribuição ativa de Promotor da conta 22, com motivo «Ensaio visual QA 396c: revogação de coedição de projeto». Não revogar o seu papel de Validador. Se houver atribuições indistinguíveis, parar essa ação e registar a lacuna; não escolher por ordem.",
"Na sessão anterior de QA22, atualizar o dashboard: deve exigir autenticação. Fazer novo login/MFA de QA22 e abrir o rascunho 15: edição recusada. A leitura do projeto 30 como Validador pode continuar autorizada, sem ações de edição. Concluir eventuais passos do Promotor com QA21; não reatribuir privilégios automaticamente. Esta passagem observa os controlos de revogação ainda pendentes, sem repetir o script técnico B5."
],
"expected": [
"Contrato, licença e documentos próprios recuperáveis; pareceres só dos âmbitos afetados; autoria/histórico preservados.",
"Publicação restrita identificada. Sem aprovação própria;22 não recebe novos tipos de edição.",
"Revogar pela interface invalida a sessão anterior e impede edição após novo login, preservando a leitura legitimamente concedida pelo outro papel."
],
"technical_evidence": [
"option-B3-project-workflow-HTTP.json",
"option-B4-coedit-correction-HTTP.json",
"option-B5-coeditor-revoke-HTTP.json"
]
},
{
"number": 2,
"name": "Imobiliário: venda e arrendamento",
"positions": [],
"actors": [
21,
24,
25
],
"routes": [
[
"/minhas-oportunidades/31/edit",
"Venda31 — edição"
],
[
"/minhas-oportunidades/31/resources",
"Venda31 — documentos"
],
[
"/minhas-oportunidades/54/view",
"Arrendamento54 — conferência dos controlos restantes"
]
],
"steps": [
"QA21: abrir31 e observar os campos/rótulos/erros ainda em falta. Guardar uma correção editorial identificada como ensaio visual; não alterar modalidade, preço, área, título ou evidências sem necessidade.",
"Executar a sequência comum em31, conferindo o estado e a visibilidade; não repetir as variantes já provadas de suspensão/republicação.",
"Abrir54 para observar os controlos restantes: renda4500MZN, periodicidade mensal e documentos. Recuperar noutra sessão; o workflow de54 já foi provado e não é repetido."
],
"expected": [
"Modalidades distintas e valores preservados.54 mantém4500MZN/monthly.",
"Publicação restrita e estados apresentados; variantes excluídas não são anunciadas como concluídas."
],
"technical_evidence": [
"functional-land-publication-chromium-20261011.json",
"option-B2-response-read-HTTP.json"
]
},
{
"number": 3,
"name": "Direitos sobre terra",
"positions": [
"L1.2",
"L3.1"
],
"actors": [
21,
24,
25
],
"routes": [
[
"/minhas-oportunidades/32/edit",
"QA21 — área e edição"
],
[
"/minhas-oportunidades/32/resources",
"Documentos existentes do caso32"
],
[
"/minhas-oportunidades/32/view",
"QA24/QA25 — revisão e publicação"
]
],
"steps": [
"QA21: abrir área/edição e conferir 12001.74 sqm (m²) e a unidade apresentada. Nos documentos do caso32, abrir as peças já existentes de titular, ata e esboço espacial v2; o exemplar v1 permanece preservado. Sem novo upload ou scan, seleção territorial, mapa ou recuperação.",
"QA21: na secção Workflow interno, usar «Submeter para validação». Esperado: versão submetida e estado apresentado. O motivo, quando solicitado, deve identificar este ensaio e ter pelo menos20caracteres.",
"QA24, na página /32/view: «Iniciar validação» → «Solicitar correções», indicando uma correção concreta de texto/campo já existente. Esperado: pedido e motivo apresentados, com oportunidade em correção. Não criar nova obrigação, documento ou prazo.",
"QA21: aplicar somente a correção solicitada, guardar e usar «Submeter para validação». Esperado: correção apresentada e nova versão em validação; área, IDs e documentos previamente confirmados preservados.",
"QA24, em /32/view: conferir materialidade/pareceres e evidências. Usar «Guardar revisão especializada» apenas nos pareceres reabertos; conservar os não afetados. Depois «Aprovar versão». Esperado: revisão independente e versão aprovada; resolver apenas condições já existentes aplicáveis.",
"QA25, em /32/view: usar «Disponibilizar com acesso restrito». Esperado: versão disponibilizada, estado/visibilidade restrita e auditoria apresentados. Esta publicação é interna, não catálogo público.",
"Na mesma passagem, observar teclado/foco/rótulos/erros dos controlos acima ainda sem prova. Se algum passo falhar, registar papel, URL, ação e esperado/observado; os seguintes ficam «não observado». Não repetir login/MFA/dashboard ou os três critérios territoriais já confirmados."
],
"expected": [
"Área/unidade e documentos apresentados corretamente; originais/v1 preservados.",
"Transições e decisões apresentadas por perfis independentes; materialidade limitada aos pareceres afetados; publicação no âmbito autorizado.",
"Teclado/foco/rótulos/erros observados somente nos controlos restantes."
],
"technical_evidence": [
"option-B8-territory-HTTP.json",
"option-B8-map-v2-review-HTTP.json",
"option-B8-final-current-QA.json"
],
"manual_confirmed_criteria": [
"seletores",
"mapa",
"recuperação"
]
},
{
"number": 4,
"name": "Venda de negócio canónica",
"positions": [
"L3.2",
"L3.3"
],
"actors": [
21,
24,
25
],
"routes": [
[
"/minhas-oportunidades/33/edit",
"Negócio33 — contrato"
],
[
"/minhas-oportunidades/33/resources",
"Negócio33 — recursos"
],
[
"/oportunidades?view=map",
"Mapa público — filtros e ausência de coordenadas"
],
[
"/carteira/06b2d5d7-98ad-48db-b732-8a70b2f5eb4c",
"Carteira/corredor — mapa e relações existentes"
]
],
"steps": [
"QA21: conferir entidade/promotor real do cenário, mandato, histórico, teaser e autorização de divulgação nos campos existentes. Não substituir o promotor pela operadora do portal.",
"Guardar uma correção do texto existente, recuperar e executar a sequência comum. Observar a materialidade apresentada e as assinaturas preservadas, incluindo diferença entre mudança editorial e substantiva.",
"Após a publicação autorizada, abrir o resultado público sem login. Observar filtros/legenda/ausência no mapa uma vez, aproveitando a mesma passagem para os outros consumidores. Abrir também o corredor da carteira indicado: observar mapa, relações e mensagem de ausência, sem criar associações ou publicar geometrias."
],
"expected": [
"Só a projeção pública autorizada aparece no catálogo; contactos/mandato/payload privado excluídos.",
"Publicação pública deste caso é distinta das publicações restritas dos outros. Não alterar permissões/divulgação para fabricar resultado."
],
"technical_evidence": [
"option-B7-business-policy-QA.json",
"option-B6-map-positive-filter-HTTP.json"
]
},
{
"number": 5,
"name": "Parceria de negócio",
"positions": [
"L1.4"
],
"actors": [
21,
24,
25
],
"routes": [
[
"/minhas-oportunidades/34/edit",
"Parceria34 — contrato"
],
[
"/minhas-oportunidades/34/resources",
"Parceria34 — documentos"
]
],
"steps": [
"QA21: observar contribuições, obrigações laborais, calendário/governação, saída e impasse. Corrigir uma obrigação com uma nota sintética, guardar e recuperar os campos.",
"Executar a sequência comum; conferir reabertura das revisões financeira/legal/governação afetadas e conservação de corporate_screening quando o respetivo âmbito não mudou.",
"Abrir os documentos existentes e recuperar os dados noutra sessão; não criar sala de negociação ou SLA."
],
"expected": [
"Obrigações textuais recuperadas; documentos/períodos financeiros e decisões não afetadas preservados.",
"Publicação restrita identificada; nenhuma nova obrigação documental ou prazo externo."
],
"technical_evidence": [
"option-B6-partnership-obligations-HTTP.json"
]
},
{
"number": 6,
"name": "Franquia, licença e formatos",
"positions": [
"L1.5",
"L3.6"
],
"actors": [
21,
24,
25,
23
],
"routes": [
[
"/minhas-oportunidades/56/edit",
"Franquia56 — contrato"
],
[
"/minhas-oportunidades/56/resources",
"Franquia56 — licença, formatos e localização"
]
],
"steps": [
"QA21: conferir taxa1250, royalties6%, licença específica, titular/marca/territórioQA e exclusividade. Abrir a licença, JPEG, DOCX e XLSX; observar nome, estado e download. Office é original descarregável, não preview obrigatório.",
"Observar WebP e hierarquia/ausência já preparada nos recursos. Corrigir somente texto da exclusividade para esta passagem e executar a sequência comum; não repetir os ramos técnicos de taxa/royalties.",
"Após publicação restrita, recuperar noutra sessão. ComQA23, abrir a mesma página/recurso: deve negar acesso; não remover o papelValidador global de22 para forçar uma recusa."
],
"expected": [
"Marca/licença/legal reabrem quando a exclusividade muda; financeiro/confidencialidade mantidos quando não afetados.",
"Documentos originais preservados;23 negado e22 mantém leitura legítima como Validador global. Nenhum direito real inferido dos PDFs sintéticos."
],
"technical_evidence": [
"option-B8-documents-56-review-HTTP.json",
"option-B8-formats-remainder-HTTP.json"
]
},
{
"number": 7,
"name": "Anúncio antigo, países e estatísticas",
"positions": [
"L1.3",
"L2.2",
"L2.5"
],
"actors": [
21,
24,
25,
17
],
"routes": [
[
"/dashboard",
"Confirmar entrada de revisão no dashboard24/25"
],
[
"/investidor/negocios/172aa874-98fc-4bf6-b78f-d2e9a386d345",
"Rascunho do anúncio para esta passagem"
],
[
"/management/negocios",
"Fila de revisão24/25"
],
[
"/negocios/simulacao-qa-b7-tres-papeis-definidos-pela-tempo-67d806991b",
"Teaser público anterior preservado"
],
[
"/management/interests",
"Filtros e estatísticas17"
]
],
"steps": [
"QA21: abrir o rascunho preparado, conferir dados/mandato e submeter pela interface com o consentimento/referência já presentes. QA24: a partir do dashboard, abrir Parcerias → Revisão de negócios; iniciar a revisão e solicitar uma correção. Se essa ação não existir neste consumidor, registar a lacuna sem improvisar outra etapa.",
"QA21 corrige e ressubmete; QA24 conclui os passos legados existentes e aprova. O mesmo Validador pode concluir os dois níveis; não é necessária quarta pessoa. QA25 publica; abrir o novo teaser sem login e confirmar ausência do privado.",
"No formulário de interesse deste anúncio, observar os campos empresa/país/origem/erros. Se for preciso enviar para observar o resultado, enviar uma única solicitação sintética; repetir apenas a mesma tentativa preparada pelo formulário. ComQA17, observar filtro, recibo e denominador correspondente. Não inferir investidores únicos pela soma de coleções."
],
"expected": [
"Entrada no dashboard24/25 e resultado visível em cada ação; autoria/aprovação/publicação independentes.",
"País da entidade e origem separados; a repetição da mesma tentativa não duplica. O rascunho novo ainda não foi submetido/publicado automaticamente."
],
"technical_evidence": [
"option-B7-three-actor-HTTP.json",
"option-B7-navigation-HTTP.json",
"option-B6-reuse-countries.json"
]
},
{
"number": 8,
"name": "Organização, dossier, apoio fundiário e Balcão",
"positions": [
"L2.1",
"L2.3",
"L2.4",
"L3.4",
"L3.5",
"L3.7",
"L3.8"
],
"actors": [
21,
24,
25,
17
],
"routes": [
[
"/investidor/profile",
"Perfil e país da organização"
],
[
"/investidor/manifestacoes/01a127a9-4454-731c-bb15-fc89649120ea",
"Submissão histórica da entidade"
],
[
"/investimentos/b3e162da-0f9e-4ed4-8e66-c1febcb8504b",
"Dossier ligado à preparação fundiária"
],
[
"/investidor/terra-duat/01a1363a-ce9c-71fb-a782-20b3062f6908",
"Pedido fundiário ligado ao dossier"
],
[
"/investidor/terra-duat/01a13504-61d9-7033-89dd-40563f857517",
"Caso de entidade: seletores e anexos"
],
[
"/management/terra-duat/01a13504-61d9-7033-89dd-40563f857517",
"Gestor17: anexos do caso"
],
[
"/balcao-virtual/dossiers/b0e591ab-c6b3-41ea-b3ed-cd9efa575bc5",
"DossierBalcão"
],
[
"/balcao-virtual/pedidos/8a42ee0d-e47e-4f27-9e73-b986d0345058",
"PedidoBalcão/localização/recibo"
]
],
"steps": [
"QA21: observar país mestreZA, país histórico declaradoFR, residênciaPT e origemBR nos consumidores correspondentes. Não editar a organização real Tempo e não reenviar a submissão já aceite.",
"No dossier ligado, usar Preparar Terra e DUAT/continuar e Voltar ao dossier; guardar uma edição apenas nesse pedido em rascunho e recuperar noutra sessão. Verificar que outro dossier não recebe este vínculo. No caso de entidade existente, observar quatro seletores, origemPT e paísZA independente da localizaçãoMZ; abrir ata/esboço/fotografia.",
"QA17: abrir o caso administrativo e descarregar o anexo pelo link apresentado; verificar resultado visível sem usar o endpoint do titular. NoBalcão, observar locality/fonte, mensagem de ausência de camadas públicas e reciboTXT. QA24, cuja atribuição foi retirada, deve ver recusa; QA25, atualmente atribuído, deve abrir o mesmo anexo/recibo. Aproveitar esta passagem para comparar sessões e recuperar os dados."
],
"expected": [
"País mestre/declarado/residência/origem não são confundidos; snapshots antigos intactos.",
"Contexto/dossier correto, documentos autorizados e revogação visível. Recibo éTXT, mapa do seletor tem ausência explícita; não se inventa um mapa autónomo do dossier. A/B/C37 não são repetidos."
],
"technical_evidence": [
"option-B6-company-submission-HTTP.json",
"option-B8-context-access-finish-HTTP.json",
"option-B8-secondary-verify-HTTP.json"
]
}
],
"common_steps": [
"Login, MFA e dashboard já confirmados para QA17, QA21, QA22, QA24, QA25 e QA2: não repetir esses ensaios. Usar as sessões necessárias para as ações operacionais restantes; QA2 não substitui QA27 na revogação.",
"Organizar a passagem por papéis: QA21/22 prepara e submete os casos1–6; QA24 solicita uma correção curta onde falta observação visual; QA21/22 corrige; QA24 revê/aprova; QA25 publica; QA21 recupera depois numa nova sessão. Usar perfis independentes do navegador ou alternar pelo botãoSair — é uma opção prática, não regra organizacional.",
"Em Workflow interno, usar os controlos existentes: Submeter para validação; Iniciar validação; Solicitar correções; Guardar revisão especializada; Aprovar versão; Disponibilizar com acesso restrito/Publicar no catálogo público. Motivo deve identificar ensaio visual396c e ter pelo menos20caracteres. Selecionar evidência própria do caso nas revisões afetadas. Resolver apenas condições reabertas já existentes; não criar responsáveis, SLA ou aprovação externa.",
"Em cada percurso recolher simultaneamente campo/erro adjacente, estado/visibilidade, documento/mapa quando aplicável, tecladoTab/Shift+Tab/Enter, foco/rótulos e recuperação. Observar320/390px somente nos controlos novos ou sem prova; não repetir os critérios móveisA/B já aceites. Dispositivos reais e acessibilidade integral ficam separados.",
"Se uma ação falhar, parar só esse trecho e registar percurso, papel, URL, ação, esperado/observado e mensagem. Não repetir o clique sem conferir o estado. Não incluir passwords, MFA, cookies, tokens, QR ou documentos privados em capturas.",
"Não repetir scriptsAPI/SQL, instalações, importações, scans ou ramos já validados. Os cliques desta passagem são a aceitação visual ainda em falta, não outra bateria técnica. Uma prova visual pode cobrir várias linhas quando campo/consumidor/perfil/resultado coincidem."
],
"limitations": [
"Publicação interna/restrita não é catálogo público. A publicação anterior foi preservada durante a preparação das correções.",
"Endpoint autorizado das oportunidades: três limites ancestrais no caso32/56; localidade sem geometria própria. Endpoint público dos seletoresTerra/Balcão: zerocamadas; ausência deve ser explícita. Sem novas publicações/importações cartográficas.",
"PDF enviado, WebP, downloadOffice, impressão do browser e reciboTXT são operações distintas. Não exigir previewOffice ou chamarTXT dePDF.",
"C135 impede apenas a execução automática da interface. Esta página/roteiro não prova os oito percursos. C132, COUNTRY02, A/B eC37 mantêm os seus estados; não há ativação ou alterações no ativo.",
"Depois dos oito resultados, corrigir exclusivamente falhas observadas emQA, identificando delta e repetindo só o trecho afetado. Só então fixar revisão final, manifesto/limitações/backup-restauroQA correspondente e procedimento de disponibilização; ativação exige decisão separada."
],
"manual_guide_updated_at": "2026-10-13T23:07:30.749010+00:00",
"manual_confirmation_evidence": "acceptance-396c-manual-confirmation-20261013.json",
"manual_confirmation_recorded_at": "2026-10-13T19:44:07.707961+00:00",
"new_visual_acceptance_scope": "Três critérios declarados do cenário3, não três percursos nem aceitação global.",
"authentication_manual_confirmed_accounts": [
17,
21,
22,
24,
25,
2
],
"latest_browser_attempt_evidence": "acceptance-396c-P3-IAB-TLS-stop-20261013.json",
"latest_manual_step": {
"scenario": 3,
"criteria": [
"pedido de correção por QA24",
"gravação por QA21 sem alteração de campos",
"ressubmissão por QA21"
],
"actual_text_change_pending": true,
"no_fields_changed_confirmed_by_user": true,
"evidence": "case32-resubmission-manual-recorded-20261014.json",
"HTML_guide_sha256": "9cc6fbed6dab398c03f738dd7125d67e5d4a3716356aaaef848bc32e50ec9242",
"markdown_guide_sha256": "9e8bb4d633a99cdc4a8efd6b03d3a652f8929be56152ade6c0155f906329aff5",
"full_scenario_closed": false
},
"QA_feedback_delta": {
"revision": "cad3e36b946d",
"manifest": "case32-reauth-delta-manifest-20261014.json",
"effective_source_changes": 5,
"compiled_manifest_sha256": "61b6e5a21e9a224f67f8b6ab75e04336fb74f7ae62c46df24850d19df580f22f",
"visual_acceptance_pending": true,
"base_ZIP_unchanged": true,
"previous_delta": "f14ebb3cb232"
},
"latest_access_diagnostic": {
"case": 32,
"audited_actor": 24,
"evidence": "case32-edit-403-readonly-20261014.json",
"HTML_guide_sha256": "f5f56a747c4d9f28429df09369e8c6e14ef5ce8fca63bd980f76a4399ea3e894",
"markdown_guide_sha256": "1980b942ff35d10e155cf7cc922651fd5c3b4c8262b512b1fc1431790adfd770",
"new_product_failure_not_inferred": true
}
}
@@ -0,0 +1,21 @@
{
"attachment": {
"page_id": "page_dc08a603a4f0819190ead0169eb73599",
"reference": "library-file:fde1_bGliZmlsZV9Ub2Z4ck1fcVhYUWZNNzNxeElWOVdn_FileDrive_c902110ccc308191b2f4f6a2fc8c014a",
"file_name": "investmoz-396c-confirmacao-manual-parcial-20261013-5e4191a9205343fb918bf515b5ca0b7d.zip",
"mime_type": "application/zip",
"byte_size": 2496540,
"sha256": "1875820e819e99e91df2f4b2197a64b1ea8daa3f41862f17fdf732ddd9d09451",
"file_access_confirmed": true,
"is_image": false,
"markdown": "[InvesteMoz confirmação manual parcial e matriz atualizada](library-file:fde1_bGliZmlsZV9Ub2Z4ck1fcVhYUWZNNzNxeElWOVdn_FileDrive_c902110ccc308191b2f4f6a2fc8c014a)",
"inserted": false,
"next_step": "Read the Page and use edit_page with its fresh guards to insert markdown."
},
"page_id": "page_dc08a603a4f0819190ead0169eb73599",
"sequence": 17,
"readback_verified": true,
"unrelated_original_blocks_preserved": 102,
"manual_confirmation_scope": "authentication six QA accounts; scenario3 selectors/map/recovery only",
"whole_scenarios_closed": 0
}
@@ -0,0 +1,69 @@
{
"recorded_at": "2026-10-13T19:44:07.707961+00:00",
"observed_at": null,
"observation_timestamp_not_supplied": true,
"base_review": "396c691930bc",
"QA_entry": "https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html",
"source": "Confirmação manual do responsável na conversa",
"user_statements": [
"QA17, QA21, QA22, QA24, QA25 e QA2",
"Login, MFA e dashboard funcionam",
"3: seletores, mapa e recuperação"
],
"authentication": {
"QA_accounts": [
17,
21,
22,
24,
25,
2
],
"criteria_confirmed": [
"login",
"MFA",
"dashboard"
],
"result": "passou nos critérios indicados",
"requirement_ids": [
"AUD-PROFILE-24",
"AUD-UI-01"
]
},
"scenario3": {
"opportunity_id": 32,
"consumer_route": "/minhas-oportunidades/32/resources",
"QA_account_used": null,
"criteria_confirmed": [
"seletores",
"mapa",
"recuperação"
],
"criterion_results": {
"seletores": "passou",
"mapa": "passou",
"recuperação": "passou"
},
"whole_scenario_complete": false,
"requirement_ids": [
"AUD-GEO-02",
"AUD-GEO-03",
"AUD-FIELD-030",
"AUD-UI-01"
]
},
"limits": [
"Conta específica do cenário3 não indicada; não inferir a partir da lista de contas autenticadas.",
"Modo da recuperação/nova sessão não detalhado nesta confirmação; provas técnicas anteriores continuam referências independentes.",
"Não confirma documentos, apresentação da área, transições, revisão independente, aprovação/publicação ou acessibilidade.",
"Não confirma outro seletor/mapa/consumidor ou perfil por semelhança.",
"QA2 não é remapeada para QA27 nem para a conta2 ativa.",
"Confirmação manual, sem captura automática nova; C135 persiste na ferramenta e não invalida a observação manual."
],
"active_changes": 0,
"QA_data_changes": 0,
"technical_tests_repeated": 0,
"AB_C37_repeated": false,
"C132_separate": true,
"final_candidate": false
}
@@ -0,0 +1,9 @@
{
"file": "C:\\laragon\\www\\portal-investidor\\outputs\\investmoz-audit-current-20261012\\investmoz-396c-confirmacao-manual-parcial-20261013.zip",
"bytes": 2496540,
"sha256": "1875820e819e99e91df2f4b2197a64b1ea8daa3f41862f17fdf732ddd9d09451",
"entries": 12,
"private_access_files": 0,
"base_review": "396c691930bc",
"final_candidate": false
}
@@ -0,0 +1,31 @@
{
"at": "2026-10-13T19:45:13.344502+00:00",
"base_review": "396c691930bc",
"documentation_readback_passed": true,
"entry_HTTP": 200,
"TLS_bypass": false,
"entry_sha256": "d4933494303019734cce8d08337877100267f653e71504112c5c6839af87dd94",
"manual_auth_accounts": [
17,
21,
22,
24,
25,
2
],
"manual_scenario3_criteria": [
"seletores",
"mapa",
"recuperação"
],
"matrix_backlog_rows": 3401,
"new_requirement_ids": 0,
"aggregate_closures": 0,
"full_scenario_closures": 0,
"active_code_configuration_preserved": true,
"active_changes": 0,
"QA_data_changes": 0,
"product_tests_repeated": 0,
"automatic_browser_observations": 0,
"final_candidate": false
}
@@ -0,0 +1,20 @@
# Opção B — resultado da tentativa de observação
Base fixa `396c691930bc`. Tentativa em 13/10/2026, 18:30:03 UTC. Entrada pretendida: [aceitação QA](https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html).
A ferramenta devolveu inventário vazio e, ao selecionar o navegador para esse URL, `No browser is available`. O bloqueio C135 ocorreu antes de abrir a página e antes da autenticação. Não há prova visual nem falha funcional observada; todos os passos seguintes ficam não observados. Uma única evidência do transporte aplica-se aos oito percursos, sem representar oito ensaios executados.
| Percurso | Conta QA utilizada | Resultado | Falha ou observação |
| --- | --- | --- | --- |
| 1. Projeto e coedição | Nenhuma | Não observado | [Entrada 1](https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html#p1): C135 antes da abertura; etapas seguintes não observadas. |
| 2. Imobiliário: venda e arrendamento | Nenhuma | Não observado | [Entrada 2](https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html#p2): C135 antes da abertura; etapas seguintes não observadas. |
| 3. Direitos sobre terra | Nenhuma | Não observado | [Entrada 3](https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html#p3): C135 antes da abertura; etapas seguintes não observadas. |
| 4. Venda de negócio canónica | Nenhuma | Não observado | [Entrada 4](https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html#p4): C135 antes da abertura; etapas seguintes não observadas. |
| 5. Parceria de negócio | Nenhuma | Não observado | [Entrada 5](https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html#p5): C135 antes da abertura; etapas seguintes não observadas. |
| 6. Franquia, licença e formatos | Nenhuma | Não observado | [Entrada 6](https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html#p6): C135 antes da abertura; etapas seguintes não observadas. |
| 7. Anúncio antigo, países e estatísticas | Nenhuma | Não observado | [Entrada 7](https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html#p7): C135 antes da abertura; etapas seguintes não observadas. |
| 8. Organização, dossier, apoio fundiário e Balcão | Nenhuma | Não observado | [Entrada 8](https://portal-investidor.test:18445/aceitacao-B-396c691930bc.html#p8): C135 antes da abertura; etapas seguintes não observadas. |
Contas e dados preparados permanecem disponíveis para o ensaio manual agrupado. Os acessos individuais ficam apenas nos ficheiros privados locais; não foram consultados ou transmitidos nesta tentativa.
Evidências: `acceptance-396c-cua-attempt-20261013_183003.json` e `acceptance-396c-results.json`. Resultados funcionais anteriores preservados; nenhum teste A/B/C37 repetido, nenhuma escrita de dados QA ou ativa, nenhuma correção de produto iniciada. O ZIP fixo e o âmbito continuam correspondentes. Candidata final, backup/restauro final, ativação e decisão C132 permanecem separados.
@@ -0,0 +1,13 @@
{
"at": "2026-10-13T18:12:43.017352+00:00",
"file": "C:\\laragon\\www\\portal-investidor\\outputs\\investmoz-audit-current-20261012\\investmoz-396c-aceitacao-manual-QA-20261013.zip",
"bytes": 30663,
"sha256": "94f079a0116cbdc0ac9fb3e125347fe493030004a71f8035860b6c25c6003f88",
"entries": 9,
"private_files": 0,
"known_secret_values_absent": true,
"product_revision": "396c691930bc",
"final_candidate": false,
"visual_proofs": 0,
"active_changes": 0
}
@@ -0,0 +1,176 @@
{
"at": "2026-10-13T17:41:08+00:00",
"target": {
"database": "stability_consumers_20261011_084534_test",
"port": 55441
},
"SQL_read_only": true,
"active_writes": 0,
"visual_proofs_added": 0,
"actors": {
"promoter": {
"id": 21,
"email": "profiles-v1-promoter@example.invalid",
"local_email_matches": true,
"password_matches": true,
"MFA_envelope_matches": true,
"MFA_confirmed": true,
"email_verified": true
},
"validator": {
"id": 24,
"email": "profiles-v1-validator@example.invalid",
"local_email_matches": true,
"password_matches": true,
"MFA_envelope_matches": true,
"MFA_confirmed": true,
"email_verified": true
},
"publisher": {
"id": 25,
"email": "profiles-v1-publisher@example.invalid",
"local_email_matches": true,
"password_matches": true,
"MFA_envelope_matches": true,
"MFA_confirmed": true,
"email_verified": true
},
"colleague": {
"id": 22,
"email": "profiles-v1-colleague@example.invalid",
"local_email_matches": true,
"password_matches": true,
"MFA_envelope_matches": true,
"MFA_confirmed": true,
"email_verified": true
},
"manager": {
"id": 17,
"email": "geo-manager-qa@example.invalid",
"password_matches": true,
"MFA_envelope_matches": true,
"MFA_confirmed": true,
"email_verified": true
}
},
"cases": [
{
"id": 15,
"owner": 21,
"category": "investment_project",
"state": "draft",
"visibility": null,
"organization_id": "99964753-2632-4658-a687-8ebc6a178296",
"version": 11,
"conditions": []
},
{
"id": 30,
"owner": 21,
"category": "investment_project",
"state": "published",
"visibility": "internal",
"organization_id": "99964753-2632-4658-a687-8ebc6a178296",
"version": 50,
"conditions": [
{
"gate": "technical_review",
"status": "resolved"
}
]
},
{
"id": 31,
"owner": 21,
"category": "real_estate",
"state": "published",
"visibility": "internal",
"organization_id": "99964753-2632-4658-a687-8ebc6a178296",
"version": 51,
"conditions": [
{
"gate": "registry_urban_review",
"status": "resolved"
}
]
},
{
"id": 32,
"owner": 21,
"category": "land_rights",
"state": "published",
"visibility": "internal",
"organization_id": "99964753-2632-4658-a687-8ebc6a178296",
"version": 104,
"conditions": [
{
"gate": "land_legal_review",
"status": "resolved"
}
]
},
{
"id": 33,
"owner": 21,
"category": "business_sale",
"state": "published",
"visibility": "public",
"organization_id": "99964753-2632-4658-a687-8ebc6a178296",
"version": 65,
"conditions": [
{
"gate": "corporate_screening",
"status": "resolved"
}
]
},
{
"id": 34,
"owner": 21,
"category": "business_partnership",
"state": "published",
"visibility": "internal",
"organization_id": "99964753-2632-4658-a687-8ebc6a178296",
"version": 65,
"conditions": [
{
"gate": "legal_tax_due_diligence",
"status": "resolved"
}
]
},
{
"id": 54,
"owner": 21,
"category": "real_estate",
"state": "published",
"visibility": "internal",
"organization_id": "99964753-2632-4658-a687-8ebc6a178296",
"version": 18,
"conditions": []
},
{
"id": 56,
"owner": 21,
"category": "franchise",
"state": "published",
"visibility": "internal",
"organization_id": "99964753-2632-4658-a687-8ebc6a178296",
"version": 63,
"conditions": []
}
],
"no_external_integrations": true,
"scanner_health": {
"available": true,
"engine": "ClamAV",
"engine_version": "1.5.4",
"signatures_at": {
"date": "2026-10-13 08:26:14.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"signature_age_hours": 9.248888888888889,
"reason_code": null
}
}

Some files were not shown because too many files have changed in this diff Show More