docs: record authenticated preservation and installer reconciliation

This commit is contained in:
2026-10-29 22:31:49 +02:00
parent 8a8204eb53
commit 4f72751b8b
3 changed files with 284 additions and 10 deletions
@@ -2089,3 +2089,15 @@ Branch enviada e SHA remoto conferido: `codex/investemoz-reconciliation-20261029
**Instalação: pendente conforme a sequência pedida.** O ficheiro antigo de sessão SSH indicava connected_ready, mas o respectivo processo já não está operativo; a tentativa não interactiva com chave de host fixada foi recusada. A revisão instalada, capacidade actual e novo backup/restauro ainda não foram confirmados nesta entrega. Após o registo visual: sessão autenticada, alvo/capacidade/contrato/delta actuais, backup consistente e restauro isolado, avanço normal de main e pipeline existente, preservação da release anterior e verificação final de revisão/hashes/C132/dados/ficheiros/permissões. Sem migrações, importações ou alterações de permissões solicitadas no activo.
Detalhes, cinco hashes e proposta: campo `git_delivery` do recibo existente `local-validation-20261029.json`. Este registo actualiza o estado de entrega; os resultados e recibos históricos da validação mantêm o seu contexto temporal.
### 29/10/2026 — preparação autenticada: preservação e contrato concluídos, visual pendente
Sessão SSH reaberta e autenticada pelo utilizador no terminal. Conferência actual do destino: release `fde7343894964043fa633e3d4d07385a6cb7e039`, symlink correcto, pipeline inactivo e C132 positivo. Cerca de 67 GiB livres e 51 GiB de memória disponível no ensaio, 12 CPUs lógicas; mantida a verificação existente de 5 GiB do instalador.
Backup fresco consistente de `teste_investidor:5432`, criado em 29/10/2026 às 22:25:27 (Africa/Johannesburg), em `/var/backups/investmoz-validated-delivery-20261029T202505Z/backup`: 200 tabelas de schemas não sistémicos e 369 ficheiros/configurações verificados. Restauro isolado sem rede, porta interna55441: contagens e checksums iguais nas 200 tabelas; contentor temporário removido. O inventário de 200 inclui os outros schemas além das 176 tabelas públicas dos recibos anteriores; não indica perda nem invalida essas provas. Hash do dump: `89739eb0ac022b90423ab30194d4fcc7a81a1fffc97af260a43f9e902f3f1ea9`.
**Contrato reconciliado no servidor:** alterados apenas os cinco hashes revistos, após confirmar que as cinco migrações já estão no ledger e que a cópia anterior coincide com o instalado. Corpos de operações equivalentes; nenhuma migração repetida e nenhum SQL de alteração na base activa. Pipeline byte a byte preservado, incluindo a comparação estrita do contrato. Contrato anterior conservado no backup; recibo auditável em `schema-contract-reconciliation.json` na pasta superior. C132 voltou a passar após a reconciliação.
**IVA herdado conferido contra o instalado:** os quatro ficheiros de runtime instalados coincidem por SHA-256 com `main` e ainda não contêm o incremento `d1551dab`. O âmbito de entrega é a correspondência 05/06/07, pertença exclusiva das operações, contagem única no campo14 e reutilização actual dos campos01/02. Não cria tratamento positivo06, não infere estrangeiro=06 nem transforma desconhecido em zero. Provas IVA/P001 aceites reutilizadas, com preservação de histórico, snapshots e edições deliberadas.
**Continua pendente a conferência visual dirigida da candidata**, pela equipa, com registo nesta matriz. O conector permanece sem browser acessível. Não houve avanço de main, troca de release, importações ou alteração de permissões. Após o resultado visual, reconferir que o destino e a base de preservação continuam actuais antes do avanço normal e do pipeline existente; preservar quaisquer alterações legítimas entretanto ocorridas. As provas automáticas de 798 testes PHP e1190 frontend mantêm-se aceites, sem repetição integral. Detalhes no campo `git_delivery.authenticated_preparation` do recibo existente.
@@ -3,7 +3,7 @@
"repository": "InvesteMoz / portal-investidor",
"base_commit": "63147312e2fdb6dc235bcb2763f47d8b1aeeac3c",
"branch": "codex/investemoz-reconciliation-20261029",
"status": "automated_validation_passed_visual_validation_pending",
"status": "git_delivered_preservation_and_contract_ready_visual_pending",
"validated_source": {
"manifest": "outputs/validation-20261029/validated-source-manifest.json",
"sha256": "1291c22692f90f9baaa85e5f252d5db2301dccb83d6d887fa76a0efae1618ba1",
@@ -531,6 +531,26 @@
{
"path": "outputs/validation-20261029/editorial-originals-recovery.json",
"sha256": "9f9998a06fee6cde241cca54f5a8060283934328721249a5ad00bcddefa50b9c"
},
{
"path": "outputs/validation-20261029/delivery-preflight-result.json",
"sha256": "cea393e575b2ede50833fda0845885eb0abae866149641e3bbe61bd327b89183"
},
{
"path": "outputs/validation-20261029/delivery-backup-result.json",
"sha256": "6a743f5cc301520ee7482552121b5ef91cc94690b46e8ba5a1f114d0565fd134"
},
{
"path": "outputs/validation-20261029/delivery-restore-result.json",
"sha256": "7330e1ca5fd6015392390a5bc2229c64dc9068564bfc44760fa2eef655c42fbf"
},
{
"path": "outputs/validation-20261029/contract-reconciliation-result.json",
"sha256": "e9be3c089504759888e71562ec747e974bbdc0cf8803dea7d2948aa03d6d1820"
},
{
"path": "outputs/validation-20261029/delivery-preparation-verified-result.json",
"sha256": "f667c4007091b80730c761e571247abeb6e994437b041350cef30d2ba7e54ff3"
}
],
"qa_runtime_cleanup": {
@@ -688,7 +708,47 @@
"tests/frontend/iva-p001-correspondence.test.mjs"
],
"origin_commit": "d1551dab",
"scope": "Previously reconciled IVA/P001: correspondence of fields 05/06/07, exclusive aggregation, field 14 single counting and current 01/02 reuse. Preserve the accepted QA evidence; reconcile this inherited delta with the installed destination before installation. This is not newly introduced by daf86234."
"scope": "Previously reconciled IVA/P001: correspondence of fields 05/06/07, exclusive aggregation, field 14 single counting and current 01/02 reuse. Preserve the accepted QA evidence; reconcile this inherited delta with the installed destination before installation. This is not newly introduced by daf86234.",
"confirmed_against_installed": true,
"installed_source_comparison": [
{
"path": "resources/js/components/simulation-operations.tsx",
"installed_sha256": "a7e55972fa790063dcf11945055de2af46a77db9e509900af22ede7ec47bb4cf",
"baseline_main_sha256": "a7e55972fa790063dcf11945055de2af46a77db9e509900af22ede7ec47bb4cf",
"candidate_sha256": "dde59e9ff3a0a53cf082e35a0c8d8eea5bd438b1fe06af88483afdc32541b005",
"inherited_delta_not_yet_installed": true
},
{
"path": "resources/js/lib/iva-acquisitions.ts",
"installed_sha256": "cce283b1d0a07fb383fcb527225f4dd5bec829010a662cbaae1d60e595221977",
"baseline_main_sha256": "cce283b1d0a07fb383fcb527225f4dd5bec829010a662cbaae1d60e595221977",
"candidate_sha256": "b8a8c4a72e35fea7026fd01b0e8e26d44248539eca1a77e8d58ca15a72f218fb",
"inherited_delta_not_yet_installed": true
},
{
"path": "resources/js/lib/iva-modelo-a.ts",
"installed_sha256": "c641619a05613c1620385baad0e9ffbf810dd970aafb30e12b3a7f9a3bf11846",
"baseline_main_sha256": "c641619a05613c1620385baad0e9ffbf810dd970aafb30e12b3a7f9a3bf11846",
"candidate_sha256": "e34cac6d3c0473a64e896cfc4641c1da29382aab13de2bd0e78e1ff33c770c87",
"inherited_delta_not_yet_installed": true
},
{
"path": "resources/js/lib/iva-operations.ts",
"installed_sha256": "ec37b949f1233c5f5c14a87450c421ed29fabf1ed5b73fb32564564a2bc31f54",
"baseline_main_sha256": "ec37b949f1233c5f5c14a87450c421ed29fabf1ed5b73fb32564564a2bc31f54",
"candidate_sha256": "87f616ea2b3a844dea352a6c4d2db25a8de612df3e4edab4c395cc8fa0297a50",
"inherited_delta_not_yet_installed": true
}
],
"still_to_install": true,
"confirmed_functional_scope": [
"User-confirmed correspondence of IVA fields 05/06/07.",
"Exclusive operation membership and single-count aggregation in field 14 = 01+03+05+06+07.",
"Reuse current 01/02 from classified sales even without acquisition rows, only when the inputs exist and are current.",
"No invented positive field-06 treatment, no inference foreign=06, no conversion of unknown values to zero, no automatic rate activation.",
"Preserve original snapshots, history, deliberate edits and frozen report inputs."
],
"proof_reuse": "Existing directed IVA/P001 evidence and the accepted 1190-case frontend result; no tax-rule reassessment or full test rerun."
},
"migration_contract": {
"reference": "Last recorded server contract in outputs/province-search-20261029/province-preflight.json; current server contract not refreshed.",
@@ -732,7 +792,7 @@
"new_migration_paths": [],
"proposed_contract": "outputs/validation-20261029/schema-contract-proposed.json",
"proposed_contract_sha256": "01673b8c817d7189416398927164d6daf787628d39012ee1221512fabf4933a7",
"active_contract_updated": false,
"active_contract_updated": true,
"active_SQL_executed": false,
"next_action": "After authenticated current-target comparison and fresh preservation evidence, reconcile these five source hashes through the existing operator-controlled process; do not bypass the pipeline gate.",
"proposed_source_contract": {
@@ -827,7 +887,36 @@
"database/migrations/2026_10_21_130000_correct_fiscal_maintenance_actor_constraints.php": "49aad23e494914ce939f29929a0a934251c6096ea88d85f0ffdfcf86944af61b",
"database/migrations/2026_10_22_230000_create_portal_tenders.php": "03f8ec30add71a355f7ac6a55d4b0f4ab7d70f298142788a4ddceb2106f5fe9b",
"database/migrations/2026_10_28_180000_create_proactive_supply_observations.php": "9058739b3305490f6184899d19505760a07df1fe5262d638e0cde12b92a99669"
}
},
"status": "reconciled_five_reviewed_hashes_without_migration_execution",
"reconciliation": {
"at": "2026-10-29T20:27:46.553905+00:00",
"reviewed_candidate": "8a8204eb536003e2ee71a8379ca2ad5cdebcde38",
"installed_commit_unchanged": "fde7343894964043fa633e3d4d07385a6cb7e039",
"changed_paths": [
"database/migrations/2026_10_16_130000_add_investment_zone_editorial_draft.php",
"database/migrations/2026_10_16_140000_add_investment_zone_operational_details.php",
"database/migrations/2026_10_16_150000_create_investor_navigation_preferences.php",
"database/migrations/2026_10_18_160000_add_portal_editorial_content.php",
"database/migrations/2026_10_28_180000_create_proactive_supply_observations.php"
],
"changed_hashes": 5,
"operation_body_differences": 0,
"five_migrations_already_recorded": true,
"previous_contract": "/var/backups/investmoz-validated-delivery-20261029T202505Z/backup/schema-contract.json",
"before_sha256": "49639d06fb20c4fb2873e5e7b1177c76aa098ca7b931400899b588bb8897ddfe",
"pipeline_sha256_unchanged": "adec1c17654f3a8658b83b134f1e75f95391b235738552721906c3236e388604",
"strict_source_contract_check_preserved": true,
"backup_dump_sha256": "89739eb0ac022b90423ab30194d4fcc7a81a1fffc97af260a43f9e902f3f1ea9",
"restore_tables_verified": 200,
"database_migrations_executed": 0,
"active_database_writes": 0,
"deployment_triggered": false,
"visual_acceptance": "pending",
"status": "reconciled",
"after_sha256": "1bac3f5af9513242acb1ffd67b44fda53fe12c5bb22a42f3bad212b5b8bfc002"
},
"strict_check_retained": true
},
"visual": {
"status": "pending_team_execution_and_record",
@@ -845,13 +934,13 @@
"pending_results_do_not_prove_portal_failure": true
},
"installation": {
"status": "pending",
"status": "prepared_visual_acceptance_pending",
"existing_pipeline": "/var/www/deploy/investmoz-pipeline.py",
"last_known_installed": "fde7343894964043fa633e3d4d07385a6cb7e039",
"last_known_installed_evidence": "outputs/province-search-20261029/province-status-4.json; historical observation, not a fresh destination check",
"fresh_target_and_capacity_checked": false,
"fresh_backup_restore_verified": false,
"SSH": "Historical connected_ready file has no live province-session worker; pinned-host BatchMode SSH attempt returned Permission denied (publickey,password). No credential requested in chat or guessed.",
"last_known_installed_evidence": "Authenticated preflight and post-reconciliation verification on 2026-10-29, not the earlier historical observation.",
"fresh_target_and_capacity_checked": true,
"fresh_backup_restore_verified": true,
"SSH": "Authenticated existing pinned-host session confirmed by completed remote requests; credential not recorded.",
"sequence": [
"Record the bounded visual conference by the team.",
"Re-establish authenticated deployment session and read current installed revision, service, capacities and source contract.",
@@ -863,7 +952,168 @@
"database_migrations_requested": 0,
"content_imports_requested": 0,
"permissions_changes_requested": 0,
"deployment_triggered": false
"deployment_triggered": false,
"ready_for_installation": false,
"remaining": [
"Execute and record the bounded visual conference of the candidate by the team.",
"Before advancing main, recheck that the installed revision and preservation baseline are still current; reconcile any legitimate intervening change.",
"Advance main normally and run the existing guarded pipeline for the fixed delivery revision, preserving the previous release.",
"Verify installed revision/source hashes, C132 and preservation of data/files/permissions; record the installation."
]
},
"authenticated_preparation": {
"checked_at": "2026-10-29T20:28:52.994602+00:00",
"preflight": {
"installed_commit": "fde7343894964043fa633e3d4d07385a6cb7e039",
"current_link_matches": true,
"contract_matches_installed_sources_before_reconciliation": true,
"volumes": [
{
"path": "/var/www/investmoz-homologacao/releases",
"device": 2306,
"available_bytes": 72163291136,
"available_inodes": 23290806
},
{
"path": "/var/lib/investmoz-deploy",
"device": 2306,
"available_bytes": 72163291136,
"available_inodes": 23290806
},
{
"path": "/var/backups",
"device": 2306,
"available_bytes": 72163291136,
"available_inodes": 23290806
},
{
"path": "/var/lib/docker",
"device": 2306,
"available_bytes": 72163291136,
"available_inodes": 23290806
},
{
"path": "/tmp",
"device": 2306,
"available_bytes": 72163291136,
"available_inodes": 23290806
}
],
"existing_five_GiB_pipeline_check_present": true,
"database_identity": {
"database": "teste_investidor",
"port": 5432,
"reader": "postgres",
"database_bytes": 407377587
},
"five_migrations_already_applied": [
{
"migration": "2026_10_16_130000_add_investment_zone_editorial_draft",
"batch": 17
},
{
"migration": "2026_10_16_140000_add_investment_zone_operational_details",
"batch": 18
},
{
"migration": "2026_10_16_150000_create_investor_navigation_preferences",
"batch": 19
},
{
"migration": "2026_10_18_160000_add_portal_editorial_content",
"batch": 20
},
{
"migration": "2026_10_28_180000_create_proactive_supply_observations",
"batch": 23
}
],
"pipeline_sha256": "adec1c17654f3a8658b83b134f1e75f95391b235738552721906c3236e388604"
},
"fresh_backup": {
"stage": "/var/backups/investmoz-validated-delivery-20261029T202505Z/backup",
"created_at": "2026-10-29T20:25:27Z",
"target": {
"database": "teste_investidor",
"port": 5432
},
"tables": 200,
"files_verified": 369,
"dump_sha256": "89739eb0ac022b90423ab30194d4fcc7a81a1fffc97af260a43f9e902f3f1ea9",
"files_sha256": "24a3fe38be338f184e4d90bcdb740370739eb71490f63aedc18b433075913c66",
"restore_verified": false
},
"isolated_restore": {
"restore_verified": true,
"tables_verified": 200,
"container_network": "none",
"database": "validated_delivery_restore_20261029_test",
"port": 55441,
"source_dump_sha256": "89739eb0ac022b90423ab30194d4fcc7a81a1fffc97af260a43f9e902f3f1ea9",
"active_database_writes": 0,
"capacity_before_restore": {
"available_memory_bytes": 54866030592,
"logical_cpus": 12,
"load_average": [
2.50048828125,
2.62646484375,
2.646484375
]
}
},
"post_reconciliation": {
"checked_at": "2026-10-29T20:28:52.994602+00:00",
"installed_commit": "fde7343894964043fa633e3d4d07385a6cb7e039",
"contract_matches_reviewed_candidate": true,
"strict_pipeline_verification_unchanged": true,
"inherited_iva_sources": [
{
"path": "resources/js/components/simulation-operations.tsx",
"installed_sha256": "a7e55972fa790063dcf11945055de2af46a77db9e509900af22ede7ec47bb4cf",
"baseline_main_sha256": "a7e55972fa790063dcf11945055de2af46a77db9e509900af22ede7ec47bb4cf",
"candidate_sha256": "dde59e9ff3a0a53cf082e35a0c8d8eea5bd438b1fe06af88483afdc32541b005",
"inherited_delta_not_yet_installed": true
},
{
"path": "resources/js/lib/iva-acquisitions.ts",
"installed_sha256": "cce283b1d0a07fb383fcb527225f4dd5bec829010a662cbaae1d60e595221977",
"baseline_main_sha256": "cce283b1d0a07fb383fcb527225f4dd5bec829010a662cbaae1d60e595221977",
"candidate_sha256": "b8a8c4a72e35fea7026fd01b0e8e26d44248539eca1a77e8d58ca15a72f218fb",
"inherited_delta_not_yet_installed": true
},
{
"path": "resources/js/lib/iva-modelo-a.ts",
"installed_sha256": "c641619a05613c1620385baad0e9ffbf810dd970aafb30e12b3a7f9a3bf11846",
"baseline_main_sha256": "c641619a05613c1620385baad0e9ffbf810dd970aafb30e12b3a7f9a3bf11846",
"candidate_sha256": "e34cac6d3c0473a64e896cfc4641c1da29382aab13de2bd0e78e1ff33c770c87",
"inherited_delta_not_yet_installed": true
},
{
"path": "resources/js/lib/iva-operations.ts",
"installed_sha256": "ec37b949f1233c5f5c14a87450c421ed29fabf1ed5b73fb32564564a2bc31f54",
"baseline_main_sha256": "ec37b949f1233c5f5c14a87450c421ed29fabf1ed5b73fb32564564a2bc31f54",
"candidate_sha256": "87f616ea2b3a844dea352a6c4d2db25a8de612df3e4edab4c395cc8fa0297a50",
"inherited_delta_not_yet_installed": true
}
],
"C132_after_reconciliation": {
"result": "passed",
"case": "C132",
"source_explicit_constant_OFF": true,
"effective_configuration_OFF": true,
"configuration_cached": false,
"database_connections_used": 0,
"active_writes": 0
},
"active_database_writes": 0,
"migration_execution": false,
"deployment_triggered": false,
"visual_acceptance": "pending_team_execution_and_record"
},
"active_business_database_writes": 0,
"production_migration_execution": 0,
"portal_release_switch": false,
"visual_acceptance": "pending_team_execution_and_record"
}
}
}
@@ -7626,3 +7626,15 @@ Branch enviada e SHA remoto conferido: `codex/investemoz-reconciliation-20261029
**Instalação: pendente conforme a sequência pedida.** O ficheiro antigo de sessão SSH indicava connected_ready, mas o respectivo processo já não está operativo; a tentativa não interactiva com chave de host fixada foi recusada. A revisão instalada, capacidade actual e novo backup/restauro ainda não foram confirmados nesta entrega. Após o registo visual: sessão autenticada, alvo/capacidade/contrato/delta actuais, backup consistente e restauro isolado, avanço normal de main e pipeline existente, preservação da release anterior e verificação final de revisão/hashes/C132/dados/ficheiros/permissões. Sem migrações, importações ou alterações de permissões solicitadas no activo.
Detalhes, cinco hashes e proposta: campo `git_delivery` do recibo existente `local-validation-20261029.json`. Este registo actualiza o estado de entrega; os resultados e recibos históricos da validação mantêm o seu contexto temporal.
### 29/10/2026 — preparação autenticada: preservação e contrato concluídos, visual pendente
Sessão SSH reaberta e autenticada pelo utilizador no terminal. Conferência actual do destino: release `fde7343894964043fa633e3d4d07385a6cb7e039`, symlink correcto, pipeline inactivo e C132 positivo. Cerca de 67 GiB livres e 51 GiB de memória disponível no ensaio, 12 CPUs lógicas; mantida a verificação existente de 5 GiB do instalador.
Backup fresco consistente de `teste_investidor:5432`, criado em 29/10/2026 às 22:25:27 (Africa/Johannesburg), em `/var/backups/investmoz-validated-delivery-20261029T202505Z/backup`: 200 tabelas de schemas não sistémicos e 369 ficheiros/configurações verificados. Restauro isolado sem rede, porta interna55441: contagens e checksums iguais nas 200 tabelas; contentor temporário removido. O inventário de 200 inclui os outros schemas além das 176 tabelas públicas dos recibos anteriores; não indica perda nem invalida essas provas. Hash do dump: `89739eb0ac022b90423ab30194d4fcc7a81a1fffc97af260a43f9e902f3f1ea9`.
**Contrato reconciliado no servidor:** alterados apenas os cinco hashes revistos, após confirmar que as cinco migrações já estão no ledger e que a cópia anterior coincide com o instalado. Corpos de operações equivalentes; nenhuma migração repetida e nenhum SQL de alteração na base activa. Pipeline byte a byte preservado, incluindo a comparação estrita do contrato. Contrato anterior conservado no backup; recibo auditável em `schema-contract-reconciliation.json` na pasta superior. C132 voltou a passar após a reconciliação.
**IVA herdado conferido contra o instalado:** os quatro ficheiros de runtime instalados coincidem por SHA-256 com `main` e ainda não contêm o incremento `d1551dab`. O âmbito de entrega é a correspondência 05/06/07, pertença exclusiva das operações, contagem única no campo14 e reutilização actual dos campos01/02. Não cria tratamento positivo06, não infere estrangeiro=06 nem transforma desconhecido em zero. Provas IVA/P001 aceites reutilizadas, com preservação de histórico, snapshots e edições deliberadas.
**Continua pendente a conferência visual dirigida da candidata**, pela equipa, com registo nesta matriz. O conector permanece sem browser acessível. Não houve avanço de main, troca de release, importações ou alteração de permissões. Após o resultado visual, reconferir que o destino e a base de preservação continuam actuais antes do avanço normal e do pipeline existente; preservar quaisquer alterações legítimas entretanto ocorridas. As provas automáticas de 798 testes PHP e1190 frontend mantêm-se aceites, sem repetição integral. Detalhes no campo `git_delivery.authenticated_preparation` do recibo existente.