This commit is contained in:
2026-11-03 15:31:43 +02:00
124 changed files with 10287 additions and 380 deletions
@@ -1561,3 +1561,330 @@ L8 permanece parcial. A avaliação real do percurso proactivo continua a aguard
| Pagamento/titular/uso anterior e correspondência temporal | Pagamento em2027 afecto a2026 sem suporte: anexar/identificar correspondência expressa; sem presumir transporte ou utilização zero. |
**L8 permanece parcial.** Crédito internacional apenas emQA; PEC instalado em`e182d1d7` mantém o âmbito demonstrado. Songo eGurué privados; L3,ISPC,câmbio,L5–L7 eSGFTEMPO preservados. Avaliação de utilização do percurso proactivo continua a aguardar retorno da equipa. Sem instalação, publicação ou nova estimativa global nesta passagem.
## 27/10/2026 — Crédito internacional corrente entregue pelo Git
**Instalado e conferido em `838ad941a24ae76ec4bf91ccc3f92012668fe8cf`**, sobre o PEC instalado`e182d1d7`, preservando a correcção dos sectores`669cb897`. A candidata é a própria revisãoQA aceite`838ad941`, sem alteração funcional na preparação; integração normal em`main`, sem sobrescrever outro trabalho. Os registosQA anteriores são históricos: este recorte deixa de estar pendente de instalação. Não encerra L8 ou o IRPC.
**Delta instalado:**5ficheiros de aplicação — detalhe internacional, projecção dos códigos do catálogo de países existente e integração no saldo anual. Todos idênticos à QA. Conferidas1002fontes antes/1005depois comGit; restantes fontes comparadas conservadas, incluindoPEC,L3,ISPC,câmbio,L5–L7,sectores,catálogoISO,rotas e configuração. Sem novas permissões,migrations ou importações. Fixtures sintéticas apenas no código de testes; não importadas para dados activos nem publicadas. Songo eGurué permanecem privados; SGFTEMPO separado.
**Recorte:** residente geral,ano civil2026,MZN comprovados. Inclusão do rendimento,fracção nacional,aplicabilidade/limiteCDT e utilizações anteriores documentados. Menor entre imposto pago e limites aplicáveis,menos uso anterior e até à colecta,antesPEC/RF/PPC;sem concessão pela escolha do país,conversão/arredondamento fiscal ou transporte presumidos. Exemplo condicionado aos dados e suportes sintéticos demonstrados:1 408−8de crédito−200PEC−500PPC=**700MZN de saldo simulado a pagar**. Os2acima do limite de elegibilidade não são transporte; insuficiência de colecta fica separada. Caso com500a recuperar deriva doPPC,sem reembolso do crédito ouPEC. Informação em falta e prova duplicada deixam o saldo dependente indeterminado.
**Recuperação e preservação:** capacidade antes superior a85GiB e23,69milhões de inodes; mínimo existente do instalador5GiB mais backup confrontado com espaço real e novamente conferido após backup. Backup fresco`/var/backups/investmoz-irpc-l8-international-20261027/backup`,dumpSHA256`b1e9740653a8664c23268e228efd3ed6a0514bf3e8786dd5adf43342cdb475e1`;restauro174tabelas com contagens/checksums iguais em contentor sem rede,porta55441.369ficheiros persistentes/configuração e172tabelas de negócio intactos depois da instalação;schema,papéis,grants e permissões iguais. Cache/sessões operacionais reconciliados individualmente com o backup e pedidos públicos;nenhum registo de negócio ou sessão sobrescrito pelo comparador. Release anterior mantida até compilação/verificações e troca atómica;runtimeQA fora da árvore servida.
**Provas:** reutilizadas18novas+31anuais/PEC,API171asserções e7recuperações comHTML/dossier e históricos conservados. Sem nova ronda manual das funcionalidades não afectadas. Controlos automáticos obrigatórios do instalador:OK (1 test, 3106 assertions); ✓ built in 31.55s; OK (59 tests, 317 assertions); # tests 1110; # pass 1110; # fail 0;TypeScript/Wayfinder/build e guardas aprovados. Revisão pública e hash do manifest conferidos,HTTP200do simulador e6marcadores compilados do novo delta/PEC identificados. Não foram criados casosQA no portal.
**SaldoL8 preservado:** derivação automática da fracção nacional/CDT específicas;créditos económicos/CBF;utilização interanual/transporte/caducidade próprios;obrigação/calendárioPPC/PEC;autónomos,períodos especiais,moedas eM20/M22 conforme dependências já discriminadas. Excedente/transportePEC fora do âmbito entregue. Informação de inclusão/CDT/prova/titular/uso bloqueia apenas o caso dependente. As condições concretas de retoma mantêm-se no saldo curtoQA anterior;sem repetir pesquisas ou exigir nova autenticação de fontes oficiais aceites.
Recibo:`docs/investmoz/simulations/irpc-l8-international-credit-delivery-20261027.json`. Cópia remota:`/var/backups/investmoz-irpc-l8-international-20261027/installed-receipt.json`,SHA256`d80324b898fd160ab3e7a2fd0b11ea2decd0b99a9324255850062ee4a13e0f0f`. Provas locais:`outputs/irpc-l8-international-delivery-20261027/`. Resolvida a colisão local`inspect.py`→`remote_delivery_inspection.py`;módulo padrão/Paramiko verificados no mesmoPython,guardaLinux/geteuid mantida,sem alteração de credenciais ou do servidor por essa correcção. A avaliação real do percurso proactivo continua dependente do retorno da equipa. **L8 permanece parcial.**
## 28/10/2026 — saldos anteriores internacionais e PEC: delta QA concluído
Implementado e demonstrado em QA isolada, **sem instalação**. Base `cf4e0638`, com internacional `838ad941`, PEC `e182d1d7` e sectores `669cb897` preservados. A pasta original estava noutro ramo; isso não foi tratado como eliminação de funcionalidades. Recibo: `docs/investmoz/simulations/irpc-l8-carry-qa-20261028.json`.
Extensão opcional do livro anual existente: uma origem consolidada por natureza/país/exercício, apuramento e regra de origem documentados, elegível menos dedução inicial e utilizações efectivas subsequentes. Internacional: cinco exercícios seguintes; PEC: três. Origem2021 internacional e PEC2023 chegam a2026; origem2020 internacional/PEC2022 ficam fora do prazo ordinário, conservadas com explicação e saldo histórico. Não se converte imposto acima do limite em crédito transportável. Situações transitórias/especiais não são qualificadas pela regra ordinária.
Escolha expressa das parcelas correntes e anteriores, vinculada à colecta seleccionada, sem ordem FIFO imposta nem redução automática. A soma não ultrapassa a colecta e os créditos internacionais precedem o PEC. Valores não escolhidos ficam separados da insuficiência de colecta; simulações não criam nem consomem saldos oficiais. Exemplo sintético:1408−8corrente internacional−50anterior internacional−200PECcorrente−100PECanterior−500PPC=**550MZN a pagar, simulado**.
**Provas:**16novos+49afectados=65testes aprovados; API1teste/119asserções,6casos POST/PUT/GET na base guardada `proactive_investment_20261027_test`,loopback55441,com rollback. Seis recuperações recalculadas integralmente,HTML/dossier concordantes e resultados anteriores congelados.55oportunidades,64documentos,1vínculo,19rascunhos,40utilizadores,3organizações e409eventos anteriores preservados.31ficheiros do acervo byte a byte iguais,sem nova importação/publicação. TypeScript,build QA com exit0 ePint aprovados. Não foi feita nova prova manual de interface ou avaliação pela equipa. Sem migrations,grants,contas,alteração activa ou operações de servidor.
**Saldo concreto:**L8 continua parcial. Próximo incremento independente:crédito económico64,com gross-up53(1)a/exclusão40,qualificação dos lucros/pagador/beneficiário/imposto e limite proporcional correspondidos; fonte aceite já disponível. Permanecem fracção nacional/CDT automática,créditos/benefícios próprios,obrigação/calendárioPPC/PEC,autónomos,períodos especiais,outras moedas eM20/M22. Não declarar IRPC concluído nem repetir a validação das entregas independentes aceites.
## 28/10/2026 — crédito económico ordinário demonstrado em QA; agrupamento compatível
**Implementado e demonstrado em QA isolada, sem instalação.** Ramo `codex/irpc-l8-economic-qa-20261028`, base `6ededb59`, incluindo os saldos anteriores `d134a92d`. A última referência instalada documentada continua `838ad941`; não foi feita nova leitura do servidor. Não se reabre a aceitação dos históricos ou das provas anteriores.
**Cobertura:**CIRPC64(1–2),53(1)a,40(1)na redacção20/2009 eRIRPC21(2/5). Lucros ordinários distribuídos e IRPC correspondente documentados,beneficiário/distribuidor com sede/direcção efectiva emMoçambique,distribuidor sujeito/não isento,exclusão40(1)não aplicável com suporte. A selecção explícita da colecta corrente reutiliza NUIT/exercício/residência válidos e conserva edições divergentes. Novo detalhe opcional; resumo económico deliberado anterior e resultados congelados conservados.
**Cálculo:**60%doIRPCdocumentadamente correspondente aos lucros;confere o acréscimo53 já incluído emL6 e limita pela quota proporcional documentada,menos utilização efectiva anterior,até à colecta. O portal não deriva IRPC do dividendo líquido nem altera a base/colecta silenciosamente;inclusão/acréscimo e quota exigem correspondência do caso. A existência de perdas que reduzam a base abaixo dos lucros não é tratada como impedimento genérico. Crédito económico precede o internacional ePEC,sem reembolso ou transporte económico presumido. Exemplo sintético condicionado aos suportes:IRPC20→nominal12;1408−12−8internacional−200PEC−500PPC=**688MZN a pagar,simulado**.
**Mesma parcela:**identidade por emitente/documento/parcela com suporte;duplicação dos lucros também conferida independentemente de trocar o comprovativo de imposto,a data ou oID. O mesmo documento pode suportar parcelas de imposto distintas quando a separação estiver documentada em ambos os registos. Um comprovativo anterior sem parcela continua a abranger o documento inteiro,não se torna livre por receber novo nome noutro mapa. Atribuições anteriores e capacidade do comprovativo conferidas neste e noutros contextos do snapshot;divergências não são apagadas. ProtecçõesL5 conservadas. Não é reconciliação global de conta fiscal entre dossiers independentes.
**Agrupamento:**composição demonstrada com os saldos anteriores:1408−12económico−8internacionalcorrente−50internacionalanterior−200PECcorrente−100PECanterior−500PPC=**538MZN a pagar,simulado**. A prioridade económica não reduz automaticamente a afectação entre exercícios já escolhida;se exceder a colecta remanescente,o caso pede reconciliação conservando as escolhas. Os dois incrementos podem integrar uma entrega Git comum;nenhum foi instalado nesta passagem.
**Provas do delta:**20testes económicos novos+65afectados aceites=85aprovados;API1teste/210asserções,11casos POST/PUT/GET na base guardada `proactive_investment_20261027_test`,loopback55441,transacção com rollback. Onze recuperações recalculadas integralmente,HTML/dossier concordantes e históricos anteriores conservados.55oportunidades,64documentos,1vínculo,19rascunhos,40utilizadores,3organizações e409eventos anteriores intactos. TypeScript,build QA ePint aprovados.31ficheiros do acervo preservados por bytes,sem novas importações,publicações,scan declarado,migrations,contas ougrants. Não foi feita nova prova manual da interface nem avaliação pela equipa.
**Pendências concretas:**inclusão/correcção automática do dividendo/acréscimo emL6 e derivação da quota proporcional;exclusão40(1)na base com todas as suas condições;liquidação64(3)/associações64(4);créditos/benefícios específicos;fracção internacional/CDT automática;obrigação/calendárioPPC/PEC;autónomos,períodos especiais,outras moedas eM20/M22. Correspondências e parâmetros em falta afectam o caso dependente,sem revalidação genérica de fontes oficiais. Saldos anteriores mantêm o recorte ordinário já demonstrado. **L8 permanece parcial.** Recibo:`docs/investmoz/simulations/irpc-l8-economic-qa-20261028.json`.
## 28/10/2026 — entrega agrupada de saldos anteriores e crédito económico pelo Git
**Instalado e conferido em `569a1cd750f3d2a0b87f130e992e73e070bbd1ab`**, sobre `838ad941`, por fast-forward normal em `main`,sem force. Foram entregues em conjunto os saldos anteriores `d134a92d` e o crédito económico ordinário `aae67c1`, já demonstrados emQA. Os estadosQA anteriores permanecem históricos;estes recortes deixam de estar pendentes de instalação. **L8 permanece parcial;esta entrega não fecha integralmente a liquidação anual.**
**Delta e preservação:**12ficheiros de aplicação,byte a byte correspondentes à candidata aceite;1005fontes antes e1011depois conferidas comGit. Demais fontes comparadas,PECcorrente,internacionalcorrente,sectores,L3/ISPC/câmbio/L5–L7,originais e contexto adaptativo preservados. Sem alterações de schema/configuração/rotas/grants,migrations ou importações de conteúdo. RuntimeQA conservado fora da árvore servida. Songo/Gurué permanecem privados eSGFTEMPO separado.
**Capacidade/recuperação:**82,71GiB e23,52milhões de inodes livres antes;capacidade novamente conferida após backup,com o mínimo existente do instalador e espaço real do backup. Backup fresco `2026-10-28T12:38:25Z` (14:38:25locais),em `/var/backups/investmoz-irpc-l8-grouped-20261028/backup`;dumpSHA256`007cd1851d5bd51a54265ab99a342d6a312de06ef642fc42b38b7a5e771d4d9a`. Restauro174tabelas com contagens/checksums iguais emcontentorsemrede/porta55441;369ficheiros/configuração conferidos. Depois da entrega:172tabelas de negócio e369ficheiros persistentes/configuração intactos;schema,papéis,grants epermissões iguais,identidades de comparação equivalentes. Delta operacional delimitado a `queue:restart` e2sessões anónimas do agente de entrega,correlacionadas com pedidos públicos;nenhum dado ou sessão sobrescrito para obter igualdade. Release anterior mantida até todos os controlos e troca atómica;manifest/revisão servidos confirmados.
**Provas reutilizadas e controlos da entrega:**85testes afectados/20económicos novos,API210asserções/11recuperações HTML/dossier e históricos aceites reutilizados;sem repetir avaliação manual de funcionalidades independentes. Instalador obrigatório:PostgreSQL1teste/3106asserções;Unit59/317;frontend1146aprovados/0falhas;TypeScript/Wayfinder/build aprovados (30,82s). SimuladorHTTP200 e8marcadores compilados dos saldos anteriores/económico/internacional/PEC conferidos. Não foram criados casosQA no portal e não se declara nova aceitação manual da equipa.
### Saldo concreto de L8 após a entrega
| Grupo | Cobertura entregue ou trabalho restante |
| --- | --- |
| Saldos anteriores65(3)/66 | Entregues no recorte de origens anuais ordinárias documentadas,mesmo sujeito/2026/MZN,prazos próprios5/3exercícios,utilizações efectivas e afectação explícita. Não cria nem consome saldos oficiais;casos transitórios/especiais permanecem próprios. |
| Económico64(1–2) | Entregue para lucros ordinários qualificados,IRPC correspondente documentado,acréscimo53 já incluído emL6 e quota proporcional documentada,antes do internacional/PEC,sem dupla utilização da mesma parcela. Parcela excluída40(1)não recebe também64. |
| Inclusão/correcção económica e quota | Ainda por implementar a inclusão/correcção automática do dividendo/acréscimo emL6,a derivação automática da quota e o tratamento completo40(1)na base. A comprovação manual corrente não é declarada automação desses grupos. |
| Económico64(3/4) e benefícios | Liquidação,associações ecréditos/benefícios específicos mantêm qualificação,limites,cumulação e uso próprios por implementar;sem os transformar emcrédito internacional. |
| Internacional automático | Derivação da fracção nacional e correspondência específicaCDT continuam pendentes;qualificação/dedução internacional documentada entregue preservada. |
| Obrigações e representação | Obrigação/calendárioPPC/PEC,juros/multas/guias,autónomos,períodos especiais,outras moedas eM20/M22/transporte/submissão continuam nos grupos concretos anteriores. |
A falta de prova do caso (titular/rendimento/imposto/inclusão/uso/regra do período ou quota) limita só o resultado dependente;não é reabertura da autenticidade das fontes oficiais aceites nem novo aprovador. Exemplo agrupado condicionado aos suportes sintéticos já aceites:1408−12económico−8internacionalcorrente−50internacionalanterior−200PECcorrente−100PECanterior−500PPC=**538MZN de saldo simulado a pagar**;não é declaração submetida ou saldo fiscal consumido.
Recibo consolidado:`docs/investmoz/simulations/irpc-l8-grouped-delivery-20261028.json`. Cópia remota:`/var/backups/investmoz-irpc-l8-grouped-20261028/installed-receipt.json`. Provas locais:`outputs/irpc-l8-grouped-delivery-20261028/`. Actualização documental segue ramo próprio de recibos,sem alterar novamente a revisão servida.
Cópia remota do recibo conferida:SHA256`b70fe154f95162f029b5ca712b41962757360d73b0ff07f52b8ce14848d990df`;a matriz existente recebeu saldoL8 nos camposEstado,Disponibilidade activa,Evidências,Critérios restantes eDependências,só em `AUD-SIM-INT02`.
## 28/10/2026 — listas como base interna da oferta: uso não demonstrado
**Decisão expressa da Tempo e resultado da conferência: a utilização das listas de empresas,hotéis/restaurantes como base comparativa no portal é NÃO DEMONSTRADA.** A entrega do percurso proactivo,os seus campos de evidência e os pilotos privados anteriores mantêm-se aceites;isso não demonstra carregamento,classificação e ligação destas listas ao consumidor de análise. O âmbito é primeiro a análise interna,não a publicação automática de um directório.
**Fonte e âmbito conferidos:**13ficheiros inventariados nos dois directórios acessíveis de empresas/relatórios,antes da selecção;originais `EMPRESAS_LIST2014–2022`, `Empresas Licenciadas`,cadastro turístico30/10/2024 e `CAE eBAU` localizados e iguais aos hashes aceites. As148557/212632/460linhasXML não vazias dos recibos anteriores são observações dos ficheiros,não empresas únicas nem carga no portal. Empresas têm província/distrito/CAE;isso não prova o mapeamento no portal. O cadastro turístico observado é de alojamento,não um censo completo da restauração. Não foi identificada lista autónoma de restaurantes nestes dois directórios;isso não significa ausência de restaurantes ou de actividades de restauração nas listas empresariais. Contactos e outros campos privados não foram publicados.
**Destino entregue:**código `569a1cd7`,base `teste_investidor`,198tabelas não sistémicas(174public+24skills_edu),consultadas em transacções READ ONLY com identidade técnicapostgres explicitada. Zero correspondências dos hashes originais entre368ficheiros persistentes e nenhuma correspondência exacta dos nomes/hashes nas referências pesquisadas. Cadastros `existing_businesses` e `investment_company_declarations` têm0registos nesse destino;organizações1,actividades11,documentos60 e recursos59 não são convertidos em oferta empresarial das listas. Esta é uma fotografia técnica,não prova de visibilidade para uma conta operacional,perda de registos ou ausência de oferta no mercado. Registos antigos de `investemoz` e basesQA são ambientes distintos;nenhuma eliminação é declarada. Pesquisa por nomes/hashes em metadados não exclui ficheiros renomeados,arquivados,conteúdo cifrado ou outros acervos.
**Causa delimitada no consumidor instalado:**`ProactiveInvestment::options` devolve documentos/grupos e referências a projecto,cluster,corredor,parque,cadeia;os hashes dos ficheiros instalados coincidem comGit. O editor recebe `observed_supply` e fontes/localizadores/períodos/cobertura como texto manual;as relações proactivas não admitem entidade empresarial destas listas. Não foi encontrada consulta de oferta carregada por localização/sector/actividade nem ligação de linhas das listas a concorrentes,complementares ou parceiros. A possível existência de cadastros noutro módulo não demonstra consumo por este percurso.
| Percurso de conferência — Gurué,distrito canónico | Resultado |
| --- | --- |
| Escolher localização | Referência canónica localizada;prova anterior de selecção territorial preservada,não se declara nova prova de interface. |
| Consultar oferta existente das listas | Não demonstrado:consulta/importação/classificação consumida pelo percurso não identificada. A demonstração pára neste ponto. |
| Comparar com uma ideia | Não demonstrado sobre conjunto rastreável de registos dessas listas. Campos manuais não equivalem à integração. |
| Identificar necessidade | Não demonstrado por este fluxo;ausência de registo não confirma necessidade nem ausência de concorrência. Manter hipótese,período,cobertura e incertezas. |
| Preparar oportunidade | Mecanismo privado entregue preservado;nenhuma oportunidade nova foi criada para simular passos anteriores ainda não demonstrados. |
**Critério de retoma:**lotes/linhas privados rastreáveis e classificados,reutilizando os mecanismos/cadastros existentes;consulta autorizada da oferta por localização/sector/actividade;comparação da ideia com concorrência,complementares e possíveis parceiros,com fontes/datas/cobertura;necessidade fundamentada sem inferir ausência de oferta;e prévia/gravação/recuperação da oportunidade no percurso existente emQA isolada. Só essa conferência pode demonstrar o uso;nenhum novo aprovador organizacional ou directório público é criado.
Sem imports,normalização,alteração de código,permissões,publicação ou escrita em dados activos. Songo/Gurué privados,aprovações/históricos e entregaL8 preservados. Registo:`docs/investmoz/unification/existing-supply-lists-audit-20261028.json`. Cobertura actualizada nas linhas existentesRF-CLU-003,MASTER-471012ab-0010,M2-d0c06a75-0147/0151 eMASTER-1f0a4cde-0002,sem nova matriz/backlog.
A base interna de oferta não exige transformar cada empresa numa organização utilizadora,anúncio de venda/parceria,promotor ou cliente confirmado. O cadastro e a consulta analítica são distintos da operação comercial e da divulgação.
## 28/10/2026 — oferta existente ligada à análise proactiva, demonstrada em QA
Incremento sobre o código entregue `569a1cd7`, ramo `codex/proactive-supply-qa-20261028`: **demonstrado em QA isolada, sem instalação nem importação no activo**. O relatório de conferência anterior permanece histórico: no destino activo, o uso das listas continua não demonstrado. Reutilizam-se a aceitação do percurso, o inventário de 13 ficheiros, os originais, as fontes e as provas anteriores; não se reabre a decisão da Tempo nem se encerra o estudo de mercado nacional.
Carregadas privadamente **361.464 observações**: 148.556 da lista 2014–2022, 212.631 de empresas licenciadas e 277 do cadastro turístico (duas folhas com estruturas distintas). Os quatro hashes dos originais e do CAE foram conferidos. Pré-visualização, análise Microsoft Defender sem ameaças e repetição idempotente 343.041→343.041 demonstradas. Os 147.165 registos com a mesma projecção administrativa são conservados como repetições; não representam empresas únicas nem duplicados de ficheiros por bytes. As 113.880 observações com denominações divergentes para um identificador partilhado ficam assinaladas, sem fusão automática. Contactos, documentos de identidade e NUIT não são devolvidos pela consulta.
Consulta interna por localização canónica (incluindo descendentes), sector CAE e actividade; resultados paginados conservam fonte, folha/linha, hash e data original. O sector provém da hierarquia SELF_ID do CAE fornecido, sem inventar correspondência com os sectores de navegação. A selecção permite comparar possível concorrência, complementaridade, parceiro ou relação por determinar, com fundamento e incertezas. O servidor recupera a origem, impede reclassificar a evidência interna como pública e conserva-a no rascunho e no dossier privado. Não transforma a lista em anúncios, promotores, clientes confirmados ou publicação de directório.
**Gurué:** o operador QA sintético 1021 consultou 410 observações distintas na primeira demonstração (435 após o complemento de registos sem denominação), comparou dois registos reais (serviços agrícolas CAE 01610 e comércio de plantas/sementes/fertilizantes CAE 47732) com a hipótese já preparada de apoio à colheita e qualidade da folha verde. A oferta possível exige verificar sobreposição e colaboração, sem presumir mercado vazio. Rascunho 402 passa de v1 a v2, mantendo integralmente as cinco evidências anteriores, a ideia e o histórico. O mesmo dossier `883c8ec3-59a3-4074-b91c-b7d4a5d88ff0` passa de contexto1 a2 por pré-visualização e confirmação idempotente, preservando título e campos deliberados. A necessidade permanece **hipótese**, sem procura, falta de oferta ou viabilidade confirmadas. Gravação, recarregamento, acesso privado e resultado vazio como **informação insuficiente** demonstrados no navegador. Isto é prova técnica, sem substituir observação/aceitação da equipa.
**Cobertura e pendências:** 205.608 observações sem correspondência territorial canónica única (incluindo 19 ambiguidades), 336 apenas com província e 82.864 sem designação de actividade CAE correspondente. Mantêm-se os rótulos originais e a incerteza; não há atribuição territorial aproximada nem preenchimento presumido. O cadastro de alojamento não é um censo exaustivo de hotéis/restaurantes. Situação operacional actual, capacidade, preços, procura e compromissos continuam por demonstrar. O incremento nacional é parcial; não encerra os requisitos amplos de mercado, clusters ou liquidação anual. **L8 permanece parcial e inalterado.**
Sete testes dirigidos/62 asserções, TypeScript e compilação QA passaram. As duas tabelas internas têm RLS forçada; teste com identidade sem privilégios confirma ocultação sem contexto de actor e leitura com contexto autorizado. Conferidos os hashes de todas as linhas anteriores nos sete conjuntos do inventário: só o rascunho402 e o mesmo dossier sofreram o delta intencional; Songo401, projectos, territórios, sectores, documentos e cadeias foram conservados. Provas fiscais aceites reutilizadas, sem repetir as suas suites.
Actualizados os cinco requisitos existentes `RF-CLU-003`, `MASTER-471012ab-0010`, `M2-d0c06a75-0147`, `M2-d0c06a75-0151` e `MASTER-1f0a4cde-0002`, preservando o restante estado e pendências. Nenhuma matriz ou backlog novo. A entrega activa futura mantém conferência de capacidade/compatibilidade com main, backup/restauro fresco, operação autenticada e delta instalado. Relatório: `docs/investmoz/unification/proactive-existing-supply-qa-20261028.json`.
Complemento final: as 18.423 linhas empresariais sem denominação social também foram conservadas, com essa lacuna explícita e sem reutilizar o nome pessoal do requerente. As 343.041 observações da primeira fotografia permaneceram idênticas; extensão e repetição idempotente atingem 361.464 sem substituir registos, alterar as comparações ou rever as provas aceites. Os exemplares e as fotografias anteriores foram preservados.
## 28/10/2026 — base comparativa instalada pelo Git; conferência visual autenticada pendente
Instalada e servida a revisão **`6d147693`**, que inclui o candidato aceite `a022ed98`, por fast-forward normal em `main`, sem força. A revisão569a1cd7 e os backups anteriores foram preservados. O carregamento privado foi executado em transacção autenticada depois de backup novo, restauro isolado e ensaio idempotente; o instalador Git, as suas guardas e a CI habitual foram conservados. O contrato recebeu apenas o hash da migração nova, mantendo os90 anteriores.
**361.464 observações administrativas não são361.464 empresas únicas.** As147.165 repetições foram conservadas, mas excluídas das contagens/resultados; as214.299 projecções administrativas distintas também não equivalem a empresas únicas. Em Gurué, o serviço instalado recupera435 observações distintas e conserva237 repetições fora dessa contagem. A API também recusa gravar uma repetição como outra comparação: apenas esse delta recebeu teste dirigido1/2asserções. As7provas/62asserções, tipos, compilação e percurso QA aceites foram reutilizados.
A aplicação, com a sua conta real e um actor existente que satisfaz as autorizações anteriores, consultou Gurué e conservou fonte/linha/data/hash. O resultado vazio foi «Informação insuficiente nesta base e nestes filtros.» Sem actor/contexto, a RLS devolveu0; acesso HTTP anónimo recusado401. Isto é conferência técnica do consumidor instalado, **não uma nova aceitação da equipa no navegador**. A conferência visual autenticada permanece pendente por bloqueio do mecanismo Windows de confirmação segura do URL; não pedir nova aceitação das provas QA nem confundir essa pendência com perda da funcionalidade entregue.
Backup fresco de174tabelas públicas e369ficheiros/configuração; restauro sem rede/55441 e os174checksums passaram. As duas tabelas privadas também foram carregadas, repetidas e restauradas no ensaio. Medidos344.399.872bytes para as novas relações;capacidade conferida antes da instalação. No activo, as linhas anteriores foram preservadas e os369ficheiros/configuração ficaram idênticos; o delta esperado é de2tabelas privadas e1registo de migração. Cache queue:restart e2sessões anónimas de conferência foram reconciliados separadamente. Foi criado também backup da base privada já instalada, preservando GRANT/RLS. Não se criaram utilizadores, organizações, oportunidades ou dossiers QA no activo, nem se publicaram as listas.
CI habitual do instalador: PostgreSQL1/3106asserções, Unit59/317, frontend1146aprovados/0falhas, tipos e build31,30s. O script do instalador e as configurações/ficheiros anteriores mantiveram-se; apenas leitura nas duas tabelas novas foi concedida à conta de aplicação existente. Não houve alteração de papéis de funcionários.
**Pendências conservadas:** cobertura nacional parcial,205.608observações sem território canónico único,336só com província,82.864sem designação CAE,113.880com divergências de denominação/identificador e18.423sem denominação social, todas preservadas. A ausência de registos é informação insuficiente. A comparação fundamenta uma hipótese, sem comprovar procura ou viabilidade. O caso/dossier QA anterior mantém-se em QA e não foi transplantado para o activo. **L8 permanece parcial e inalterado.** A actualização continua nos cinco requisitos existentes, sem nova matriz ou backlog. Recibo:`docs/investmoz/unification/proactive-supply-git-delivery-20261028.json`.
## 28/10/2026 — correcção do bloqueio da conferência visual
`6d147693` está instalado, incluindo a base interna. A única pendência da conferência desta entrega é a validação visual autenticada: **Gurué → consultar oferta → comparar ideia → guardar → recuperar no mesmo dossier**, conservando fonte, data e incertezas. As435 observações de Gurué não são435 empresas únicas. Listas internas, cobertura nacional parcial e hipótese de investimento mantêm-se.
O erro actual, novamente observado, é **“The browser access host is unavailable”**: indisponibilidade do host do conector, distinta de deixar uma aba aberta. A orientação anterior para apenas manter a aba aberta era insuficiente. Restabelecer o conector por mecanismo suportado ou realizar a conferência pela equipa. Não reinstalar nem repetir as provas técnicas aceites; não declarar conferência visual concluída sem o seu resultado. O recibo remoto original e o historial do diagnóstico anterior ficam preservados; esta correcção é documental.
## 28/10/2026 — revisão de menus: inventário antes da verificação do delta
Origem: recomendação expressa da Tempo após constatar que as entradas indicadas não aparecem ou ficam escondidas. Página relatada:https://teste-investidor.tempo.co.mz/. Preservados6d147693 e a base privada instalada,as provas QA do percurso e da navegação sectorial,os originais,dados,perfis,permissões e históricos. Não se declara uma funcionalidade anterior desaparecida apenas pela ausência de um novo teste.
Confirmado no código: barra lateral substitui cada grupo pelo seu primeiro destino,omitindo os restantes;menu principal esconde gestão/perfis dentro do menu do nome do utilizador;entrada de gestão de conteúdos existente não é incorporada nessa navegação principal. A conta e os props efectivos da sessão real permanecem por conferir,porque o conector está indisponível;não se presume falta de autorização.
Incremento em QA: área de trabalho explícita no menu principal,inclusive entrada neutra de acesso;destinos privados apenas segundo capacidades anteriores;mesmo catálogo completo na barra lateral,sem perda dos subdestinos;entrada directa na análise proactiva existente,sem substituir rascunhos editados;preservação de Descoberta/Realização/Suporte e todos os destinos anteriores aplicáveis. Sem alteração activa,schema,regras de negócio ou papéis. Escolhas de apresentação não são exigências organizacionais. Verificação dirigida do delta pendente nesta fotografia;nenhuma nova matriz ou backlog.
## 28/10/2026 — reorganização dos menus implementada em QA, sem instalação
Recomendação expressa da Tempo após a página principal não apresentar as entradas sugeridas. Causa delimitada no código: a barra lateral omitia subdestinos ao seleccionar apenas o primeiro link de cada grupo; a navegação principal colocava gestão/perfis dentro do menu do nome do utilizador e não incorporava a entrada de gestão já calculada pelo servidor. Não se presume falta de permissões da sessão real, cujos props não foram observados. A entrega6d147693/base interna continua instalada e preservada; esta revisão não reinstala essa base nem repete as provas técnicas aceites.
**Proposta executável QA:** Área de trabalho visível ao lado de Descoberta,Realização,Suporte; entrada neutra Acesso à gestão explica o estado, mesmo sem acções privadas atribuídas. As acções autorizadas e Preparar análise e ideia vêm das capacidades existentes, sem criar papéis. A análise abre directamente no formulário existente; rascunhos guardados não são substituídos. A barra lateral põe trabalho primeiro e conserva todos os destinos e os filtros territoriais entre catálogos, em vez de reduzir grupos ao primeiro destino. O cabeçalho permite quebra de linha em largura intermédia; os controlos móveis e do teclado existentes são reutilizados.
**Verificação delimitada:**16 testes de navegação/renderização estrutural,0falhas;tipos,compilação QA e sintaxe PHP passaram. Quatro cenários de capacidades conservaram todos os destinos anteriores; não surgem operações privadas em cenário anónimo ou sem atribuições. SSR usa o componente real da barra lateral com wrappers semânticos de teste; não equivale a captura do navegador. A prévia HTML é um inventário interactivo de destinos, sem pedidos ao portal, identificado como proposta QA, não como sessão real.
**Pendente:** conferência visual desktop/móvel/teclado/toque e das capacidades efectivas da sessão relatada; o host do conector permanece indisponível no último diagnóstico. Não substituir essa conferência por alegação de acesso demonstrado. A instalação futura deve transportar só o delta de menus pelo processo Git/backup/restauro existente, preservando originais, dados, permissões, contexto,dossier e simulador.435 observações de Gurué não são435empresas únicas; listas internas/cobertura parcial/hipótese preservadas. L8 continua parcial.
Inventário anterior registado antes dos testes nesta matriz/manual. Actualização apenas nos requisitos existentesV2-01,V2-07,V2-10,MASTER-9dee08d0-0011,MASTER-9f6dd1d9-0001,MASTER-9f6dd1d9-0003,MASTER-02f44baf-0002;não há matriz ou backlog novos. Relatório:`navigation-reconciliation-qa-20261028.json`;prévia:`outputs/navigation-reconciliation-20261028/menu-proposta-qa.html`.
A apresentação da gestão antiga usa agora a decisão efectiva já existente (`legacyWriteAllowed`, com o requisito de email verificado das rotas), em vez de presumir que o indicador genérico de gestor basta. Não se alteraram regras, atribuições ou permissões. Preservada também a entrada de instalação de perfis anteriormente presente apenas na barra lateral autorizada. Os nomes longos quebram linha na barra lateral, sem reticências que escondam a função.
## 28/10/2026 — menus 6e8de43a instalados pelo Git; conferência visual pendente
A Tempo aprovou a proposta QA e autenticou o transporte SSH existente. `main` avançou normalmente de `6d147693` para `6e8de43a`, sem force. A entrega usou o pipeline existente, sem alterar o seu contrato de schema, sem migrações, importações, atribuições de papéis ou permissões. Os 16 testes dirigidos e as provas QA aceites foram reutilizados; as verificações automáticas obrigatórias do pipeline não representam nova aceitação funcional.
Capacidade conferida antes da entrega: cerca de 78,5 GiB livres. Backup novo em `/var/backups/investmoz-navigation-delivery-20261028/backup`; restauro em base isolada, sem rede, confirmou as 176 tabelas por contagens/checksums. Os 369 ficheiros persistentes/configuração mantêm-se idênticos. As tabelas de domínio, incluindo base interna, relações e permissões, foram comparadas com o snapshot do backup; apenas alterações operacionais de cache/sessão são registadas separadamente. A versão anterior está preservada para retorno pelo mecanismo existente.
O delta instalado contém Área de trabalho no nível principal, destinos subordinados completos na barra lateral e continuidade para os destinos existentes de investimento, conteúdos e acompanhamento. A exposição das acções respeita a decisão efectiva do servidor; não se infere nova autorização pelo nome genérico de gestor. A presença dos assets e props instalados foi conferida tecnicamente, sem a apresentar como prova da sessão real.
Pendente: conferência visual autenticada desktop/móvel/teclado/toque e percurso Gurué → consultar oferta → comparar ideia → guardar → recuperar no mesmo dossier. Último bloqueio conhecido: `The browser access host is unavailable`; uma aba aberta não restabelece o host. Não repetir as provas QA aceites nem reinstalar a base interna para resolver essa pendência. As 435 observações de Gurué não equivalem a 435 empresas únicas; listas internas, cobertura parcial e hipótese de investimento mantêm-se explícitas. L8 permanece parcial.
Evidência: `docs/investmoz/unification/navigation-git-delivery-20261028.json`. O relatório QA anterior permanece como histórico do candidato antes da instalação. Actualizados os mesmos sete requisitos existentes, preservando o seu histórico; não foi criada outra matriz.
# Inventário antes da verificação — catálogo territorial, 28/10/2026
Preservar menus `6e8de43a`, dados, base interna, aprovações, configuração de corredores e históricos já aceites. Caso Maputo Província / Agronegócio reproduzido por leitura QA: zero resultados apesar de cinco oportunidades públicas do Corredor de Maputo, cujo âmbito provincial está aprovado desde 23/10 em `corridor-adaptive-context-20261023.json`. A consulta não inclui esse contexto; os cartões também não mostram todos os níveis territoriais disponíveis. Correcção delimitada nos requisitos existentes V2-07/V2-10, sem inferir distrito/posto administrativo onde a fonte não os indica. Conferência visual autenticada continua pendente; não há nova matriz nem reabertura de provas aceites.
## 28/10/2026 — correcção provincial do catálogo em QA, ainda sem instalação
Caso da Tempo: Agronegócio / Maputo Província. A leitura QA reproduziu zero resultados para cinco oportunidades públicas do Corredor de Maputo. Reutilizada a decisão expressa de 23/10 que abrange Maputo Província e Maputo Cidade, antes disponível no percurso mas omitida na consulta. O filtro provincial passa a incluir esse contexto aprovado, mantendo sector e estado público, sem duplicar oportunidades nem atribuir distrito/posto administrativo ou coordenadas inexistentes. Uma localização explícita posterior prevalece sobre o contexto antigo.
Os resultados apresentam a hierarquia territorial disponível; o contexto de corredor é identificado e os níveis não indicados continuam explícitos. Pesquisa/API, vista por corredores e lista sem coordenadas do mapa concordam. O atalho «Ver toda a província» elimina a necessidade de limpar vários níveis manualmente. Não foram criadas publicações, relações a mestres ou permissões. Provas QA: 4 testes/70 verificações, zero falhas, transacções revertidas; tipos, compilação QA e sintaxe PHP passaram. O inventário anterior foi registado antes dos testes. Menus 6e8de43a, base interna, históricos e aceitação anterior preservados; L8 permanece parcial.
Relatório: `catalogue-province-coverage-qa-20261028.json`. Instalação pelo processo Git e conferência visual autenticada continuam pendentes. Não declarar auditados todos os outros menus por este delta. Cobertura actualizada nos requisitos existentes V2-07/V2-10; sem nova matriz.
28/10 — Âmbito nacional confirmado pela Tempo: antes da extensão dos testes, preservar a correcção QA 1b2ede41 e verificar os seis corredores aprovados nas onze unidades provinciais, hierarquia descendente e reutilização entre sectores/entradas de localização. Não presumir cobertura de corredor onde não está documentada. Nenhuma prova anterior é revogada.
28/10 - National coverage: 6 tests / 617 assertions passed across all 11 provincial units, 6 configured corridors and 2 sectors, including descendant hierarchy, sector separation and both province/location entry points. The runtime correction already used the common national hierarchy; Maputo was the reported reproduction, not a geographic limit. Existing publication decisions and unknown district/post/site information remain preserved. This is not a claim that every unrelated portal menu has been audited. No additional runtime change since 1b2ede41; types/build accepted evidence reused. Installation remains pending.
28/10 - Before selector delta checks: accepted national catalogue QA 47dae1b7, 6 tests/617 assertions, remains uninstalled. Existing TerritoryLevel and ProvinceSelect required two separate fields (search then select). Tempo requests one dropdown on the search field. Consolidate the shared controls while retaining saved values, hierarchy, endpoints, paging and permission decisions;browser visual proof remains separate.
## 28/10/2026 — selecção territorial num único campo de pesquisa, QA
Pedido expresso da Tempo: o dropdown deve abrir em «Pesquisar província», sem um segundo controlo «Seleccione». `ProvinceSelect` e `TerritoryLevel` passam a usar o mesmo combobox, aplicado a província, distrito, posto administrativo e localidade. Pesquisar e escolher fica num único campo; a paginação permanece na lista. Escrever ou sair com Escape não substitui a selecção guardada; escolher e limpar são acções expressas. Mantêm-se a hierarquia, os endpoints existentes e os controlos de acesso, sem novos dados ou publicações.
Quatro testes do contrato de eventos/estado passaram: abertura/escolha, preservação ao escrever/Escape, teclado e bloqueio de resultado antigo durante carregamento, limpeza e dependência do nível anterior. Tipos e compilação QA passaram. As 6 provas nacionais/617 verificações são reutilizadas porque o PHP territorial não mudou. Este delta continua em QA e não comprova apresentação ou sessão real no navegador. Será agrupado com a correcção provincial; falta autenticação SSH antes da entrega, sem nova aprovação organizacional.
28/10 - Before catalogue presentation checks: accepted province QA6/617 and unified selector QA4 remain preserved and uninstalled. Tempo reports Tourism/Cabo Delgado shows educational text and broad sector links. Read-only public API confirmed zero filtered records;unfiltered tourism returns16 records,all declared in Inhambane. This does not establish absence of tourism supply in Cabo Delgado. Correct presentation to retain filters and expose guides only as optional links;do not republish or reassign opportunities to manufacture results.
## 28/10/2026 — resultados do catálogo separados do apoio educativo, QA
A Tempo esclareceu que a combinação província/sector deve apresentar as oportunidades correspondentes, sem texto educativo ou atalhos que troquem a consulta por todas as oportunidades do sector. A consulta pública anónima conferiu Turismo/Cabo Delgado = zero oportunidades cadastradas; Turismo sem localização = 16, todas declaradas em Inhambane. Este snapshot não prova ausência de oferta turística em Cabo Delgado e não substitui inventário de fontes ou consulta autenticada.
Correcção de apresentação em QA: título dos resultados explicita sector e hierarquia escolhidos; removidos os cartões educativos e o botão sectorial sem localização da área de resultados. Os guias mantêm-se como títulos ligados em apoio opcional fechado por defeito. A remoção da localização é uma acção expressamente identificada como pesquisa noutras províncias. O estado vazio refere o cadastro consultado e a cobertura incompleta, sem fabricar oportunidades nem alargar automaticamente filtros.
Dois testes SSR do novo apoio opcional passaram, bem como tipos e compilação. As provas territoriais nacionais 6/617 e os quatro testes do selector são reutilizados; não mudou a consulta PHP ou o controlo territorial neste delta. Mantêm-se histórico, publicações, permissões, fontes e base interna. Este candidato continua sem instalação, dependente de autenticação SSH; a sessão real permanece sem prova visual. Relatório existente: `catalogue-province-coverage-qa-20261028.json`, campo `catalogue_result_presentation`. Requisitos V2-07/V2-10 actualizados na mesma matriz; L8 permanece parcial.
28/10 - Before investor usability checks: accepted catalogue candidate54d1b2a5 remains in QA,not installed;active menus6e8de43a and earlier supply proofs preserved. Two Tempo attachments identify duplicate profile navigation,an exposed long canonical form and ZEE/ZFI/park searches that keep prior results until manual submit. Prepare presentation-only adaptive field groups and safe save-before-resource navigation;verify territorial search/count/paging and documented scope without republishing records or changing permissions. Reuse prior proofs;existing V2-07/V2-10 scope retained.
## 28/10/2026 — usabilidade do investidor e consulta territorial, QA
Pedidos da Tempo e exemplos recebidos: menu/ficha de oportunidade, zonas/parques, pedido de Promotor, Os meus investimentos, documentos/formulários e recusa autenticada em Turismo. Inventário anterior registado antes dos testes: menus 6e8de43a e base interna instalados; candidato territorial 54d1b2a5 ainda em QA; originais, dados, relações, histórico, aprovações e provas anteriores preservados.
Delta QA: acções do investidor em primeiro plano, administração em detalhe consultável; campos do contrato existente agrupados por tarefa e modalidade, com navegação livre e todos os campos montados para conservar edições. Os grupos mostram as pendências da última gravação e os erros existentes; não criam seis ou oito formulários obrigatórios. Guardar usa os mesmos endpoints/ETags; abrir recursos pela preparação guarda primeiro e regressa à mesma oportunidade/grupo. Contactos e detalhes de disponibilidade ficam opcionais; códigos técnicos de categorias e campos conhecidos têm nomes em português. Só um contexto único de promotor é escolhido automaticamente.
Zonas: selecção territorial aplica pesquisa sem esperar por outro clique; a lista anterior deixa de aparecer durante carregamento/erro. Totais, intervalo visível e páginas identificados, sem apresentar a primeira página como o conjunto completo. «Todo o território» remove expressamente a localização, preservando os restantes critérios visíveis. Abrangência jurídica documentada e validada inclui os níveis descendentes; influência não se torna implantação. Não são criadas localizações, direitos, publicações ou certificados.
Pedido de Promotor: representação/modalidades com nomes claros; pesquisa de ficheiros e selecção expressa dos comprovativos, preservando os escolhidos ao pesquisar. Mantidos propriedade, análise antimalware e verificações existentes; legislação/imagem/teste não se torna comprovativo por estar disponível. Os meus investimentos destaca a próxima acção e permite abrir fases/etapas; fontes, códigos e acompanhamento interno ficam preservados em detalhes.
Formulários: entradas directas para os campos já existentes da preparação do pedido de investimento e Terra/DUAT; pedido de apoio identificado separadamente. Originais oficiais e guias continuam consultáveis, sem os confundir com um formulário preenchível ou converter leis em campos/cálculos. Não se declara executada a totalidade dos formulários oficiais do acervo.
Provas delimitadas: 8 testes frontend de contrato/SSR e 3 testes isolados/12 verificações, zero falhas; tipos, compilação e sintaxe PHP passaram. Dados sintéticos revertidos em QA. Provas nacionais/selector/catálogo anteriores reutilizadas. Turismo: leitura anónima activa HTTP200 e QA visitante/conta sem Promotor HTTP200; a recusa da sessão real relatada não foi reproduzida, nem atribuída a uma permissão sem prova. A conferência autenticada e visual continua pendente. Este registo não instala o candidato nem encerra a implementação transversal. L8 permanece parcial.
Evidência: `investor-usability-qa-20261028.json`. Actualizados V2-01,V2-07,V2-10 na matriz existente; sem nova matriz ou backlog.
### 28/10 — botão de cadastro e compatibilidade do pipeline
A Tempo esclareceu que a recusa em Turismo ocorreu depois de clicar num botão; não foi possível recuperar o nome. A rota pública continuou HTTP200. Conferência de forma pública/origem não identificou anexos privados nos documentos públicos de Turismo; não se atribui a recusa à perda de publicação. Encontrada uma falha delimitada no consumidor: o botão de cadastro dependia da disponibilidade do módulo, sem a capacidade efectiva da conta. Corrigido para reutilizar o destino autorizado de criação de ContentManagement; sem essa capacidade, mostra expressamente o pedido de acesso já existente. Não cria papéis nem restringe a consulta pública ou a preparação de ideias. A confirmação visual da acção real permanece pendente.
O candidato 502e3ec4 falhou na Unit de agrupamento de corredores antes da troca de release; 6e8de43a ficou servido. Causa: a simulação do catálogo não representava a nova apresentação de localização e uma consulta era feita antes de conferir se a fonte era aplicável. Correcção: conferir primeiro a fonte e simular a nova dependência no teste, conservando as verificações anteriores de identidade, grupos e contagens. Regressão Unit1/13 passou; não foi alterado o pipeline, o contrato de schema ou a exigência dos testes. Frontend9, Feature3/14, tipos e compilação passaram. Rótulos conhecidos de temas, categorias e idiomas do acervo traduzidos para apresentação; valores dos filtros preservados.
## 28/10/2026 — entrega agrupada de usabilidade e filtros instalada, 789fffd0
Entrega autorizada pela Tempo e autenticada pelo mecanismo SSH existente. `main` avançou normalmente e o pipeline existente instalou `789fffd0`, preservando a release anterior `6e8de43a`. O candidato inicial `502e3ec4` foi recusado antes da troca por uma dependência não representada no teste Unit do agrupamento de corredores; o activo ficou preservado. A consulta desnecessária foi corrigida e a nova dependência simulada, conservando as provas anteriores. O pipeline e o seu contrato de schema não foram enfraquecidos.
Backup/restauro de 176 tabelas confirmado numa instância isolada, sem rede. Os 369 ficheiros persistentes/configuração mantêm-se idênticos. A comparação do snapshot com o instalado preserva as tabelas de domínio, incluindo papéis, publicações, originais e base interna; diferenças de cache/sessões são registadas separadamente. Sem migrações, importações ou activação fiscal. A versão anterior permanece disponível para o mecanismo de retorno.
Incluídos: consulta provincial nacional/corredores e detalhe territorial; pesquisa/selecção num único controlo; resultados do catálogo separados do apoio educativo; grupos adaptáveis de preenchimento, navegação livre e gravação antes de abrir recursos; pedido de Promotor legível com comprovativos escolhidos expressamente; zonas filtradas ao seleccionar, contagens/paginação visíveis; fases/etapas do dossier e fontes em detalhes; entradas para formulários de preparação já existentes; CTA sectorial conforme capacidade efectiva; rótulos do acervo legíveis. Não são novas permissões, publicações ou formulários fiscais oficiais inventados.
Conferidos o commit servido, APIs filtradas e assets instalados. Reutilizadas as provas QA aceites; a bateria obrigatória do pipeline não reabre a sua aceitação. Mantém-se pendente a conferência visual autenticada, incluindo navegação, ida/volta a recursos e Gurué no mesmo dossier. A recusa relatada em Turismo ocorreu após um botão; a falha concreta do CTA de cadastro foi corrigida, mas não se declara reproduzida e resolvida a acção original sem a sessão real. A escolha do formulário fiscal concreto ainda precisa de ser esclarecida; os diplomas IVA mostrados não são formulários preenchíveis.
Estado actual: `investor-usability-git-delivery-20261028.json`. Os relatórios QA anteriores conservam o estado histórico antes da instalação. As 435 observações de Gurué não são 435 empresas; as listas são internas, a cobertura nacional é parcial e a comparação sustenta hipóteses. L8 permanece parcial. Actualizados V2-01/V2-07/V2-10 na matriz e manual existentes.
## 28/10/2026 — preparação de formulários fiscais, inventário antes das provas
Pedido expresso da Tempo: preencher formulário de IVA ou IRPC, em vez de abrir legislação. Base preservada: entrega instalada 789fffd0, Modelo A e aquisições/apuramento já aceites, L6 M20/M22 instalado em 5aaf1a56 e incrementos de L8. Nenhuma perda confirmada neste recorte; não se apagam as aceitações nem se repetem provas fiscais anteriores. Fontes reutilizadas do inventário de 20 exemplares acessíveis em outputs/irpc-l6-values-forms/accessible-source-inventory.json da QA anterior, incluindo temporários identificados; inventário do corpus e originais preservados. M22: três páginas conferidas visualmente nesta revisão, SHA256 4b61bd83d1fbcfd3b7b5c5523cea5923f7d0f65dc4c004eff58e5db38f763c88. Modelo A: correspondência e divergências aceites em modelo-a-reconciliacao-20261021.md; sem nova validação de proveniência.
Incremento em preparação QA: entrada directa em Documentos e Formulários, preenchimento manual dos campos correspondidos de IVA e subconjunto M22, identificação/período, revisão, impressão e ficheiro privado para recuperação mediante confirmação. Escolha técnica: sem persistência no servidor nem ligação automática ao dossier neste incremento; não altera schema, dados, permissões ou cálculos. Ficheiro não publicado. IRPC ajustamentos completos, outros regimes, anexos, assinatura e submissão à AT fora da cobertura; L8 permanece parcial. Ainda sem instalação deste incremento. Próximas provas apenas do delta: fidelidade da recuperação, rejeição de ficheiros incompatíveis sem perda, formatos/valores desconhecidos, acesso público e compilação.
## 29/10/2026 — ACT-20261029-01, inventário antes da verificação do incremento
Continuação sequencial solicitada pela Tempo. Correspondência: ACT-20261029-01 reutiliza D-02 §8, clusters/cadeias e a orientação metodológica documentada em 23/10. Concluído previamente e preservado: gestão de clusters, etapas, ligações, lacunas e relações auditadas; disponibilidade instalada de carteira/âncoras e formulários fiscais conforme recibos de 28/10. Nenhuma perda nova confirmada nesta inspecção de código; não foi feita nova comparação de dados ou alegada prova do servidor. A pasta principal está em fde644af, enquanto o último recibo identifica 332c16eb instalado; reconciliar o delta sobre essa origem antes de instalar, sem substituir o destino pela pasta principal.
Incremento em preparação: diagnóstico qualitativo das cinco forças na edição do cluster, sector/região editáveis, fonte/período/evidência/justificação/limites/oportunidade por força; indeterminação explícita, ficheiro privado transferível e recuperação com confirmação. Sem alteração de schema, dados, permissões, publicações ou motores fiscais. Persistência no servidor, ligação territorial canónica, dados sectoriais fundamentados e consulta pública permanecem por implementar; ACT-01 não está concluída. Verificação dirigida e instalação ainda pendentes neste registo inicial. Restantes ACT-02 a 16 mantêm o estado anterior e a sequência, sem trabalho SGF nesta passagem.
### ACT-20261029-01 — candidato sequencial preparado, 29/10/2026
Primeiro incremento implementado, **parcial e ainda não instalado**: gestão → clusters → editar → Competitividade. As cinco forças conservam fonte, período, evidência, apreciação, limites e oportunidade; sector e região explícitos, sem inferências automáticas. Transferência de rascunhos JSON e recuperação restrita ao mesmo cluster, com confirmação antes de substituir. Quatro testes frontend dirigidos, TypeScript e compilação QA passaram tanto na pasta de trabalho como no candidato baseado em 332c16eb. Guarda C132 local passou; não foram efectuados testes nem escritas na base activa. A edição existente recebe apenas a inclusão do componente; contratos e permissões existentes preservados.
Origem reconciliada: main remoto e revisão pública conferidos em 332c16eb em 29/10. Candidato em C:/laragon/www/portal-investidor-competitiveness-qa-20261029, ramo codex/competitiveness-sequential-20261029. Consulta do estado remoto não equivale a inventário novo da base. Sessão SSH anterior encerrada; autenticação por chave recusada. Instalação requer autenticação SSH, backup fresco, restauro isolado, guarda de versão, pipeline existente e conferência posterior. Não instalar a pasta principal sobre o destino. A sequência solicitada mantém ACT-02 a 16 por iniciar após a instalação e o saldo de ACT-01; persistência no servidor, cobertura factual e consulta pública continuam pendentes. Sem declaração de conferência visual autenticada.
### 29/10/2026 — ACT-20261029-01, primeiro incremento instalado: 23ecccfa
Estado corrente de ACT-01: **parcial — primeiro incremento instalado**, substituindo apenas o estado planeado/preparado deste recorte; ACT-02 a 16 não foram implementadas nesta entrega. Instalado por avanço normal de main e pipeline existente em https://teste-investidor.tempo.co.mz/. Entrada: Gestão → Clusters → Editar → Competitividade — cinco forças de Porter. Preparação qualitativa por sector/região, evidências/fontes/períodos/limites e oportunidades, transferência JSON e recuperação confirmada do mesmo cluster. Sem gravação no servidor nem publicação da análise. Persistência, cobertura factual, território canónico e consulta pública continuam pendentes; esta instalação não encerra o critério amplo ACT-01.
Provas: backup fresco, restauro isolado sem rede das 176 tabelas; pipeline com lifecycle de schema (3.106 asserções), 59 testes Unit/320 asserções e 1.180 testes frontend sem falhas, tipos e compilação; quatro ficheiros do incremento conferidos por SHA-256 no instalado; C132 no destino passou. Comparação após instalação: todas as 176 tabelas de domínio preservadas, diferenças operacionais apenas em cache/sessões; 369 ficheiros/configuração idênticos. Acesso anónimo ao catálogo privado recusado HTTP401. Zero migrações/importações, nenhuma nova divulgação nem mudança de permissões; versão anterior 332c16eb preservada. Conferência visual autenticada permanece pendente. Recibo: `docs/investmoz/unification/competitiveness-sequential-qa-20261029.json`, em docs/investmoz/unification. As provas aceites anteriores foram reutilizadas; não foram reabertas por esta entrega.
### 29/10/2026 — ACT-01, persistência e aprovação: execução em curso
Ordem confirmada pela Tempo: 1) gravar/validar/recuperar na gestão com permissões e histórico, 2) consultar publicamente apenas conteúdo aprovado, 3) restantes alterações. A instalação da interface 23ecccfa e os 1.180 testes anteriores são provas desse incremento, não prova de persistência. Sem perda nova confirmada; preservar a versão pública anterior e os recibos de backup/restauro. O problema dos filtros provinciais permanece **separado e aberto**, sem declaração de correcção por estes trabalhos.
Escolha técnica: reutilizar snapshots cifrados nos eventos append-only de auditoria, já usados pelo portal; bloqueio transaccional do cluster, controlo de versão e histórico imutável. Sem alteração de schema/permissões. Guardar rascunho e recuperar histórico não publica; aprovação explícita fixa a versão consultável, edições seguintes preservam a aprovação anterior até nova decisão. Rascunhos parciais são guardáveis; aprovação exige os fundamentos das cinco forças. Recuperação/conflito não deve sobrescrever edições inadvertidamente. Acesso público continua limitado às fichas publicadas. Implementação e provas específicas de persistência/consulta ainda em preparação; restantes ACT mantêm o estado anterior.
### ACT-01 — prova específica antes da instalação, 29/10/2026
Sete testes Feature/93 asserções passaram na base restaurada competitiveness_persistence_20261029_test, porta 55441: gravação e leitura HTTP entre pedidos, retorno pela edição da gestão, histórico cifrado, validação de campos/cluster/forças, normalização do formato recuperável, conflitos sem sobrescrita, aprovação fixa, rascunhos posteriores sem divulgação, recuperação histórica como nova versão, retirada e exclusão do conteúdo não aprovado na consulta pública. Utilizadores sem permissão e pedidos anónimos foram recusados na gestão. O teste público percorreu a ficha publicada e confirmou 404 da ficha não publicada. Zero escritas na base activa. Esta prova não afirma conferência visual autenticada nem correcção dos filtros provinciais, que permanecem abertos. Recibo: docs/investmoz/unification/competitiveness-persistence-qa-20261029.json. Compilação QA, tipos e quatro testes frontend dirigidos passaram; instalação ainda pendente.
### 29/10/2026 — ACT-01, gravação/recuperação e consulta aprovada instaladas: b81f477b
Instalado pelo avanço normal de main e pipeline existente, preservando 23ecccfa para retorno. Gestão → Clusters → Editar → Competitividade agora recupera o rascunho do servidor e permite gravar, consultar a versão actual, confirmar recuperação e recuperar uma versão histórica como nova gravação. Versões cifradas e imutáveis na auditoria existente, com bloqueio transaccional do cluster e controlo de versão; conflitos conservam a versão guardada e os campos do editor. Reutilizada a permissão existente de gestão, sem novos papéis ou aprovadores. Rascunhos incompletos podem ser guardados; a aprovação exige âmbito e fundamentos das cinco forças.
**Percurso da gestão:** preencher → Guardar rascunho no servidor → voltar à edição para recuperar → consultar histórico quando necessário. Para comparar com outra gravação, usar Consultar versão actual do servidor e confirmar antes de substituir os campos; transferir primeiro edições que se queira conservar. Recuperar o histórico cria nova versão e mantém o histórico e a aprovação pública existente. A aprovação ou retirada é expressa, com evidência/motivo registado. A ficha pública de um cluster publicado mostra exclusivamente a análise aprovada; novas gravações privadas não alteram essa versão. Uma ficha não publicada continua indisponível ao público. Não houve aprovação nem divulgação automática de análises.
**Prova específica:** sete testes Feature/93 asserções na base restaurada e isolada competitiveness_persistence_20261029_test, porta55441. Abrange gravação/recuperação HTTP, retorno na gestão, validação e formato, histórico cifrado, conflito, acesso recusado, aprovação fixa, rascunho posterior privado, recuperação, retirada e consulta pública/404 de ficha não publicada. Os 1.180 testes frontend não são apresentados como prova substituta de persistência. Pipeline: tipos, compilação, lifecycle de schema1/3106, Unit59/320 e frontend1180 sem falhas. Dez ficheiros de código/testes do instalado conferidos por SHA-256 com os da QA; C132 no destino passou.
**Preservação e limites:** backup fresco/restauro isolado176; comparação posterior de176 tabelas sem alterações de domínio, apenas diferenças operacionais de cache/sessões; 369 ficheiros/configuração idênticos. Ligação real teste_investidor_app conferida em leitura, com privilégios existentes de SELECT/INSERT em auditoria e bloqueio do cluster; endpoint de gestão anónimo HTTP401. Nenhuma escrita sintética na base activa, migração, importação, mudança de permissões ou nova publicação. A conferência visual autenticada no instalado permanece pendente; não foi simulada uma decisão real de conteúdo no activo. ACT-01 tem agora persistência e consulta aprovada implementadas/instaladas, mantendo parcial a cobertura factual por sector/região. Recibo: docs/investmoz/unification/competitiveness-persistence-qa-20261029.json.
**Filtros provinciais: separado e aberto.** Esta entrega não alterou a lógica dos filtros nem demonstra a correcção relatada de Agronegócio/Maputo Província no portal. Preservam-se as provas e os estados históricos; não encerrar V2-07/V2-10 ou ACT-02 por causa da persistência de Competitividade. Restantes alterações permanecem na sequência posterior.
Origem de continuidade: C:/laragon/www/portal-investidor-competitiveness-qa-20261029, ramo codex/competitiveness-persistence-20261029, instalado b81f477b. A pasta principal anterior não deve substituir esta versão sem reconciliação do delta.
### 29/10/2026 — V2-07/V2-10 / ACT-02, diagnóstico dos filtros provinciais em curso
Separação confirmada pela Tempo: a equipa executará e registará a conferência visual autenticada de Competitividade (continua pendente); o Codex prossegue no código/API dos filtros. Provas aceites preservadas, sem repetição das suites fiscais ou de Competitividade. Nenhuma perda de dados confirmada nesta passagem.
Reprodução pública em b81f477b: Agronegócio/Maputo Província por province_id na API /api/v1/investment/search devolve5 oportunidades (IDs60–64). O mesmo nome em province devolve0, tanto nessa API como em /api/v1/opportunities/search. A API antiga ignora province_id e devolve34, incluindo outras províncias. São lacunas de normalização/compatibilidade entre entradas, não prova de eliminação nem falha demonstrada da expansão hierárquica já existente. Corrigir apenas os deltas: resolver nomes provinciais públicos inequívocos para a mesma hierarquia e aplicar o filtro territorial na API antiga, preservando outros filtros, versões públicas, localização real e dados. Demonstrar todos os níveis inferiores por pedidos HTTP em QA isolada; província apenas contextual ou declarada não deve ganhar distrito. O problema permanece aberto até às provas específicas e à conferência da API instalada; não encerrar a conferência visual da equipa por testes técnicos.
### 29/10/2026 — duas frentes e diagnóstico local Edge
A equipa executa directamente e regista a conferência visual autenticada de Competitividade (editar → guardar → reabrir → conferir versão aprovada); estado pendente até execução. O Codex prossegue com código/API dos filtros provinciais, independentemente do navegador. Provas aceites preservadas.
Ligação identificada: com.openai.codexextension, manifesto stdio válido, extensão Edge instalada e activa no perfil detectado, host executado como filho do Edge; named pipes do browser-use presentes e servidor registado nos logs do cliente. Inspeccionados os listeners/processos sem libertar portas. Não foi identificado conflito TCP nem um serviço de extensão parado. Não foi encontrado erro de permissões no recorte de logs consultado, sem excluir outros pontos. A descoberta desta sessão continua a indicar access host indisponível; o runtime exige caminho do pipe e identidade verificadora, ausentes na shell. Falha de passagem de contexto é uma hipótese delimitada, não conclusão de porta ocupada. O registo de erros do service worker não ficou acessível pela ligação de navegador indisponível. A recuperação suportada, limitada à abertura do perfil Edge detectado, não restabeleceu a leitura do URL. Não foram terminados processos, reinstalados hosts nem alteradas permissões/políticas. InvesteMoz e SGF continuam em execução. Relatório local: outputs/edge-bridge-diagnostic-20261029/report.json. Não declarar recuperada a ligação nem concluída a conferência visual.
Correcção provincial preparada no ramo codex/province-search-20261029; validação QA/instalação pendentes. A sessão SSH anterior expirou. O lançamento automático de nova consola foi recusado pela revisão automática com indicação genérica blocked by policy, sem razão adicional; foi pedido arranque/autenticação manual no helper existente. Nenhuma escrita no activo ou novo ensaio remoto ocorreu por essa tentativa.
### 29/10/2026 — filtros provinciais: correcção candidata, pendente de QA
Reproduzido no portal instalado b81f477b: /api/v1/investment/search por province_id de Maputo Província devolve5; por province textual devolve0 nas duas APIs; a API antiga com province_id ignora o parâmetro e devolve34 de Agronegócio. Preparada correcção no ramo codex/province-search-20261029, preservando a expansão de descendentes existente e aplicando a mesma selecção territorial à API antiga. Nomes provinciais só são resolvidos quando a correspondência pública exacta é inequívoca. Declarações provinciais antigas são consideradas sem atribuir distrito, posto, localidade ou coordenadas, e não prevalecem sobre territórios explícitos contraditórios. Nenhum dado cadastral é actualizado por esta correcção.
Quatro testes HTTP preparados para província/distrito/posto/localidade e localizações adicionais, onze províncias e exclusão de vizinhas/privados/eliminados, preservação das localizações e consistência de catálogo/mapa/exportação. Sintaxe PHP e diff conferidos; testes ainda não executados e candidato ainda não instalado. Recibo: docs/investmoz/unification/province-search-qa-20261029.json. A sessão SSH expirou e a nova consola automática foi recusada pela revisão de aprovação com blocked by policy (sem razão específica adicional); pedida autenticação manual no helper outputs/province-search-20261029/ssh-session.py. Não substituir ausência de ensaio por declaração de correcção concluída.
A conferência visual de Competitividade fica a cargo da equipa e permanece pendente até execução/registo; provas técnicas aceites preservadas. Ligação Edge diagnosticada separadamente: extensão/manifesto/host activos, stdio/named pipes, leitura do URL não restabelecida pela recuperação suportada do perfil. Nenhum processo terminado nem porta libertada/reconfigurada. InvesteMoz e SGF preservados. Relatório local: outputs/edge-bridge-diagnostic-20261029/report.json. Os filtros mantêm-se abertos até QA e confirmação da API instalada.
### 29/10/2026 — filtros provinciais, prova HTTP específica em QA
Quatro testes Feature/364 asserções passaram na base restaurada province_search_20261029_test, porta55441, candidato e0987afb. Seleccionar só a província, por nome público inequívoco ou ID, inclui registos provinciais, distritais, de posto e localidade e localizações adicionais, nas duas APIs; confirmada cobertura das11 províncias e exclusão de vizinhas. Privados/eliminados não entram; distrito seleccionado não recebe oportunidades apenas provinciais. Declaração provincial antiga não supera localização explícita noutro território. Maputo Província por nome/ID, página do catálogo, mapa e exportação concordam nas5 oportunidades do contexto aprovado; sem coordenadas ou distrito inventados. Campos e relações guardados permanecem inalterados. Zero escritas no activo; nenhuma migração nem alteração de permissões. O conjunto inclui provas novas da hierarquia HTTP, sem reabrir as provas aceites de Competitividade/fiscalidade.
Recibo: docs/investmoz/unification/province-search-qa-20261029.json. Instalação e confirmação da API no portal continuam pendentes; não declarar encerrado o problema por QA isolada. A conferência visual autenticada de Competitividade permanece separada, pendente de execução e registo pela equipa. A sessão SSH foi reaberta a pedido expresso da Tempo e ficou autenticada; a recusa anterior da abertura automática não constitui bloqueio actual.
@@ -0,0 +1,185 @@
{
"date": "2026-10-28",
"status": "implemented and demonstrated in isolated QA; not installed",
"branch": "codex/irpc-l8-carry-qa-20261028",
"base": "cf4e0638",
"installed_reference_unchanged": "838ad941a24ae76ec4bf91ccc3f92012668fe8cf",
"scope": {
"year": "2026",
"subject": "same subject, resident general",
"period": "annual ordinary origins; calendar-year current close",
"currency": "documented MZN; exact foreign-credit fractions supported",
"international": "eligible origin credit minus origin deduction and documented actual later uses; five subsequent exercises, art65(3)",
"pec": "actual PEC eligible origin minus origin deduction and actual later uses; three subsequent exercises, art66(1–2)",
"allocation": "explicit documented selection between current and prior exercises, confirmed against current assessment; no presumed FIFO or automatic reduction",
"expiry": "ordinary window ended excludes current deduction but keeps source and arithmetic historical remainder",
"origin_rules": "origin assessment, inclusion/limits/insufficient collection and applicable period documented; exceptional/transitional rules outside scope"
},
"restriction_origins": {
"Tempo": "preserve approved sources, accepted deliveries, data/history, QA isolation; continue L8",
"accepted_requirement": "CIRPC65(3),66(1–2), source already accepted; no new provenance approval",
"technical_choices": "optional versioned snapshot extension; consolidated nature/country/origin-year balance; explicit selection avoids invented interyear priority"
},
"verification": {
"new_frontend_tests": 16,
"affected_previously_accepted_tests": 49,
"total_frontend_pass": 65,
"frontend_fail": 0,
"API_tests": 1,
"API_assertions": 119,
"API_cases": 6,
"API_database": "proactive_investment_20261027_test",
"API_port": 55441,
"API_transactions_rolled_back": true,
"recovered_recalculated_HTML_dossier": 6,
"frozen_prior_results_preserved": true,
"typescript": "passed",
"build": "passed, actual subprocess exit0",
"PHP_formatting": "pint passed",
"browser_manual": "not performed; no manual UI acceptance claimed"
},
"preservation": {
"previous_deliveries": [
"international838ad941",
"PECe182d1d7",
"sectors669cb897"
],
"source_files_byte_identical": 31,
"existing_QA_records": {
"database": "proactive_investment_20261027_test",
"tables": {
"opportunities": {
"existing_rows": 55,
"unchanged": true
},
"documents": {
"existing_rows": 64,
"unchanged": true
},
"opportunity_documents": {
"existing_rows": 1,
"unchanged": true
},
"simulation_form_drafts": {
"existing_rows": 19,
"unchanged": true
},
"users": {
"existing_rows": 40,
"unchanged": true
},
"organizations": {
"existing_rows": 3,
"unchanged": true
},
"audit_events": {
"existing_rows": 409,
"unchanged": true
}
},
"transaction_rollback": true
},
"matrix": "existing AUD-SIM-INT02 updated; all other rows semantically unchanged",
"new_accounts_permissions_migrations": false,
"active_data_or_configuration_written": false,
"remote_deployment_or_publication": false,
"Songo_Gurue": "no pilot changes; remain private",
"other_dossiers": "same-snapshot origins checked, no global official account reconciliation"
},
"cases": [
{
"name": "payable",
"status": "payable",
"balance": {
"numerator": "550",
"denominator": "1"
},
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "expired",
"status": "indeterminate",
"balance": null,
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "missing-use",
"status": "indeterminate",
"balance": null,
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "overallocated",
"status": "indeterminate",
"balance": null,
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "fractional",
"status": "payable",
"balance": {
"numerator": "1822",
"denominator": "3"
},
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "recoverable",
"status": "recoverable",
"balance": {
"numerator": "-500",
"denominator": "1"
},
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
}
],
"remaining_L8": [
"automatic national-fraction derivation and case-specific treaty correspondence",
"economic credit art64/53 and benefit-specific credits with own qualification/limits",
"PPC/PEC obligation and calendar, interest/penalties and payment guides with applicable edition",
"autonomous taxation, special periods, other currencies, M20/M22 transport/submission",
"exceptional or transitional interyear cases outside ordinary source window; no official ledger created"
],
"next_independent_increment": {
"item": "economic double-tax credit",
"source": "existing accepted CIRPC64,53(1)a and exclusion40; BR52 original",
"required_correspondence": "distributed profits included, payer/recipient residence and IRPC nonexemption, art40 distinction, source tax, gross-up53, proportional cap64, actual use and nonduplication; do not infer from declared dividend alone"
},
"L8_complete": false,
"evidence": {
"api.log": "ef604fbe7a289930cb0b6dfa35407e0f115092894d32fd98c04a9e1f3b732415",
"build-result.json": "80bb1b6bb0ccadaf94f241ace9b0b19f77461b193b8b7522afa655d414d36198",
"build.log": "d93839f94f37e181acafe3f6295c10982e036475b1f5186aedba9a9ae3cd6bd9",
"existing-records-preservation.json": "b45b3306d3c9dee63fbbaf9a04bba31008019e65892bd16322460b5ef53eda7d",
"frontend-tests.log": "86a878a794a8f1ed7db56d689f0b9d5a2bdbc6079aa66e3cfe4b65ae64e656f6",
"protected-consumers.json": "9f147ea688a79a77a8d7507cf1c322a6a3c03b959be8fc5ed114db63dac05761",
"recovered-report-receipt.json": "82df86eaabbb79d760e4f2f1efb0f900d9e9607e11ea49502746dbafc46fed03",
"source-preservation.json": "c28df37db83989fe5746dcb5382a75c4f39471a16a7cbe64670260209cf6ad79"
},
"qa_commit": "d134a92d169f9159a692ed158e3a051889f7ab3a",
"qa_branch_pushed": false
}
@@ -0,0 +1,318 @@
{
"date": "2026-10-28",
"status": "ordinary economic credit implemented and demonstrated in isolated QA; not installed",
"branch": "codex/irpc-l8-economic-qa-20261028",
"base": "6ededb59",
"last_installed_receipt_reference": "838ad941a24ae76ec4bf91ccc3f92012668fe8cf",
"remote_status_read_this_turn": false,
"scope": {
"current_year": "2026",
"current_period": "calendar year, resident general",
"currency": "documented MZN; exact fractions without fiscal rounding",
"profit_kind": "ordinary distributions art64(1–2)",
"eligibility": "same-country seat/effective management; payer subject to IRPC and nonexempt; nonapplication of40(1) documented, including2009 version",
"nominal_credit": "60 percent of documented IRPC corresponding to included distributed profits; no assumed rate on net dividend",
"gross_up": "expected nominal60 percent reconciled with53(1)a amount already included in current L6; does not overwrite or recalculate source base",
"proportional_ceiling": "case-specific documented input tied to current assessment; not automatically derived",
"prior_use": "actual documented economic credit use, distinct from simulation history and prior source-tax attributions",
"order": [
"economic credit up to collecta",
"international credit current/prior according to existing explicit selection",
"PEC current/prior according to existing explicit selection",
"own withholdings and PPC"
],
"refund": "no economic-credit refund or carry created; PPC can create simulated recoverable balance"
},
"proof_parcels": {
"stable_identity": "issuer/document/parcel; distribution identity also independent of source-tax document,date and row id",
"economic_vs_international": "same physical tax parcel cannot fund both credit natures",
"same_paper_different_tax": "supported distinct parcels can coexist; old proof without a parcel overlaps the whole paper until reconciled",
"capacity": "same proof parcel amounts and prior attributions must agree and total allocation remains within available amount across snapshot contexts",
"L5": "existing withholding source/allocation checks preserved; parcel relabelling cannot turn repeated L5 use into new tax",
"partial_information": "saved and recovered as indeterminate, never reset or silently assumed absent",
"global_official_account_reconciliation": false
},
"compatibility_group": {
"included_prior_QA": "d134a92d169f9159a692ed158e3a051889f7ab3a; receipt6ededb59",
"candidate_contains_carry_increment": true,
"combined_API_case": "1408-12economic-8currentInternational-50priorInternational-200currentPEC-100priorPEC-500PPC=538MZN payable simulated",
"previous_carry_history_preserved": "550 MZN prior simulated result retained unchanged",
"changed_allocation": "economic priority checks remaining collecta but keeps user prior/current allocations; over-allocation becomes pending rather than reduced automatically",
"installation": false
},
"restriction_origins": {
"Tempo": "next economic increment, distinction from international, no duplicate same parcel, preserve approved evidence/history; compatible grouping allowed",
"accepted_requirement": "CIRPC64(1–2),53(1)a,40(1) amended by20/2009; RIRPC21(2/5)",
"implementation_choices": "optional versioned detail; normal resident general2026/MZN scope; documentary inclusion/gross-up/proportional quota; optional parcel annotations on existing proof types; no additional organizational authority"
},
"verification": {
"economic_new_frontend_tests": 20,
"previous_affected_tests": 65,
"frontend_pass": 85,
"frontend_fail": 0,
"API_tests": 1,
"API_assertions": 210,
"API_cases": 11,
"database": "proactive_investment_20261027_test",
"loopback_port": 55441,
"API_transactions_rolled_back": true,
"recovered_cases_recalculated_with_HTML_and_dossier": 11,
"frozen_histories_preserved": true,
"typescript": "passed",
"build": "isolated QA, subprocess exit0, final component hashes recorded",
"PHP_formatting": "pint passed",
"new_browser_manual_proof": false,
"team_usability_evaluation": "unchanged; awaiting team feedback"
},
"preservation": {
"protected_files_same_git_content": 558,
"raw_checkout_difference": {
"kind": "LF/CRLF environment difference only, no semantic loss",
"files": [
"docs/investmoz/simulations/irpc-l8-carry-qa-20261028.json"
]
},
"source_originals_same_bytes": 31,
"existing_QA_records": {
"database": "proactive_investment_20261027_test",
"tables": {
"opportunities": {
"existing_rows": 55,
"unchanged": true
},
"documents": {
"existing_rows": 64,
"unchanged": true
},
"opportunity_documents": {
"existing_rows": 1,
"unchanged": true
},
"simulation_form_drafts": {
"existing_rows": 19,
"unchanged": true
},
"users": {
"existing_rows": 40,
"unchanged": true
},
"organizations": {
"existing_rows": 3,
"unchanged": true
},
"audit_events": {
"existing_rows": 409,
"unchanged": true
}
},
"transaction_rollback": true
},
"existing_matrix": "only AUD-SIM-INT02 evidence updated; other records unchanged semantically",
"old_carry_receipt_and_fixture": "unchanged",
"schema_permissions_configuration": "no schema/configuration/migration/grant changes; no new live comparison claimed",
"active_data_writes": false,
"new_accounts": false,
"new_imports_or_publication": false,
"remote_operations": false,
"Songo_Gurue_SGF_TEMPO": "untouched"
},
"cases": [
{
"name": "payable",
"status": "payable",
"balance": {
"numerator": "688",
"denominator": "1"
},
"economicDeduction": {
"numerator": "12",
"denominator": "1"
},
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "combined",
"status": "payable",
"balance": {
"numerator": "538",
"denominator": "1"
},
"economicDeduction": {
"numerator": "12",
"denominator": "1"
},
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "quota",
"status": "payable",
"balance": {
"numerator": "695",
"denominator": "1"
},
"economicDeduction": {
"numerator": "5",
"denominator": "1"
},
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "prior-use",
"status": "payable",
"balance": {
"numerator": "691",
"denominator": "1"
},
"economicDeduction": {
"numerator": "9",
"denominator": "1"
},
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "duplicate",
"status": "indeterminate",
"balance": null,
"economicDeduction": null,
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "missing-gross-up",
"status": "indeterminate",
"balance": null,
"economicDeduction": null,
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "article40",
"status": "indeterminate",
"balance": null,
"economicDeduction": null,
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "shared-paper",
"status": "payable",
"balance": {
"numerator": "688",
"denominator": "1"
},
"economicDeduction": {
"numerator": "12",
"denominator": "1"
},
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "partial-parcel",
"status": "indeterminate",
"balance": null,
"economicDeduction": null,
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "fractional",
"status": "payable",
"balance": {
"numerator": "349997",
"denominator": "500"
},
"economicDeduction": {
"numerator": "3",
"denominator": "500"
},
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
},
{
"name": "recoverable",
"status": "recoverable",
"balance": {
"numerator": "-500",
"denominator": "1"
},
"economicDeduction": {
"numerator": "12",
"denominator": "1"
},
"apiRecovered": true,
"recalculationEqual": true,
"html": true,
"dossier": true,
"frozenHistoryPreserved": true
}
],
"remaining": {
"economic": [
"automatic inclusion/correction of distributed profits and53 addition in L6",
"automatic proportional ceiling derivation and complete40(1) exclusion treatment at base stage",
"liquidation64(3),associations64(4),special-period and other-currency cases"
],
"other_L8": [
"specific benefit credits and their qualification,cumulation and limits",
"automatic international national-fraction and case-specific treaty matching",
"PPC/PEC obligation/calendar,interest/penalties and payment guides with applicable edition",
"autonomous taxation,special periods,other currencies and M20/M22 transport/submission",
"exceptional/transitional interyear cases beyond accepted ordinary carry scope"
]
},
"L8_complete": false,
"evidence": {
"api-result.json": "124fd50cb6d223cdd18fedc166d00af7254199b6e6dedf9be82f71db87af6d01",
"api.log": "e5cb58ba25c82feb1a14a8259cd112a58455b8cc1c17d8540b08ec30b87583c7",
"build-result.json": "256bb54e1d47ec73de37810b9673f10464c65fb970ea3b7ae28bbea36ba222e3",
"build.log": "69f17893b47b8d748651933f6a88a5f4206d58173397c1695d58472db9a26cf6",
"existing-records-preservation.json": "b45b3306d3c9dee63fbbaf9a04bba31008019e65892bd16322460b5ef53eda7d",
"frontend-result.json": "f73293b96cda7c81c86a6716a04a18d632e10361bf7d3f616695dbdc7695aeb0",
"frontend.log": "ff784389cda3f2c232f4760f74c053bc16b6d134ef975d0aad13132373e5e275",
"pint-result.json": "124fd50cb6d223cdd18fedc166d00af7254199b6e6dedf9be82f71db87af6d01",
"pint.log": "cd1a94fc2cf6a965b86e1a4809d6c7fb9148b1ee374e1010ed2ac96ff4876ec2",
"protected-consumers.json": "172542788e44fe604ca90d95a71d87f47a3baeae0c61950bc50d342658aa82ad",
"recovered-report-receipt.json": "ecce91a9c00c3a88d234486c020b5aa1681928eb1b1aeaeef0e7a569a2e17654",
"source-preservation.json": "6aceebe1cf883ca709ccbbbef7f2a756ee5dc51c12b3281c3659e83abfd90b70",
"types-result.json": "256bb54e1d47ec73de37810b9673f10464c65fb970ea3b7ae28bbea36ba222e3",
"types.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
},
"qa_commit": "aae67c169dc0d14f95cf2ee6fa28e5ff05341dcf",
"qa_branch_pushed": false,
"grouped_delivery_manifest": "outputs/irpc-l8-economic-20261028/grouped-delivery-prepared.json"
}
@@ -0,0 +1,793 @@
{
"date": "2026-10-28",
"status": "installed_and_verified",
"served_commit": "569a1cd750f3d2a0b87f130e992e73e070bbd1ab",
"previous_commit": "838ad941a24ae76ec4bf91ccc3f92012668fe8cf",
"accepted_QA": {
"economic": "aae67c169dc0d14f95cf2ee6fa28e5ff05341dcf",
"carry": "d134a92d169f9159a692ed158e3a051889f7ab3a"
},
"scope": {
"economic": {
"current_year": "2026",
"current_period": "calendar year, resident general",
"currency": "documented MZN; exact fractions without fiscal rounding",
"profit_kind": "ordinary distributions art64(1–2)",
"eligibility": "same-country seat/effective management; payer subject to IRPC and nonexempt; nonapplication of40(1) documented, including2009 version",
"nominal_credit": "60 percent of documented IRPC corresponding to included distributed profits; no assumed rate on net dividend",
"gross_up": "expected nominal60 percent reconciled with53(1)a amount already included in current L6; does not overwrite or recalculate source base",
"proportional_ceiling": "case-specific documented input tied to current assessment; not automatically derived",
"prior_use": "actual documented economic credit use, distinct from simulation history and prior source-tax attributions",
"order": [
"economic credit up to collecta",
"international credit current/prior according to existing explicit selection",
"PEC current/prior according to existing explicit selection",
"own withholdings and PPC"
],
"refund": "no economic-credit refund or carry created; PPC can create simulated recoverable balance"
},
"carry": {
"year": "2026",
"subject": "same subject, resident general",
"period": "annual ordinary origins; calendar-year current close",
"currency": "documented MZN; exact foreign-credit fractions supported",
"international": "eligible origin credit minus origin deduction and documented actual later uses; five subsequent exercises, art65(3)",
"pec": "actual PEC eligible origin minus origin deduction and actual later uses; three subsequent exercises, art66(1–2)",
"allocation": "explicit documented selection between current and prior exercises, confirmed against current assessment; no presumed FIFO or automatic reduction",
"expiry": "ordinary window ended excludes current deduction but keeps source and arithmetic historical remainder",
"origin_rules": "origin assessment, inclusion/limits/insufficient collection and applicable period documented; exceptional/transitional rules outside scope"
},
"grouped_example": "1408-12economic-8currentInternational-50priorInternational-200currentPEC-100priorPEC-500PPC=538MZN payable simulated",
"same_parcel_nonduplication": {
"stable_identity": "issuer/document/parcel; distribution identity also independent of source-tax document,date and row id",
"economic_vs_international": "same physical tax parcel cannot fund both credit natures",
"same_paper_different_tax": "supported distinct parcels can coexist; old proof without a parcel overlaps the whole paper until reconciled",
"capacity": "same proof parcel amounts and prior attributions must agree and total allocation remains within available amount across snapshot contexts",
"L5": "existing withholding source/allocation checks preserved; parcel relabelling cannot turn repeated L5 use into new tax",
"partial_information": "saved and recovered as indeterminate, never reset or silently assumed absent",
"global_official_account_reconciliation": false
}
},
"compatibility": {
"main_normal_fast_forward": true,
"force_used": false,
"runtime_files_identical_to_accepted_QA": true,
"runtime_delta": [
{
"file": "resources/js/components/fiscal-proof-parcel.tsx",
"before_sha256": null,
"after_sha256": "9712108707e20c60ed625b296aa8cec92a6ce1b7f6af5c51355d52b6b08a4f7a"
},
{
"file": "resources/js/components/simulation-irpc-annual.tsx",
"before_sha256": "307725306df321fc89caf3d1a9efcf7463bb93d9d515d44347f8e14d4fd3136b",
"after_sha256": "75176ae721b88f2686987be5b499bf8909fc1d958a497bfdffde8ae22fca9586"
},
{
"file": "resources/js/components/simulation-irpc-carry.tsx",
"before_sha256": null,
"after_sha256": "020e2c26643b8b0dcf31d673db55217a7285b2187bdb8abf020bdfc6cc78e868"
},
{
"file": "resources/js/components/simulation-irpc-economic.tsx",
"before_sha256": null,
"after_sha256": "57a019d4359f0ee119d9d52202104ca846518b1bfba2bfb8fddb769c168ecd44"
},
{
"file": "resources/js/components/simulation-irpc-international.tsx",
"before_sha256": "6a9f796cc1e678823ed1dc14fbc28ca0e270752b2650518de239424dc75d167c",
"after_sha256": "64b6077bfb673b918476f923a045d39cfde73c07aca2ae066772a24bef9a396d"
},
{
"file": "resources/js/components/simulation-irpc-pec.tsx",
"before_sha256": "c3f0ea9ff9389cf856ecda3894c7a1486f44193eb893c341ef10c67f888a2fc6",
"after_sha256": "d0bba7015521d9d143c819e4203e03cf2f6d076093f5cd29deb96c3a11fc6aa1"
},
{
"file": "resources/js/lib/fiscal-proof-parcel.ts",
"before_sha256": null,
"after_sha256": "9eb500a7be2e05f39203c5cebf86cd3c64bbace7a615b9b62161f34dbe4a63da"
},
{
"file": "resources/js/lib/irpc-annual-settlement.ts",
"before_sha256": "47d4167d0f80c649e6d89a586e0d206d2d2a12b8553a7e98be362ea56203a540",
"after_sha256": "ac2896dca3002b27bf5f6bfd2e670295dcfaa3dc24f77b8e52469ed551cb1877"
},
{
"file": "resources/js/lib/irpc-credit-carry.ts",
"before_sha256": null,
"after_sha256": "5e88833842304f8e8e580916e2be657c33ad1fc53b7d544fa453b51ea27004e1"
},
{
"file": "resources/js/lib/irpc-economic-credit.ts",
"before_sha256": null,
"after_sha256": "fa19b289cba504d3636d76b3232694327e63674c907305425c2043d847046af1"
},
{
"file": "resources/js/lib/irpc-international-credit.ts",
"before_sha256": "40b46fbaaff6071ce6a35fd82de586158bf1f58fae8f46bcf6e4ddbbf84287f1",
"after_sha256": "4fc68f1fbe0cb82ca01a3c30dcb505adb60eced1de92213260b9a5ea1711fe7b"
},
{
"file": "resources/js/lib/irpc-pec.ts",
"before_sha256": "eb40b0601b6a1a69a6e81ad210589cc8744d74c6ef65e12132de13a5fcd6a90e",
"after_sha256": "9715ba106fd44b9ef16a55f2e85c2169ad09413a75167990e78ee644556fa381"
}
],
"source_files_before": 1005,
"source_files_after": 1011,
"all_other_compared_sources_preserved": true,
"schema_configuration_routes_permissions_preserved": true,
"previous_accepted_receipts_and_frozen_history_preserved": true
},
"accepted_QA_reused": {
"economic_new_frontend_tests": 20,
"previous_affected_tests": 65,
"frontend_pass": 85,
"frontend_fail": 0,
"API_tests": 1,
"API_assertions": 210,
"API_cases": 11,
"database": "proactive_investment_20261027_test",
"loopback_port": 55441,
"API_transactions_rolled_back": true,
"recovered_cases_recalculated_with_HTML_and_dossier": 11,
"frozen_histories_preserved": true,
"typescript": "passed",
"build": "isolated QA, subprocess exit0, final component hashes recorded",
"PHP_formatting": "pint passed",
"new_browser_manual_proof": false,
"team_usability_evaluation": "unchanged; awaiting team feedback"
},
"backup": {
"stage": "/var/backups/investmoz-irpc-l8-grouped-20261028/backup",
"created_at": "2026-10-28T12:38:25Z",
"target": {
"database": "teste_investidor",
"port": 5432
},
"tables": 174,
"files_verified": 369,
"dump_sha256": "007cd1851d5bd51a54265ab99a342d6a312de06ef642fc42b38b7a5e771d4d9a",
"files_sha256": "cd81cc9421e1d324648c706d8e56cbb6ad8766eb13e9a1a9cfda87814388b51f",
"restore_verified": false
},
"restore": {
"restore_verified": true,
"tables_verified": 174,
"container_network": "none",
"database": "irpc_grouped_restore_20261028",
"port": 55441,
"source_dump_sha256": "007cd1851d5bd51a54265ab99a342d6a312de06ef642fc42b38b7a5e771d4d9a",
"active_database_writes": 0
},
"capacity_before": {
"checked_at_UTC": "2026-10-28T12:38:00.155432+00:00",
"installed": {
"status": "installed",
"commit": "838ad941a24ae76ec4bf91ccc3f92012668fe8cf",
"release": "/var/www/investmoz-homologacao/releases/838ad941a24ae76ec4bf91ccc3f92012668fe8cf-ca7817df",
"previous_release": "/var/www/investmoz-homologacao/releases/e182d1d79dc945f35d2079c6b8ca2ac93048cec3-e2a185b3",
"database_migrations": 0,
"content_imports": 0
},
"current_link": "/var/www/investmoz-homologacao/releases/838ad941a24ae76ec4bf91ccc3f92012668fe8cf-ca7817df",
"release_revision": {
"commit": "838ad941a24ae76ec4bf91ccc3f92012668fe8cf",
"branch": "main",
"built_at": "2026-10-27T13:20:18.055286+00:00",
"manifest_sha256": "b873c14f3e0e43435fa8f67fa9a65ff8978123cd8792c5f7c2e0cf6f8f84a3b2"
},
"service": "MainPID=0\nExecMainStatus=0\nActiveState=inactive\nSubState=dead\n",
"volumes": [
{
"path": "/var/www/investmoz-homologacao/releases",
"mount": "/dev/md2 / ext4",
"device": 2306,
"available_bytes": 88808570880,
"available_inodes": 23523855,
"total_inodes": 29089792
},
{
"path": "/var/lib/investmoz-deploy",
"mount": "/dev/md2 / ext4",
"device": 2306,
"available_bytes": 88808570880,
"available_inodes": 23523855,
"total_inodes": 29089792
},
{
"path": "/var/backups",
"mount": "/dev/md2 / ext4",
"device": 2306,
"available_bytes": 88808570880,
"available_inodes": 23523855,
"total_inodes": 29089792
},
{
"path": "/tmp",
"mount": "/dev/md2 / ext4",
"device": 2306,
"available_bytes": 88808570880,
"available_inodes": 23523855,
"total_inodes": 29089792
},
{
"path": "/var/lib/docker",
"mount": "/dev/md2 / ext4",
"device": 2306,
"available_bytes": 88808570880,
"available_inodes": 23523855,
"total_inodes": 29089792
}
],
"free_bytes": 88808570880,
"existing_pipeline_minimum_bytes": 5368709120,
"observed_previous_backup_bytes": 175921269,
"same_partition_release_and_backup": true,
"space_guard_satisfied": true,
"current_release_entry_reference": 31327,
"inodes_available_vs_reference": true,
"inode_note": "Observed current release footprint for scale;no new arbitrary inode threshold. Capacity rechecked after fresh backup.",
"pipeline_sha256": "adec1c17654f3a8658b83b134f1e75f95391b235738552721906c3236e388604",
"active_writes": 0
},
"capacity_after_backup": {
"at": "2026-10-28T12:40:09.841070+00:00",
"baseline": "838ad941a24ae76ec4bf91ccc3f92012668fe8cf",
"capacity_after_backup_satisfied": true,
"volumes": [
{
"path": "/var/www/investmoz-homologacao/releases",
"free_bytes": 88629272576,
"free_inodes": 23523836
},
{
"path": "/var/lib/investmoz-deploy",
"free_bytes": 88629272576,
"free_inodes": 23523836
},
{
"path": "/var/backups",
"free_bytes": 88629272576,
"free_inodes": 23523836
},
{
"path": "/tmp",
"free_bytes": 88629272576,
"free_inodes": 23523836
},
{
"path": "/var/lib/docker",
"free_bytes": 88629272576,
"free_inodes": 23523836
}
],
"backup_age_seconds": 104.841034,
"backup_dump_sha256": "007cd1851d5bd51a54265ab99a342d6a312de06ef642fc42b38b7a5e771d4d9a",
"restore_verified": true,
"tables_verified": 174,
"files_verified": 369,
"backup_paths": {
"dump": "/var/backups/investmoz-irpc-l8-grouped-20261028/backup/database.dump",
"files": "/var/backups/investmoz-irpc-l8-grouped-20261028/backup/files-before.tar.gz"
},
"active_writes": 0
},
"schema_permissions": {
"schema_sha256": "5045b3e51d2185377aa3d9ac7fa07a44fad3ec620cdfa83ffe31c8884ee1601d",
"roles_grants_sha256": "5f0c554373e879fa9db81c3e746886a40a3c47875e6f41c61cfc0b3aee2dfd2b",
"filesystem_permissions": {
".env": {
"mode": 416,
"uid": 1001,
"gid": 33
},
"storage": {
"mode": 1533,
"uid": 1001,
"gid": 33
},
"storage/app": {
"mode": 1533,
"uid": 1001,
"gid": 33
},
"bootstrap/cache": {
"mode": 1528,
"uid": 1001,
"gid": 33
}
},
"comparison_identity": "postgres;catalogue read only;no passwords collected",
"unchanged": true
},
"preservation": {
"checked_at": "2026-10-28T12:47:37.401210+00:00",
"installed": "569a1cd750f3d2a0b87f130e992e73e070bbd1ab",
"business_tables_unchanged": 172,
"total_tables": 174,
"operational_tables_to_reconcile": {
"cache": {
"before": {
"rows": 110,
"checksum": "59099e8b28be3b1cd3b30a0be1b22519"
},
"after": {
"rows": 110,
"checksum": "832a86e7c4ccd6c9b5d725a45a63f2cb"
}
},
"sessions": {
"before": {
"rows": 2,
"checksum": "09d77c0790973a0ed80f9dbb177f186c"
},
"after": {
"rows": 4,
"checksum": "570c460243c35d5c20b2e700077c15b3"
}
}
},
"persistent_files_unchanged": 369,
"original_configuration_preserved": true,
"synthetic_QA_storage_not_served": true,
"QA_storage_saved_outside_active": "/var/lib/investmoz-deploy/qa-runtime/569a1cd750f3d2a0b87f130e992e73e070bbd1ab-53a57d6f",
"fixture_or_content_imports": 0,
"migrations": 0,
"comparison_identity": "postgres;UTC;consistent before snapshot and after read-only transaction",
"active_database_writes": 0
},
"operational_delta": {
"status": "operational_delta_reconciled",
"comparison_identity": "postgres before/after;isolated restored baseline;no RLS visibility inference",
"cache": "queue:restart;requestthrottle;identical home-sector cached value with refreshed expiry(HomeController remember10min);no deletedcache",
"sessions": "anonymous sessions from delivery user-agent or exactUA/time correlated with nginx public request;deleted sessions individually expired beyond configured lifetime,normal database session garbage collection(config/session lottery2/100)",
"delta": {
"cache": {
"before_rows": 110,
"after_rows": 110,
"changes": [
{
"key_sha256": "7f7dd83f47f5bf404d55e6e9f1367948721579970b195680645e356031a070ff",
"kind": "updated",
"fields": [
"value",
"expiration"
],
"key_pattern": "investemoz-cache-illuminate:queue:restart",
"is_queue_restart_key": true,
"expiration_unchanged": false,
"throttle_timer_pair": false,
"same_value_home_cache_expiry_refresh": false
}
]
},
"sessions": {
"before_rows": 2,
"after_rows": 4,
"changes": [
{
"key_sha256": "61ee61858f50dc6bb6b3c42a15ea2a158e29a8de51071570a48e245072f35647",
"kind": "added",
"fields": [
"id",
"ip_address",
"user_agent",
"payload",
"last_activity"
],
"anonymous_user": true,
"delivery_user_agent": true,
"expired_before_comparison": false,
"session_lifetime_minutes": 120,
"anonymous_public_request_logged": true
},
{
"key_sha256": "93d2f8d1f352499a4b04fe6ffe15ecd52738871794282140a78bfef2ad6ba80b",
"kind": "added",
"fields": [
"id",
"ip_address",
"user_agent",
"payload",
"last_activity"
],
"anonymous_user": true,
"delivery_user_agent": true,
"expired_before_comparison": false,
"session_lifetime_minutes": 120,
"anonymous_public_request_logged": true
}
]
}
},
"business_tables_to_confirm_separately": 172,
"active_data_writes_by_comparison": 0,
"restore_network": "none"
},
"installer": {
"service": "MainPID=0\nExecMainStatus=0\nActiveState=inactive\nSubState=dead\n",
"installed": {
"status": "installed",
"commit": "569a1cd750f3d2a0b87f130e992e73e070bbd1ab",
"release": "/var/www/investmoz-homologacao/releases/569a1cd750f3d2a0b87f130e992e73e070bbd1ab-53a57d6f",
"previous_release": "/var/www/investmoz-homologacao/releases/838ad941a24ae76ec4bf91ccc3f92012668fe8cf-ca7817df",
"database_migrations": 0,
"content_imports": 0
},
"latest_report": {
"status": "installed",
"commit": "569a1cd750f3d2a0b87f130e992e73e070bbd1ab",
"release": "/var/www/investmoz-homologacao/releases/569a1cd750f3d2a0b87f130e992e73e070bbd1ab-53a57d6f",
"previous_release": "/var/www/investmoz-homologacao/releases/838ad941a24ae76ec4bf91ccc3f92012668fe8cf-ca7817df",
"database_migrations": 0,
"content_imports": 0,
"requested_commits": [
"569a1cd750f3d2a0b87f130e992e73e070bbd1ab"
],
"finished_at": "2026-10-28T12:44:28.780095+00:00"
},
"log_file": "1793191252185211711.log",
"mandatory_summaries": [
"OK (1 test, 3106 assertions)",
"✓ built in 30.82s",
"OK (59 tests, 317 assertions)",
"# tests 1146",
"# pass 1146",
"# fail 0"
]
},
"public_delta": {
"phase": "after",
"revision": {
"commit": "569a1cd750f3d2a0b87f130e992e73e070bbd1ab",
"branch": "main",
"built_at": "2026-10-28T12:44:25.642859+00:00",
"manifest_sha256": "9cb557f62c0dbe49ec87d7ccb532f6c7dc29fc980658ffc51ff024755c26f186"
},
"manifest_verified": true,
"simulator_HTTP": 200,
"simulator_component": "portal/services",
"active_QA_records_created": false,
"compiled_markers": {
"IRPC-credit-carry/1": [
"assets/project-dossier-BUI-Tqnq.js"
],
"IRPC-economic-credit/1": [
"assets/project-dossier-BUI-Tqnq.js"
],
"Preparar saldos anteriores": [
"assets/services-DOMV1YET.js"
],
"Preparar crédito económico": [
"assets/services-DOMV1YET.js"
],
"Crédito económico — antes do internacional": [
"assets/project-dossier-BUI-Tqnq.js"
],
"Confirmar afectação à colecta seleccionada": [
"assets/services-DOMV1YET.js"
],
"IRPC-international-credit/1": [
"assets/project-dossier-BUI-Tqnq.js"
],
"IRPC-PEC/1": [
"assets/project-dossier-BUI-Tqnq.js"
]
}
},
"remote_backup": "/var/backups/investmoz-irpc-l8-grouped-20261028/backup",
"remote_receipt": "/var/backups/investmoz-irpc-l8-grouped-20261028/installed-receipt.json",
"remaining": {
"economic": [
"automatic inclusion/correction of distributed profits and53 addition in L6",
"automatic proportional ceiling derivation and complete40(1) exclusion treatment at base stage",
"liquidation64(3),associations64(4),special-period and other-currency cases"
],
"other_L8": [
"specific benefit credits and their qualification,cumulation and limits",
"automatic international national-fraction and case-specific treaty matching",
"PPC/PEC obligation/calendar,interest/penalties and payment guides with applicable edition",
"autonomous taxation,special periods,other currencies and M20/M22 transport/submission",
"exceptional/transitional interyear cases beyond accepted ordinary carry scope"
]
},
"L8_complete": false,
"limits": [
"No global annual IRPC closure claimed",
"No official tax-account balance consumed,submitted or refunded",
"Economic credit limited to ordinary documented current-year case;source inclusion/gross-up and proportional quota not automatically derived",
"Carry retains its documented ordinary-year scope;no exceptional/transitional rule inferred",
"No new manual team usability acceptance claimed",
"Songo/Gurue remain private;SGF TEMPO untouched;no active QA fixture/content imports"
],
"local_evidence_directory": "outputs/irpc-l8-grouped-delivery-20261028",
"local_artifacts": [
{
"file": "authenticate.ps1",
"sha256": "80109eafe4fe5c065debcb3ebf626638904f09c04450565b0be940a6372ddc1d",
"bytes": 214
},
{
"file": "backup.py",
"sha256": "f1e02236d97caaed537249dfc8c7a002c18bd8cc067af5bd11f94cc4dc1ad027",
"bytes": 5448
},
{
"file": "capacity-after.py",
"sha256": "9f1e2df54963469c670098b77392020f2719bb3f795cd04e5ecdad6f1fad1b84",
"bytes": 1621
},
{
"file": "compatibility-and-preservation-plan.json",
"sha256": "00e4f0b33e5ea46007c74a2d8a7976fec363baf5cace55063b764fa3fceb822a",
"bytes": 1160
},
{
"file": "git-main-delivery.json",
"sha256": "28c6503ad9229afdefd7f3466e7ab235417c1f2f7a7372ce269951db0657ef6f",
"bytes": 242
},
{
"file": "group-backup-20261028-response.json",
"sha256": "9860fd3a9f4c1abb5e9298965a604cfa5efc0198ee8069aaf7ed9844b2bf00d6",
"bytes": 606
},
{
"file": "group-backup-20261028.json",
"sha256": "f1e0096263b3b8a83401c3a83035e67e0c8f50e647030812811fe1b1700c6dea",
"bytes": 437
},
{
"file": "group-capacity-after-20261028-response.json",
"sha256": "ce5b65cc2e31b9f938dac177d0420baaca6ad2df95e417c43e6fd79b474bc2d5",
"bytes": 1394
},
{
"file": "group-capacity-after-20261028.json",
"sha256": "0d63c97cecd57683cd4046f3d327d489a966b67508e5f8c54c5829da85e8e869",
"bytes": 1200
},
{
"file": "group-operational-20261028-response.json",
"sha256": "d7ca760c85a2deb24084167701aafb389bcd0a807c95bce5a6a9cddd4f6480ff",
"bytes": 2483
},
{
"file": "group-operational-20261028.json",
"sha256": "dd0476edc7212ca0cc25646441c7f73aa5e406201563070e9adb3930751d21b6",
"bytes": 2434
},
{
"file": "group-preflight-20261028-response.json",
"sha256": "b98a6d1970dc4f681e99c8500e863b24dc30bafe3d536d256183924911c2da6c",
"bytes": 3029
},
{
"file": "group-preflight-20261028.json",
"sha256": "5f70b0af720beb1199c09cb21118a6d13f47e07ab55f4eeef3ae969ad1fcac14",
"bytes": 2595
},
{
"file": "group-preserve-20261028-response.json",
"sha256": "9f96f52a494c5d29702cc9abd1ace94d314a8cda54281ec6ac1b810efc6b8c50",
"bytes": 1324
},
{
"file": "group-preserve-20261028.json",
"sha256": "f655c23059156461f49200a419fafffdf0cecab62df99b5995bcab59eaf7e7de",
"bytes": 1137
},
{
"file": "group-progress-a1-20261028-response.json",
"sha256": "b968fa1a79f043c1b2f9440e7e1828eea466c7b77e45c8f66dec47cc59202305",
"bytes": 2715
},
{
"file": "group-progress-a1-20261028.json",
"sha256": "8f3cd7de2b9c10ea72a04783f2740301a96f641f07189515c386908aad7bf139",
"bytes": 2294
},
{
"file": "group-progress-a2-20261028-response.json",
"sha256": "05432b187845dd4ea7ba3a966fea54023877c7bc0cb1c5721539f9591b8c174d",
"bytes": 1567
},
{
"file": "group-progress-a2-20261028.json",
"sha256": "19ee1ec59ed4d91487a765c079cb042d84e70d8c6f575385425132832f4a8f88",
"bytes": 1247
},
{
"file": "group-restore-20261028-response.json",
"sha256": "4ce2051902d1c00d04bef1f34fd88671c0be6b5b65228d4c13271bb541453a0f",
"bytes": 427
},
{
"file": "group-restore-20261028.json",
"sha256": "aa3a90c80a037d4977988d7d9935a52f226b25ea414e54012446e528b69769c2",
"bytes": 282
},
{
"file": "group-schema-after-20261028-response.json",
"sha256": "740062552f5a4747fc0151ab32956774f8cb8cef6be6fef116a9c8b0505db67c",
"bytes": 772
},
{
"file": "group-schema-after-20261028.json",
"sha256": "265a0f0bb3b8e8232c8a8f2f72802664091ff8f9127e7a3868694f1373fc7b51",
"bytes": 668
},
{
"file": "group-schema-before-20261028-response.json",
"sha256": "ba122cba99109784b22699391efc6359c53d17e44dbe4bb14184389589cb0d80",
"bytes": 745
},
{
"file": "group-schema-before-20261028.json",
"sha256": "8c171cfaae6feef78fbd43f8046ffb62c1daad9a258d95e6df43d20ba4b335c4",
"bytes": 646
},
{
"file": "group-source-after-20261028-response.json",
"sha256": "be446ca8152ea5d940a8650d38fc8d141ee94cebafab8406d7c33b9a97cb6b4f",
"bytes": 284
},
{
"file": "group-source-after-20261028.json",
"sha256": "f9a457698c36c0e433ff5c10956cef3f4548534ae0a9d8718a03af2f3101360b",
"bytes": 165
},
{
"file": "group-source-before-20261028-response.json",
"sha256": "e2f155845283962a0729a295856d0ba0b631530faa40074c317a57b90836e1b5",
"bytes": 285
},
{
"file": "group-source-before-20261028.json",
"sha256": "3383b6c77419378eac7fb078dad3e57989a8def0965c29477f0a827e1972a67c",
"bytes": 166
},
{
"file": "group-status-a1-20261028-response.json",
"sha256": "860ba2f40d709ff491113c54cd253926adb0b21e22179b02e978a388ef6e2bc9",
"bytes": 1809
},
{
"file": "group-status-a1-20261028.json",
"sha256": "38c718738dad722e06069993894ad9eba2f61b946d6e2042cfbc33e6d1c6aa10",
"bytes": 1442
},
{
"file": "group-status-a2-20261028-response.json",
"sha256": "2f6815214d9b0240cc298f78b7838fd2b7061333e4cfda1ecab2779a688be130",
"bytes": 2117
},
{
"file": "group-status-a2-20261028.json",
"sha256": "328e6fc9e8ce7f488e83c9c7154472f76cacf08381ad48ea38af8c6139317b7f",
"bytes": 1706
},
{
"file": "group-status-a3-20261028-response.json",
"sha256": "a9af2b8c3c53341a0dbc030ceaa984818af1710b9be1f13437026093edc9b9ea",
"bytes": 2117
},
{
"file": "group-status-a3-20261028.json",
"sha256": "e79288f392bd00c31059031c653ba703a4546d853945f0859f426bbccb8f381d",
"bytes": 1706
},
{
"file": "group-status-final-20261028-response.json",
"sha256": "1e54588459017ee079eae4759d07cf4629287f053df50679fcf4026052696a9c",
"bytes": 2220
},
{
"file": "group-status-final-20261028.json",
"sha256": "dca34a8237f9d019d3f36976668dd8b4a86e492e3d29c3eac8294c0d5294edee",
"bytes": 1795
},
{
"file": "pipeline-progress.py",
"sha256": "848be5b9c462802395e2944fb30487407d86668ff27640125885994acdd4c241",
"bytes": 1006
},
{
"file": "preflight.py",
"sha256": "92113ce782cc6cce88e3146dcc34363ad21d888f83b26b4e5a0d26fbf60e640f",
"bytes": 2338
},
{
"file": "preparation.json",
"sha256": "47007bfe846aa9e22dc723b320e4a580396e413a75bb846c44c9cfda60ad84eb",
"bytes": 251405
},
{
"file": "preserve-data.py",
"sha256": "e56d27b726c5e710b9bd5721d729cc019d57011b2ea1e2699fee6685f1f1bfbd",
"bytes": 2304
},
{
"file": "public-after.json",
"sha256": "db39a1bd518eddcc4b23ee1fa28ae7a06d51e289d549790cfb64b04100976b6b",
"bytes": 1149
},
{
"file": "public-before.json",
"sha256": "05a748e8a0f08ba438026f4e53c2d8260586c93061748ad3428188afe86e9b2a",
"bytes": 414
},
{
"file": "reconcile-operational-delta.py",
"sha256": "1ad5c3663364e59d54bfaff2a0686b43fe7d658f5445076f670fb9aa69c1321c",
"bytes": 5336
},
{
"file": "remote_delivery_inspection.py",
"sha256": "7c95ba88a9d5a62a15ec2bf581fa62f5151e548014d106f081487889e56b2703",
"bytes": 1947
},
{
"file": "restore.py",
"sha256": "dcb4952f56d2524f36bc4b24164f8041f99de8e98d461bd40bafbb5102c28349",
"bytes": 2792
},
{
"file": "rpc.py",
"sha256": "9c9ebe126d345d20ab46a07469f41bac3e76dbfbcdb64ac32606796c9c0f9520",
"bytes": 1650
},
{
"file": "schema-permissions-after.py",
"sha256": "44fd24feb568ca5b9488c923fbd3967756c0fbb2e6fee4016f6c0272c536cac1",
"bytes": 1862
},
{
"file": "schema-permissions-before.py",
"sha256": "d17fbac06b88b189171da56ea2d4e501eae331a39bd78c14cbd3fc65d19e59c4",
"bytes": 1705
},
{
"file": "source-after-input.json",
"sha256": "3716126155fcff9b74fb34c408b57bc7b9482e62ed1b3f29dfd994d1c894f11a",
"bytes": 240716
},
{
"file": "source-before-input.json",
"sha256": "8ca115700b7df7db7b306d7a0ff1063a54716977465674a31d5d2cd588d8f2e2",
"bytes": 240717
},
{
"file": "source-check.py",
"sha256": "1cec620043b013e6b6f79b9f67e4e5588117d91ee7dc0c93592fc6b8d6d0557f",
"bytes": 676
},
{
"file": "ssh-session.py",
"sha256": "e81df6aae12e03b0faac33e03108ef6dcdc5c0d3598538c4db5bb4bb65e9f3f4",
"bytes": 3084
},
{
"file": "status.py",
"sha256": "41d3a13211c4d4725178477aa48e10f27fe313f41a2b33e555f7ae04a8a14bdd",
"bytes": 1204
},
{
"file": "store-receipt.py",
"sha256": "9c671b6019c7fd80df91c9af795b16a8a80c119a79877ad6cf57c8fea436ef9c",
"bytes": 864
},
{
"file": "update-existing-docs.py",
"sha256": "e088143d2e3e24390b36c5a08dd3312537b2b3f5778633c8086fcbdde00b2b60",
"bytes": 1478
},
{
"file": "verify-public.py",
"sha256": "f6b5ad42ead0f6a7f2ddcb6f16a648293ad5eba1001b591dc32f4ddfa4f68f00",
"bytes": 2107
}
]
}
@@ -0,0 +1,722 @@
{
"date": "2026-10-27",
"status": "installed_and_verified",
"served_commit": "838ad941a24ae76ec4bf91ccc3f92012668fe8cf",
"accepted_qa": "838ad941a24ae76ec4bf91ccc3f92012668fe8cf",
"previous_commit": "e182d1d79dc945f35d2079c6b8ca2ac93048cec3",
"sector_fix_preserved": "669cb8979b0c372659fc2ad3876aebc919d5df19",
"scope": {
"year": "2026",
"resident": "general",
"period": "calendar year",
"currency": "documented MZN",
"foreign_tax": "actual income tax paid; inclusion in taxable base documented",
"national_fraction": "documented exact input, not automatically derived",
"treaty": "case-specific applicability and ceiling documented, not inferred from country",
"order": [
"international credit limited to eligible available amount and collection",
"PEC limited to remaining collection",
"withholdings and PPC"
],
"known_absent_missing_distinct": true,
"proof_deduplication": "issuer/document across tax natures, dates and snapshot contexts; consolidate country-year quota",
"officialBalancesConsumed": false,
"carryCreated": false
},
"example": {
"foreign_tax_paid": "10 MZN",
"documented_national_limit": "8 MZN",
"documented_treaty_nonapplication": "synthetic only, not actual country entitlement",
"credit": "8 MZN",
"calculation": "1408 - 8 = 1400; - PEC200 = 1200; - PPC500 = 700 MZN simulated payable",
"above_eligibility_limit": "2 MZN, not a carry",
"insufficient_collection_example": "available2000, deducted1408, insufficient592; PEC200 not deducted; recoverable500 derives from PPC only"
},
"accepted_QA_reused": {
"frontend_new": 18,
"frontend_affected_annual_pec": 31,
"api_assertions": 171,
"recovered_HTML_dossier_cases": 7
},
"cases": [
{
"name": "payable",
"status": "payable",
"balance": {
"numerator": "700",
"denominator": "1"
},
"current": true,
"history_records": 0,
"apiRoundTrip": true,
"dossier": true
},
{
"name": "treaty",
"status": "payable",
"balance": {
"numerator": "702",
"denominator": "1"
},
"current": true,
"history_records": 1,
"apiRoundTrip": true,
"dossier": true
},
{
"name": "missing",
"status": "indeterminate",
"balance": null,
"current": true,
"history_records": 1,
"apiRoundTrip": true,
"dossier": true
},
{
"name": "limited-collecta",
"status": "recoverable",
"balance": {
"numerator": "-500",
"denominator": "1"
},
"current": true,
"history_records": 1,
"apiRoundTrip": true,
"dossier": true
},
{
"name": "duplicate",
"status": "indeterminate",
"balance": null,
"current": true,
"history_records": 1,
"apiRoundTrip": true,
"dossier": true
},
{
"name": "absent",
"status": "payable",
"balance": {
"numerator": "708",
"denominator": "1"
},
"current": true,
"history_records": 1,
"apiRoundTrip": true,
"dossier": true
},
{
"name": "prior-use",
"status": "payable",
"balance": {
"numerator": "703",
"denominator": "1"
},
"current": true,
"history_records": 1,
"apiRoundTrip": true,
"dossier": true
}
],
"compatibility": {
"fast_forward_over": "e182d1d79dc945f35d2079c6b8ca2ac93048cec3",
"runtime_files_byte_identical_to_accepted_QA": true,
"runtime_delta": [
{
"file": "resources/js/components/simulation-irpc-annual.tsx",
"before_sha256": "7f18abcaa1100251c5c2780fdfac32e21979d8e6ffed52f732e4a0d345ab4f40",
"after_sha256": "307725306df321fc89caf3d1a9efcf7463bb93d9d515d44347f8e14d4fd3136b"
},
{
"file": "resources/js/components/simulation-irpc-international.tsx",
"before_sha256": null,
"after_sha256": "6a9f796cc1e678823ed1dc14fbc28ca0e270752b2650518de239424dc75d167c"
},
{
"file": "resources/js/lib/country-iso-codes.ts",
"before_sha256": null,
"after_sha256": "1c4e2b6d67457ea2dba3dda28a9b6ce09242c36dfcf04855a8bc1f44506a9fac"
},
{
"file": "resources/js/lib/irpc-annual-settlement.ts",
"before_sha256": "6d80889677c1904b3236b5e43fa5a3dc28327745679392529dfb5fbf5a273f7d",
"after_sha256": "47d4167d0f80c649e6d89a586e0d206d2d2a12b8553a7e98be362ea56203a540"
},
{
"file": "resources/js/lib/irpc-international-credit.ts",
"before_sha256": null,
"after_sha256": "40b46fbaaff6071ce6a35fd82de586158bf1f58fae8f46bcf6e4ddbbf84287f1"
}
],
"all_other_compared_sources_unchanged": true,
"schema_config_routes_permissions_unchanged": true,
"legacy_annual_and_PEC_history_preserved": true,
"no_new_manual_retest_of_independent_accepted_proofs": true
},
"source_files_verified": {
"before": 1002,
"after": 1005
},
"backup": {
"stage": "/var/backups/investmoz-irpc-l8-international-20261027/backup",
"created_at": "2026-10-27T13:15:39Z",
"target": {
"database": "teste_investidor",
"port": 5432
},
"tables": 174,
"files_verified": 369,
"dump_sha256": "b1e9740653a8664c23268e228efd3ed6a0514bf3e8786dd5adf43342cdb475e1",
"files_sha256": "9d3a790f9c7f4a35ebf660d304e92d69f86557d20d2f8be1e996c828711b19ac",
"restore_verified": false
},
"restore": {
"restore_verified": true,
"tables_verified": 174,
"container_network": "none",
"database": "irpc_international_restore_20261027",
"port": 55441,
"source_dump_sha256": "b1e9740653a8664c23268e228efd3ed6a0514bf3e8786dd5adf43342cdb475e1",
"active_database_writes": 0
},
"capacity_before": {
"checked_at_UTC": "2026-10-27T13:15:02.501911+00:00",
"installed": {
"status": "installed",
"commit": "e182d1d79dc945f35d2079c6b8ca2ac93048cec3",
"release": "/var/www/investmoz-homologacao/releases/e182d1d79dc945f35d2079c6b8ca2ac93048cec3-e2a185b3",
"previous_release": "/var/www/investmoz-homologacao/releases/669cb8979b0c372659fc2ad3876aebc919d5df19-6a2f00c6",
"database_migrations": 0,
"content_imports": 0
},
"current_link": "/var/www/investmoz-homologacao/releases/e182d1d79dc945f35d2079c6b8ca2ac93048cec3-e2a185b3",
"release_revision": {
"commit": "e182d1d79dc945f35d2079c6b8ca2ac93048cec3",
"branch": "main",
"built_at": "2026-10-27T12:10:18.923517+00:00",
"manifest_sha256": "47bbdd09864d0587133deec179781018e439f9c83b7b328c9dcd52482eaf6d31"
},
"service": "MainPID=0\nExecMainStatus=0\nActiveState=inactive\nSubState=dead\n",
"volumes": [
{
"path": "/var/www/investmoz-homologacao/releases",
"mount": "/dev/md2 / ext4",
"device": 2306,
"available_bytes": 92293206016,
"available_inodes": 23699087,
"total_inodes": 29089792
},
{
"path": "/var/lib/investmoz-deploy",
"mount": "/dev/md2 / ext4",
"device": 2306,
"available_bytes": 92293206016,
"available_inodes": 23699087,
"total_inodes": 29089792
},
{
"path": "/var/backups",
"mount": "/dev/md2 / ext4",
"device": 2306,
"available_bytes": 92293206016,
"available_inodes": 23699087,
"total_inodes": 29089792
},
{
"path": "/tmp",
"mount": "/dev/md2 / ext4",
"device": 2306,
"available_bytes": 92293206016,
"available_inodes": 23699087,
"total_inodes": 29089792
},
{
"path": "/var/lib/docker",
"mount": "/dev/md2 / ext4",
"device": 2306,
"available_bytes": 92293206016,
"available_inodes": 23699087,
"total_inodes": 29089792
}
],
"free_bytes": 92293206016,
"existing_pipeline_minimum_bytes": 5368709120,
"observed_previous_backup_bytes": 175920446,
"same_partition_release_and_backup": true,
"space_guard_satisfied": true,
"current_release_entry_reference": 31315,
"inodes_available_vs_reference": true,
"inode_note": "Observed current release footprint for scale;no new arbitrary inode threshold. Capacity rechecked after fresh backup.",
"pipeline_sha256": "adec1c17654f3a8658b83b134f1e75f95391b235738552721906c3236e388604",
"active_writes": 0
},
"capacity_after_backup": {
"at": "2026-10-27T13:16:13.360261+00:00",
"baseline": "e182d1d79dc945f35d2079c6b8ca2ac93048cec3",
"capacity_after_backup_satisfied": true,
"volumes": [
{
"path": "/var/www/investmoz-homologacao/releases",
"free_bytes": 92114915328,
"free_inodes": 23699075
},
{
"path": "/var/lib/investmoz-deploy",
"free_bytes": 92114915328,
"free_inodes": 23699075
},
{
"path": "/var/backups",
"free_bytes": 92114915328,
"free_inodes": 23699075
},
{
"path": "/tmp",
"free_bytes": 92114915328,
"free_inodes": 23699075
},
{
"path": "/var/lib/docker",
"free_bytes": 92114915328,
"free_inodes": 23699075
}
],
"backup_age_seconds": 34.36022,
"backup_dump_sha256": "b1e9740653a8664c23268e228efd3ed6a0514bf3e8786dd5adf43342cdb475e1",
"restore_verified": true,
"tables_verified": 174,
"files_verified": 369,
"backup_paths": {
"dump": "/var/backups/investmoz-irpc-l8-international-20261027/backup/database.dump",
"files": "/var/backups/investmoz-irpc-l8-international-20261027/backup/files-before.tar.gz"
},
"active_writes": 0
},
"schema_permissions": {
"schema_sha256": "5045b3e51d2185377aa3d9ac7fa07a44fad3ec620cdfa83ffe31c8884ee1601d",
"roles_grants_sha256": "1530c33cb016e67bfdc64891ddfce7f185b13b56b2cd87c012871a685e118109",
"filesystem_permissions": {
".env": {
"mode": 416,
"uid": 1001,
"gid": 33
},
"storage": {
"mode": 1533,
"uid": 1001,
"gid": 33
},
"storage/app": {
"mode": 1533,
"uid": 1001,
"gid": 33
},
"bootstrap/cache": {
"mode": 1528,
"uid": 1001,
"gid": 33
}
},
"comparison_identity": "postgres;catalogue read only;no passwords collected",
"unchanged": true
},
"preservation": {
"checked_at": "2026-10-27T13:21:25.836367+00:00",
"installed": "838ad941a24ae76ec4bf91ccc3f92012668fe8cf",
"business_tables_unchanged": 172,
"total_tables": 174,
"operational_tables_to_reconcile": {
"cache": {
"before": {
"rows": 108,
"checksum": "c5e94e4bb71bf085e36447c1da35696e"
},
"after": {
"rows": 108,
"checksum": "ddbdb9e11a50777bd84bc353d178608a"
}
},
"sessions": {
"before": {
"rows": 53,
"checksum": "fe52dca3e79f71d1f5a3bd474c7d72d1"
},
"after": {
"rows": 55,
"checksum": "359f4b80ea80b807a1f3a50687fe2309"
}
}
},
"persistent_files_unchanged": 369,
"original_configuration_preserved": true,
"synthetic_QA_storage_not_served": true,
"QA_storage_saved_outside_active": "/var/lib/investmoz-deploy/qa-runtime/838ad941a24ae76ec4bf91ccc3f92012668fe8cf-ca7817df",
"fixture_or_content_imports": 0,
"migrations": 0,
"comparison_identity": "postgres;UTC;consistent before snapshot and after read-only transaction",
"active_database_writes": 0
},
"operational_delta": {
"status": "operational_delta_reconciled",
"comparison_identity": "postgres before/after;isolated restored baseline;no RLS visibility inference",
"cache": "queue:restart;requestthrottle;identical home-sector cached value with refreshed expiry(HomeController remember10min);no deletedcache",
"sessions": "anonymous sessions from delivery user-agent or exactUA/time correlated with nginx public request;deleted sessions individually expired beyond configured lifetime,normal database session garbage collection(config/session lottery2/100)",
"delta": {
"cache": {
"before_rows": 108,
"after_rows": 108,
"changes": [
{
"key_sha256": "7f7dd83f47f5bf404d55e6e9f1367948721579970b195680645e356031a070ff",
"kind": "updated",
"fields": [
"value",
"expiration"
],
"key_pattern": "investemoz-cache-illuminate:queue:restart",
"is_queue_restart_key": true,
"expiration_unchanged": false,
"throttle_timer_pair": false,
"same_value_home_cache_expiry_refresh": false
}
]
},
"sessions": {
"before_rows": 53,
"after_rows": 55,
"changes": [
{
"key_sha256": "cc9234289e8c94733fb352f52407a2863d547165e1ee7f6eb4523c1ed7b33c1a",
"kind": "added",
"fields": [
"id",
"ip_address",
"user_agent",
"payload",
"last_activity"
],
"anonymous_user": true,
"delivery_user_agent": true,
"expired_before_comparison": false,
"session_lifetime_minutes": 120,
"anonymous_public_request_logged": true
},
{
"key_sha256": "dbf3b24ccc55e4bf0a14aad872309de7d890942acb4f68b0c1ec608ff5e49035",
"kind": "added",
"fields": [
"id",
"ip_address",
"user_agent",
"payload",
"last_activity"
],
"anonymous_user": true,
"delivery_user_agent": true,
"expired_before_comparison": false,
"session_lifetime_minutes": 120,
"anonymous_public_request_logged": true
}
]
}
},
"business_tables_to_confirm_separately": 172,
"active_data_writes_by_comparison": 0,
"restore_network": "none"
},
"installer": {
"service": "MainPID=0\nExecMainStatus=0\nActiveState=inactive\nSubState=dead\n",
"installed": {
"status": "installed",
"commit": "838ad941a24ae76ec4bf91ccc3f92012668fe8cf",
"release": "/var/www/investmoz-homologacao/releases/838ad941a24ae76ec4bf91ccc3f92012668fe8cf-ca7817df",
"previous_release": "/var/www/investmoz-homologacao/releases/e182d1d79dc945f35d2079c6b8ca2ac93048cec3-e2a185b3",
"database_migrations": 0,
"content_imports": 0
},
"latest_report": {
"status": "installed",
"commit": "838ad941a24ae76ec4bf91ccc3f92012668fe8cf",
"release": "/var/www/investmoz-homologacao/releases/838ad941a24ae76ec4bf91ccc3f92012668fe8cf-ca7817df",
"previous_release": "/var/www/investmoz-homologacao/releases/e182d1d79dc945f35d2079c6b8ca2ac93048cec3-e2a185b3",
"database_migrations": 0,
"content_imports": 0,
"requested_commits": [
"838ad941a24ae76ec4bf91ccc3f92012668fe8cf"
],
"finished_at": "2026-10-27T13:20:20.796156+00:00"
},
"log_file": "1793107006281021543.log",
"log_bytes": 313361,
"mandatory_summaries": [
"OK (1 test, 3106 assertions)",
"✓ built in 31.55s",
"OK (59 tests, 317 assertions)",
"# tests 1110",
"# pass 1110",
"# fail 0"
]
},
"public_delta": {
"phase": "after",
"revision": {
"commit": "838ad941a24ae76ec4bf91ccc3f92012668fe8cf",
"branch": "main",
"built_at": "2026-10-27T13:20:18.055286+00:00",
"manifest_sha256": "b873c14f3e0e43435fa8f67fa9a65ff8978123cd8792c5f7c2e0cf6f8f84a3b2"
},
"manifest_verified": true,
"simulator_HTTP": 200,
"simulator_component": "portal/services",
"active_QA_records_created": false,
"compiled_markers": {
"IRPC-international-credit/1": [
"assets/project-dossier-bSv3Ugr2.js"
],
"Preparar crédito internacional": [
"assets/services-YUy8XgPr.js"
],
"Vincular inclusão e limites ao país": [
"assets/services-YUy8XgPr.js"
],
"Crédito internacional — antes do PEC": [
"assets/project-dossier-bSv3Ugr2.js"
],
"Não determina a fracção nacional": [
"assets/project-dossier-bSv3Ugr2.js"
],
"IRPC-PEC/1": [
"assets/project-dossier-bSv3Ugr2.js"
]
}
},
"remote_backup": "/var/backups/investmoz-irpc-l8-international-20261027/backup",
"remote_receipt": "/var/backups/investmoz-irpc-l8-international-20261027/installed-receipt.json",
"limits": [
"L8 partial",
"no new PEC excess/carry scope",
"no automatic foreign exchange or official rounding rule",
"no official tax balance consumption, submission or refund execution",
"same-snapshot deduplication is not a global inter-dossier official ledger",
"synthetic QA examples do not assert any actual foreign treaty",
"L8 partial after this bounded delivery",
"Songo/Gurue remain private; no QA fixture or content import into active data"
],
"remaining_code": [
"automatic national fraction and case-specific treaty matching",
"economic double-tax and CBF benefit credits with own rules",
"international carry/expiry65(3), separate from PEC66 carry/expiry",
"PPC/PEC obligation/calendar; autonomous tax, special periods, other currencies and M20/M22 transport/submission"
],
"document_dependencies": [
{
"missing": "income inclusion and national fraction",
"example": "tax10 but no included income/base correspondence",
"resume_when": "income/base and documented fraction matched"
},
{
"missing": "treaty article/period/ceiling",
"example": "country selected but no applicable article or eligible tax",
"resume_when": "case-specific article, effective period and eligible ceiling identified"
},
{
"missing": "proof/titular/previous actual use/temporal link",
"example": "payment2027 selected for2026 without correspondence",
"resume_when": "actual payment and explicit2026 link supported, prior use reconciled"
}
],
"local_startup_fix": {
"cause": "Local inspect.py shadowed Python stdlib before SSH connection",
"renamed_to": "remote_delivery_inspection.py",
"inspect_module": "C:/laragon/bin/python/python-3.10/lib/inspect.py",
"python": "C:/laragon/bin/python/python-3.10/python.exe",
"paramiko": "5.1.0",
"remote_linux_geteuid_ssh_guard_preserved": true,
"credentials_changed": false,
"server_failure_inferred": false
},
"local_evidence_directory": "outputs/irpc-l8-international-delivery-20261027",
"local_artifacts": [
{
"file": "authenticate.ps1",
"bytes": 237,
"sha256": "89492b8a16b8d5ec8dbe1d6a1a44af0bfbf8e99ccef2abfc5568a831623c05ba"
},
{
"file": "backup.py",
"bytes": 5460,
"sha256": "ef5406ffa735d3d563e9b4da0e8ac067c6978710df455d24e2c8e2cbc305fa49"
},
{
"file": "capacity-after.py",
"bytes": 1621,
"sha256": "9f1e2df54963469c670098b77392020f2719bb3f795cd04e5ecdad6f1fad1b84"
},
{
"file": "diagnose-session-delta.py",
"bytes": 7395,
"sha256": "312e2446a489a99bf9060797e785de4d16d28866b6f9a05a9d99fb60e3a9c838"
},
{
"file": "int-backup-20261027.json",
"bytes": 443,
"sha256": "5314107e4438ea22bc6c3261dda9b893faac3cf131c596f30dc6517bc35cd30f"
},
{
"file": "int-capacity-after-20261027.json",
"bytes": 1210,
"sha256": "72934b91dcc7ecf5370d7a667ef26ecf8a78a0ceeeeeb71a3062abab33925767"
},
{
"file": "int-operational-20261027.json",
"bytes": 2436,
"sha256": "f8936062bdf569740ea4bafc618c88c08ef8a1def30dcf1240c6afa3113ec1c3"
},
{
"file": "int-preflight-20261027.json",
"bytes": 2595,
"sha256": "cd339ef9913f8d89644e45ee5d337003cecb758d827764a79f4cfacc1b350dca"
},
{
"file": "int-preserve-20261027.json",
"bytes": 1139,
"sha256": "110ec10adf5d2a4de426dd3e6f947026dbff6ef828a56c0353b1e7a0426e2c78"
},
{
"file": "int-read-20261027.json",
"bytes": 2919,
"sha256": "12ba15343b9485e08f654a7abb0305e4f10f396b1d20f7aaca844e9ea5317fdc"
},
{
"file": "int-restore-20261027.json",
"bytes": 288,
"sha256": "7d9c3fb60ea87407441db867edf8e872e58aeb9aaf209c1b89830b0e0eedea59"
},
{
"file": "int-schema-after-20261027.json",
"bytes": 668,
"sha256": "e1767424312345a28a28223c67c424df1ac68d9d1aecec30a4856a71fbe91bfc"
},
{
"file": "int-schema-before-20261027.json",
"bytes": 646,
"sha256": "da666867fc18a60b0473e04bcd7966328135dcb684fb974b405b66e53e5a4377"
},
{
"file": "int-source-after-20261027.json",
"bytes": 165,
"sha256": "46c3a8f356197988ebbb4325a7a43807a0e5f097eb5eee5c09c063f68dc022cc"
},
{
"file": "int-source-before-20261027.json",
"bytes": 166,
"sha256": "3130bda62b9b5b736d8b3a884c34973e2c7387564c1f3e9edfcf626075d4fbbd"
},
{
"file": "int-status-a1-20261027.json",
"bytes": 1442,
"sha256": "c895209842c6f59f552a5b9af9542e0a4c58515d91213b188c1ee4300037b3ba"
},
{
"file": "int-status-final-20261027.json",
"bytes": 1795,
"sha256": "2c57678c23eabf455295695214f9d87cca99be25245417310c12d25a6ac69e41"
},
{
"file": "preflight.py",
"bytes": 2328,
"sha256": "2fccdc6dcd727db3b9599f5c4882b3ca389036ccbf12b91f2953d3789726e13c"
},
{
"file": "preparation.json",
"bytes": 247525,
"sha256": "61d83eb63dd5f14d99cd0cce2f460150812b1831a27850c876a991d847b7febc"
},
{
"file": "preserve-data.py",
"bytes": 2304,
"sha256": "e56d27b726c5e710b9bd5721d729cc019d57011b2ea1e2699fee6685f1f1bfbd"
},
{
"file": "public-after.json",
"bytes": 986,
"sha256": "65a39cc9e37575d5da4731e185728d8762387d28abf34c7991c1f81b8c24479d"
},
{
"file": "public-before.json",
"bytes": 414,
"sha256": "010725fedaa5b820efaea13d52140f07b450221f14d71624b6141fbdf5bb6b33"
},
{
"file": "reconcile-operational-delta.py",
"bytes": 5342,
"sha256": "1fa90ff8496d2210dee1e01c0ee409abe0f4f1713f844ac99fa6f4b4c889e645"
},
{
"file": "remote_delivery_inspection.py",
"bytes": 1947,
"sha256": "7c95ba88a9d5a62a15ec2bf581fa62f5151e548014d106f081487889e56b2703"
},
{
"file": "restore.py",
"bytes": 2828,
"sha256": "fcfd6eb0adfff107ee9259b5825ac1afc550c9bd8eabf111fa0b1739d7dd3efd"
},
{
"file": "schema-permissions-after.py",
"bytes": 1868,
"sha256": "d71436183c0cf121381e4119560d70f1bcaf850439830b822b728b6e86a04005"
},
{
"file": "schema-permissions-before.py",
"bytes": 1711,
"sha256": "10c8acceabaebaeeb5d2e5161d37c3b7927b9f4e44e725e19f0a2eb738638b07"
},
{
"file": "source-after-input.json",
"bytes": 237267,
"sha256": "b735f3c10108a40de67eba37cdac203329baea164fe8e48020087ee636462481"
},
{
"file": "source-before-input.json",
"bytes": 237268,
"sha256": "3835b8ab18392212a54c4560be32807b5573b22378ff3403ecd10637ff81d59f"
},
{
"file": "source-check.py",
"bytes": 676,
"sha256": "1cec620043b013e6b6f79b9f67e4e5588117d91ee7dc0c93592fc6b8d6d0557f"
},
{
"file": "ssh-import-collision-resolution.json",
"bytes": 411,
"sha256": "a997a96b0ab7fcd9cb8797c788f4ec27b46df8e70a7008f59400a3af57b99286"
},
{
"file": "ssh-session.py",
"bytes": 3058,
"sha256": "f506635c84dcc7c75c1b1cb244f8d1ffa98bcb6a1d906d6c70c5bfc5771bf177"
},
{
"file": "status.py",
"bytes": 1195,
"sha256": "2282805a03dcbc4c82d5f8be3504c6408f49a5ddb63d7a3deeed1dbd650d021f"
},
{
"file": "store-receipt.py",
"bytes": 870,
"sha256": "e407ff7db3b36fd554f6760dbd05c574c656770a18bf4631b430a8457293b6ea"
},
{
"file": "update-docs.py",
"bytes": 8322,
"sha256": "be77002ecad1640fc1999a05d5a50584290e03294c2328cf403768005d4e2b35"
},
{
"file": "verify-public.py",
"bytes": 2037,
"sha256": "df9aa7ec8b8581192abf8b3c726668205b4c50413005faa872a3fc8ecefbd5ad"
}
],
"remote_receipt_sha256": "d80324b898fd160ab3e7a2fd0b11ea2decd0b99a9324255850062ee4a13e0f0f"
}
@@ -204,3 +204,18 @@ Consulta primária dirigida identificou anúncio do Governo de alterações regu
### 27/10/2026 — Reutilização executável: crédito internacional corrente em QA
CIRPC65(1–2), Lei34/2007, exemplarBR52, PDF18/p768-(72), e ordem face aoPEC em66/RIRPC21 já aceites: usados no menor entre imposto estrangeiro efectivamente pago, fracção nacional documentada e limiteCDT aplicável, antes doPEC e até à colecta. Conferência da página existente para aplicação da fonte, sem nova exigência de autenticação. Original preservado, sem activação por importação/publicação. Afracção nacional eCDT do caso continuam documentadas pelo utilizador; aQA não estabelece correspondências oficiais de convenções.65(3), transportes, créditos económicos/CBF e obrigaçãoPEC continuam separados. Ver recibo `irpc-l8-international-credit-qa-20261027.json`; não instalado.
### 27/10/2026 — Crédito internacional entregue
A implementaçãoQA documentada acima foi instalada em`838ad941`,sem alterar fontes ou concederCDT automaticamente. CIRPC65(1–2)/66/RIRPC21 reutilizados no recorte demonstrado;65(3) e transportePEC continuam separados. Ver `irpc-l8-international-credit-delivery-20261027.json`.
## 28/10/2026 — aplicação de65(3)/66 aos saldos anteriores
Reutilizados os31ficheiros do acervo, todos iguais por bytes a `cf4e0638`. Lei34/2007,BR52,PDF18/p768-(72),SHA256`cdbef875ad7ccc1517b12faf5de0e893a70ed2ed81e33913cd6dc4a674474e6e`: página conferida visualmente;65(3)cinco exercícios seguintes,66(1–2)três paraPEC,sem reembolso. Referência à regra/apuramento aplicáveis na origem é correspondência de período, não nova validação de autenticidade da fonte. Leitura remota do URL arquivado falhou por timeout; usado o exemplar oficial exacto já aceite. Nenhum original alterado,scan declarado ou novo cálculo activado por publicação. Recorte:origens anuais ordinárias documentadas,mesmo sujeito,fecho2026/MZN;sem situações transitórias/especiais presumidas. Recibo `irpc-l8-carry-qa-20261028.json`.
## 28/10/2026 — crédito económico64 e distinção de40/65
Inventário anterior reutilizado:31ficheiros do acervo byte a byte iguais a6ededb59. Sem novo original. Lei34/2007BR52,SHA256`cdbef875ad7ccc1517b12faf5de0e893a70ed2ed81e33913cd6dc4a674474e6e`,PDF18/p768-(72),64(1–2),ePDF15/p768-(69),53(1)a,conferidos visualmente.40(1):Lei20/2009,exemplarAT19/2009,PDF4/p272-(16),redacção20%/dois anos e condições próprias,substitui a redacção original25%. Listas dasLeis4/2012 e19/2013 conferidas;cadeias20/2022 e12/2025 já aceites reutilizadas nos seus âmbitos. Decreto9/2008,RIRPC21(2/5),PDF6/p121:económico,internacional,benefícios,PEC,até à colecta,sem reembolso. Qualificação do caso,inclusão/acréscimo e quota proporcional documentados;sem automatizar a exclusão40 ou alterarL6por presunção. Sem nova exigência de autenticidade de fonte,scan ou publicação/importação. Pesquisa dirigida não substituiu os exemplares oficiais arquivados. Recibo:`irpc-l8-economic-qa-20261028.json`.
@@ -0,0 +1,131 @@
{
"date": "2026-10-28",
"status": "QA_corrected_and_verified_not_installed",
"installed_baseline": "6e8de43ae7fec29b0766d95e209a8cb8baf0d88c",
"user_case": "Agronegócio / Maputo Província",
"reproduction": {
"QA_public_agribusiness": 37,
"Maputo_corridor_public_opportunities": 5,
"province_results_before": 0,
"province_results_after": 5
},
"cause": "The provincial catalogue ignored the corridor context already approved by Tempo; no records were deleted.",
"reused_decision": [
"config/investment_corridors.php",
"docs/investmoz/unification/corridor-adaptive-context-20261023.json"
],
"correction": [
"Reuse approved corridor province context only at province level, with the accepted source hash and existing public publication decisions",
"Do not override an explicit primary/additional territory or infer district/post/coordinates",
"Display available province,district,administrative post,locality directly in results",
"Show both approved Maputo units as contextual coverage, not as two separate opportunities",
"Keep catalogue,API,corridor view and unlocated map list consistent",
"One action returns from district to whole province; no requirement to select every level"
],
"QA": {
"tests": 6,
"assertions": 617,
"failures": 0,
"database": "proactive_investment_20261027_test",
"port": 55441,
"transactions_rolled_back": true,
"types": "passed",
"build": "passed",
"PHP_syntax": "passed"
},
"preserved": [
"Installed menus and accepted supply proofs",
"Originals,source data,territory IDs,publication states,permissions,private lists and histories",
"L8 unchanged,partial"
],
"limitations": [
"No active installation in this report",
"Real authenticated visual conference remains pending;last connector error The browser access host is unavailable",
"This fixes the shared investment catalogue and corridor view;it is not proof that every menu in the portal has been audited",
"Provincial corridor coverage is not a documented district site;unknown levels stay unknown"
],
"existing_requirements": [
"V2-07",
"V2-10"
],
"restriction_origins": {
"territorial_behaviour": "Tempo current request",
"corridor_coverage": "Tempo express decision,23/10/2026",
"no_new_publication_or_roles": "existing approved scope",
"UI_summary_and_province_shortcut": "implementation choice"
},
"scope": "national;shared investment catalogue and similar location entry points",
"national_verification": {
"provincial_units": 11,
"approved_corridors": 6,
"sectors_for_descendant_fixtures": 2,
"province_and_legacy_location_entry_points": true,
"district_containment": true,
"unrelated_provinces_excluded": true,
"test_data": "synthetic fixtures rolled back;accepted published source reused"
},
"selector_delta": {
"Tempo_request": "Dropdown belongs to Pesquisar província;remove separate Seleccione control",
"scope": [
"ProvinceSelect",
"TerritoryLevel:province,district,administrative post,locality"
],
"behaviour": [
"One combobox input opens the list and searches the existing endpoint",
"Explicit choice commits the existing option;typing or Escape does not clear saved values",
"Arrow keys and Enter select;clear is explicit;dependent levels remain disabled without parent",
"Paging retained inside dropdown;loading cannot commit a stale option"
],
"QA": {
"event_state_contract_tests": 4,
"failures": 0,
"types": "passed",
"build": "passed",
"limit": "Controlled React component contract;not browser visual/session evidence"
},
"publication_data_permissions_and_territory_rules": "unchanged",
"national_province_evidence": "6 tests/617 assertions reused;unchanged PHP runtime",
"status": "QA_not_installed"
},
"catalogue_result_presentation": {
"Tempo_request": "Province+sector must show matching opportunities,not educational text and unfiltered national sector shortcuts",
"public_read_snapshot": {
"filtered": {
"total": 0,
"province": "Cabo Delgado",
"sector": "turismo",
"province_id": "059b02ca-7095-577a-8705-4d4c46896747"
},
"active_writes": 0,
"sector_only": {
"total": 16,
"declared_provinces": [
"Inhambane"
],
"sector": "turismo"
},
"method": "anonymous public API read; no authenticated session claimed",
"meaning": "public catalogue snapshot;not evidence of absence of market supply",
"checked_at": "2026-10-28T19:03:36.8285860Z",
"target": "https://teste-investidor.tempo.co.mz/"
},
"UI_changes": [
"Heading identifies applied sector and territorial path",
"Educational cards and their broad sector opportunity button removed from catalogue results",
"Guide titles remain available only inside closed optional support details",
"Removing location is explicitly labelled as searching other provinces",
"Empty state is limited to published records in the consulted catalogue;not absence of market supply"
],
"QA": {
"new_component_SSR_tests": 2,
"failures": 0,
"types": "passed",
"build": "passed",
"accepted_national_and_selector_proofs": "reused;backend and selector unchanged"
},
"status": "QA_not_installed",
"authenticated_visual_validation": "pending;public API read does not prove real session behaviour",
"active_writes": 0,
"new_publications": 0
}
}
@@ -0,0 +1,177 @@
{
"checks": {
"feature_tests": 7,
"isolated_build": "passed",
"feature_assertions": 93,
"frontend_tests": 4,
"types": "passed"
},
"tested_candidate": "568a488ae76c631714547614f52ca6be7a121e2d",
"schema_changes": 0,
"active_writes": 0,
"source_sha256": {
"tests/Feature/ClusterCompetitivenessTest.php": "3c4b27fbc2c00210bd6be78057d88d03f54676c82907fafcbe57843ea7d726cb",
"app/Http/Controllers/InvestmentPortfolioController.php": "0793d06bf94b679b301f4aedbd54d73184ed7b27d3100036dfc81f4621c101d6",
"resources/js/pages/portfolio/show.tsx": "6562798defc1546466b1ed3c66e0d51b1c6c1b08f03c8d5acc915877792ce7da",
"routes/web.php": "76501452ad4ce187ce234127ef160a5a458f629d583d9ccb3c67c1c9d4a1a561",
"resources/js/components/cluster-competitiveness-public.tsx": "85ab2f59de4c63faf6ea699855bbcf0c9efaea0ff9c39421d5640286e9df5910",
"app/Http/Controllers/ClusterCompetitivenessController.php": "12ab13860da1acda02dd77f38d0ddd0d1b8fca5856f7fa8823e9e6193143368e",
"app/Services/ClusterCompetitiveness.php": "24cae918c14a84470b7fc2e1485eacd9c4e2306a54928ca9de6a56576f5227df",
"resources/js/pages/structures/editor.tsx": "c6d50445de3c1f18b266afe5898cd31198fc5946606770ac74a5f01e6e67b712",
"resources/js/pages/structures/competitiveness.tsx": "8c4253cef8450b47245a918712bb81fe0ff2a333f54726a38239264a398f4fde",
"app/Http/Controllers/InvestmentStructureController.php": "b0d11991240fa5f6fa0d56a4c66b63f68665d0687b3772b4f8ca632460499930"
},
"baseline": "23ecccfaad1053f55bf0591fd242cb5fa3406c38",
"provincial_filters": "separate_and_open_not_changed_or_verified",
"remaining": [
"authenticated visual conference of the installed management workflow",
"factual sector and regional analysis and explicit content approvals",
"provincial filter issue remains separate and open",
"remaining planned ACT activities"
],
"status": "installed_specific_persistence_QA_and_preservation_verified_visual_pending",
"proof": {
"candidate": "568a488ae76c631714547614f52ca6be7a121e2d",
"status": "passed",
"database": "competitiveness_persistence_20261029_test",
"port": 55441,
"snapshot_restored": true,
"active_database_writes": 0,
"schema_changes": 0,
"log": "/var/lib/investmoz-deploy/competitiveness-persistence-qa-20261029/qa-568a488ae76c631714547614f52ca6be7a121e2d.log",
"summary": "PHPUnit 12.5.34 by Sebastian Bergmann and contributors.\n\nRuntime: PHP 8.4.27\nConfiguration: /var/lib/investmoz-deploy/competitiveness-persistence-qa-20261029/568a488ae76c631714547614f52ca6be7a121e2d-1793273608890561258/phpunit.xml\n\n....... 7 / 7 (100%)\n\nTime: 00:04.973, Memory: 58.50 MB\n\n\u001b[30;42mOK (7 tests, 93 assertions)\u001b[0m\n"
},
"installed_candidate": "b81f477bf2385227ed3099868e80b1e3c7bcb46b",
"backup": {
"stage": "/var/backups/investmoz-competitiveness-persistence-20261029/backup",
"created_at": "2026-10-29T11:32:49Z",
"target": {
"database": "teste_investidor",
"port": 5432
},
"tables": 176,
"files_verified": 369,
"dump_sha256": "e92123a3b986781de20367a04462ed7b92958c47f232326da18506a79a43717c",
"files_sha256": "bb615875347f7b27da593f148af973fc825555524a261f8f68c50cd4ce26962c",
"restore_verified": false
},
"restore": {
"restore_verified": true,
"tables_verified": 176,
"container_network": "none",
"database": "competitiveness_persistence_restore_20261029_test",
"port": 55441,
"source_dump_sha256": "e92123a3b986781de20367a04462ed7b92958c47f232326da18506a79a43717c",
"active_database_writes": 0
},
"code": {
"candidate": "b81f477bf2385227ed3099868e80b1e3c7bcb46b",
"source_files_verified": 10,
"diagnostics_C132": {
"result": "passed",
"case": "C132",
"source_explicit_constant_OFF": true,
"effective_configuration_OFF": true,
"configuration_cached": false,
"database_connections_used": 0,
"active_writes": 0
},
"active_writes": 0
},
"runtime": {
"identity": {
"database": "teste_investidor",
"role": "teste_investidor_app",
"port": 5432,
"audit_read": true,
"audit_append": true,
"cluster_lock": true
},
"management_read_from_database": true,
"server_version": 0,
"history_items": 0,
"approved_projection_available": false,
"actor_impersonation": false,
"active_domain_writes": 0,
"candidate": "b81f477bf2385227ed3099868e80b1e3c7bcb46b",
"anonymous_management_status": 401,
"persistence_actions_compiled": true,
"specific_write_recovery_and_public_projection_QA": "7 tests / 93 assertions; no synthetic writes on active database",
"provincial_filters": "separate and open; not changed or confirmed here",
"authenticated_visual_conference": "pending"
},
"preservation": {
"navigation_asset_and_shared_props_verified": true,
"at": "2026-10-29T11:42:15.258836+00:00",
"served_commit": "b81f477bf2385227ed3099868e80b1e3c7bcb46b",
"backup_dump_sha256": "e92123a3b986781de20367a04462ed7b92958c47f232326da18506a79a43717c",
"prior_public_tables_checked": 176,
"prior_domain_rows_preserved": true,
"new_migration_registry_rows": 0,
"operational_delta": {
"cache": {
"before": {
"rows": 119,
"checksum": "5ddea5ecf35f8dc04d275b189821b59a"
},
"after": {
"rows": 119,
"checksum": "8336a458d425e14c66b20c3da9aa01de"
}
},
"sessions": {
"before": {
"rows": 10,
"checksum": "aa65128c0bafc9eab8419174754327d7"
},
"after": {
"rows": 12,
"checksum": "41f44e385b8a31b0af1f22e1a29680ce"
}
}
},
"persistent_files_and_configuration_identical": 369,
"private_catalogue": {
"observations": 361464,
"distinct_administrative_observations": 214299,
"preserved_repetitions": 147165,
"unmapped_territory": 205608
},
"preservation_identity": "postgres, matching backup reader; no actor impersonation",
"anonymous_query_status": 401,
"public_revision_confirmed": true,
"actual_team_UI_journey": "pending authenticated browser conference;accepted QA is not repeated",
"unique_company_count": null,
"publication": false,
"national_coverage": "partial",
"investment_conclusion": "hypothesis,not proved demand or viability",
"L8": "unchanged,partial"
},
"pipeline": {
"unit_tests": 59,
"summaries": [
"\u001b[30;42mOK (1 test, 3106 assertions)\u001b[0m",
"✓ built in 33.96s",
"\u001b[30;42mOK (59 tests, 320 assertions)\u001b[0m",
"# tests 1180",
"# pass 1180",
"# fail 0"
],
"schema_assertions": 3106,
"frontend_tests": 1180,
"result": {
"status": "installed",
"commit": "b81f477bf2385227ed3099868e80b1e3c7bcb46b",
"release": "/var/www/investmoz-homologacao/releases/b81f477bf2385227ed3099868e80b1e3c7bcb46b-5eed771e",
"previous_release": "/var/www/investmoz-homologacao/releases/23ecccfaad1053f55bf0591fd242cb5fa3406c38-0e0b8a65",
"database_migrations": 0,
"content_imports": 0,
"requested_commits": [
"b81f477bf2385227ed3099868e80b1e3c7bcb46b"
],
"finished_at": "2026-10-29T11:39:35.927983+00:00"
},
"frontend_failures": 0,
"unit_assertions": 320
}
}
@@ -0,0 +1,147 @@
{
"activity": "ACT-20261029-01",
"status": "partial_increment_installed_preservation_verified_visual_pending",
"baseline": "332c16ebb555e8d6b244fa519bc777d89c1a8b8f",
"branch": "codex/competitiveness-sequential-20261029",
"target": "https://teste-investidor.tempo.co.mz/",
"checks": {
"diff": "passed",
"types": "passed",
"diagnostics_C132": "passed_in_original_workspace",
"frontend_tests": 4,
"isolated_qa_build": "passed"
},
"active_database_writes": 0,
"schema_changes": false,
"permission_changes": false,
"coverage": [
"five qualitative forces in existing cluster management",
"sector and regional scope",
"evidence, source, period, rationale, limitations and investment opportunity",
"explicit uncertainty",
"JSON download and confirmed same-cluster recovery"
],
"remaining": [
"authenticated visual verification",
"server persistence and canonical territorial scope",
"factual sector and regional data",
"public consultation"
],
"source_sha256": {
"resources/js/lib/cluster-competitiveness.ts": "1ed496f51f020da9f0c02ab0aa324b58a9dd17fa34a10d8c1a90d9915800fecb",
"resources/js/pages/structures/competitiveness.tsx": "55338c144cefae4f91cef765b8e5e8b28ceb6c76375d46943c3c3430aeddc68e",
"resources/js/pages/structures/editor.tsx": "080a90ab8607f05ec493e560ed8280a6f7eec743ed1954f0057a0ce6caa09208",
"tests/frontend/cluster-competitiveness.test.mjs": "f48a9ed872f49ad900424daab4689cb0eeeb31cc93ebf1c608408c0a8c2b435b"
},
"candidate": "23ecccfaad1053f55bf0591fd242cb5fa3406c38",
"backup": {
"stage": "/var/backups/investmoz-competitiveness-delivery-20261029/backup",
"created_at": "2026-10-29T11:04:46Z",
"target": {
"database": "teste_investidor",
"port": 5432
},
"tables": 176,
"files_verified": 369,
"dump_sha256": "7979fa2b3fe1f69e62aad9fadf60a60d7b068e198cdc291a8fc79d409d67c7ca",
"files_sha256": "8e0022b73cd0074e36f8efef0b7c803a386e24e6e4cf85f567757ff67e311369",
"restore_verified": false
},
"restore": {
"restore_verified": true,
"tables_verified": 176,
"container_network": "none",
"database": "competitiveness_delivery_20261029_test",
"port": 55441,
"source_dump_sha256": "7979fa2b3fe1f69e62aad9fadf60a60d7b068e198cdc291a8fc79d409d67c7ca",
"active_database_writes": 0
},
"preservation": {
"navigation_asset_and_shared_props_verified": true,
"at": "2026-10-29T11:10:44.303271+00:00",
"served_commit": "23ecccfaad1053f55bf0591fd242cb5fa3406c38",
"backup_dump_sha256": "7979fa2b3fe1f69e62aad9fadf60a60d7b068e198cdc291a8fc79d409d67c7ca",
"prior_public_tables_checked": 176,
"prior_domain_rows_preserved": true,
"new_migration_registry_rows": 0,
"operational_delta": {
"cache": {
"before": {
"rows": 119,
"checksum": "5f3c36637fbf1e9dc4700066d4c45530"
},
"after": {
"rows": 119,
"checksum": "b1c9949cfacc34906c406e27e95cbd9b"
}
},
"sessions": {
"before": {
"rows": 37,
"checksum": "b0e409c4c77c58b48252d9847c3c61ef"
},
"after": {
"rows": 38,
"checksum": "f4d94db55488bc0bcf6f727f222473c1"
}
}
},
"persistent_files_and_configuration_identical": 369,
"private_catalogue": {
"observations": 361464,
"distinct_administrative_observations": 214299,
"preserved_repetitions": 147165,
"unmapped_territory": 205608
},
"preservation_identity": "postgres, matching backup reader; no actor impersonation",
"anonymous_query_status": 401,
"public_revision_confirmed": true,
"actual_team_UI_journey": "pending authenticated browser conference;accepted QA is not repeated",
"unique_company_count": null,
"publication": false,
"national_coverage": "partial",
"investment_conclusion": "hypothesis,not proved demand or viability",
"L8": "unchanged,partial"
},
"installed_code": {
"candidate": "23ecccfaad1053f55bf0591fd242cb5fa3406c38",
"source_files_verified": 4,
"diagnostics_C132": {
"result": "passed",
"case": "C132",
"source_explicit_constant_OFF": true,
"effective_configuration_OFF": true,
"configuration_cached": false,
"database_connections_used": 0,
"active_writes": 0
},
"active_writes": 0
},
"pipeline": {
"unit_tests": 59,
"frontend_failures": 0,
"schema_assertions": 3106,
"checks": [
"\u001b[30;42mOK (1 test, 3106 assertions)\u001b[0m",
"✓ built in 34.50s",
"\u001b[30;42mOK (59 tests, 320 assertions)\u001b[0m",
"# tests 1180",
"# pass 1180",
"# fail 0"
],
"frontend_tests": 1180,
"result": {
"status": "installed",
"commit": "23ecccfaad1053f55bf0591fd242cb5fa3406c38",
"release": "/var/www/investmoz-homologacao/releases/23ecccfaad1053f55bf0591fd242cb5fa3406c38-0e0b8a65",
"previous_release": "/var/www/investmoz-homologacao/releases/332c16ebb555e8d6b244fa519bc777d89c1a8b8f-f0dfc218",
"database_migrations": 0,
"content_imports": 0,
"requested_commits": [
"23ecccfaad1053f55bf0591fd242cb5fa3406c38"
],
"finished_at": "2026-10-29T11:10:02.884033+00:00"
},
"unit_assertions": 320
}
}
@@ -0,0 +1,198 @@
{
"date": "2026-10-28",
"status": "not_demonstrated",
"audited_use": "companies,hotels and restaurants lists as private supply-comparison basis inside proactive journey",
"Tempo_decision": "know existing supply by location/sector/activity;compare ideas for competition,complementarity and possible partners;identify evidenced needs and prepare opportunities;no absence-of-offer inference from absent records;no automatic public directory",
"installed_runtime": "569a1cd750f3d2a0b87f130e992e73e070bbd1ab",
"scope": {
"destination": "teste-investidor.tempo.co.mz",
"database": "teste_investidor",
"catalogue_tables": 198,
"schemas": {
"public": 174,
"skills_edu": 24
},
"identity": "postgres owner,read-only transactions;technical metadata inventory,not an authenticated team UI proof",
"read_only": true,
"RLS_note": "No permissions changed or RLS bypassed for a team operation. Owner inventory is explicitly separated from application/user visibility. Differences from earlier investemoz/QA environments are not declared deletion/loss.",
"source_matching_limit": "plaintext metadata/reference matches only; absence does not establish missing encrypted or external records or absence of real market supply"
},
"source_inventory": {
"accessible_files_in_two_source_roots": 13,
"all_inventoried_before_selection": true,
"known_originals": [
{
"alias": "companies.xlsx",
"file_name": "EMPRESAS_LIST 2014-2022.xlsx",
"sha256": "1ba4c4114b16b407e7746712d00d4f681246bbbc1b42351e96a31f7129acad30",
"bytes": 26586267,
"unchanged": true,
"sheet_names": [
"EMPRESAS 2014-2022"
],
"prior_nonempty_XML_rows": 148557,
"row_count_is_not_unique_business_count": true,
"period": "2014–2022 stated in file name"
},
{
"alias": "licensed.xlsx",
"file_name": "Empresas Licenciadas.xlsx",
"sha256": "1b5087b464e39e88c42def39655c2391aaaf684b4c832d6a77ff274b98889f00",
"bytes": 34940776,
"unchanged": true,
"sheet_names": [
"EMPRESAS"
],
"prior_nonempty_XML_rows": 212632,
"row_count_is_not_unique_business_count": true,
"period": "varies by record;reference date not inferred from file modification time"
},
{
"alias": "tourism.xlsx",
"file_name": "CADASTRO DE EMPREENDIMENTOS TURISTICOS 3, 4 E 5 ESTRELAS 30.10.24 18,00h.xlsx",
"sha256": "f02e086ed4973ef17234aa6cc54b98fbb7a6952ffb16ec4dc4f7d0c72af6400c",
"bytes": 73955,
"unchanged": true,
"sheet_names": [
"1. Alojamento",
"Folha1"
],
"prior_nonempty_XML_rows": 460,
"row_count_is_not_unique_business_count": true,
"period": "30/10/2024 stated in file name;current operating status unconfirmed"
},
{
"alias": "cae.xlsx",
"file_name": "CAE eBAU.xlsx",
"sha256": "83b4f1200988e99834c2ae3915346fbf237d128308554b67b5a080d4956bf506",
"bytes": 75018,
"unchanged": true,
"sheet_names": [
"CAE"
],
"prior_nonempty_XML_rows": null,
"row_count_is_not_unique_business_count": true,
"period": "code labels supplied;version/application require source correspondence"
}
],
"duplicates_detected_by_bytes": [],
"private_fields_exported": false,
"tourism_scope": "workbook labelled accommodation;not treated as an exhaustive restaurant or hotel market census",
"restaurant_scope": "separate restaurant dataset not identified in these two source roots;restaurant activities may exist within company registers;not a finding of absence in the market"
},
"findings": {
"originals_available_and_unchanged": true,
"loading_into_portal": "not demonstrated in audited destination;no exact known source hash matches among368persistent files;no exact known source references in audited metadata",
"normalisation_and_classification": "source company workbooks have province/district/CAE and a supplied CAE code table;mapping of their entities to portal location/sector/activity not demonstrated",
"journey_linkage": "not demonstrated;installed ProactiveInvestment.options only returns document links/groups/project-cluster-corridor-park-chain references;no list-backed offer query or company/hotel/restaurant relation consumer in that method",
"manual_evidence_path": "already delivered;acceptance preserved. Manual source/locator/period/coverage/observed_supply fields do not establish imported source records or catalogue-backed comparison.",
"active_counts_context_only": {
"existing_businesses": 0,
"organizations": 1,
"documents": 60,
"economic_activities": 11,
"portal_resources": 59
},
"no_market_absence_inference": true,
"no_loss_claim": true
},
"demonstration_attempt": {
"kind": "read-only trace and canonical-location check,not a browser or team end-to-end proof",
"location": {
"name": "Gurué",
"id": "87a8ba3d-b152-560c-a566-7db4531ad536",
"type": "district"
},
"steps": [
{
"step": 1,
"action": "choose location",
"observed": "canonical Gurué district exists;previous location-selection path acceptance reused;no new manual UI proof claimed",
"status": "location_reference_available"
},
{
"step": 2,
"action": "consult existing supply from these lists",
"observed": "no wired list-backed offer consumer or demonstrated imported/classified enterprise records for this location",
"status": "not_demonstrated",
"blocks_remaining_demo": true
},
{
"step": 3,
"action": "compare with an idea for competitors/complements/partners",
"observed": "manual analysis fields exist;no reproducible offer-result set/source-row linkage demonstrated",
"status": "not_demonstrated"
},
{
"step": 4,
"action": "identify a need with dates and uncertainties",
"observed": "cannot infer unmet need from missing catalogue records;hypothesis and unknown coverage remain explicit",
"status": "not_demonstrated_for_this_list_backed_flow"
},
{
"step": 5,
"action": "prepare opportunity retaining sources/period/coverage/uncertainty",
"observed": "existing private preparation mechanism preserved;no new opportunity created to simulate completion of missing steps2–4",
"status": "not_demonstrated_for_this_list_backed_flow"
}
],
"end_to_end_criterion_passed": false
},
"preservation": {
"proactive_delivery_preserved": true,
"previous_manual_real_source_QA_pilots_preserved": true,
"Songo_Gurue": "existing private QA hypotheses unchanged;their manual spreadsheet reading does not establish list integration",
"L8_delivery_569a1cd7": "unchanged,remains partial",
"application_code_changes": 0,
"new_tests": 0,
"new_imports_or_normalisation": 0,
"new_opportunities": 0,
"new_publication": 0,
"active_writes": 0,
"new_roles_or_grants": 0,
"no_new_matrix_or_backlog": true
},
"next_concrete_work": "Establish traceable private source batches/rows and mappings using existing data/inventory mechanisms;expose authorised location-sector-activity supply query in existing proactive editor;link selected supply records and source coverage to comparison/need/opportunity,then demonstrate save/recover end-to-end in isolated QA. Do not publish a directory or treat unknown coverage as zero supply. Analytical supply records must not require a user organisation,a business-for-sale listing,a real promoter or a confirmed commercial commitment just to be consulted internally.",
"matrix_ids": [
"RF-CLU-003",
"MASTER-471012ab-0010",
"M2-d0c06a75-0147",
"M2-d0c06a75-0151",
"MASTER-1f0a4cde-0002"
],
"evidence": {
"active_source_code_verified": [
{
"file": "app/Services/ProactiveInvestment.php",
"sha256": "957dc455f0153d615577fe182b51969e6d253b33e24ac78547fcccd06215a51c",
"installed_matches_Git": true
},
{
"file": "app/Services/OpportunityManagement.php",
"sha256": "ebe5535d94ad3c7d607bd70f2ff5dce75d810ab26924ac55ac08f036fd5eee33",
"installed_matches_Git": true
},
{
"file": "resources/js/components/proactive-investment.tsx",
"sha256": "9c6acadef8d29732efcfcc4bcdfb28ce3be4f19127a626c1e85c6df98fd91ecf",
"installed_matches_Git": true
},
{
"file": "app/Services/InvestorContext.php",
"sha256": "54be88361214d896640c808d8fe29f93c552a69870d6bb3ecce4de458a51ed48",
"installed_matches_Git": true
},
{
"file": "routes/web.php",
"sha256": "95930c76977d446b74a422acc4b60869ff6bae5d4567c21cc644484c5f09cbda",
"installed_matches_Git": true
}
],
"local_artifacts": {
"accessible-source-inventory.json": "2815b778b0a4d1d601fd85c46c9b5c3a19bd7adcdb46cf86f0f28f45717b2afa",
"accepted-source-check.json": "06b814ee4e322fb78f081788b061936a324b3edcf6d56a80a82eeabdf2906ec6",
"active-audit.json": "06e3cfba8c180e93a86a9dc5db86403220e7c5406229ef166b4e604cc2d8e71c",
"consumer-trace.json": "df1fa6fa8dc3c18485b6e83a4f6a688f2d5a2124e9a8f5c75a944ec859e420f3"
}
}
}
@@ -0,0 +1,213 @@
{
"date": "2026-10-28",
"status": "installed_delta_verified_authenticated_visual_conference_pending",
"served_commit": "789fffd098fa222c85e1283de07f23ee6f42bd04",
"previous_runtime": "6e8de43ae7fec29b0766d95e209a8cb8baf0d88c",
"target": "https://teste-investidor.tempo.co.mz/",
"normal_Git_fast_forward": true,
"force_used": false,
"existing_pipeline_unchanged": true,
"scope": [
"National provincial catalogue/corridor coverage and territorial summaries",
"One searchable territory control at all four levels",
"Filtered catalogue results separate from optional educational support",
"Adaptive opportunity preparation groups and save-before-resource navigation",
"Readable promoter request with explicit searchable proof selection",
"Immediate scoped zone search,total counts and complete pagination",
"My investments next action and expandable stages/source details",
"Direct entries to existing fillable investment/Terra-DUAT preparation;support form separately labelled",
"Sector registration CTA uses effective account creation capability;no new permissions",
"Readable known document topic/category/language labels"
],
"backup": {
"stage": "/var/backups/investmoz-catalogue-territory-delivery-20261028/backup",
"created_at": "2026-10-28T19:25:43Z",
"target": {
"database": "teste_investidor",
"port": 5432
},
"tables": 176,
"files_verified": 369,
"dump_sha256": "597f73cda14dd47be440136f2e2242d8d7a4e4f3d5d69cabcd44f8fde58c136d",
"files_sha256": "7fb639d8351e34ce220c5424c722c223512d139c82b7ff0a1a447136c62041ef",
"restore_verified": false
},
"restore": {
"restore_verified": true,
"tables_verified": 176,
"container_network": "none",
"database": "catalogue_territory_delivery_20261028_test",
"port": 55441,
"source_dump_sha256": "597f73cda14dd47be440136f2e2242d8d7a4e4f3d5d69cabcd44f8fde58c136d",
"active_database_writes": 0
},
"failed_candidate_preserved": {
"commit": "502e3ec4",
"reason": "Corridor explorer Unit mock missing the new public location presentation;unnecessary non-source relation read",
"active_runtime_preserved": true,
"resolution": "Short-circuit irrelevant source before relation access;represent new dependency and retain old assertions;Unit1/13 passed"
},
"pipeline": {
"reports": [
{
"status": "already_installed",
"commit": "789fffd098fa222c85e1283de07f23ee6f42bd04",
"requested_commits": [
"789fffd098fa222c85e1283de07f23ee6f42bd04"
],
"finished_at": "2026-10-28T19:39:46.948539+00:00"
},
{
"status": "installed",
"commit": "789fffd098fa222c85e1283de07f23ee6f42bd04",
"release": "/var/www/investmoz-homologacao/releases/789fffd098fa222c85e1283de07f23ee6f42bd04-29ab1f0d",
"previous_release": "/var/www/investmoz-homologacao/releases/6e8de43ae7fec29b0766d95e209a8cb8baf0d88c-877dabd3",
"database_migrations": 0,
"content_imports": 0,
"requested_commits": [
"789fffd098fa222c85e1283de07f23ee6f42bd04"
],
"finished_at": "2026-10-28T19:39:45.796038+00:00"
}
],
"build_logs": [
{
"file": "/var/lib/investmoz-deploy/logs/1793216167091522421.log",
"sha256": "af1c3db072b2b354cfef13538a8cb69d07a37ec4b1ddef63d8d68e77ab5d7196",
"summaries": [
"\u001b[30;42mOK (1 test, 3106 assertions)\u001b[0m",
"✓ built in 32.16s",
"\u001b[30;42mOK (59 tests, 320 assertions)\u001b[0m",
"# tests 1171",
"# pass 1171",
"# fail 0"
]
}
]
},
"installed_preservation_delta": {
"navigation_asset_and_shared_props_verified": true,
"at": "2026-10-28T19:40:32.494557+00:00",
"served_commit": "789fffd098fa222c85e1283de07f23ee6f42bd04",
"backup_dump_sha256": "597f73cda14dd47be440136f2e2242d8d7a4e4f3d5d69cabcd44f8fde58c136d",
"prior_public_tables_checked": 176,
"prior_domain_rows_preserved": true,
"new_migration_registry_rows": 0,
"operational_delta": {
"cache": {
"before": {
"rows": 111,
"checksum": "1912b955cff09094395336c2137d5ce5"
},
"after": {
"rows": 111,
"checksum": "c158d3e941f896ca3997dfe02850d427"
}
},
"sessions": {
"before": {
"rows": 9,
"checksum": "870b1c20d207a9db376633fc5514a3ed"
},
"after": {
"rows": 8,
"checksum": "f7737eac7d85ed501fb339d7faabbd8e"
}
}
},
"persistent_files_and_configuration_identical": 369,
"private_catalogue": {
"observations": 361464,
"distinct_administrative_observations": 214299,
"preserved_repetitions": 147165,
"unmapped_territory": 205608
},
"RLS_without_actor_rows": 0,
"anonymous_query_status": 401,
"public_revision_confirmed": true,
"actual_team_UI_journey": "pending authenticated browser conference;accepted QA is not repeated",
"unique_company_count": null,
"publication": false,
"national_coverage": "partial",
"investment_conclusion": "hypothesis,not proved demand or viability",
"L8": "unchanged,partial"
},
"public_installed_delta": {
"served_commit": "789fffd098fa222c85e1283de07f23ee6f42bd04",
"public_Maputo_agribusiness_total": 5,
"public_Tourism_Cabo_Delgado_total": 0,
"Cabo_Delgado_zones_total": 2,
"all_zones_total": 8,
"all_zones_pages": 1,
"filtered_scope_and_sector_confirmed": true,
"installed_UI_assets_verified": [
"Preencher formulários e preparar documentos",
"Pesquisar nos meus ficheiros",
"O meu acesso e administração",
"Consultar situação, documentos e fundamentos"
],
"public_Tourism_HTTP": 200,
"guest_Tourism_registration_action": "/perfil/promotor",
"guest_Tourism_registration_label": "Pedir acesso para cadastrar oportunidades",
"real_authenticated_Tourism_case": "pending;anonymous200 is not the real session",
"pipeline_reports": [
{
"status": "already_installed",
"commit": "789fffd098fa222c85e1283de07f23ee6f42bd04",
"requested_commits": [
"789fffd098fa222c85e1283de07f23ee6f42bd04"
],
"finished_at": "2026-10-28T19:39:46.948539+00:00"
},
{
"status": "installed",
"commit": "789fffd098fa222c85e1283de07f23ee6f42bd04",
"release": "/var/www/investmoz-homologacao/releases/789fffd098fa222c85e1283de07f23ee6f42bd04-29ab1f0d",
"previous_release": "/var/www/investmoz-homologacao/releases/6e8de43ae7fec29b0766d95e209a8cb8baf0d88c-877dabd3",
"database_migrations": 0,
"content_imports": 0,
"requested_commits": [
"789fffd098fa222c85e1283de07f23ee6f42bd04"
],
"finished_at": "2026-10-28T19:39:45.796038+00:00"
}
],
"no_schema_or_publication_changes": true,
"source_files_preserved": true
},
"accepted_QA_reused": {
"national_tests": 6,
"national_assertions": 617,
"selector_tests": 4,
"guide_tests": 2,
"usability_frontend_tests": 9,
"usability_feature_tests": 3,
"usability_feature_assertions": 14,
"unit_regression_tests": 1,
"unit_regression_assertions": 13,
"types_build_PHP": "passed"
},
"remaining": [
"Actual authenticated visual conference of responsive menus,free filling navigation,saved resource round-trip and Gurué same-dossier journey",
"Tempo clarified Tourism denial followed a button;exact original button unavailable. Concrete creation CTA mismatch corrected and tested;real session still needs confirmation",
"Clarify the particular official fiscal form sought;investment preparation adaptations are not a complete implementation of all IVA/IRPC official forms"
],
"preserved": {
"old_release": "retained for existing rollback mechanism",
"domain_data_permissions_publications": "unchanged",
"persistent_files_and_configuration": 369,
"private_supply_observations": 361464,
"Gurue_observations": 435,
"counts_are_not_unique_companies": true,
"lists": "internal",
"national_coverage": "partial",
"investment_comparison": "hypothesis,not demand or viability proof",
"L8": "partial,unchanged"
},
"proof_limits": "HTTP/API/asset checks do not prove the authenticated UI;prior QA/manual reports remain historical candidate evidence,not installation state",
"source_QA_reports": [
"catalogue-province-coverage-qa-20261028.json",
"investor-usability-qa-20261028.json"
],
"authorisation": "Tempo requested corrections,authorised normal delivery,and authenticated the existing SSH mechanism;no repeated organisational approval required"
}
@@ -0,0 +1,73 @@
{
"date": "2026-10-28",
"status": "QA_implemented_and_delta_verified_not_installed",
"runtime_baseline": "6e8de43ae7fec29b0766d95e209a8cb8baf0d88c",
"prepared_catalogue_parent": "54d1b2a5",
"Tempo_requests": [
"Readable investor work menu and adaptive filling flow",
"ZEE/ZFI/park results must match explicit territory selection;all means the available set",
"Promoter request must use readable representation/modality labels and usable evidence selection",
"Investigate authenticated denial of public Tourism sector",
"Simplify My investments and present useful next actions",
"Expose fillable forms rather than a guide or legislative catalogue"
],
"implemented": {
"work_menu": "Investor actions remain primary;existing access/audit/profile setup destinations move into optional administration details;no permission change",
"filling": "Schema fields grouped adaptively by task;free navigation,all fields stay mounted,unknown future keys retained;server missing paths and errors point to groups;not mandatory sequential forms",
"preservation": "Deliberate values retained between groups;save uses existing endpoints and ETags;resource navigation saves first and returns to the same opportunity/group;only unique promoter context is auto-selected",
"profile_request": "Portuguese visible representation/modality labels;owned clean-file criteria unchanged;file search and explicit selected proofs replace the unbounded list;availability does not prove evidentiary suitability",
"zones": "Territory and other filter changes apply search;old records hidden while loading/error;all and filtered totals plus pagination explicit;existing public visibility preserved;validated legal coverage includes its child area,while influence is not treated as a site",
"my_investments": "Next action remains prominent;other phases/stages expandable;source/code history and internal follow-up remain consultable rather than filling the main page",
"forms": "Direct entries to existing private investment preparation fields and Terra/DUAT;support request separately labelled;originals/guides optional;no law is converted into a form or executable calculation",
"document_taxonomy": "Known topic/category/language codes have Portuguese display labels;original query values preserved"
},
"QA": {
"frontend_contract_and_SSR_tests": 9,
"frontend_failures": 0,
"isolated_feature_tests": 3,
"feature_assertions": 14,
"feature_failures": 0,
"database": "proactive_investment_20261027_test",
"port": 55441,
"transactions_rolled_back": true,
"types": "passed",
"build": "passed",
"PHP_syntax": "passed",
"accepted_national_selector_and_catalogue_proofs": "reused",
"unit_regression_tests": 1,
"unit_regression_assertions": 13
},
"Tourism_incident": {
"reported_by_Tempo": "authenticated session saw access denial at /sectores/turismo",
"anonymous_live_HTTP": 200,
"isolated_guest_and_no_promoter_account_HTTP": 200,
"exact_real_session_cause": "not demonstrated;do not infer missing role or claim correction",
"private_permissions_changed": false,
"next": "Confer the actual authenticated session and related logs;public read is not real-session proof",
"reported_action": "Tempo clarified denial followed a button click;exact label could not be recalled",
"bounded_code_finding": "Sector registration action depended on module availability rather than effective account creation capability",
"QA_correction": "Reuse ContentManagement effective create destination;otherwise explicitly link to existing promoter request with a readable label;public consultation and idea preparation remain separate",
"real_session_reconference": "pending;the exact original button is not demonstrated"
},
"limits": [
"Not installed in this QA report",
"SSR and controlled event tests are not browser keyboard/touch/layout evidence",
"Existing form adaptations are exposed;this does not implement every official form in the document collection",
"No new roles,publications,source edits,schema changes or fiscal activation",
"L8 remains partial"
],
"restriction_origins": {
"UX_and_selected_scope": "Tempo current express instructions",
"data_and_permissions_preservation": "permanent project instructions",
"grouping_and_collapsed_details": "implementation choice,not new organisational requirement",
"document_ownership_scan_and_existing_workflows": "prior contracts preserved"
},
"delivery_gate": {
"candidate": "502e3ec4",
"result": "failed before runtime switch;6e8de43a preserved",
"reason": "Unit mock did not represent new public location presentation;unnecessary relation query on non-source records",
"correction": "Short-circuit source applicability before reading relations;mock the new presentation dependency and retain prior identity/count assertions",
"unit_regression": "1 test/13 assertions passed",
"pipeline_guardrails": "unchanged;no schema migration or test-gate weakening"
}
}
@@ -0,0 +1,161 @@
{
"date": "2026-10-28",
"status": "installed_technical_navigation_delta_verified_authenticated_visual_conference_pending",
"served_commit": "6e8de43ae7fec29b0766d95e209a8cb8baf0d88c",
"previous_runtime": "6d1476936920dc5715d4493b1f8b22a3d51935f4",
"target": "https://teste-investidor.tempo.co.mz/",
"authorisation": "Tempo approved the QA menu proposal and authenticated the existing SSH delivery mechanism",
"normal_git_fast_forward": true,
"force_used": false,
"backup": {
"stage": "/var/backups/investmoz-navigation-delivery-20261028/backup",
"created_at": "2026-10-28T18:18:14Z",
"target": {
"database": "teste_investidor",
"port": 5432
},
"tables": 176,
"files_verified": 369,
"dump_sha256": "748539aa92cf4a0e22698a3b7651faa7a4452db2517ddb811a924b761ea9dce5",
"files_sha256": "946dd8d33903332557639103b8f5ad5bca955fd3ec79f112e3649128fea8c499",
"restore_verified": false
},
"restore": {
"restore_verified": true,
"tables_verified": 176,
"container_network": "none",
"database": "navigation_delivery_20261028_test",
"port": 55441,
"source_dump_sha256": "748539aa92cf4a0e22698a3b7651faa7a4452db2517ddb811a924b761ea9dce5",
"active_database_writes": 0
},
"guard": {
"ready_for_normal_git_delivery": true,
"restore_verified": true,
"tables_verified": 176,
"pipeline_and_schema_contract_unchanged": true,
"candidate": "6e8de43ae7fec29b0766d95e209a8cb8baf0d88c"
},
"installed_delta": {
"navigation_asset_and_shared_props_verified": true,
"at": "2026-10-28T18:23:39.508498+00:00",
"served_commit": "6e8de43ae7fec29b0766d95e209a8cb8baf0d88c",
"backup_dump_sha256": "748539aa92cf4a0e22698a3b7651faa7a4452db2517ddb811a924b761ea9dce5",
"prior_public_tables_checked": 176,
"prior_domain_rows_preserved": true,
"new_migration_registry_rows": 0,
"operational_delta": {
"cache": {
"before": {
"rows": 111,
"checksum": "650ce50f1aa1af7e7025bcbaa7bcd6ba"
},
"after": {
"rows": 111,
"checksum": "ea8070b2c9a513485bfb27462e379703"
}
},
"sessions": {
"before": {
"rows": 4,
"checksum": "f0d8b267cdf55c86ba8223d9e1ff3c6a"
},
"after": {
"rows": 5,
"checksum": "99071034149a154c7e17acc47e058dae"
}
}
},
"persistent_files_and_configuration_identical": 369,
"private_catalogue": {
"observations": 361464,
"distinct_administrative_observations": 214299,
"preserved_repetitions": 147165,
"unmapped_territory": 205608
},
"RLS_without_actor_rows": 0,
"anonymous_query_status": 401,
"public_revision_confirmed": true,
"actual_team_UI_journey": "pending authenticated browser conference;accepted QA is not repeated",
"unique_company_count": null,
"publication": false,
"national_coverage": "partial",
"investment_conclusion": "hypothesis,not proved demand or viability",
"L8": "unchanged,partial"
},
"existing_pipeline_receipt": {
"reports": [
{
"status": "already_installed",
"commit": "6e8de43ae7fec29b0766d95e209a8cb8baf0d88c",
"requested_commits": [
"6e8de43ae7fec29b0766d95e209a8cb8baf0d88c"
],
"finished_at": "2026-10-28T18:23:07.685587+00:00"
},
{
"status": "installed",
"commit": "6e8de43ae7fec29b0766d95e209a8cb8baf0d88c",
"release": "/var/www/investmoz-homologacao/releases/6e8de43ae7fec29b0766d95e209a8cb8baf0d88c-877dabd3",
"previous_release": "/var/www/investmoz-homologacao/releases/6d1476936920dc5715d4493b1f8b22a3d51935f4-c9ebfad4",
"database_migrations": 0,
"content_imports": 0,
"requested_commits": [
"6e8de43ae7fec29b0766d95e209a8cb8baf0d88c"
],
"finished_at": "2026-10-28T18:23:06.355940+00:00"
}
],
"build_log": "/var/lib/investmoz-deploy/logs/1793211570315386207.log",
"build_log_sha256": "7b1d78a066ed829cbdabc67549baf4835ab8f911b8c4b178be09539ed434ddde",
"summaries": [
"\u001b[30;42mOK (1 test, 3106 assertions)\u001b[0m",
"✓ built in 31.30s",
"\u001b[30;42mOK (59 tests, 317 assertions)\u001b[0m",
"# tests 1156",
"# pass 1156",
"# fail 0"
],
"last_lines": [
"ext-pcre 8.4.27 success ",
"ext-session 8.4.27 success ",
"ext-tokenizer 8.4.27 success ",
"php 8.4.27 success ",
"6e8de43ae7fec29b0766d95e209a8cb8baf0d88c",
"",
" INFO Broadcasting queue restart signal. ",
""
]
},
"accepted_QA_reused": {
"directed_tests": 16,
"types": "passed",
"build": "passed",
"PHP_syntax": "passed"
},
"UI_delta": [
"Área de trabalho visible in principal navigation; operational entries follow existing effective capabilities",
"Sidebar preserves every nested destination and territorial context instead of exposing only the first link",
"Existing opportunity analysis form can be opened directly without replacing saved analysis",
"Existing account, content, investment and follow-up destinations retained; no new roles or grants"
],
"remaining": [
"Authenticated visual conference on the actual account, including responsive layout and keyboard/touch",
"Confirm Gurué → offer consultation → idea comparison → save → recover in the same dossier; technical/QA proofs remain accepted"
],
"connector_last_known_error": "The browser access host is unavailable",
"limitations": {
"technical_delivery_is_not_visual_session_evidence": true,
"435_Gurue_observations_are_not_435_unique_companies": true,
"lists_remain_internal": true,
"national_coverage": "partial",
"absence_of_records": "insufficient information",
"comparison": "investment hypothesis; does not establish demand or viability",
"L8": "unchanged,partial"
},
"restriction_origins": {
"delivery": "explicit Tempo authorisation",
"preservation_and_restore": "permanent project instructions",
"grouping_and_presentation": "implementation choice within the approved QA proposal; no new business authority"
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,230 @@
{
"date": "2026-10-28",
"status": "internal_supply_integration_demonstrated_in_isolated_QA_not_installed",
"baseline": "150bef4b897de8d0711c1e2bbeedbcaf5ee241d2b",
"baseline_runtime": "569a1cd750f3d2a0b87f130e992e73e070bbd1ab",
"branch": "codex/proactive-supply-qa-20261028",
"active_runtime_unchanged": "569a1cd750f3d2a0b87f130e992e73e070bbd1ab",
"accepted_inventory_reused": "existing-supply-lists-audit-20261028.json;13 accessible originals/variants inventoried before source selection;prior proactive acceptance and fiscal delivery preserved",
"sources": [
{
"alias": "companies.xlsx",
"name": "EMPRESAS_LIST 2014-2022.xlsx",
"sha256": "1ba4c4114b16b407e7746712d00d4f681246bbbc1b42351e96a31f7129acad30",
"bytes": 26586267,
"period": "2014–2022; data por registo quando disponível"
},
{
"alias": "licensed.xlsx",
"name": "Empresas Licenciadas.xlsx",
"sha256": "1b5087b464e39e88c42def39655c2391aaaf684b4c832d6a77ff274b98889f00",
"bytes": 34940776,
"period": "Data por registo; cobertura temporal global não determinada"
},
{
"alias": "tourism.xlsx",
"name": "CADASTRO DE EMPREENDIMENTOS TURISTICOS 3, 4 E 5 ESTRELAS 30.10.24 18,00h.xlsx",
"sha256": "f02e086ed4973ef17234aa6cc54b98fbb7a6952ffb16ec4dc4f7d0c72af6400c",
"bytes": 73955,
"period": "30/10/2024 (nome do exemplar); situação actual não confirmada"
},
{
"alias": "cae.xlsx",
"name": "CAE eBAU.xlsx",
"sha256": "83b4f1200988e99834c2ae3915346fbf237d128308554b67b5a080d4956bf506",
"bytes": 75018,
"period": "Versão não indicada"
}
],
"source_rows": {
"companies.xlsx": 148556,
"licensed.xlsx": 212631,
"tourism.xlsx": 277
},
"catalog": {
"records": 361464,
"repeated_projection": 147165,
"identity_conflicts": 113880,
"activity_unclassified": 82864,
"territory_unmapped": 205608,
"province_only": 336,
"unnamed_observations": 18423
},
"duplicate_meaning": "same projected administrative fields including entity identifier, licence/process,date,place,activity,name;all source sightings retained,not a unique-company count or byte-identical-file claim",
"classification": {
"activity_and_sector": "supplied CAE labels and SELF_ID hierarchy;no invented correspondence to twelve portal navigation sectors",
"territory": "unique normalized province+district,otherwise exact unique canonical subordinate name within province;Maputo explicitly distinct from Maputo Cidade;no fuzzy matching;raw source labels retained",
"identity": "valid-shaped NUIT only hashed as a possible entity key;different names flagged,not silently merged;unidentified rows remain distinct",
"dates": "original date strings and Excel serials retained verbatim;file modification time not a reference date",
"tourism": "277 establishment observations across two differently structured sheets;explicit province section preserved;missing district remains unknown;not an exhaustive hotels/restaurants census"
},
"private_import": {
"preview": true,
"original_hashes_checked": true,
"malware": "Microsoft Defender custom scan on same-hash private copies,exit0,no threats detected,2026-10-28",
"idempotency": {
"before": 343041,
"after": 343041,
"sha256": "6a9c820c73a8c535ed3cdfc03db0311edf0300f1f97ade75f0fce3d3c84a02e1",
"publication": false,
"database": "proactive_investment_20261027_test",
"port": 55441
},
"tables": [
"proactive_supply_sources",
"proactive_supply_observations"
],
"RLS": "forced on both;non-owner QA policy proof:0 rows without actor/read context;authorized context recovers row",
"contacts_identity_documents_nuit_not_returned_by_query": true,
"no_automatic_directory_publication": true,
"no_promoters_or_user_organizations_created": true,
"extension_first": {
"before": 343041,
"after": 361464,
"sha256": "dec9db62a52a8bac5f1e2675aecbeb4239f2b1f4fa521db01693c32bdfeef01e",
"extension": true,
"previous_snapshot": "6a9c820c73a8c535ed3cdfc03db0311edf0300f1f97ade75f0fce3d3c84a02e1",
"publication": false,
"database": "proactive_investment_20261027_test",
"port": 55441
},
"extension_replay": {
"before": 361464,
"after": 361464,
"sha256": "dec9db62a52a8bac5f1e2675aecbeb4239f2b1f4fa521db01693c32bdfeef01e",
"extension": true,
"previous_snapshot": "6a9c820c73a8c535ed3cdfc03db0311edf0300f1f97ade75f0fce3d3c84a02e1",
"publication": false,
"database": "proactive_investment_20261027_test",
"port": 55441
}
},
"proactive_delta": "private authenticated territory query,CAE sector/activity filters,pagination,source/row/date/hash;select existing observations,compare competition/complementarity/possible partner/uncertain with rationale and limitations;server resolves source lineage,keeps list-derived evidence internal;save/reload and private dossier preserve references",
"gurue": {
"date": "2026-10-28",
"QA_only": true,
"operator": 1021,
"record_id": 402,
"dossier_id": "883c8ec3-59a3-4074-b91c-b7d4a5d88ff0",
"prior_version": 1,
"offer_query_total": 410,
"selected_source_records": 2,
"comparison_relationships": [
"competition",
"complementarity"
],
"existing_five_evidences_preserved": true,
"total_evidence": 7,
"idea_preserved": true,
"need": "hypothesis",
"empty_results": "insufficient_information",
"save_reload_recovered": true,
"existing_dossier_preview_confirm_replay": true,
"anonymous_internal_query_denied": true,
"no_publication": true,
"no_external_contacts": true,
"errors": [],
"source_version": 2,
"context_revision": 2,
"deliberate_dossier_title_and_fields_preserved": true,
"prior_source_v1_history_retained": true,
"songo_401_unchanged": true,
"refreshed_offer_query_total": 435,
"initial_browser_proof_retained": true,
"dossier_comparisons_visible": {
"existing_dossier_comparison_1_visible": true,
"existing_dossier_comparison_2_visible": true,
"read_only_after_commit": true,
"errors": []
}
},
"verification": {
"delta_tests": 7,
"assertions": 62,
"types": "passed",
"QA_build": "passed",
"accepted_prior_proofs": "reused;no fiscal suites repeated",
"browser": "authenticated synthetic operator1021,real supplied source rows,save/reload,existing dossier preview-confirm-replay;not team acceptance",
"preservation": {
"opportunities": {
"baseline_rows": 55,
"new_rows": 0,
"expected_changes": [
"402"
]
},
"desk_cases": {
"baseline_rows": 20,
"new_rows": 0,
"expected_changes": [
"883c8ec3-59a3-4074-b91c-b7d4a5d88ff0"
]
},
"projects": {
"baseline_rows": 19,
"new_rows": 0,
"expected_changes": []
},
"geo_locations": {
"baseline_rows": 1921,
"new_rows": 0,
"expected_changes": []
},
"sectors": {
"baseline_rows": 12,
"new_rows": 0,
"expected_changes": []
},
"documents": {
"baseline_rows": 64,
"new_rows": 0,
"expected_changes": []
},
"value_chains": {
"baseline_rows": 0,
"new_rows": 0,
"expected_changes": []
}
}
},
"remaining": [
"No installation or import in active portal;there the list-backed use remains not demonstrated until delivery.",
"205608 observations lack a unique canonical territorial match,including19 ambiguous names;336 have province only. Raw source territory remains available in private originals.",
"82864 observations lack an exact supplied CAE activity label;do not impute sector/activity.",
"113880 observations have differing names for a shared valid-shaped identifier;identity needs reconciliation,not automatic merger.",
"Historical administrative records do not establish current operating status,capacity,prices,demand,contracts or market vacancy.",
"National mapping/classification completeness and actual team use remain partial;Gurué proof does not close all market-study/cluster requirements.",
"Active delivery requires capability/compatibility review,fresh backup+restore,authenticated operation and installed delta check through the existing Git procedure."
],
"restriction_origins": {
"internal_analysis_no_auto_publication_no_absence_inference": "explicit Tempo task",
"preservation_QA_active_separation_backup_restore": "permanent AGENTS instructions",
"canonical_unique_matching_hashed_keys_query_limits_RLS": "implementation choices,not new organizational approval requirements"
},
"proof_files": [
"outputs/proactive-supply-20261028/gurue-ui-proof.json",
"outputs/proactive-supply-20261028/preservation-proof.json",
"outputs/proactive-supply-20261028/tests-receipt.json",
"outputs/proactive-supply-20261028/dossier-visual-proof.json",
"outputs/proactive-supply-20261028/supply-extension-preservation.json",
"outputs/proactive-supply-20261028/refreshed-gurue-query.json"
],
"L8": "unchanged,partial;this increment has no fiscal calculation change",
"supplement": {
"previous_snapshot_records": 343041,
"added_unnamed_source_rows": 18423,
"placeholder": "Denominação não indicada;never the personal applicant name",
"all_previous_observations_unchanged": {
"old_observations_unchanged": 343041,
"new_observations": 18423
},
"preview_both_hashes_bound": {
"previous_observations_unchanged": 343041,
"new_observations": 18423,
"no_replacement": true,
"previous_sha256": "6a9c820c73a8c535ed3cdfc03db0311edf0300f1f97ade75f0fce3d3c84a02e1",
"sha256": "dec9db62a52a8bac5f1e2675aecbeb4239f2b1f4fa521db01693c32bdfeef01e"
},
"original_source_rows_accounted_for": "148556 companies+212631 licensed nonempty data rows,excluding headers;277 tourism establishment sightings from two structures"
}
}
@@ -0,0 +1,28 @@
# Entrega controlada da base comparativa interna
A entrega inclui o candidato QA `a022ed98`. As sete provas dirigidas/62 asserções, tipos, compilação e percurso de Gurué continuam aceites. O delta de entrega acrescenta o carregador técnico e impede que a API grave uma repetição preservada como outra comparação; este último delta tem uma prova dirigida própria, sem repetir a suite anterior.
361.464 é o número de observações administrativas, incluindo 147.165 repetições preservadas. As 214.299 projecções distintas também **não** são empresas únicas. A consulta exclui `duplicate_of` das contagens e dos resultados; a gravação recusa repetições como comparações adicionais. A cobertura nacional é parcial. Ausência de resultados significa informação insuficiente. A comparação fundamenta uma hipótese e não confirma procura, capacidade actual, contrato ou viabilidade.
## Sequência da entrega
1. Conferir `main`, a revisão servida, ausência de deriva do código e capacidade. A base da entrega é `569a1cd7`; não usar force-push nem substituir alterações posteriores.
2. Criar backup novo de base e ficheiros/configuração. Preservar os backups anteriores. Restaurar numa instância isolada, sem rede e na porta55441, e comparar as174 tabelas públicas do inventário.
3. Ensaiar o SQL da migração exacta, o carregamento e a sua repetição. Conferir que as174 tabelas anteriores não mudam. Verificar a conta real da aplicação: sem contexto de actor não lê a base; com o contexto autorizado recupera435 observações distintas em Gurué e conserva237 repetições fora dessa contagem. Não criar utilizadores, organizações ou dossiers fictícios no activo.
4. Conferir também backup/restauro das duas novas tabelas, incluindo RLS forçada. Registar espaço efectivamente ocupado pelo ensaio e voltar a conferir capacidade antes da instalação.
5. Na sessão SSH autenticada do processo existente, aplicar a migração delimitada e registar uma linha de migração. Conceder apenas leitura nas duas tabelas à conta de aplicação já existente. Carregar o pacote privado em transacção, com hashes e contagens fixos, recusa de conflitos e sem sobrescrever observações. Não publicar listas nem criar anúncios, clientes confirmados ou promotores.
6. Acrescentar apenas o hash dessa migração ao contrato de schema do instalador. Conservar os90 hashes anteriores e o próprio programa do instalador. Este passo é necessário porque o processo Git não executa migrações ou importações de conteúdo automaticamente.
7. Fazer a entrega normal por Git/`main`, mantendo a construção isolada e as guardas habituais do instalador. As provas funcionais aceites são reutilizadas; a CI habitual do instalador permanece.
8. Conferir revisão pública, hashes do código, schema e permissões esperados, ficheiros/configuração e linhas anteriores, separando a nova linha de migração e o delta operacional de cache/sessões. Conferir negação de acesso anónimo e consulta autorizada de Gurué. A conferência visual autenticada no portal é distinta do inventário técnico por SSH.
## Carregador
`tools/load-proactive-supply.py` usa pré-visualização por omissão. Exige o pacote privado com `import-manifest.json`, `preview.json`, `scan.json`, `schema.sql` e `observations.jsonl.gz`. O JSONL aceite tem SHA256 `dec9db62a52a8bac5f1e2675aecbeb4239f2b1f4fa521db01693c32bdfeef01e`. Os quatro originais e as datas são os aceites em QA; não se pede nova validação genérica da sua origem.
O modo `rehearsal` exige container sem rede/portas publicadas e a identidade efectiva `proactive_supply_delivery_20261028_test:55441`. O modo `apply` exige a sessão técnica SSH, a identidade `teste_investidor:5432`, revisão esperada e backup/restauro verificado. A preparação e os recibos ficam privados em `/var/backups/investmoz-proactive-supply-delivery-20261028`, fora da área servida. O carregador não cria schema no activo, não publica dados e não apaga ou substitui registos. A tabela temporária é indexada antes de conferir a linhagem de duplicações.
## Preservação e recuo
Se uma conferência divergir, preservar os exemplares e delimitar a diferença antes de agir. Recuar código não autoriza apagar a base privada ou o seu histórico. A migração recusa `down` enquanto existirem fontes carregadas. Um restauro integral nunca deve sobrescrever intervenções posteriores sem reconciliação; os originais e o pacote privado permitem recuperar o catálogo separadamente. As duas novas tabelas e o único registo de migração são o delta de schema/dados previsto; não alterar papéis de funcionários ou permissões anteriores.
As restrições de análise interna, preservação, não duplicação, não publicação e separação QA/activo vêm das decisões expressas da Tempo e do `AGENTS.md`. Identidades exactas, hashes, limites técnicos, indexação temporária e contratos são escolhas de implementação, não novas exigências organizacionais. O incremento não fecha os requisitos nacionais amplos e não altera L8, que permanece parcial.
@@ -0,0 +1,412 @@
{
"date": "2026-10-28",
"status": "installed_technical_delta_verified_authenticated_visual_conference_pending",
"served_commit": "6d1476936920dc5715d4493b1f8b22a3d51935f4",
"accepted_QA_candidate": "a022ed9848b41ba342b4209414c2bbf2ebd0a7a3",
"previous_runtime": "569a1cd750f3d2a0b87f130e992e73e070bbd1ab",
"normal_Git_fast_forward": true,
"force_used": false,
"original_QA_and_history_preserved": true,
"scope": "private comparative supply base integrated into existing proactive journey;not automatic public directory",
"counts": {
"administrative_observations": 361464,
"repetitions_preserved": 147165,
"distinct_administrative_projections": 214299,
"unique_companies": null,
"Gurué_distinct_observations": 435,
"Gurué_repetitions_excluded": 237,
"comparison_API_rejects_preserved_duplicate_as_another_comparison": true
},
"limits": {
"national_coverage": "partial",
"missing_records": "insufficient information;never proof of absent supply",
"investment_conclusion": "hypothesis only;no automatic proof of demand,capacity,contracts or viability",
"unmapped_territory": 205608,
"province_only": 336,
"activity_unclassified": 82864,
"shared_identifier_name_conflicts": 113880,
"unnamed_observations_preserved": 18423
},
"backup": {
"stage": "/var/backups/investmoz-proactive-supply-delivery-20261028/backup-install",
"created_at": "2026-10-28T17:10:23Z",
"target": {
"database": "teste_investidor",
"port": 5432
},
"tables": 174,
"files_verified": 369,
"dump_sha256": "1a0bc3767062633ba35afe1308c7f29ef441a01dba35551534ed1eef9e8e8509",
"files_sha256": "e622cdd04a252740ad1d0c626a9de32aaf1e71f3c986591cdbd94bafd314a1d7",
"restore_verified": false
},
"backup_restore_rehearsal": {
"restore_verified": true,
"tables_verified": 174,
"container_network": "none",
"database": "proactive_supply_delivery_20261028_test",
"port": 55441,
"source_dump_sha256": "1a0bc3767062633ba35afe1308c7f29ef441a01dba35551534ed1eef9e8e8509",
"active_database_writes": 0,
"private_import_first": {
"candidate": "a022ed9848b41ba342b4209414c2bbf2ebd0a7a3",
"records": 361464,
"source_counts": {
"1ba4c4114b16b407e7746712d00d4f681246bbbc1b42351e96a31f7129acad30": 148556,
"1b5087b464e39e88c42def39655c2391aaaf684b4c832d6a77ff274b98889f00": 212631,
"f02e086ed4973ef17234aa6cc54b98fbb7a6952ffb16ec4dc4f7d0c72af6400c": 277,
"83b4f1200988e99834c2ae3915346fbf237d128308554b67b5a080d4956bf506": 0
},
"raw_sha256": "dec9db62a52a8bac5f1e2675aecbeb4239f2b1f4fa521db01693c32bdfeef01e",
"sql_bytes": 201634556,
"mode": "rehearsal",
"unique_company_count": null,
"duplicate_suppression": "WHERE duplicate_of IS NULL;retained administrative sightings do not count as separate offers",
"national_coverage": "partial",
"investment_conclusion": "hypothesis only;does not prove demand or viability",
"database": "proactive_supply_delivery_20261028_test|55441",
"before": 0,
"after": {
"records": 361464,
"distinct_observations": 214299,
"repeated_projections": 147165,
"not_unique_companies": true,
"published": false
},
"idempotent_no_overwrite": true,
"active_existing_business_data_touched": false
},
"private_import_replay": {
"candidate": "a022ed9848b41ba342b4209414c2bbf2ebd0a7a3",
"records": 361464,
"source_counts": {
"1ba4c4114b16b407e7746712d00d4f681246bbbc1b42351e96a31f7129acad30": 148556,
"1b5087b464e39e88c42def39655c2391aaaf684b4c832d6a77ff274b98889f00": 212631,
"f02e086ed4973ef17234aa6cc54b98fbb7a6952ffb16ec4dc4f7d0c72af6400c": 277,
"83b4f1200988e99834c2ae3915346fbf237d128308554b67b5a080d4956bf506": 0
},
"raw_sha256": "dec9db62a52a8bac5f1e2675aecbeb4239f2b1f4fa521db01693c32bdfeef01e",
"sql_bytes": 201634556,
"mode": "rehearsal",
"unique_company_count": null,
"duplicate_suppression": "WHERE duplicate_of IS NULL;retained administrative sightings do not count as separate offers",
"national_coverage": "partial",
"investment_conclusion": "hypothesis only;does not prove demand or viability",
"database": "proactive_supply_delivery_20261028_test|55441",
"before": 361464,
"after": {
"records": 361464,
"distinct_observations": 214299,
"repeated_projections": 147165,
"not_unique_companies": true,
"published": false
},
"idempotent_no_overwrite": true,
"active_existing_business_data_touched": false
},
"baseline_public_tables_unchanged_after_import": 174,
"actual_application_role": "teste_investidor_app",
"RLS_without_actor_rows": 0,
"Gurue": {
"observations": 435,
"retained_repetitions": 237,
"not_unique_companies": true
},
"storage": {
"private_relations_bytes": 344399872,
"database_bytes": 409070739
},
"catalogue_backup_restore": {
"verified": true,
"sha256": "7ebb8791d5871bb4752a3e6e964a398c0f8fc094a10aab0e33aaee202dfc62d3",
"rows": 361464,
"forced_RLS_tables": 2,
"row_checksum": "9f9773492aa45f498201ff791726004a"
},
"import_and_replay_seconds": 67.3371156482026,
"no_application_users_or_dossiers_created": true,
"no_publication": true,
"active_data_writes": 0
},
"private_base_load": {
"at": "2026-10-28T17:14:46.618843+00:00",
"baseline": "569a1cd750f3d2a0b87f130e992e73e070bbd1ab",
"private_schema_created": 2,
"new_migration_registry_rows": 1,
"new_grants": "SELECT only on the two new private tables to the existing application role;no employee assignment or public grant",
"import": {
"candidate": "a022ed9848b41ba342b4209414c2bbf2ebd0a7a3",
"records": 361464,
"source_counts": {
"1ba4c4114b16b407e7746712d00d4f681246bbbc1b42351e96a31f7129acad30": 148556,
"1b5087b464e39e88c42def39655c2391aaaf684b4c832d6a77ff274b98889f00": 212631,
"f02e086ed4973ef17234aa6cc54b98fbb7a6952ffb16ec4dc4f7d0c72af6400c": 277,
"83b4f1200988e99834c2ae3915346fbf237d128308554b67b5a080d4956bf506": 0
},
"raw_sha256": "dec9db62a52a8bac5f1e2675aecbeb4239f2b1f4fa521db01693c32bdfeef01e",
"sql_bytes": 201634556,
"mode": "apply",
"unique_company_count": null,
"duplicate_suppression": "WHERE duplicate_of IS NULL;retained administrative sightings do not count as separate offers",
"national_coverage": "partial",
"investment_conclusion": "hypothesis only;does not prove demand or viability",
"database": "teste_investidor|5432",
"before": 0,
"after": {
"records": 361464,
"distinct_observations": 214299,
"repeated_projections": 147165,
"not_unique_companies": true,
"published": false
},
"idempotent_no_overwrite": true,
"active_existing_business_data_touched": false
},
"schema_contract_delta": "one reviewed migration appended;all90 previous entries unchanged",
"pipeline_script_unchanged": true,
"publication": false,
"code_installation_pending": true,
"backup_dump_sha256": "1a0bc3767062633ba35afe1308c7f29ef441a01dba35551534ed1eef9e8e8509"
},
"capacity": {
"at": "2026-10-28T17:13:59.594789+00:00",
"volumes": [
{
"path": "/var/www/investmoz-homologacao/releases",
"free_bytes": 86519189504,
"free_inodes": 23490190
},
{
"path": "/var/lib/investmoz-deploy",
"free_bytes": 86519189504,
"free_inodes": 23490190
},
{
"path": "/var/backups",
"free_bytes": 86519189504,
"free_inodes": 23490190
},
{
"path": "/tmp",
"free_bytes": 86519189504,
"free_inodes": 23490190
},
{
"path": "/var/lib/docker",
"free_bytes": 86519189504,
"free_inodes": 23490190
}
],
"required_budget_bytes": 6259143420,
"budget_basis": "existing5GiB build guard+twice measured private relations+measured SQL staging;already-created backups/stages included in actual free space",
"backup_sha256": "1a0bc3767062633ba35afe1308c7f29ef441a01dba35551534ed1eef9e8e8509",
"backup_restore_verified": true,
"active_writes": 0
},
"installed_delta": {
"at": "2026-10-28T17:22:03.023596+00:00",
"served_commit": "6d1476936920dc5715d4493b1f8b22a3d51935f4",
"backup_dump_sha256": "1a0bc3767062633ba35afe1308c7f29ef441a01dba35551534ed1eef9e8e8509",
"prior_public_tables_checked": 174,
"prior_domain_rows_preserved": true,
"new_migration_registry_rows": 1,
"operational_delta": {
"cache": {
"before": {
"rows": 111,
"checksum": "a9dc6868205af2190cee2d2787ee8b66"
},
"after": {
"rows": 111,
"checksum": "08c098b3fde0052afa05aae647d18c5f"
}
},
"sessions": {
"before": {
"rows": 7,
"checksum": "ef549836d7a2e0549b1a32f1627c83f4"
},
"after": {
"rows": 8,
"checksum": "4a8b547e0552be4da65bcb97d3851a49"
}
}
},
"persistent_files_and_configuration_identical": 369,
"private_catalogue": {
"observations": 361464,
"distinct_administrative_observations": 214299,
"preserved_repetitions": 147165,
"unmapped_territory": 205608
},
"Gurue": {
"observations": 435,
"repetitions": 237
},
"RLS_without_actor_rows": 0,
"anonymous_query_status": 401,
"public_revision_confirmed": true,
"actual_team_UI_journey": "pending authenticated browser conference;accepted QA is not repeated",
"unique_company_count": null,
"publication": false,
"national_coverage": "partial",
"investment_conclusion": "hypothesis,not proved demand or viability",
"L8": "unchanged,partial"
},
"application_consumer": {
"installed_application_service_read": true,
"existing_actor_passes_existing_profile_authorization": true,
"application_database_identity": {
"database": "teste_investidor",
"role": "teste_investidor_app",
"port": 5432
},
"observations": 435,
"preserved_repetitions_excluded": 237,
"empty_results": "Informação insuficiente nesta base e nestes filtros.",
"source_metadata_present": true,
"no_new_actor_grant_or_record": true,
"read_only": true,
"proof_kind": "technical CLI consumer,not authenticated team browser acceptance"
},
"operational_delta": {
"status": "operational_delta_reconciled",
"comparison_identity": "postgres before/after;isolated restored baseline;no RLS visibility inference",
"cache": "queue:restart;requestthrottle;identical home-sector cached value with refreshed expiry(HomeController remember10min);no deletedcache",
"sessions": "anonymous sessions from delivery user-agent or exactUA/time correlated with nginx public request;deleted sessions individually expired beyond configured lifetime,normal database session garbage collection(config/session lottery2/100)",
"delta": {
"cache": {
"before_rows": 111,
"after_rows": 111,
"changes": [
{
"key_sha256": "7f7dd83f47f5bf404d55e6e9f1367948721579970b195680645e356031a070ff",
"kind": "updated",
"fields": [
"value",
"expiration"
],
"key_pattern": "investemoz-cache-illuminate:queue:restart",
"is_queue_restart_key": true,
"expiration_unchanged": false,
"throttle_timer_pair": false,
"same_value_home_cache_expiry_refresh": false
}
]
},
"sessions": {
"before_rows": 7,
"after_rows": 9,
"changes": [
{
"key_sha256": "5cb21cc6c5f36834d39f2aa929d2272b65358654155858bae027abe4ccdf5c4e",
"kind": "added",
"fields": [
"id",
"ip_address",
"user_agent",
"payload",
"last_activity"
],
"anonymous_user": true,
"delivery_user_agent": true,
"expired_before_comparison": false,
"session_lifetime_minutes": 120,
"anonymous_public_request_logged": true
},
{
"key_sha256": "6fa8f1e07be4cea4d35b9ee67f1e480f35baac9228f33c5161f24e2aac5e33f2",
"kind": "added",
"fields": [
"id",
"ip_address",
"user_agent",
"payload",
"last_activity"
],
"anonymous_user": true,
"delivery_user_agent": true,
"expired_before_comparison": false,
"session_lifetime_minutes": 120,
"anonymous_public_request_logged": true
}
]
}
},
"business_tables_to_confirm_separately": 172,
"active_data_writes_by_comparison": 0,
"restore_network": "none"
},
"installer_and_catalogue_backup": {
"at": "2026-10-28T17:24:41.602671+00:00",
"installed_commit": "6d1476936920dc5715d4493b1f8b22a3d51935f4",
"previous_release_preserved": "/var/www/investmoz-homologacao/releases/569a1cd750f3d2a0b87f130e992e73e070bbd1ab-53a57d6f",
"installer_CI": [
"\u001b[30;42mOK (1 test, 3106 assertions)\u001b[0m",
"✓ built in 31.30s",
"\u001b[30;42mOK (59 tests, 317 assertions)\u001b[0m",
"# tests 1146",
"# pass 1146",
"# fail 0"
],
"accepted_QA_reused": {
"tests": 7,
"assertions": 62,
"Gurue_browser_proof": "accepted earlier;not repeated as a prerequisite"
},
"delivery_delta_test": {
"tests": 1,
"assertions": 2,
"scope": "repeated source sightings cannot inflate saved comparisons"
},
"installed_private_catalogue_backup": {
"path": "/var/backups/investmoz-proactive-supply-delivery-20261028/catalogue-installed.dump",
"bytes": 63461920,
"sha256": "18f71d0ad72aae9645a6101c6388c4d7f481e56ef2d41dc64241245314e85d55",
"read_grants_and_RLS_in_dump": true
},
"existing_pipeline_script_sha256": "adec1c17654f3a8658b83b134f1e75f95391b235738552721906c3236e388604",
"code_branch": "main",
"forced_push": false,
"automatic_publication": false
},
"schema_and_access": "two new private tables,forced RLS,one migration registry row;SELECT only to existing application database role;no employee-role assignments changed;ninety earlier migration hashes preserved and one appended to the existing installer contract;installer program unchanged",
"accepted_proofs_reused": {
"QA_tests": 7,
"QA_assertions": 62,
"Gurue_saved_reload_dossier_chain": "accepted earlier in isolated QA;not falsely presented as new team acceptance"
},
"delivery_delta_test": {
"tests": 1,
"assertions": 2,
"reason": "explicit non-inflation requirement;reject a preserved repeated observation as another saved comparison"
},
"visual_conference": {
"status": "pending",
"known_blocker": "The browser access host is unavailable",
"technical_consumer_is_not_team_UI_acceptance": true,
"manual_remaining": "Gurué → consultar oferta → comparar ideia → guardar → recuperar no mesmo dossier,com fontes,datas e incertezas;435 observações,não empresas únicas;listas internas,cobertura parcial e hipótese preservadas.",
"blocker_history": [
"Windows Computer Use could not determine the current browser URL with enough confidence to enforce policy"
],
"mechanism": "Browser access connector host unavailable;opening a tab alone does not restore the connector. No documented host-restart operation is exposed in the available browser control API.",
"next_action": "Restabelecer o conector por mecanismo suportado ou receber conferência autenticada da equipa;nenhuma reinstalação ou repetição das provas técnicas aceites."
},
"preservation": "prior domain rows unchanged;369 persistent files/configuration identical;only intended migration row and new private base added;queue restart and2anonymous delivery sessions reconciled separately;no QA user,organisation,opportunity or dossier copied to active",
"publication": false,
"L8": "unchanged,partial;no fiscal code or calculation delta",
"remote_receipts_root": "/var/backups/investmoz-proactive-supply-delivery-20261028",
"local_proofs": "C:\\laragon\\www\\portal-investidor\\outputs\\proactive-supply-delivery-20261028",
"restriction_origins": {
"private_analysis_no_auto_publication_no_false_market_vacancy_no_duplicate_inflation": "explicit Tempo decisions",
"backup_restore_QA_isolation_preservation": "AGENTS.md",
"exact_hashes_temporary_index_database_identity_contract": "technical implementation choices;not new organisational approvals"
},
"documentation_correction": {
"date": "2026-10-28",
"origin": "explicit Tempo correction",
"installed_revision_unchanged": "6d147693",
"previous_remote_receipt_preserved_sha256": "2e306482a2dc4aea79acd77239309a3307950eddbbd9ea77db9c7f28c47d2110",
"scope": "documentation only;no active write,no reinstall,no repeated technical tests"
}
}
@@ -0,0 +1,92 @@
{
"public_baseline": [
{
"first_page_ids": [
64,
63,
62,
61,
60
],
"path": "/api/v1/investment/search?sector=agronegocio\u0026province_id=bfde2651-2b46-5d9c-a500-733fa55a8c5c",
"total": 5
},
{
"first_page_ids": [
],
"path": "/api/v1/investment/search?sector=agronegocio\u0026province=Maputo%20Prov%C3%ADncia",
"total": 0
},
{
"first_page_ids": [
],
"path": "/api/v1/opportunities/search?sector=agronegocio\u0026province=Maputo%20Prov%C3%ADncia",
"total": 0
},
{
"first_page_ids": [
62,
63,
64,
60,
61,
49,
50,
55,
58,
56,
52,
48
],
"path": "/api/v1/opportunities/search?sector=agronegocio\u0026province_id=bfde2651-2b46-5d9c-a500-733fa55a8c5c",
"total": 34
}
],
"branch": "codex/province-search-20261029",
"data_writes": 0,
"authentication": {
"automatic_console_launch": "rejected by automatic approval review: blocked by policy; no specific reason supplied",
"manual_helper": "outputs/province-search-20261029/ssh-session.py",
"session": "closed"
},
"installed": "b81f477bf2385227ed3099868e80b1e3c7bcb46b",
"cause": "Legacy text province uses exact opportunity field comparison; legacy search ignores canonical province_id; canonical province filtering already expands descendants",
"remaining": [
"fresh backup and isolated restore",
"existing Git installation pipeline",
"installed public API confirmation"
],
"visual_competitiveness": "pending direct execution and record by team; accepted proofs preserved",
"schema_changes": 0,
"status": "specific_HTTP_QA_passed_not_installed",
"change": "Resolve a public, unique exact province name to the existing hierarchy; constrain legacy API by the same published catalogue territorial query; include declared province-only legacy records only without contradictory primary/additional territories",
"candidate": "b2812e5925d27f46cf97f94da17fd64d41747c6f",
"browser_bridge": "diagnosed separately; URL read not restored; outputs/edge-bridge-diagnostic-20261029/report.json",
"checks": {
"specific_HTTP_tests_run": 4,
"diff": "passed",
"specific_HTTP_tests_planned": 4,
"PHP_syntax": "passed",
"specific_HTTP_assertions": 364
},
"source_sha256": {
"app/Services/InvestmentCatalogue.php": "731091c7c754aaf40a7235c405869134523de1fef431e686a94a1d1b3d1e9fd9",
"app/Services/InvestmentGeography.php": "9815835078fe625031d795e3fda83b4af0fc1a0d18af6e8ce9fd2d3f8e535c72",
"tests/Feature/ProvinceSearchCompatibilityTest.php": "b0164154b6f08c624dcd81425f145c2fc2770a595f04c7917858c30b26049279",
"app/Http/Controllers/Api/V1/OpportunityController.php": "69a873a429e3510d5fd6691b58d825cf877274f6cd7d1303aa8029555680bb92"
},
"tested_candidate": "e0987afb0e2722300eeb0d50e8797b07fb53853a",
"QA": {
"candidate": "e0987afb0e2722300eeb0d50e8797b07fb53853a",
"status": "passed",
"database": "province_search_20261029_test",
"port": 55441,
"snapshot_restored": true,
"active_database_writes": 0,
"schema_changes": 0,
"log": "/var/lib/investmoz-deploy/province-search-qa-20261029/qa-e0987afb0e2722300eeb0d50e8797b07fb53853a.log",
"summary": "PHPUnit 12.5.34 by Sebastian Bergmann and contributors.\n\nRuntime: PHP 8.4.27\nConfiguration: /var/lib/investmoz-deploy/province-search-qa-20261029/e0987afb0e2722300eeb0d50e8797b07fb53853a-1793279039249452598/phpunit.xml\n\n.... 4 / 4 (100%)\n\nTime: 00:10.928, Memory: 60.50 MB\n\n\u001b[30;42mOK (4 tests, 364 assertions)\u001b[0m\n"
}
}
@@ -7105,24 +7105,282 @@ L8 permanece parcial. A avaliação real do percurso proactivo continua a aguard
**L8 permanece parcial.** Crédito internacional apenas emQA; PEC instalado em`e182d1d7` mantém o âmbito demonstrado. Songo eGurué privados; L3,ISPC,câmbio,L5–L7 eSGFTEMPO preservados. Avaliação de utilização do percurso proactivo continua a aguardar retorno da equipa. Sem instalação, publicação ou nova estimativa global nesta passagem.
## 29/10/2026 — ergonomia do catálogo: inventário antes da verificação
## 27/10/2026 — Crédito internacional corrente entregue pelo Git
Origem: pedido expresso da Tempo para analisar alternativas e reorganizar a página sem alterar conteúdos. Escolha de implementação: painel lateral no computador, filtros expansíveis no móvel, grupos por finalidade e cartões com hierarquia visual; corredores, clusters e projectos âncora agrupados em secções expansíveis. Não introduz regra organizacional. Alternativas ponderadas: formulário integral no topo conserva o bloqueio vertical; janela sobreposta afasta o contexto dos resultados; painel responsivo permite consulta lado a lado e mantém os campos montados ao recolher.
**Instalado e conferido em `838ad941a24ae76ec4bf91ccc3f92012668fe8cf`**, sobre o PEC instalado`e182d1d7`, preservando a correcção dos sectores`669cb897`. A candidata é a própria revisãoQA aceite`838ad941`, sem alteração funcional na preparação; integração normal em`main`, sem sobrescrever outro trabalho. Os registosQA anteriores são históricos: este recorte deixa de estar pendente de instalação. Não encerra L8 ou o IRPC.
Inventário do concluído consultado antes de nova ronda: selectores públicos independentes dos resultados e provas 22/10; agronegócio e escolha múltipla/dossier 23/10; vista por corredor e percurso proactivo 27/10; registos de reposição territorial e carteira mantidos. Preservar pesquisa combinada AND, filtros simples/avançados e geográficos, classificação histórica, montantes/moedas sem conversão, estados/erros, cinco vistas, CSV, favoritos/pedidos, comparação, escolha para investimento, paginação, guias e todas as fichas territoriais. Não existe eliminação funcional confirmada neste delta de código; não se infere disponibilidade activa pela apresentação local. O título dos resultados e o aviso provincial fornecidos no pedido estavam ausentes no componente local e são recuperados textualmente.
**Delta instalado:**5ficheiros de aplicação — detalhe internacional, projecção dos códigos do catálogo de países existente e integração no saldo anual. Todos idênticos à QA. Conferidas1002fontes antes/1005depois comGit; restantes fontes comparadas conservadas, incluindoPEC,L3,ISPC,câmbio,L5–L7,sectores,catálogoISO,rotas e configuração. Sem novas permissões,migrations ou importações. Fixtures sintéticas apenas no código de testes; não importadas para dados activos nem publicadas. Songo eGurué permanecem privados; SGFTEMPO separado.
Comparação delimitada: só componentes de apresentação e CSS; schema, dados, configuração, fontes, relações e permissões sem alteração. Não se ligou à base activa nem se declarou perda por leitura sem actor. A candidata não modifica aceitação anterior ou limitações de outros incrementos. Matriz existente: RF-MN-010, RF-PII-003, RNF-EDU-008 e MASTER-471012ab-0124; sem nova matriz.
**Recorte:** residente geral,ano civil2026,MZN comprovados. Inclusão do rendimento,fracção nacional,aplicabilidade/limiteCDT e utilizações anteriores documentados. Menor entre imposto pago e limites aplicáveis,menos uso anterior e até à colecta,antesPEC/RF/PPC;sem concessão pela escolha do país,conversão/arredondamento fiscal ou transporte presumidos. Exemplo condicionado aos dados e suportes sintéticos demonstrados:1 408−8de crédito−200PEC−500PPC=**700MZN de saldo simulado a pagar**. Os2acima do limite de elegibilidade não são transporte; insuficiência de colecta fica separada. Caso com500a recuperar deriva doPPC,sem reembolso do crédito ouPEC. Informação em falta e prova duplicada deixam o saldo dependente indeterminado.
Verificação do delta por realizar: compilação/tipos, apresentação 320/390/768/1024/1440px, teclado, expansão sem perda de campos, vistas, conservação das acções/conteúdo e ausência de transbordo horizontal. Preparação local, sem instalação ou alteração de dados activos.
**Recuperação e preservação:** capacidade antes superior a85GiB e23,69milhões de inodes; mínimo existente do instalador5GiB mais backup confrontado com espaço real e novamente conferido após backup. Backup fresco`/var/backups/investmoz-irpc-l8-international-20261027/backup`,dumpSHA256`b1e9740653a8664c23268e228efd3ed6a0514bf3e8786dd5adf43342cdb475e1`;restauro174tabelas com contagens/checksums iguais em contentor sem rede,porta55441.369ficheiros persistentes/configuração e172tabelas de negócio intactos depois da instalação;schema,papéis,grants e permissões iguais. Cache/sessões operacionais reconciliados individualmente com o backup e pedidos públicos;nenhum registo de negócio ou sessão sobrescrito pelo comparador. Release anterior mantida até compilação/verificações e troca atómica;runtimeQA fora da árvore servida.
### Resultado do delta de apresentação — 29/10/2026
**Provas:** reutilizadas18novas+31anuais/PEC,API171asserções e7recuperações comHTML/dossier e históricos conservados. Sem nova ronda manual das funcionalidades não afectadas. Controlos automáticos obrigatórios do instalador:OK (1 test, 3106 assertions); ✓ built in 31.55s; OK (59 tests, 317 assertions); # tests 1110; # pass 1110; # fail 0;TypeScript/Wayfinder/build e guardas aprovados. Revisão pública e hash do manifest conferidos,HTTP200do simulador e6marcadores compilados do novo delta/PEC identificados. Não foram criados casosQA no portal.
Concluído localmente. TypeScript e build isolado aprovados, sem instalação. Navegador Chromium com a aplicação React compilada e respostas HTTP de prévia locais, sem base de dados nem pedidos externos:320/390/768/1024/1440px sem transbordo horizontal; campos expandidos cabem no painel em320/390/1024px. Conferidas integralmente as descrições e avisos territoriais dos12cartões da amostra em cada largura, teclado para expandir, erro de moeda, recolher/reabrir/recarregar sem perder pesquisa, selectores hierárquicos, escolha persistente para dossier, limite/comparação de4, cinco vistas e acesso às29fichas(6corredores,8clusters,15âncoras). Zero erros JavaScript. Capturas efectivamente inspeccionadas:1440/1024/390/320px, filtros expandidos390px e lista1440px.
**SaldoL8 preservado:** derivação automática da fracção nacional/CDT específicas;créditos económicos/CBF;utilização interanual/transporte/caducidade próprios;obrigação/calendárioPPC/PEC;autónomos,períodos especiais,moedas eM20/M22 conforme dependências já discriminadas. Excedente/transportePEC fora do âmbito entregue. Informação de inclusão/CDT/prova/titular/uso bloqueia apenas o caso dependente. As condições concretas de retoma mantêm-se no saldo curtoQA anterior;sem repetir pesquisas ou exigir nova autenticação de fontes oficiais aceites.
Comparação estrutural:33blocos preexistentes de lógica da página e5auxiliares dos filtros preservados; JSX/callbacks revistos no delta e nas interacções acima. Os avisos de ausência, a consulta pública e as ligações anteriores mantêm-se. Favoritos autenticados, backend de pesquisa/mapa, guias e permissões conservam os contratos/provas anteriores; esta prévia não é nova demonstração desses serviços nem da disponibilidade activa. Mapa exercitado com ausência explícita de coordenadas, sem criar pontos.
Recibo:`docs/investmoz/simulations/irpc-l8-international-credit-delivery-20261027.json`. Cópia remota:`/var/backups/investmoz-irpc-l8-international-20261027/installed-receipt.json`,SHA256`d80324b898fd160ab3e7a2fd0b11ea2decd0b99a9324255850062ee4a13e0f0f`. Provas locais:`outputs/irpc-l8-international-delivery-20261027/`. Resolvida a colisão local`inspect.py`→`remote_delivery_inspection.py`;módulo padrão/Paramiko verificados no mesmoPython,guardaLinux/geteuid mantida,sem alteração de credenciais ou do servidor por essa correcção. A avaliação real do percurso proactivo continua dependente do retorno da equipa. **L8 permanece parcial.**
Recibo:docs/investmoz/unification/catalogue-layout-qa-20261029.json. Evidência local:outputs/catalogue-layout-20261029/. Nenhuma redução funcional pretendida; todas as fichas estão nos grupos expansíveis. Sem publicação, dados alterados, migrações, configuração ou permissões novas. Não encerra os critérios globais das quatro linhas da matriz.
Ajuste solicitado pela Tempo em29/10/2026: o controlo dos filtros avançados alterna entre “Mais filtros” (recolhido) e “Menos filtros” (aberto). O estado segue a abertura nativa da secção; os campos e escolhas continuam montados. Prova dirigida no componente React real em Chromium: clique/teclado, ambos os textos, valor editado e contagem conservados; sem errosJavaScript. Recibo local:outputs/catalogue-layout-20261029/toggle-receipt.json. Sem nova ronda global, instalação ou alteração de dados.
## 28/10/2026 — retoma de L8 e preservação antes do novo delta
Ajuste visual solicitado pela Tempo em29/10/2026: títulos, cabeçalhos, rótulos de grupos e conteúdo do catálogo em negrito apresentados em vermelho; os botões com fundo colorido mantêm texto legível. CSS validado por análise sintáctica; alteração local de apresentação, sem instalação.
28/10/2026: inventário prévio à QA dos saldos anteriores: internacional corrente838ad941, PECe182d1d7 e sectores669cb897 preservados na basecf4e0638; todos os ficheiros do acervo iguais por bytes. Diferença da pasta original é de ramo/ambiente, não perda confirmada. Sem leitura ou escrita de dados activos; recibos aceites reutilizados. Continuação emQA de65(3)/66, sem declarar L8 concluído.
Escolha técnica: novo worktree `portal-investidor-irpc-carry-qa-20261028`, ramo `codex/irpc-l8-carry-qa-20261028`, a partir de `cf4e0638`. Sem migrations, novas permissões ou alterações no activo. Nenhuma perda funcional confirmada nesta comparação de fontes; não se declara nova comparação de dados/schema/permissões no servidor. Songo/Gurué e a avaliação pela equipa conservam os estados anteriores.
## 28/10/2026 — saldos anteriores internacionais e PEC: delta QA concluído
Implementado e demonstrado em QA isolada, **sem instalação**. Base `cf4e0638`, com internacional `838ad941`, PEC `e182d1d7` e sectores `669cb897` preservados. A pasta original estava noutro ramo; isso não foi tratado como eliminação de funcionalidades. Recibo: `docs/investmoz/simulations/irpc-l8-carry-qa-20261028.json`.
Extensão opcional do livro anual existente: uma origem consolidada por natureza/país/exercício, apuramento e regra de origem documentados, elegível menos dedução inicial e utilizações efectivas subsequentes. Internacional: cinco exercícios seguintes; PEC: três. Origem2021 internacional e PEC2023 chegam a2026; origem2020 internacional/PEC2022 ficam fora do prazo ordinário, conservadas com explicação e saldo histórico. Não se converte imposto acima do limite em crédito transportável. Situações transitórias/especiais não são qualificadas pela regra ordinária.
Escolha expressa das parcelas correntes e anteriores, vinculada à colecta seleccionada, sem ordem FIFO imposta nem redução automática. A soma não ultrapassa a colecta e os créditos internacionais precedem o PEC. Valores não escolhidos ficam separados da insuficiência de colecta; simulações não criam nem consomem saldos oficiais. Exemplo sintético:1408−8corrente internacional−50anterior internacional−200PECcorrente−100PECanterior−500PPC=**550MZN a pagar, simulado**.
**Provas:**16novos+49afectados=65testes aprovados; API1teste/119asserções,6casos POST/PUT/GET na base guardada `proactive_investment_20261027_test`,loopback55441,com rollback. Seis recuperações recalculadas integralmente,HTML/dossier concordantes e resultados anteriores congelados.55oportunidades,64documentos,1vínculo,19rascunhos,40utilizadores,3organizações e409eventos anteriores preservados.31ficheiros do acervo byte a byte iguais,sem nova importação/publicação. TypeScript,build QA com exit0 ePint aprovados. Não foi feita nova prova manual de interface ou avaliação pela equipa. Sem migrations,grants,contas,alteração activa ou operações de servidor.
**Saldo concreto:**L8 continua parcial. Próximo incremento independente:crédito económico64,com gross-up53(1)a/exclusão40,qualificação dos lucros/pagador/beneficiário/imposto e limite proporcional correspondidos; fonte aceite já disponível. Permanecem fracção nacional/CDT automática,créditos/benefícios próprios,obrigação/calendárioPPC/PEC,autónomos,períodos especiais,outras moedas eM20/M22. Não declarar IRPC concluído nem repetir a validação das entregas independentes aceites.
## 28/10/2026 — crédito económico: preservação e limites antes do novo delta
28/10/2026, antes de novos ensaios: inventário preservado do internacional838ad941/PECe182d1d7/sectores669cb897 instalados e saldos anterioresd134a92d/6ededb59 emQA sem instalação. Novo ramo económico parte de6ededb59, agregável com o delta compatível, sem reapresentar a aprovação dos anteriores.31ficheiros do acervo iguais por bytes;nenhuma perda de fontes confirmada. Sem acesso ao activo nesta preparação;comparação de dados/schema/permissões do destino só na entrega autorizada.
CIRPC64(1–2)/53(1)a e40(1) na redacçãoLei20/2009 são correspondidos no próprio acervo aceite. Regra económica distinta da internacional65;na liquidação precede65/PEC (RIRPC21). Novo detalhe opcional,sem alterar resultados congelados ou sobrescrever deliberadamente o resumo económico anterior. Sem instalação/publicação.
## 28/10/2026 — crédito económico ordinário demonstrado em QA; agrupamento compatível
**Implementado e demonstrado em QA isolada, sem instalação.** Ramo `codex/irpc-l8-economic-qa-20261028`, base `6ededb59`, incluindo os saldos anteriores `d134a92d`. A última referência instalada documentada continua `838ad941`; não foi feita nova leitura do servidor. Não se reabre a aceitação dos históricos ou das provas anteriores.
**Cobertura:**CIRPC64(1–2),53(1)a,40(1)na redacção20/2009 eRIRPC21(2/5). Lucros ordinários distribuídos e IRPC correspondente documentados,beneficiário/distribuidor com sede/direcção efectiva emMoçambique,distribuidor sujeito/não isento,exclusão40(1)não aplicável com suporte. A selecção explícita da colecta corrente reutiliza NUIT/exercício/residência válidos e conserva edições divergentes. Novo detalhe opcional; resumo económico deliberado anterior e resultados congelados conservados.
**Cálculo:**60%doIRPCdocumentadamente correspondente aos lucros;confere o acréscimo53 já incluído emL6 e limita pela quota proporcional documentada,menos utilização efectiva anterior,até à colecta. O portal não deriva IRPC do dividendo líquido nem altera a base/colecta silenciosamente;inclusão/acréscimo e quota exigem correspondência do caso. A existência de perdas que reduzam a base abaixo dos lucros não é tratada como impedimento genérico. Crédito económico precede o internacional ePEC,sem reembolso ou transporte económico presumido. Exemplo sintético condicionado aos suportes:IRPC20→nominal12;1408−12−8internacional−200PEC−500PPC=**688MZN a pagar,simulado**.
**Mesma parcela:**identidade por emitente/documento/parcela com suporte;duplicação dos lucros também conferida independentemente de trocar o comprovativo de imposto,a data ou oID. O mesmo documento pode suportar parcelas de imposto distintas quando a separação estiver documentada em ambos os registos. Um comprovativo anterior sem parcela continua a abranger o documento inteiro,não se torna livre por receber novo nome noutro mapa. Atribuições anteriores e capacidade do comprovativo conferidas neste e noutros contextos do snapshot;divergências não são apagadas. ProtecçõesL5 conservadas. Não é reconciliação global de conta fiscal entre dossiers independentes.
**Agrupamento:**composição demonstrada com os saldos anteriores:1408−12económico−8internacionalcorrente−50internacionalanterior−200PECcorrente−100PECanterior−500PPC=**538MZN a pagar,simulado**. A prioridade económica não reduz automaticamente a afectação entre exercícios já escolhida;se exceder a colecta remanescente,o caso pede reconciliação conservando as escolhas. Os dois incrementos podem integrar uma entrega Git comum;nenhum foi instalado nesta passagem.
**Provas do delta:**20testes económicos novos+65afectados aceites=85aprovados;API1teste/210asserções,11casos POST/PUT/GET na base guardada `proactive_investment_20261027_test`,loopback55441,transacção com rollback. Onze recuperações recalculadas integralmente,HTML/dossier concordantes e históricos anteriores conservados.55oportunidades,64documentos,1vínculo,19rascunhos,40utilizadores,3organizações e409eventos anteriores intactos. TypeScript,build QA ePint aprovados.31ficheiros do acervo preservados por bytes,sem novas importações,publicações,scan declarado,migrations,contas ougrants. Não foi feita nova prova manual da interface nem avaliação pela equipa.
**Pendências concretas:**inclusão/correcção automática do dividendo/acréscimo emL6 e derivação da quota proporcional;exclusão40(1)na base com todas as suas condições;liquidação64(3)/associações64(4);créditos/benefícios específicos;fracção internacional/CDT automática;obrigação/calendárioPPC/PEC;autónomos,períodos especiais,outras moedas eM20/M22. Correspondências e parâmetros em falta afectam o caso dependente,sem revalidação genérica de fontes oficiais. Saldos anteriores mantêm o recorte ordinário já demonstrado. **L8 permanece parcial.** Recibo:`docs/investmoz/simulations/irpc-l8-economic-qa-20261028.json`.
Preservação delimitada:558ficheiros protegidos com conteúdo Git idêntico à baseQA;uma diferençaLF/CRLF em `docs/investmoz/simulations/irpc-l8-carry-qa-20261028.json` entre checkouts,conferida como normalização de ambiente,sem perda de conteúdo. Os31originais do acervo são iguais por bytes.
## 28/10/2026 — entrega agrupada de saldos anteriores e crédito económico pelo Git
**Instalado e conferido em `569a1cd750f3d2a0b87f130e992e73e070bbd1ab`**, sobre `838ad941`, por fast-forward normal em `main`,sem force. Foram entregues em conjunto os saldos anteriores `d134a92d` e o crédito económico ordinário `aae67c1`, já demonstrados emQA. Os estadosQA anteriores permanecem históricos;estes recortes deixam de estar pendentes de instalação. **L8 permanece parcial;esta entrega não fecha integralmente a liquidação anual.**
**Delta e preservação:**12ficheiros de aplicação,byte a byte correspondentes à candidata aceite;1005fontes antes e1011depois conferidas comGit. Demais fontes comparadas,PECcorrente,internacionalcorrente,sectores,L3/ISPC/câmbio/L5–L7,originais e contexto adaptativo preservados. Sem alterações de schema/configuração/rotas/grants,migrations ou importações de conteúdo. RuntimeQA conservado fora da árvore servida. Songo/Gurué permanecem privados eSGFTEMPO separado.
**Capacidade/recuperação:**82,71GiB e23,52milhões de inodes livres antes;capacidade novamente conferida após backup,com o mínimo existente do instalador e espaço real do backup. Backup fresco `2026-10-28T12:38:25Z` (14:38:25locais),em `/var/backups/investmoz-irpc-l8-grouped-20261028/backup`;dumpSHA256`007cd1851d5bd51a54265ab99a342d6a312de06ef642fc42b38b7a5e771d4d9a`. Restauro174tabelas com contagens/checksums iguais emcontentorsemrede/porta55441;369ficheiros/configuração conferidos. Depois da entrega:172tabelas de negócio e369ficheiros persistentes/configuração intactos;schema,papéis,grants epermissões iguais,identidades de comparação equivalentes. Delta operacional delimitado a `queue:restart` e2sessões anónimas do agente de entrega,correlacionadas com pedidos públicos;nenhum dado ou sessão sobrescrito para obter igualdade. Release anterior mantida até todos os controlos e troca atómica;manifest/revisão servidos confirmados.
**Provas reutilizadas e controlos da entrega:**85testes afectados/20económicos novos,API210asserções/11recuperações HTML/dossier e históricos aceites reutilizados;sem repetir avaliação manual de funcionalidades independentes. Instalador obrigatório:PostgreSQL1teste/3106asserções;Unit59/317;frontend1146aprovados/0falhas;TypeScript/Wayfinder/build aprovados (30,82s). SimuladorHTTP200 e8marcadores compilados dos saldos anteriores/económico/internacional/PEC conferidos. Não foram criados casosQA no portal e não se declara nova aceitação manual da equipa.
### Saldo concreto de L8 após a entrega
| Grupo | Cobertura entregue ou trabalho restante |
| --- | --- |
| Saldos anteriores65(3)/66 | Entregues no recorte de origens anuais ordinárias documentadas,mesmo sujeito/2026/MZN,prazos próprios5/3exercícios,utilizações efectivas e afectação explícita. Não cria nem consome saldos oficiais;casos transitórios/especiais permanecem próprios. |
| Económico64(1–2) | Entregue para lucros ordinários qualificados,IRPC correspondente documentado,acréscimo53 já incluído emL6 e quota proporcional documentada,antes do internacional/PEC,sem dupla utilização da mesma parcela. Parcela excluída40(1)não recebe também64. |
| Inclusão/correcção económica e quota | Ainda por implementar a inclusão/correcção automática do dividendo/acréscimo emL6,a derivação automática da quota e o tratamento completo40(1)na base. A comprovação manual corrente não é declarada automação desses grupos. |
| Económico64(3/4) e benefícios | Liquidação,associações ecréditos/benefícios específicos mantêm qualificação,limites,cumulação e uso próprios por implementar;sem os transformar emcrédito internacional. |
| Internacional automático | Derivação da fracção nacional e correspondência específicaCDT continuam pendentes;qualificação/dedução internacional documentada entregue preservada. |
| Obrigações e representação | Obrigação/calendárioPPC/PEC,juros/multas/guias,autónomos,períodos especiais,outras moedas eM20/M22/transporte/submissão continuam nos grupos concretos anteriores. |
A falta de prova do caso (titular/rendimento/imposto/inclusão/uso/regra do período ou quota) limita só o resultado dependente;não é reabertura da autenticidade das fontes oficiais aceites nem novo aprovador. Exemplo agrupado condicionado aos suportes sintéticos já aceites:1408−12económico−8internacionalcorrente−50internacionalanterior−200PECcorrente−100PECanterior−500PPC=**538MZN de saldo simulado a pagar**;não é declaração submetida ou saldo fiscal consumido.
Recibo consolidado:`docs/investmoz/simulations/irpc-l8-grouped-delivery-20261028.json`. Cópia remota:`/var/backups/investmoz-irpc-l8-grouped-20261028/installed-receipt.json`. Provas locais:`outputs/irpc-l8-grouped-delivery-20261028/`. Actualização documental segue ramo próprio de recibos,sem alterar novamente a revisão servida.
Cópia remota do recibo conferida:SHA256`b70fe154f95162f029b5ca712b41962757360d73b0ff07f52b8ce14848d990df`;a matriz existente recebeu saldoL8 nos camposEstado,Disponibilidade activa,Evidências,Critérios restantes eDependências,só em `AUD-SIM-INT02`.
## 28/10/2026 — listas como base interna da oferta: uso não demonstrado
**Decisão expressa da Tempo e resultado da conferência: a utilização das listas de empresas,hotéis/restaurantes como base comparativa no portal é NÃO DEMONSTRADA.** A entrega do percurso proactivo,os seus campos de evidência e os pilotos privados anteriores mantêm-se aceites;isso não demonstra carregamento,classificação e ligação destas listas ao consumidor de análise. O âmbito é primeiro a análise interna,não a publicação automática de um directório.
**Fonte e âmbito conferidos:**13ficheiros inventariados nos dois directórios acessíveis de empresas/relatórios,antes da selecção;originais `EMPRESAS_LIST2014–2022`, `Empresas Licenciadas`,cadastro turístico30/10/2024 e `CAE eBAU` localizados e iguais aos hashes aceites. As148557/212632/460linhasXML não vazias dos recibos anteriores são observações dos ficheiros,não empresas únicas nem carga no portal. Empresas têm província/distrito/CAE;isso não prova o mapeamento no portal. O cadastro turístico observado é de alojamento,não um censo completo da restauração. Não foi identificada lista autónoma de restaurantes nestes dois directórios;isso não significa ausência de restaurantes ou de actividades de restauração nas listas empresariais. Contactos e outros campos privados não foram publicados.
**Destino entregue:**código `569a1cd7`,base `teste_investidor`,198tabelas não sistémicas(174public+24skills_edu),consultadas em transacções READ ONLY com identidade técnicapostgres explicitada. Zero correspondências dos hashes originais entre368ficheiros persistentes e nenhuma correspondência exacta dos nomes/hashes nas referências pesquisadas. Cadastros `existing_businesses` e `investment_company_declarations` têm0registos nesse destino;organizações1,actividades11,documentos60 e recursos59 não são convertidos em oferta empresarial das listas. Esta é uma fotografia técnica,não prova de visibilidade para uma conta operacional,perda de registos ou ausência de oferta no mercado. Registos antigos de `investemoz` e basesQA são ambientes distintos;nenhuma eliminação é declarada. Pesquisa por nomes/hashes em metadados não exclui ficheiros renomeados,arquivados,conteúdo cifrado ou outros acervos.
**Causa delimitada no consumidor instalado:**`ProactiveInvestment::options` devolve documentos/grupos e referências a projecto,cluster,corredor,parque,cadeia;os hashes dos ficheiros instalados coincidem comGit. O editor recebe `observed_supply` e fontes/localizadores/períodos/cobertura como texto manual;as relações proactivas não admitem entidade empresarial destas listas. Não foi encontrada consulta de oferta carregada por localização/sector/actividade nem ligação de linhas das listas a concorrentes,complementares ou parceiros. A possível existência de cadastros noutro módulo não demonstra consumo por este percurso.
| Percurso de conferência — Gurué,distrito canónico | Resultado |
| --- | --- |
| Escolher localização | Referência canónica localizada;prova anterior de selecção territorial preservada,não se declara nova prova de interface. |
| Consultar oferta existente das listas | Não demonstrado:consulta/importação/classificação consumida pelo percurso não identificada. A demonstração pára neste ponto. |
| Comparar com uma ideia | Não demonstrado sobre conjunto rastreável de registos dessas listas. Campos manuais não equivalem à integração. |
| Identificar necessidade | Não demonstrado por este fluxo;ausência de registo não confirma necessidade nem ausência de concorrência. Manter hipótese,período,cobertura e incertezas. |
| Preparar oportunidade | Mecanismo privado entregue preservado;nenhuma oportunidade nova foi criada para simular passos anteriores ainda não demonstrados. |
**Critério de retoma:**lotes/linhas privados rastreáveis e classificados,reutilizando os mecanismos/cadastros existentes;consulta autorizada da oferta por localização/sector/actividade;comparação da ideia com concorrência,complementares e possíveis parceiros,com fontes/datas/cobertura;necessidade fundamentada sem inferir ausência de oferta;e prévia/gravação/recuperação da oportunidade no percurso existente emQA isolada. Só essa conferência pode demonstrar o uso;nenhum novo aprovador organizacional ou directório público é criado.
Sem imports,normalização,alteração de código,permissões,publicação ou escrita em dados activos. Songo/Gurué privados,aprovações/históricos e entregaL8 preservados. Registo:`docs/investmoz/unification/existing-supply-lists-audit-20261028.json`. Cobertura actualizada nas linhas existentesRF-CLU-003,MASTER-471012ab-0010,M2-d0c06a75-0147/0151 eMASTER-1f0a4cde-0002,sem nova matriz/backlog.
A base interna de oferta não exige transformar cada empresa numa organização utilizadora,anúncio de venda/parceria,promotor ou cliente confirmado. O cadastro e a consulta analítica são distintos da operação comercial e da divulgação.
## 28/10/2026 — oferta existente ligada à análise proactiva, demonstrada em QA
Incremento sobre o código entregue `569a1cd7`, ramo `codex/proactive-supply-qa-20261028`: **demonstrado em QA isolada, sem instalação nem importação no activo**. O relatório de conferência anterior permanece histórico: no destino activo, o uso das listas continua não demonstrado. Reutilizam-se a aceitação do percurso, o inventário de 13 ficheiros, os originais, as fontes e as provas anteriores; não se reabre a decisão da Tempo nem se encerra o estudo de mercado nacional.
Carregadas privadamente **361.464 observações**: 148.556 da lista 2014–2022, 212.631 de empresas licenciadas e 277 do cadastro turístico (duas folhas com estruturas distintas). Os quatro hashes dos originais e do CAE foram conferidos. Pré-visualização, análise Microsoft Defender sem ameaças e repetição idempotente 343.041→343.041 demonstradas. Os 147.165 registos com a mesma projecção administrativa são conservados como repetições; não representam empresas únicas nem duplicados de ficheiros por bytes. As 113.880 observações com denominações divergentes para um identificador partilhado ficam assinaladas, sem fusão automática. Contactos, documentos de identidade e NUIT não são devolvidos pela consulta.
Consulta interna por localização canónica (incluindo descendentes), sector CAE e actividade; resultados paginados conservam fonte, folha/linha, hash e data original. O sector provém da hierarquia SELF_ID do CAE fornecido, sem inventar correspondência com os sectores de navegação. A selecção permite comparar possível concorrência, complementaridade, parceiro ou relação por determinar, com fundamento e incertezas. O servidor recupera a origem, impede reclassificar a evidência interna como pública e conserva-a no rascunho e no dossier privado. Não transforma a lista em anúncios, promotores, clientes confirmados ou publicação de directório.
**Gurué:** o operador QA sintético 1021 consultou 410 observações distintas na primeira demonstração (435 após o complemento de registos sem denominação), comparou dois registos reais (serviços agrícolas CAE 01610 e comércio de plantas/sementes/fertilizantes CAE 47732) com a hipótese já preparada de apoio à colheita e qualidade da folha verde. A oferta possível exige verificar sobreposição e colaboração, sem presumir mercado vazio. Rascunho 402 passa de v1 a v2, mantendo integralmente as cinco evidências anteriores, a ideia e o histórico. O mesmo dossier `883c8ec3-59a3-4074-b91c-b7d4a5d88ff0` passa de contexto1 a2 por pré-visualização e confirmação idempotente, preservando título e campos deliberados. A necessidade permanece **hipótese**, sem procura, falta de oferta ou viabilidade confirmadas. Gravação, recarregamento, acesso privado e resultado vazio como **informação insuficiente** demonstrados no navegador. Isto é prova técnica, sem substituir observação/aceitação da equipa.
**Cobertura e pendências:** 205.608 observações sem correspondência territorial canónica única (incluindo 19 ambiguidades), 336 apenas com província e 82.864 sem designação de actividade CAE correspondente. Mantêm-se os rótulos originais e a incerteza; não há atribuição territorial aproximada nem preenchimento presumido. O cadastro de alojamento não é um censo exaustivo de hotéis/restaurantes. Situação operacional actual, capacidade, preços, procura e compromissos continuam por demonstrar. O incremento nacional é parcial; não encerra os requisitos amplos de mercado, clusters ou liquidação anual. **L8 permanece parcial e inalterado.**
Sete testes dirigidos/62 asserções, TypeScript e compilação QA passaram. As duas tabelas internas têm RLS forçada; teste com identidade sem privilégios confirma ocultação sem contexto de actor e leitura com contexto autorizado. Conferidos os hashes de todas as linhas anteriores nos sete conjuntos do inventário: só o rascunho402 e o mesmo dossier sofreram o delta intencional; Songo401, projectos, territórios, sectores, documentos e cadeias foram conservados. Provas fiscais aceites reutilizadas, sem repetir as suas suites.
Actualizados os cinco requisitos existentes `RF-CLU-003`, `MASTER-471012ab-0010`, `M2-d0c06a75-0147`, `M2-d0c06a75-0151` e `MASTER-1f0a4cde-0002`, preservando o restante estado e pendências. Nenhuma matriz ou backlog novo. A entrega activa futura mantém conferência de capacidade/compatibilidade com main, backup/restauro fresco, operação autenticada e delta instalado. Relatório: `docs/investmoz/unification/proactive-existing-supply-qa-20261028.json`.
Complemento final: as 18.423 linhas empresariais sem denominação social também foram conservadas, com essa lacuna explícita e sem reutilizar o nome pessoal do requerente. As 343.041 observações da primeira fotografia permaneceram idênticas; extensão e repetição idempotente atingem 361.464 sem substituir registos, alterar as comparações ou rever as provas aceites. Os exemplares e as fotografias anteriores foram preservados.
## 28/10/2026 — base comparativa instalada pelo Git; conferência visual autenticada pendente
Instalada e servida a revisão **`6d147693`**, que inclui o candidato aceite `a022ed98`, por fast-forward normal em `main`, sem força. A revisão569a1cd7 e os backups anteriores foram preservados. O carregamento privado foi executado em transacção autenticada depois de backup novo, restauro isolado e ensaio idempotente; o instalador Git, as suas guardas e a CI habitual foram conservados. O contrato recebeu apenas o hash da migração nova, mantendo os90 anteriores.
**361.464 observações administrativas não são361.464 empresas únicas.** As147.165 repetições foram conservadas, mas excluídas das contagens/resultados; as214.299 projecções administrativas distintas também não equivalem a empresas únicas. Em Gurué, o serviço instalado recupera435 observações distintas e conserva237 repetições fora dessa contagem. A API também recusa gravar uma repetição como outra comparação: apenas esse delta recebeu teste dirigido1/2asserções. As7provas/62asserções, tipos, compilação e percurso QA aceites foram reutilizados.
A aplicação, com a sua conta real e um actor existente que satisfaz as autorizações anteriores, consultou Gurué e conservou fonte/linha/data/hash. O resultado vazio foi «Informação insuficiente nesta base e nestes filtros.» Sem actor/contexto, a RLS devolveu0; acesso HTTP anónimo recusado401. Isto é conferência técnica do consumidor instalado, **não uma nova aceitação da equipa no navegador**. A conferência visual autenticada permanece pendente por bloqueio do mecanismo Windows de confirmação segura do URL; não pedir nova aceitação das provas QA nem confundir essa pendência com perda da funcionalidade entregue.
Backup fresco de174tabelas públicas e369ficheiros/configuração; restauro sem rede/55441 e os174checksums passaram. As duas tabelas privadas também foram carregadas, repetidas e restauradas no ensaio. Medidos344.399.872bytes para as novas relações;capacidade conferida antes da instalação. No activo, as linhas anteriores foram preservadas e os369ficheiros/configuração ficaram idênticos; o delta esperado é de2tabelas privadas e1registo de migração. Cache queue:restart e2sessões anónimas de conferência foram reconciliados separadamente. Foi criado também backup da base privada já instalada, preservando GRANT/RLS. Não se criaram utilizadores, organizações, oportunidades ou dossiers QA no activo, nem se publicaram as listas.
CI habitual do instalador: PostgreSQL1/3106asserções, Unit59/317, frontend1146aprovados/0falhas, tipos e build31,30s. O script do instalador e as configurações/ficheiros anteriores mantiveram-se; apenas leitura nas duas tabelas novas foi concedida à conta de aplicação existente. Não houve alteração de papéis de funcionários.
**Pendências conservadas:** cobertura nacional parcial,205.608observações sem território canónico único,336só com província,82.864sem designação CAE,113.880com divergências de denominação/identificador e18.423sem denominação social, todas preservadas. A ausência de registos é informação insuficiente. A comparação fundamenta uma hipótese, sem comprovar procura ou viabilidade. O caso/dossier QA anterior mantém-se em QA e não foi transplantado para o activo. **L8 permanece parcial e inalterado.** A actualização continua nos cinco requisitos existentes, sem nova matriz ou backlog. Recibo:`docs/investmoz/unification/proactive-supply-git-delivery-20261028.json`.
## 28/10/2026 — correcção do bloqueio da conferência visual
`6d147693` está instalado, incluindo a base interna. A única pendência da conferência desta entrega é a validação visual autenticada: **Gurué → consultar oferta → comparar ideia → guardar → recuperar no mesmo dossier**, conservando fonte, data e incertezas. As435 observações de Gurué não são435 empresas únicas. Listas internas, cobertura nacional parcial e hipótese de investimento mantêm-se.
O erro actual, novamente observado, é **“The browser access host is unavailable”**: indisponibilidade do host do conector, distinta de deixar uma aba aberta. A orientação anterior para apenas manter a aba aberta era insuficiente. Restabelecer o conector por mecanismo suportado ou realizar a conferência pela equipa. Não reinstalar nem repetir as provas técnicas aceites; não declarar conferência visual concluída sem o seu resultado. O recibo remoto original e o historial do diagnóstico anterior ficam preservados; esta correcção é documental.
## 28/10/2026 — revisão de menus: inventário antes da verificação do delta
Origem: recomendação expressa da Tempo após constatar que as entradas indicadas não aparecem ou ficam escondidas. Página relatada:https://teste-investidor.tempo.co.mz/. Preservados6d147693 e a base privada instalada,as provas QA do percurso e da navegação sectorial,os originais,dados,perfis,permissões e históricos. Não se declara uma funcionalidade anterior desaparecida apenas pela ausência de um novo teste.
Confirmado no código: barra lateral substitui cada grupo pelo seu primeiro destino,omitindo os restantes;menu principal esconde gestão/perfis dentro do menu do nome do utilizador;entrada de gestão de conteúdos existente não é incorporada nessa navegação principal. A conta e os props efectivos da sessão real permanecem por conferir,porque o conector está indisponível;não se presume falta de autorização.
Incremento em QA: área de trabalho explícita no menu principal,inclusive entrada neutra de acesso;destinos privados apenas segundo capacidades anteriores;mesmo catálogo completo na barra lateral,sem perda dos subdestinos;entrada directa na análise proactiva existente,sem substituir rascunhos editados;preservação de Descoberta/Realização/Suporte e todos os destinos anteriores aplicáveis. Sem alteração activa,schema,regras de negócio ou papéis. Escolhas de apresentação não são exigências organizacionais. Verificação dirigida do delta pendente nesta fotografia;nenhuma nova matriz ou backlog.
## 28/10/2026 — reorganização dos menus implementada em QA, sem instalação
Recomendação expressa da Tempo após a página principal não apresentar as entradas sugeridas. Causa delimitada no código: a barra lateral omitia subdestinos ao seleccionar apenas o primeiro link de cada grupo; a navegação principal colocava gestão/perfis dentro do menu do nome do utilizador e não incorporava a entrada de gestão já calculada pelo servidor. Não se presume falta de permissões da sessão real, cujos props não foram observados. A entrega6d147693/base interna continua instalada e preservada; esta revisão não reinstala essa base nem repete as provas técnicas aceites.
**Proposta executável QA:** Área de trabalho visível ao lado de Descoberta,Realização,Suporte; entrada neutra Acesso à gestão explica o estado, mesmo sem acções privadas atribuídas. As acções autorizadas e Preparar análise e ideia vêm das capacidades existentes, sem criar papéis. A análise abre directamente no formulário existente; rascunhos guardados não são substituídos. A barra lateral põe trabalho primeiro e conserva todos os destinos e os filtros territoriais entre catálogos, em vez de reduzir grupos ao primeiro destino. O cabeçalho permite quebra de linha em largura intermédia; os controlos móveis e do teclado existentes são reutilizados.
**Verificação delimitada:**16 testes de navegação/renderização estrutural,0falhas;tipos,compilação QA e sintaxe PHP passaram. Quatro cenários de capacidades conservaram todos os destinos anteriores; não surgem operações privadas em cenário anónimo ou sem atribuições. SSR usa o componente real da barra lateral com wrappers semânticos de teste; não equivale a captura do navegador. A prévia HTML é um inventário interactivo de destinos, sem pedidos ao portal, identificado como proposta QA, não como sessão real.
**Pendente:** conferência visual desktop/móvel/teclado/toque e das capacidades efectivas da sessão relatada; o host do conector permanece indisponível no último diagnóstico. Não substituir essa conferência por alegação de acesso demonstrado. A instalação futura deve transportar só o delta de menus pelo processo Git/backup/restauro existente, preservando originais, dados, permissões, contexto,dossier e simulador.435 observações de Gurué não são435empresas únicas; listas internas/cobertura parcial/hipótese preservadas. L8 continua parcial.
Inventário anterior registado antes dos testes nesta matriz/manual. Actualização apenas nos requisitos existentesV2-01,V2-07,V2-10,MASTER-9dee08d0-0011,MASTER-9f6dd1d9-0001,MASTER-9f6dd1d9-0003,MASTER-02f44baf-0002;não há matriz ou backlog novos. Relatório:`navigation-reconciliation-qa-20261028.json`;prévia:`outputs/navigation-reconciliation-20261028/menu-proposta-qa.html`.
A apresentação da gestão antiga usa agora a decisão efectiva já existente (`legacyWriteAllowed`, com o requisito de email verificado das rotas), em vez de presumir que o indicador genérico de gestor basta. Não se alteraram regras, atribuições ou permissões. Preservada também a entrada de instalação de perfis anteriormente presente apenas na barra lateral autorizada. Os nomes longos quebram linha na barra lateral, sem reticências que escondam a função.
## 28/10/2026 — menus 6e8de43a instalados pelo Git; conferência visual pendente
A Tempo aprovou a proposta QA e autenticou o transporte SSH existente. `main` avançou normalmente de `6d147693` para `6e8de43a`, sem force. A entrega usou o pipeline existente, sem alterar o seu contrato de schema, sem migrações, importações, atribuições de papéis ou permissões. Os 16 testes dirigidos e as provas QA aceites foram reutilizados; as verificações automáticas obrigatórias do pipeline não representam nova aceitação funcional.
Capacidade conferida antes da entrega: cerca de 78,5 GiB livres. Backup novo em `/var/backups/investmoz-navigation-delivery-20261028/backup`; restauro em base isolada, sem rede, confirmou as 176 tabelas por contagens/checksums. Os 369 ficheiros persistentes/configuração mantêm-se idênticos. As tabelas de domínio, incluindo base interna, relações e permissões, foram comparadas com o snapshot do backup; apenas alterações operacionais de cache/sessão são registadas separadamente. A versão anterior está preservada para retorno pelo mecanismo existente.
O delta instalado contém Área de trabalho no nível principal, destinos subordinados completos na barra lateral e continuidade para os destinos existentes de investimento, conteúdos e acompanhamento. A exposição das acções respeita a decisão efectiva do servidor; não se infere nova autorização pelo nome genérico de gestor. A presença dos assets e props instalados foi conferida tecnicamente, sem a apresentar como prova da sessão real.
Pendente: conferência visual autenticada desktop/móvel/teclado/toque e percurso Gurué → consultar oferta → comparar ideia → guardar → recuperar no mesmo dossier. Último bloqueio conhecido: `The browser access host is unavailable`; uma aba aberta não restabelece o host. Não repetir as provas QA aceites nem reinstalar a base interna para resolver essa pendência. As 435 observações de Gurué não equivalem a 435 empresas únicas; listas internas, cobertura parcial e hipótese de investimento mantêm-se explícitas. L8 permanece parcial.
Evidência: `docs/investmoz/unification/navigation-git-delivery-20261028.json`. O relatório QA anterior permanece como histórico do candidato antes da instalação. Actualizados os mesmos sete requisitos existentes, preservando o seu histórico; não foi criada outra matriz.
# Inventário de preservação — consulta territorial, 28/10/2026
Antes das novas verificações: menus `6e8de43a` instalados, base interna e percurso proactivo preservados; conferência visual autenticada continua pendente. Reutilizam-se as provas anteriores. O caso relatado é Agronegócio / Maputo Província. Em leitura da QA isolada, as 37 oportunidades públicas incluem cinco do Corredor de Maputo; o filtro provincial devolve zero. A correspondência aprovada do corredor para Maputo Província e Maputo Cidade já existe em `config/investment_corridors.php` e `corridor-adaptive-context-20261023.json`, mas a pesquisa não a utiliza. Não se trata de eliminação dos registos. Os cartões mostram apenas província e omitem o detalhe territorial disponível. A correcção é de consulta/apresentação, sem criar localizações distritais não documentadas, relações a mestres, permissões ou novas publicações. Referência aos requisitos existentes V2-07/V2-10; a implementação transversal e a sessão real não ficam declaradas concluídas por este inventário.
## 28/10/2026 — correcção provincial do catálogo em QA, ainda sem instalação
Caso da Tempo: Agronegócio / Maputo Província. A leitura QA reproduziu zero resultados para cinco oportunidades públicas do Corredor de Maputo. Reutilizada a decisão expressa de 23/10 que abrange Maputo Província e Maputo Cidade, antes disponível no percurso mas omitida na consulta. O filtro provincial passa a incluir esse contexto aprovado, mantendo sector e estado público, sem duplicar oportunidades nem atribuir distrito/posto administrativo ou coordenadas inexistentes. Uma localização explícita posterior prevalece sobre o contexto antigo.
Os resultados apresentam a hierarquia territorial disponível; o contexto de corredor é identificado e os níveis não indicados continuam explícitos. Pesquisa/API, vista por corredores e lista sem coordenadas do mapa concordam. O atalho «Ver toda a província» elimina a necessidade de limpar vários níveis manualmente. Não foram criadas publicações, relações a mestres ou permissões. Provas QA: 4 testes/70 verificações, zero falhas, transacções revertidas; tipos, compilação QA e sintaxe PHP passaram. O inventário anterior foi registado antes dos testes. Menus 6e8de43a, base interna, históricos e aceitação anterior preservados; L8 permanece parcial.
Relatório: `catalogue-province-coverage-qa-20261028.json`. Instalação pelo processo Git e conferência visual autenticada continuam pendentes. Não declarar auditados todos os outros menus por este delta. Cobertura actualizada nos requisitos existentes V2-07/V2-10; sem nova matriz.
28/10 — Âmbito nacional confirmado pela Tempo: antes da extensão dos testes, preservar a correcção QA 1b2ede41 e verificar os seis corredores aprovados nas onze unidades provinciais, hierarquia descendente e reutilização entre sectores/entradas de localização. Não presumir cobertura de corredor onde não está documentada. Nenhuma prova anterior é revogada.
28/10 - National coverage: 6 tests / 617 assertions passed across all 11 provincial units, 6 configured corridors and 2 sectors, including descendant hierarchy, sector separation and both province/location entry points. The runtime correction already used the common national hierarchy; Maputo was the reported reproduction, not a geographic limit. Existing publication decisions and unknown district/post/site information remain preserved. This is not a claim that every unrelated portal menu has been audited. No additional runtime change since 1b2ede41; types/build accepted evidence reused. Installation remains pending.
28/10 - Before selector delta checks: accepted national catalogue QA 47dae1b7, 6 tests/617 assertions, remains uninstalled. Existing TerritoryLevel and ProvinceSelect required two separate fields (search then select). Tempo requests one dropdown on the search field. Consolidate the shared controls while retaining saved values, hierarchy, endpoints, paging and permission decisions;browser visual proof remains separate.
## 28/10/2026 — selecção territorial num único campo de pesquisa, QA
Pedido expresso da Tempo: o dropdown deve abrir em «Pesquisar província», sem um segundo controlo «Seleccione». `ProvinceSelect` e `TerritoryLevel` passam a usar o mesmo combobox, aplicado a província, distrito, posto administrativo e localidade. Pesquisar e escolher fica num único campo; a paginação permanece na lista. Escrever ou sair com Escape não substitui a selecção guardada; escolher e limpar são acções expressas. Mantêm-se a hierarquia, os endpoints existentes e os controlos de acesso, sem novos dados ou publicações.
Quatro testes do contrato de eventos/estado passaram: abertura/escolha, preservação ao escrever/Escape, teclado e bloqueio de resultado antigo durante carregamento, limpeza e dependência do nível anterior. Tipos e compilação QA passaram. As 6 provas nacionais/617 verificações são reutilizadas porque o PHP territorial não mudou. Este delta continua em QA e não comprova apresentação ou sessão real no navegador. Será agrupado com a correcção provincial; falta autenticação SSH antes da entrega, sem nova aprovação organizacional.
28/10 - Before catalogue presentation checks: accepted province QA6/617 and unified selector QA4 remain preserved and uninstalled. Tempo reports Tourism/Cabo Delgado shows educational text and broad sector links. Read-only public API confirmed zero filtered records;unfiltered tourism returns16 records,all declared in Inhambane. This does not establish absence of tourism supply in Cabo Delgado. Correct presentation to retain filters and expose guides only as optional links;do not republish or reassign opportunities to manufacture results.
## 28/10/2026 — resultados do catálogo separados do apoio educativo, QA
A Tempo esclareceu que a combinação província/sector deve apresentar as oportunidades correspondentes, sem texto educativo ou atalhos que troquem a consulta por todas as oportunidades do sector. A consulta pública anónima conferiu Turismo/Cabo Delgado = zero oportunidades cadastradas; Turismo sem localização = 16, todas declaradas em Inhambane. Este snapshot não prova ausência de oferta turística em Cabo Delgado e não substitui inventário de fontes ou consulta autenticada.
Correcção de apresentação em QA: título dos resultados explicita sector e hierarquia escolhidos; removidos os cartões educativos e o botão sectorial sem localização da área de resultados. Os guias mantêm-se como títulos ligados em apoio opcional fechado por defeito. A remoção da localização é uma acção expressamente identificada como pesquisa noutras províncias. O estado vazio refere o cadastro consultado e a cobertura incompleta, sem fabricar oportunidades nem alargar automaticamente filtros.
Dois testes SSR do novo apoio opcional passaram, bem como tipos e compilação. As provas territoriais nacionais 6/617 e os quatro testes do selector são reutilizados; não mudou a consulta PHP ou o controlo territorial neste delta. Mantêm-se histórico, publicações, permissões, fontes e base interna. Este candidato continua sem instalação, dependente de autenticação SSH; a sessão real permanece sem prova visual. Relatório existente: `catalogue-province-coverage-qa-20261028.json`, campo `catalogue_result_presentation`. Requisitos V2-07/V2-10 actualizados na mesma matriz; L8 permanece parcial.
28/10 - Before investor usability checks: accepted catalogue candidate54d1b2a5 remains in QA,not installed;active menus6e8de43a and earlier supply proofs preserved. Two Tempo attachments identify duplicate profile navigation,an exposed long canonical form and ZEE/ZFI/park searches that keep prior results until manual submit. Prepare presentation-only adaptive field groups and safe save-before-resource navigation;verify territorial search/count/paging and documented scope without republishing records or changing permissions. Reuse prior proofs;existing V2-07/V2-10 scope retained.
## 28/10/2026 — usabilidade do investidor e consulta territorial, QA
Pedidos da Tempo e exemplos recebidos: menu/ficha de oportunidade, zonas/parques, pedido de Promotor, Os meus investimentos, documentos/formulários e recusa autenticada em Turismo. Inventário anterior registado antes dos testes: menus 6e8de43a e base interna instalados; candidato territorial 54d1b2a5 ainda em QA; originais, dados, relações, histórico, aprovações e provas anteriores preservados.
Delta QA: acções do investidor em primeiro plano, administração em detalhe consultável; campos do contrato existente agrupados por tarefa e modalidade, com navegação livre e todos os campos montados para conservar edições. Os grupos mostram as pendências da última gravação e os erros existentes; não criam seis ou oito formulários obrigatórios. Guardar usa os mesmos endpoints/ETags; abrir recursos pela preparação guarda primeiro e regressa à mesma oportunidade/grupo. Contactos e detalhes de disponibilidade ficam opcionais; códigos técnicos de categorias e campos conhecidos têm nomes em português. Só um contexto único de promotor é escolhido automaticamente.
Zonas: selecção territorial aplica pesquisa sem esperar por outro clique; a lista anterior deixa de aparecer durante carregamento/erro. Totais, intervalo visível e páginas identificados, sem apresentar a primeira página como o conjunto completo. «Todo o território» remove expressamente a localização, preservando os restantes critérios visíveis. Abrangência jurídica documentada e validada inclui os níveis descendentes; influência não se torna implantação. Não são criadas localizações, direitos, publicações ou certificados.
Pedido de Promotor: representação/modalidades com nomes claros; pesquisa de ficheiros e selecção expressa dos comprovativos, preservando os escolhidos ao pesquisar. Mantidos propriedade, análise antimalware e verificações existentes; legislação/imagem/teste não se torna comprovativo por estar disponível. Os meus investimentos destaca a próxima acção e permite abrir fases/etapas; fontes, códigos e acompanhamento interno ficam preservados em detalhes.
Formulários: entradas directas para os campos já existentes da preparação do pedido de investimento e Terra/DUAT; pedido de apoio identificado separadamente. Originais oficiais e guias continuam consultáveis, sem os confundir com um formulário preenchível ou converter leis em campos/cálculos. Não se declara executada a totalidade dos formulários oficiais do acervo.
Provas delimitadas: 8 testes frontend de contrato/SSR e 3 testes isolados/12 verificações, zero falhas; tipos, compilação e sintaxe PHP passaram. Dados sintéticos revertidos em QA. Provas nacionais/selector/catálogo anteriores reutilizadas. Turismo: leitura anónima activa HTTP200 e QA visitante/conta sem Promotor HTTP200; a recusa da sessão real relatada não foi reproduzida, nem atribuída a uma permissão sem prova. A conferência autenticada e visual continua pendente. Este registo não instala o candidato nem encerra a implementação transversal. L8 permanece parcial.
Evidência: `investor-usability-qa-20261028.json`. Actualizados V2-01,V2-07,V2-10 na matriz existente; sem nova matriz ou backlog.
### 28/10 — botão de cadastro e compatibilidade do pipeline
A Tempo esclareceu que a recusa em Turismo ocorreu depois de clicar num botão; não foi possível recuperar o nome. A rota pública continuou HTTP200. Conferência de forma pública/origem não identificou anexos privados nos documentos públicos de Turismo; não se atribui a recusa à perda de publicação. Encontrada uma falha delimitada no consumidor: o botão de cadastro dependia da disponibilidade do módulo, sem a capacidade efectiva da conta. Corrigido para reutilizar o destino autorizado de criação de ContentManagement; sem essa capacidade, mostra expressamente o pedido de acesso já existente. Não cria papéis nem restringe a consulta pública ou a preparação de ideias. A confirmação visual da acção real permanece pendente.
O candidato 502e3ec4 falhou na Unit de agrupamento de corredores antes da troca de release; 6e8de43a ficou servido. Causa: a simulação do catálogo não representava a nova apresentação de localização e uma consulta era feita antes de conferir se a fonte era aplicável. Correcção: conferir primeiro a fonte e simular a nova dependência no teste, conservando as verificações anteriores de identidade, grupos e contagens. Regressão Unit1/13 passou; não foi alterado o pipeline, o contrato de schema ou a exigência dos testes. Frontend9, Feature3/14, tipos e compilação passaram. Rótulos conhecidos de temas, categorias e idiomas do acervo traduzidos para apresentação; valores dos filtros preservados.
## 28/10/2026 — entrega agrupada de usabilidade e filtros instalada, 789fffd0
Entrega autorizada pela Tempo e autenticada pelo mecanismo SSH existente. `main` avançou normalmente e o pipeline existente instalou `789fffd0`, preservando a release anterior `6e8de43a`. O candidato inicial `502e3ec4` foi recusado antes da troca por uma dependência não representada no teste Unit do agrupamento de corredores; o activo ficou preservado. A consulta desnecessária foi corrigida e a nova dependência simulada, conservando as provas anteriores. O pipeline e o seu contrato de schema não foram enfraquecidos.
Backup/restauro de 176 tabelas confirmado numa instância isolada, sem rede. Os 369 ficheiros persistentes/configuração mantêm-se idênticos. A comparação do snapshot com o instalado preserva as tabelas de domínio, incluindo papéis, publicações, originais e base interna; diferenças de cache/sessões são registadas separadamente. Sem migrações, importações ou activação fiscal. A versão anterior permanece disponível para o mecanismo de retorno.
Incluídos: consulta provincial nacional/corredores e detalhe territorial; pesquisa/selecção num único controlo; resultados do catálogo separados do apoio educativo; grupos adaptáveis de preenchimento, navegação livre e gravação antes de abrir recursos; pedido de Promotor legível com comprovativos escolhidos expressamente; zonas filtradas ao seleccionar, contagens/paginação visíveis; fases/etapas do dossier e fontes em detalhes; entradas para formulários de preparação já existentes; CTA sectorial conforme capacidade efectiva; rótulos do acervo legíveis. Não são novas permissões, publicações ou formulários fiscais oficiais inventados.
Conferidos o commit servido, APIs filtradas e assets instalados. Reutilizadas as provas QA aceites; a bateria obrigatória do pipeline não reabre a sua aceitação. Mantém-se pendente a conferência visual autenticada, incluindo navegação, ida/volta a recursos e Gurué no mesmo dossier. A recusa relatada em Turismo ocorreu após um botão; a falha concreta do CTA de cadastro foi corrigida, mas não se declara reproduzida e resolvida a acção original sem a sessão real. A escolha do formulário fiscal concreto ainda precisa de ser esclarecida; os diplomas IVA mostrados não são formulários preenchíveis.
Estado actual: `investor-usability-git-delivery-20261028.json`. Os relatórios QA anteriores conservam o estado histórico antes da instalação. As 435 observações de Gurué não são 435 empresas; as listas são internas, a cobertura nacional é parcial e a comparação sustenta hipóteses. L8 permanece parcial. Actualizados V2-01/V2-07/V2-10 na matriz e manual existentes.
## 28/10/2026 — preparação de formulários fiscais, inventário antes das provas
Pedido expresso da Tempo: preencher formulário de IVA ou IRPC, em vez de abrir legislação. Base preservada: entrega instalada 789fffd0, Modelo A e aquisições/apuramento já aceites, L6 M20/M22 instalado em 5aaf1a56 e incrementos de L8. Nenhuma perda confirmada neste recorte; não se apagam as aceitações nem se repetem provas fiscais anteriores. Fontes reutilizadas do inventário de 20 exemplares acessíveis em outputs/irpc-l6-values-forms/accessible-source-inventory.json da QA anterior, incluindo temporários identificados; inventário do corpus e originais preservados. M22: três páginas conferidas visualmente nesta revisão, SHA256 4b61bd83d1fbcfd3b7b5c5523cea5923f7d0f65dc4c004eff58e5db38f763c88. Modelo A: correspondência e divergências aceites em modelo-a-reconciliacao-20261021.md; sem nova validação de proveniência.
Incremento em preparação QA: entrada directa em Documentos e Formulários, preenchimento manual dos campos correspondidos de IVA e subconjunto M22, identificação/período, revisão, impressão e ficheiro privado para recuperação mediante confirmação. Escolha técnica: sem persistência no servidor nem ligação automática ao dossier neste incremento; não altera schema, dados, permissões ou cálculos. Ficheiro não publicado. IRPC ajustamentos completos, outros regimes, anexos, assinatura e submissão à AT fora da cobertura; L8 permanece parcial. Ainda sem instalação deste incremento. Próximas provas apenas do delta: fidelidade da recuperação, rejeição de ficheiros incompatíveis sem perda, formatos/valores desconhecidos, acesso público e compilação.
@@ -3006,3 +3006,65 @@ AUD-SIM-INT01 through AUD-SIM-INT08 are recorded in the same matrix and manual.
Actualização QA de 20/10/2026: os mesmos oito itens foram reconciliados no manual e nas duas tabelas existentes. Data com mensagem junto ao campo; inventário dos parâmetros efectivos (zero regras fiscais QA); controlos matemáticos independentes; aviso de recálculo; quatro relatórios reais do exportador com 6/6/6/5 páginas; consulta fiscal com erro/nova tentativa e traduções comuns verificados. O formulário personalizado já não exige contexto fiscal que não envia ao cálculo. Restam continuidade autenticada entre dois dossiers/nova sessão e histórico, mudança de parâmetros, controlos delimitados de cash-flow/plano, impressão nativa Edge/comparação pela interface e mensagens dinâmicas/falhas dirigidas de gravação/exportação. Estimativa restante **6–10 h**, distinta das 18–30 h iniciais. Sem main, servidor remoto, importação ou activação fiscal. Exemplos PDF são renderizações do DOCX; não certificam impressão do Edge. Ver o saldo detalhado AUD-SIM-INT01–08 no mesmo manual.
Continuação delimitada: dois dossiers e nova entrada conferidos no navegador; histórico agora visível no percurso de pequeno negócio, hashes preservados; Abrir cálculo encaminha para a etapa financeira; repetição de gravação após 503 corrigida e conferida; controlos independentes de tesouraria/plano passaram. CSV e Word descarregados pela interface coincidem nos valores comuns e apresentam a receita completa do crédito. Seis páginas do DOCX conferidas; PDF nativo ainda aguarda gravação pelo utilizador. QA tem zero regras com visibilidade completa, mas existem três originais fiscais versionados e análises/referências reutilizáveis; não se concluiu ausência na homologação sem autenticação SSH. Versões sintéticas testadas apenas em memória, sem cadastro/activação. Encontrada e corrigida perda dos pressupostos da tesouraria: snapshot no JSON existente, recuperação por dossier e relatório, sem migration; testes HTTP/frontend passaram, falta conferência visual deste novo delta. Saldo **2–4 h** após acessos/ficheiro, detalhado no mesmo manual; integração do motor fiscal permanece separada e não foi implementada. Sem main ou intervenção remota.
## 29/10/2026 — ACT-20261029-01, inventário antes da verificação do incremento
Continuação sequencial solicitada pela Tempo. Correspondência: ACT-20261029-01 reutiliza D-02 §8, clusters/cadeias e a orientação metodológica documentada em 23/10. Concluído previamente e preservado: gestão de clusters, etapas, ligações, lacunas e relações auditadas; disponibilidade instalada de carteira/âncoras e formulários fiscais conforme recibos de 28/10. Nenhuma perda nova confirmada nesta inspecção de código; não foi feita nova comparação de dados ou alegada prova do servidor. A pasta principal está em fde644af, enquanto o último recibo identifica 332c16eb instalado; reconciliar o delta sobre essa origem antes de instalar, sem substituir o destino pela pasta principal.
Incremento em preparação: diagnóstico qualitativo das cinco forças na edição do cluster, sector/região editáveis, fonte/período/evidência/justificação/limites/oportunidade por força; indeterminação explícita, ficheiro privado transferível e recuperação com confirmação. Sem alteração de schema, dados, permissões, publicações ou motores fiscais. Persistência no servidor, ligação territorial canónica, dados sectoriais fundamentados e consulta pública permanecem por implementar; ACT-01 não está concluída. Verificação dirigida e instalação ainda pendentes neste registo inicial. Restantes ACT-02 a 16 mantêm o estado anterior e a sequência, sem trabalho SGF nesta passagem.
### ACT-20261029-01 — candidato sequencial preparado, 29/10/2026
Primeiro incremento implementado, **parcial e ainda não instalado**: gestão → clusters → editar → Competitividade. As cinco forças conservam fonte, período, evidência, apreciação, limites e oportunidade; sector e região explícitos, sem inferências automáticas. Transferência de rascunhos JSON e recuperação restrita ao mesmo cluster, com confirmação antes de substituir. Quatro testes frontend dirigidos, TypeScript e compilação QA passaram tanto na pasta de trabalho como no candidato baseado em 332c16eb. Guarda C132 local passou; não foram efectuados testes nem escritas na base activa. A edição existente recebe apenas a inclusão do componente; contratos e permissões existentes preservados.
Origem reconciliada: main remoto e revisão pública conferidos em 332c16eb em 29/10. Candidato em C:/laragon/www/portal-investidor-competitiveness-qa-20261029, ramo codex/competitiveness-sequential-20261029. Consulta do estado remoto não equivale a inventário novo da base. Sessão SSH anterior encerrada; autenticação por chave recusada. Instalação requer autenticação SSH, backup fresco, restauro isolado, guarda de versão, pipeline existente e conferência posterior. Não instalar a pasta principal sobre o destino. A sequência solicitada mantém ACT-02 a 16 por iniciar após a instalação e o saldo de ACT-01; persistência no servidor, cobertura factual e consulta pública continuam pendentes. Sem declaração de conferência visual autenticada.
### 29/10/2026 — ACT-20261029-01, primeiro incremento instalado: 23ecccfa
Estado corrente de ACT-01: **parcial — primeiro incremento instalado**, substituindo apenas o estado planeado/preparado deste recorte; ACT-02 a 16 não foram implementadas nesta entrega. Instalado por avanço normal de main e pipeline existente em https://teste-investidor.tempo.co.mz/. Entrada: Gestão → Clusters → Editar → Competitividade — cinco forças de Porter. Preparação qualitativa por sector/região, evidências/fontes/períodos/limites e oportunidades, transferência JSON e recuperação confirmada do mesmo cluster. Sem gravação no servidor nem publicação da análise. Persistência, cobertura factual, território canónico e consulta pública continuam pendentes; esta instalação não encerra o critério amplo ACT-01.
Provas: backup fresco, restauro isolado sem rede das 176 tabelas; pipeline com lifecycle de schema (3.106 asserções), 59 testes Unit/320 asserções e 1.180 testes frontend sem falhas, tipos e compilação; quatro ficheiros do incremento conferidos por SHA-256 no instalado; C132 no destino passou. Comparação após instalação: todas as 176 tabelas de domínio preservadas, diferenças operacionais apenas em cache/sessões; 369 ficheiros/configuração idênticos. Acesso anónimo ao catálogo privado recusado HTTP401. Zero migrações/importações, nenhuma nova divulgação nem mudança de permissões; versão anterior 332c16eb preservada. Conferência visual autenticada permanece pendente. Recibo: `docs/investmoz/unification/competitiveness-sequential-qa-20261029.json`, em docs/investmoz/unification. As provas aceites anteriores foram reutilizadas; não foram reabertas por esta entrega.
### 29/10/2026 — ACT-01, persistência e aprovação: execução em curso
Ordem confirmada pela Tempo: 1) gravar/validar/recuperar na gestão com permissões e histórico, 2) consultar publicamente apenas conteúdo aprovado, 3) restantes alterações. A instalação da interface 23ecccfa e os 1.180 testes anteriores são provas desse incremento, não prova de persistência. Sem perda nova confirmada; preservar a versão pública anterior e os recibos de backup/restauro. O problema dos filtros provinciais permanece **separado e aberto**, sem declaração de correcção por estes trabalhos.
Escolha técnica: reutilizar snapshots cifrados nos eventos append-only de auditoria, já usados pelo portal; bloqueio transaccional do cluster, controlo de versão e histórico imutável. Sem alteração de schema/permissões. Guardar rascunho e recuperar histórico não publica; aprovação explícita fixa a versão consultável, edições seguintes preservam a aprovação anterior até nova decisão. Rascunhos parciais são guardáveis; aprovação exige os fundamentos das cinco forças. Recuperação/conflito não deve sobrescrever edições inadvertidamente. Acesso público continua limitado às fichas publicadas. Implementação e provas específicas de persistência/consulta ainda em preparação; restantes ACT mantêm o estado anterior.
### ACT-01 — prova específica antes da instalação, 29/10/2026
Sete testes Feature/93 asserções passaram na base restaurada competitiveness_persistence_20261029_test, porta 55441: gravação e leitura HTTP entre pedidos, retorno pela edição da gestão, histórico cifrado, validação de campos/cluster/forças, normalização do formato recuperável, conflitos sem sobrescrita, aprovação fixa, rascunhos posteriores sem divulgação, recuperação histórica como nova versão, retirada e exclusão do conteúdo não aprovado na consulta pública. Utilizadores sem permissão e pedidos anónimos foram recusados na gestão. O teste público percorreu a ficha publicada e confirmou 404 da ficha não publicada. Zero escritas na base activa. Esta prova não afirma conferência visual autenticada nem correcção dos filtros provinciais, que permanecem abertos. Recibo: docs/investmoz/unification/competitiveness-persistence-qa-20261029.json. Compilação QA, tipos e quatro testes frontend dirigidos passaram; instalação ainda pendente.
### 29/10/2026 — ACT-01, gravação/recuperação e consulta aprovada instaladas: b81f477b
Instalado pelo avanço normal de main e pipeline existente, preservando 23ecccfa para retorno. Gestão → Clusters → Editar → Competitividade agora recupera o rascunho do servidor e permite gravar, consultar a versão actual, confirmar recuperação e recuperar uma versão histórica como nova gravação. Versões cifradas e imutáveis na auditoria existente, com bloqueio transaccional do cluster e controlo de versão; conflitos conservam a versão guardada e os campos do editor. Reutilizada a permissão existente de gestão, sem novos papéis ou aprovadores. Rascunhos incompletos podem ser guardados; a aprovação exige âmbito e fundamentos das cinco forças.
**Percurso da gestão:** preencher → Guardar rascunho no servidor → voltar à edição para recuperar → consultar histórico quando necessário. Para comparar com outra gravação, usar Consultar versão actual do servidor e confirmar antes de substituir os campos; transferir primeiro edições que se queira conservar. Recuperar o histórico cria nova versão e mantém o histórico e a aprovação pública existente. A aprovação ou retirada é expressa, com evidência/motivo registado. A ficha pública de um cluster publicado mostra exclusivamente a análise aprovada; novas gravações privadas não alteram essa versão. Uma ficha não publicada continua indisponível ao público. Não houve aprovação nem divulgação automática de análises.
**Prova específica:** sete testes Feature/93 asserções na base restaurada e isolada competitiveness_persistence_20261029_test, porta55441. Abrange gravação/recuperação HTTP, retorno na gestão, validação e formato, histórico cifrado, conflito, acesso recusado, aprovação fixa, rascunho posterior privado, recuperação, retirada e consulta pública/404 de ficha não publicada. Os 1.180 testes frontend não são apresentados como prova substituta de persistência. Pipeline: tipos, compilação, lifecycle de schema1/3106, Unit59/320 e frontend1180 sem falhas. Dez ficheiros de código/testes do instalado conferidos por SHA-256 com os da QA; C132 no destino passou.
**Preservação e limites:** backup fresco/restauro isolado176; comparação posterior de176 tabelas sem alterações de domínio, apenas diferenças operacionais de cache/sessões; 369 ficheiros/configuração idênticos. Ligação real teste_investidor_app conferida em leitura, com privilégios existentes de SELECT/INSERT em auditoria e bloqueio do cluster; endpoint de gestão anónimo HTTP401. Nenhuma escrita sintética na base activa, migração, importação, mudança de permissões ou nova publicação. A conferência visual autenticada no instalado permanece pendente; não foi simulada uma decisão real de conteúdo no activo. ACT-01 tem agora persistência e consulta aprovada implementadas/instaladas, mantendo parcial a cobertura factual por sector/região. Recibo: docs/investmoz/unification/competitiveness-persistence-qa-20261029.json.
**Filtros provinciais: separado e aberto.** Esta entrega não alterou a lógica dos filtros nem demonstra a correcção relatada de Agronegócio/Maputo Província no portal. Preservam-se as provas e os estados históricos; não encerrar V2-07/V2-10 ou ACT-02 por causa da persistência de Competitividade. Restantes alterações permanecem na sequência posterior.
Origem de continuidade: C:/laragon/www/portal-investidor-competitiveness-qa-20261029, ramo codex/competitiveness-persistence-20261029, instalado b81f477b. A pasta principal anterior não deve substituir esta versão sem reconciliação do delta.
### 29/10/2026 — V2-07/V2-10 / ACT-02, diagnóstico dos filtros provinciais em curso
Separação confirmada pela Tempo: a equipa executará e registará a conferência visual autenticada de Competitividade (continua pendente); o Codex prossegue no código/API dos filtros. Provas aceites preservadas, sem repetição das suites fiscais ou de Competitividade. Nenhuma perda de dados confirmada nesta passagem.
Reprodução pública em b81f477b: Agronegócio/Maputo Província por province_id na API /api/v1/investment/search devolve5 oportunidades (IDs60–64). O mesmo nome em province devolve0, tanto nessa API como em /api/v1/opportunities/search. A API antiga ignora province_id e devolve34, incluindo outras províncias. São lacunas de normalização/compatibilidade entre entradas, não prova de eliminação nem falha demonstrada da expansão hierárquica já existente. Corrigir apenas os deltas: resolver nomes provinciais públicos inequívocos para a mesma hierarquia e aplicar o filtro territorial na API antiga, preservando outros filtros, versões públicas, localização real e dados. Demonstrar todos os níveis inferiores por pedidos HTTP em QA isolada; província apenas contextual ou declarada não deve ganhar distrito. O problema permanece aberto até às provas específicas e à conferência da API instalada; não encerrar a conferência visual da equipa por testes técnicos.
### 29/10/2026 — duas frentes e diagnóstico local Edge
A equipa executa directamente e regista a conferência visual autenticada de Competitividade (editar → guardar → reabrir → conferir versão aprovada); estado pendente até execução. O Codex prossegue com código/API dos filtros provinciais, independentemente do navegador. Provas aceites preservadas.
Ligação identificada: com.openai.codexextension, manifesto stdio válido, extensão Edge instalada e activa no perfil detectado, host executado como filho do Edge; named pipes do browser-use presentes e servidor registado nos logs do cliente. Inspeccionados os listeners/processos sem libertar portas. Não foi identificado conflito TCP nem um serviço de extensão parado. Não foi encontrado erro de permissões no recorte de logs consultado, sem excluir outros pontos. A descoberta desta sessão continua a indicar access host indisponível; o runtime exige caminho do pipe e identidade verificadora, ausentes na shell. Falha de passagem de contexto é uma hipótese delimitada, não conclusão de porta ocupada. O registo de erros do service worker não ficou acessível pela ligação de navegador indisponível. A recuperação suportada, limitada à abertura do perfil Edge detectado, não restabeleceu a leitura do URL. Não foram terminados processos, reinstalados hosts nem alteradas permissões/políticas. InvesteMoz e SGF continuam em execução. Relatório local: outputs/edge-bridge-diagnostic-20261029/report.json. Não declarar recuperada a ligação nem concluída a conferência visual.
Correcção provincial preparada no ramo codex/province-search-20261029; validação QA/instalação pendentes. A sessão SSH anterior expirou. O lançamento automático de nova consola foi recusado pela revisão automática com indicação genérica blocked by policy, sem razão adicional; foi pedido arranque/autenticação manual no helper existente. Nenhuma escrita no activo ou novo ensaio remoto ocorreu por essa tentativa.
### 29/10/2026 — filtros provinciais: correcção candidata, pendente de QA
Reproduzido no portal instalado b81f477b: /api/v1/investment/search por province_id de Maputo Província devolve5; por province textual devolve0 nas duas APIs; a API antiga com province_id ignora o parâmetro e devolve34 de Agronegócio. Preparada correcção no ramo codex/province-search-20261029, preservando a expansão de descendentes existente e aplicando a mesma selecção territorial à API antiga. Nomes provinciais só são resolvidos quando a correspondência pública exacta é inequívoca. Declarações provinciais antigas são consideradas sem atribuir distrito, posto, localidade ou coordenadas, e não prevalecem sobre territórios explícitos contraditórios. Nenhum dado cadastral é actualizado por esta correcção.
Quatro testes HTTP preparados para província/distrito/posto/localidade e localizações adicionais, onze províncias e exclusão de vizinhas/privados/eliminados, preservação das localizações e consistência de catálogo/mapa/exportação. Sintaxe PHP e diff conferidos; testes ainda não executados e candidato ainda não instalado. Recibo: docs/investmoz/unification/province-search-qa-20261029.json. A sessão SSH expirou e a nova consola automática foi recusada pela revisão de aprovação com blocked by policy (sem razão específica adicional); pedida autenticação manual no helper outputs/province-search-20261029/ssh-session.py. Não substituir ausência de ensaio por declaração de correcção concluída.
A conferência visual de Competitividade fica a cargo da equipa e permanece pendente até execução/registo; provas técnicas aceites preservadas. Ligação Edge diagnosticada separadamente: extensão/manifesto/host activos, stdio/named pipes, leitura do URL não restabelecida pela recuperação suportada do perfil. Nenhum processo terminado nem porta libertada/reconfigurada. InvesteMoz e SGF preservados. Relatório local: outputs/edge-bridge-diagnostic-20261029/report.json. Os filtros mantêm-se abertos até QA e confirmação da API instalada.
### 29/10/2026 — filtros provinciais, prova HTTP específica em QA
Quatro testes Feature/364 asserções passaram na base restaurada province_search_20261029_test, porta55441, candidato e0987afb. Seleccionar só a província, por nome público inequívoco ou ID, inclui registos provinciais, distritais, de posto e localidade e localizações adicionais, nas duas APIs; confirmada cobertura das11 províncias e exclusão de vizinhas. Privados/eliminados não entram; distrito seleccionado não recebe oportunidades apenas provinciais. Declaração provincial antiga não supera localização explícita noutro território. Maputo Província por nome/ID, página do catálogo, mapa e exportação concordam nas5 oportunidades do contexto aprovado; sem coordenadas ou distrito inventados. Campos e relações guardados permanecem inalterados. Zero escritas no activo; nenhuma migração nem alteração de permissões. O conjunto inclui provas novas da hierarquia HTTP, sem reabrir as provas aceites de Competitividade/fiscalidade.
Recibo: docs/investmoz/unification/province-search-qa-20261029.json. Instalação e confirmação da API no portal continuam pendentes; não declarar encerrado o problema por QA isolada. A conferência visual autenticada de Competitividade permanece separada, pendente de execução e registo pela equipa. A sessão SSH foi reaberta a pedido expresso da Tempo e ficou autenticada; a recusa anterior da abertura automática não constitui bloqueio actual.
File diff suppressed because one or more lines are too long