fix: complete InvesteMoz validation and error corrections
This commit is contained in:
@@ -2033,3 +2033,13 @@ reversão e limites no início do [manual existente](unification/traceability-an
|
||||
As entregas posteriores de Competitividade e dos filtros provinciais ficam
|
||||
disponíveis nesta pasta; não se declara nova instalação ou aceitação visual.
|
||||
Mantidos os 3.555 requisitos da matriz CSV, os recibos e os históricos fiscais.
|
||||
|
||||
### 29/10/2026 — correcções e validação automática local após reconciliação
|
||||
|
||||
Validação técnica local concluída na branch `codex/investemoz-reconciliation-20261029`, a partir de `63147312`. Cobertura conferida contra o inventário completo: **798 testes PHP** (91 Unit, 706 Feature em 216 classes e 1 ensaio de schema com 3106 asserções) e **1190 testes frontend**. Tipos TypeScript, PHPStan nível 7 sem erros, Pint, lint/formatação, compilação e os controlos positivos/negativos C132 passaram. Resultados de repetições consolidados por identificador de teste, sem duplicar contagens e sem novos skips.
|
||||
|
||||
Correcções incluem contratos de dados e falhas explícitas de leitura/hash, continuidade do contexto do dossier no simulador, invalidação do cache actual da página inicial, leitura de originais antes do carregamento do catálogo opcional e directório mínimo de contas na administração autorizada. A classificação territorial reutiliza directamente o âmbito público existente, eliminando a subconsulta recursiva redundante; a varredura de rotas com o catálogo territorial completo passou em cerca de 35 segundos, com limite QA de 20 segundos por consulta. Mantidos os testes de exclusão de referências privadas/não aprovadas. Fixtures alinhadas com autenticação, MFA recente, publicação explícita e separação dos snapshots pessoal/económico. O fake HTTP de assets também isola manifestos de fontes mutáveis.
|
||||
|
||||
Execução exclusivamente em bases QA isoladas em `127.0.0.1:55441`, com contextos vazios ou clones preparados conforme as guardas originais. Os 28 originais editoriais foram recuperados de arquivo local e conferidos por SHA-256; seis testes editoriais passaram com scanner real. Preservados os originais, arquivos de fontes, ferramentas históricas, chave da aplicação, dados activos e históricos. Zero migrações/importações/escritas na base activa, push ou deployment. A alteração inclui formatação abrangente do código mantido; o manifesto de hashes identifica os ficheiros validados.
|
||||
|
||||
**Conferência visual autenticada pendente:** a revisão automática interrompeu Computer Use por não conseguir determinar com confiança o URL actual do Chrome. Não foi declarado aceite visual de Competitividade nem encerramento transversal de ACT-01, ACT-02 ou V2-07/V2-10. Recibo e provas: [local-validation-20261029.json](unification/local-validation-20261029.json).
|
||||
|
||||
@@ -0,0 +1,542 @@
|
||||
{
|
||||
"recorded_at": "2026-10-29T19:46:20.694141+00:00",
|
||||
"repository": "InvesteMoz / portal-investidor",
|
||||
"base_commit": "63147312e2fdb6dc235bcb2763f47d8b1aeeac3c",
|
||||
"branch": "codex/investemoz-reconciliation-20261029",
|
||||
"status": "automated_validation_passed_visual_validation_pending",
|
||||
"validated_source": {
|
||||
"manifest": "outputs/validation-20261029/validated-source-manifest.json",
|
||||
"sha256": "1291c22692f90f9baaa85e5f252d5db2301dccb83d6d887fa76a0efae1618ba1",
|
||||
"files": 715,
|
||||
"includes_maintained_code_formatting": true
|
||||
},
|
||||
"totals": {
|
||||
"php_default_inventory": 797,
|
||||
"php_unit": 91,
|
||||
"php_feature": 706,
|
||||
"schema_lifecycle_additional": 1,
|
||||
"php_total_with_schema": 798,
|
||||
"frontend": 1190,
|
||||
"feature_classes": 216,
|
||||
"new_skips": 0,
|
||||
"remaining_automated_failures": 0
|
||||
},
|
||||
"checks": {
|
||||
"unit-verified": {
|
||||
"result": "passed",
|
||||
"tests": 91,
|
||||
"passed": 91,
|
||||
"assertions": 405
|
||||
},
|
||||
"fresh-corrections": {
|
||||
"result": "passed",
|
||||
"tests": 3,
|
||||
"passed": 3,
|
||||
"assertions": 298
|
||||
},
|
||||
"simulator-storage": {
|
||||
"result": "passed",
|
||||
"tests": 15,
|
||||
"passed": 15,
|
||||
"assertions": 445
|
||||
},
|
||||
"simulator-corrections": {
|
||||
"result": "passed",
|
||||
"tests": 13,
|
||||
"passed": 13,
|
||||
"assertions": 810
|
||||
},
|
||||
"proactive-retry": {
|
||||
"result": "passed",
|
||||
"tests": 16,
|
||||
"passed": 16,
|
||||
"assertions": 157
|
||||
},
|
||||
"remaining-final": {
|
||||
"result": "passed",
|
||||
"tests": 63,
|
||||
"passed": 63,
|
||||
"assertions": 447
|
||||
},
|
||||
"fiscal-clean": {
|
||||
"result": "passed",
|
||||
"tests": 24,
|
||||
"passed": 24,
|
||||
"assertions": 291
|
||||
},
|
||||
"schema": {
|
||||
"result": "passed",
|
||||
"tests": 1,
|
||||
"passed": 1,
|
||||
"assertions": 3106
|
||||
},
|
||||
"editorial-final": {
|
||||
"result": "passed",
|
||||
"tests": 6,
|
||||
"passed": 6,
|
||||
"assertions": 1336
|
||||
},
|
||||
"routes-final": {
|
||||
"result": "passed",
|
||||
"tests": 1,
|
||||
"passed": 1,
|
||||
"assertions": 6
|
||||
},
|
||||
"simulator_consolidated": {
|
||||
"result": "passed",
|
||||
"tests": 171,
|
||||
"passed": 171,
|
||||
"evidence_method": "Distinct testcase outcomes consolidated from complete initial run and complete passing replacement classes.",
|
||||
"source_junit": [
|
||||
"simulator-verified.junit.xml",
|
||||
"simulator-corrections.junit.xml"
|
||||
]
|
||||
},
|
||||
"fresh_consolidated": {
|
||||
"result": "passed",
|
||||
"tests": 350,
|
||||
"passed": 350,
|
||||
"evidence_method": "Distinct testcase outcomes consolidated from complete initial run and complete passing replacement classes.",
|
||||
"source_junit": [
|
||||
"fresh-verified.junit.xml",
|
||||
"fresh-corrections.junit.xml"
|
||||
]
|
||||
}
|
||||
},
|
||||
"static_checks": {
|
||||
"phpstan": {
|
||||
"level": 7,
|
||||
"errors": 0
|
||||
},
|
||||
"pint": "passed",
|
||||
"typescript": "passed",
|
||||
"lint": {
|
||||
"files": 633,
|
||||
"errors": 0,
|
||||
"warnings": 0
|
||||
},
|
||||
"frontend_format": {
|
||||
"files": 655,
|
||||
"result": "passed"
|
||||
},
|
||||
"production_build": "passed",
|
||||
"build_notes": [
|
||||
"Existing optional font fallback and bundle-size/timing advisories remain non-fatal."
|
||||
],
|
||||
"c132": {
|
||||
"result": "passed",
|
||||
"case": "C132",
|
||||
"source_explicit_constant_OFF": true,
|
||||
"effective_configuration_OFF": true,
|
||||
"configuration_cached": false,
|
||||
"database_connections_used": 0,
|
||||
"active_writes": 0
|
||||
},
|
||||
"c132_negative_controls": {
|
||||
"result": "passed",
|
||||
"case": "C132",
|
||||
"checks": {
|
||||
"safe": "passed",
|
||||
"missing_source": "passed",
|
||||
"enabled_source": "passed",
|
||||
"stale_cache_enabled": "passed",
|
||||
"missing_effective": "passed",
|
||||
"constant_false": "passed",
|
||||
"comment_only": "passed",
|
||||
"environment_switch": "passed"
|
||||
},
|
||||
"active_writes": 0
|
||||
}
|
||||
},
|
||||
"coverage": {
|
||||
"feature_groups": {
|
||||
"fresh": [
|
||||
"tests/Feature/ApiContractTest.php",
|
||||
"tests/Feature/BusinessMarketplacePublicTest.php",
|
||||
"tests/Feature/ClamDQueueWorkerIntegrationTest.php",
|
||||
"tests/Feature/ClusterValueChainTest.php",
|
||||
"tests/Feature/CountryCandidateMfaTest.php",
|
||||
"tests/Feature/CrmIntakeTest.php",
|
||||
"tests/Feature/DashboardOpportunityAccessTest.php",
|
||||
"tests/Feature/DashboardTest.php",
|
||||
"tests/Feature/DevelopmentEnvironmentTest.php",
|
||||
"tests/Feature/DocumentLibrarySchemaCompatibilityTest.php",
|
||||
"tests/Feature/ExampleTest.php",
|
||||
"tests/Feature/ExistingBusinessCompatibilityTest.php",
|
||||
"tests/Feature/ExistingBusinessFoundationTest.php",
|
||||
"tests/Feature/ExistingBusinessIntakeTest.php",
|
||||
"tests/Feature/ExistingBusinessWizardTest.php",
|
||||
"tests/Feature/ImportDocumentBatchTest.php",
|
||||
"tests/Feature/ImportLegalSourceArchiveTest.php",
|
||||
"tests/Feature/IndependentDocumentOperationsTest.php",
|
||||
"tests/Feature/InterestSubmissionTest.php",
|
||||
"tests/Feature/InvestmentPortfolioTest.php",
|
||||
"tests/Feature/InvestmentRelationshipTest.php",
|
||||
"tests/Feature/InvestmentStructureTest.php",
|
||||
"tests/Feature/InvestmentTerritorialTraceabilityTest.php",
|
||||
"tests/Feature/InvestmentTerritoryTest.php",
|
||||
"tests/Feature/InvestmentUnificationTest.php",
|
||||
"tests/Feature/InvestmentWorkspaceTest.php",
|
||||
"tests/Feature/InvestmentZoneAttachmentTest.php",
|
||||
"tests/Feature/InvestmentZoneTest.php",
|
||||
"tests/Feature/InvestorGuidanceTest.php",
|
||||
"tests/Feature/InvestorPathTest.php",
|
||||
"tests/Feature/LandAssistanceTest.php",
|
||||
"tests/Feature/LegacyContentTest.php",
|
||||
"tests/Feature/ManagementAccessTest.php",
|
||||
"tests/Feature/OpportunityCanonicalWorkflowTest.php",
|
||||
"tests/Feature/OpportunityManagementTest.php",
|
||||
"tests/Feature/OpportunityOriginReviewTest.php",
|
||||
"tests/Feature/OpportunityPublicationScopeTest.php",
|
||||
"tests/Feature/OpportunityRealDocumentOperationsTest.php",
|
||||
"tests/Feature/OpportunityRealEstateDraftTest.php",
|
||||
"tests/Feature/OpportunityResourcesTest.php",
|
||||
"tests/Feature/OrganizationCountryInstallationTest.php",
|
||||
"tests/Feature/OrganizationCountryTest.php",
|
||||
"tests/Feature/PartnershipExchangeTest.php",
|
||||
"tests/Feature/PortalAuditConsumerLotTest.php",
|
||||
"tests/Feature/PortalAuditContinuationTest.php",
|
||||
"tests/Feature/PortalAuditNextLotTest.php",
|
||||
"tests/Feature/PortalAuditRoutesTest.php",
|
||||
"tests/Feature/PortalManagementTest.php",
|
||||
"tests/Feature/PortalOperationsTest.php",
|
||||
"tests/Feature/PortalOriginCompatibilityTest.php",
|
||||
"tests/Feature/PortalProfileAccessTest.php",
|
||||
"tests/Feature/PortalProfileInstallationTest.php",
|
||||
"tests/Feature/PortalQaMfaTracePrivacyTest.php",
|
||||
"tests/Feature/PortalRealDocumentConsumersTest.php",
|
||||
"tests/Feature/PortalServicesTest.php",
|
||||
"tests/Feature/PublicPortalNavigationTest.php",
|
||||
"tests/Feature/ReferenceCatalogTest.php",
|
||||
"tests/Feature/SimulationDraftContinuityTest.php",
|
||||
"tests/Feature/SimulationExecutionTest.php",
|
||||
"tests/Feature/SimulationFormDraftTest.php",
|
||||
"tests/Feature/SimulationTaxRuleGovernanceTest.php",
|
||||
"tests/Feature/SkillsEducationSchemaTest.php",
|
||||
"tests/Feature/TerritorialRegistryTest.php",
|
||||
"tests/Feature/TerritoryGeometryImportTest.php"
|
||||
],
|
||||
"simulator": [
|
||||
"tests/Feature/CatalogueSelectorReferencesTest.php",
|
||||
"tests/Feature/ContentManagementEntryTest.php",
|
||||
"tests/Feature/CorridorAgribusinessBatchTest.php",
|
||||
"tests/Feature/CorridorAgribusinessInvestorPathTest.php",
|
||||
"tests/Feature/CorridorAgribusinessOpportunitiesTest.php",
|
||||
"tests/Feature/InvestmentAnchorIntegrationTest.php",
|
||||
"tests/Feature/InvestmentComplementsTest.php",
|
||||
"tests/Feature/InvestmentConsumerScopeTest.php",
|
||||
"tests/Feature/InvestmentContextContinuityTest.php",
|
||||
"tests/Feature/InvestmentCorridorContextTest.php",
|
||||
"tests/Feature/InvestmentOpportunityChoicesTest.php",
|
||||
"tests/Feature/InvestmentPortfolioContinuityTest.php",
|
||||
"tests/Feature/InvestmentTreatmentScopeTest.php",
|
||||
"tests/Feature/IrpcAnnualSettlementDraftTest.php",
|
||||
"tests/Feature/IrpcGroupedDraftTest.php",
|
||||
"tests/Feature/IrpcInterestCerDraftTest.php",
|
||||
"tests/Feature/IrpcMrftaDraftTest.php",
|
||||
"tests/Feature/IrpcNormalAssessmentDraftTest.php",
|
||||
"tests/Feature/IrpcNormalBaseDraftTest.php",
|
||||
"tests/Feature/IrpcNormalCostsDraftTest.php",
|
||||
"tests/Feature/IrpcNormalDepreciationDraftTest.php",
|
||||
"tests/Feature/IrpcNormalDraftTest.php",
|
||||
"tests/Feature/IrpcNormalFormPreparationDraftTest.php",
|
||||
"tests/Feature/IrpcNormalPeriodFxDraftTest.php",
|
||||
"tests/Feature/IrpcNormalProfitDraftTest.php",
|
||||
"tests/Feature/IrpcNormalSchedulesDraftTest.php",
|
||||
"tests/Feature/IrpcReliefsDraftTest.php",
|
||||
"tests/Feature/IrpcSpecialCessationPriorDraftTest.php",
|
||||
"tests/Feature/IrpcSpecialCombinationsDraftTest.php",
|
||||
"tests/Feature/IrpcSpecialDraftTest.php",
|
||||
"tests/Feature/IrpcSpecialMonthlyDraftTest.php",
|
||||
"tests/Feature/IrpcSpecialStartPeriodDraftTest.php",
|
||||
"tests/Feature/IrpcWithholdingDraftTest.php",
|
||||
"tests/Feature/IspcQuarterDraftTest.php",
|
||||
"tests/Feature/IspcResidualDraftTest.php",
|
||||
"tests/Feature/IvaAcquisitionAllocationDraftTest.php",
|
||||
"tests/Feature/IvaAcquisitionBCDraftTest.php",
|
||||
"tests/Feature/IvaAcquisitionContinuityDraftTest.php",
|
||||
"tests/Feature/IvaAcquisitionRightDraftTest.php",
|
||||
"tests/Feature/IvaActSaleBaseDraftTest.php",
|
||||
"tests/Feature/IvaAgroDraftTest.php",
|
||||
"tests/Feature/IvaAnnexIDraftTest.php",
|
||||
"tests/Feature/IvaBaggageDraftTest.php",
|
||||
"tests/Feature/IvaBeveragePartitionDraftTest.php",
|
||||
"tests/Feature/IvaBeverageRestitutionDraftTest.php",
|
||||
"tests/Feature/IvaClosureDraftTest.php",
|
||||
"tests/Feature/IvaCommissionBaseDraftTest.php",
|
||||
"tests/Feature/IvaCompositionBaseDraftTest.php",
|
||||
"tests/Feature/IvaConditionalDraftTest.php",
|
||||
"tests/Feature/IvaCulturalDraftTest.php",
|
||||
"tests/Feature/IvaCurrencyEventDraftTest.php",
|
||||
"tests/Feature/IvaDigitalDraftTest.php",
|
||||
"tests/Feature/IvaExclusionBaseDraftTest.php",
|
||||
"tests/Feature/IvaExportBeneficiaryDraftTest.php",
|
||||
"tests/Feature/IvaExportDirectDraftTest.php",
|
||||
"tests/Feature/IvaExportServiceDraftTest.php",
|
||||
"tests/Feature/IvaForeignOperationDraftTest.php",
|
||||
"tests/Feature/IvaFuelBaseDraftTest.php",
|
||||
"tests/Feature/IvaFundraisingDraftTest.php",
|
||||
"tests/Feature/IvaGoodsAllocationDraftTest.php",
|
||||
"tests/Feature/IvaGoodsLocationDraftTest.php",
|
||||
"tests/Feature/IvaGoodsPresumptionDraftTest.php",
|
||||
"tests/Feature/IvaHealthGoodsDraftTest.php",
|
||||
"tests/Feature/IvaImportAssetsDraftTest.php",
|
||||
"tests/Feature/IvaImportBeneficiariesDraftTest.php",
|
||||
"tests/Feature/IvaImportCustomsDraftTest.php",
|
||||
"tests/Feature/IvaImportDevelopmentDraftTest.php",
|
||||
"tests/Feature/IvaImportExemptionsDraftTest.php",
|
||||
"tests/Feature/IvaImportInvestmentDraftTest.php",
|
||||
"tests/Feature/IvaImportServicesDraftTest.php",
|
||||
"tests/Feature/IvaImportSpecialRegimesDraftTest.php",
|
||||
"tests/Feature/IvaImportSuppliesDraftTest.php",
|
||||
"tests/Feature/IvaInternationalAssetDraftTest.php",
|
||||
"tests/Feature/IvaListedGoodsDraftTest.php",
|
||||
"tests/Feature/IvaListedServicesDraftTest.php",
|
||||
"tests/Feature/IvaMinerDraftTest.php",
|
||||
"tests/Feature/IvaNoncashBaseDraftTest.php",
|
||||
"tests/Feature/IvaObjectiveImportDraftTest.php",
|
||||
"tests/Feature/IvaOfferPathsDraftTest.php",
|
||||
"tests/Feature/IvaOfferPreparationsDraftTest.php",
|
||||
"tests/Feature/IvaOfferWorkflowDraftTest.php",
|
||||
"tests/Feature/IvaOnboardSupplyDraftTest.php",
|
||||
"tests/Feature/IvaOperationsDraftTest.php",
|
||||
"tests/Feature/IvaOwnNameDraftTest.php",
|
||||
"tests/Feature/IvaPharmaInputsDraftTest.php",
|
||||
"tests/Feature/IvaProductionCalendarDraftTest.php",
|
||||
"tests/Feature/IvaProductionDraftTest.php",
|
||||
"tests/Feature/IvaPropertyTransferDraftTest.php",
|
||||
"tests/Feature/IvaPublicationsDraftTest.php",
|
||||
"tests/Feature/IvaPublicAuthorityBaseDraftTest.php",
|
||||
"tests/Feature/IvaRationalDraftTest.php",
|
||||
"tests/Feature/IvaReducedBasesDraftTest.php",
|
||||
"tests/Feature/IvaRefundDraftTest.php",
|
||||
"tests/Feature/IvaRegularizationDraftTest.php",
|
||||
"tests/Feature/IvaRemissionDraftTest.php",
|
||||
"tests/Feature/IvaSecondhandDraftTest.php",
|
||||
"tests/Feature/IvaServiceLocationDraftTest.php",
|
||||
"tests/Feature/IvaServiceNormalDraftTest.php",
|
||||
"tests/Feature/IvaServicesGroupDraftTest.php",
|
||||
"tests/Feature/IvaServicesNatureDraftTest.php",
|
||||
"tests/Feature/IvaSocialDraftTest.php",
|
||||
"tests/Feature/IvaSpecialRegimeDraftTest.php",
|
||||
"tests/Feature/IvaSubstitutionDraftTest.php",
|
||||
"tests/Feature/IvaTemporaryBenefitDraftTest.php",
|
||||
"tests/Feature/IvaTravelEventDraftTest.php",
|
||||
"tests/Feature/IvaValueReviewDraftTest.php",
|
||||
"tests/Feature/LegacyEditorialWorkflowTest.php",
|
||||
"tests/Feature/ModeloAAcquisitionsDraftTest.php",
|
||||
"tests/Feature/OpportunityCorridorExplorerTest.php",
|
||||
"tests/Feature/OpportunityPromotionTest.php",
|
||||
"tests/Feature/PrivateInvestmentPreparationTest.php",
|
||||
"tests/Feature/ProcurementTest.php",
|
||||
"tests/Feature/SimulatorClosureRecoveryTest.php",
|
||||
"tests/Feature/TerritoryGeometryApprovedAdministrationTest.php",
|
||||
"tests/Feature/TerritoryGeometryConsumerAccessTest.php"
|
||||
],
|
||||
"proactive": [
|
||||
"tests/Feature/CatalogueProvinceCoverageTest.php",
|
||||
"tests/Feature/FiscalFormEntryTest.php",
|
||||
"tests/Feature/InvestorUsabilityScopeTest.php",
|
||||
"tests/Feature/IrpcCreditCarryDraftTest.php",
|
||||
"tests/Feature/IrpcEconomicCreditDraftTest.php",
|
||||
"tests/Feature/IrpcInternationalCreditDraftTest.php",
|
||||
"tests/Feature/IrpcPecDraftTest.php",
|
||||
"tests/Feature/ProactiveInvestmentTest.php",
|
||||
"tests/Feature/ProactiveSupplyTest.php"
|
||||
],
|
||||
"other": [
|
||||
"tests/Feature/AiGatewayTest.php",
|
||||
"tests/Feature/ClamDScannerIntegrationTest.php",
|
||||
"tests/Feature/ClusterCompetitivenessTest.php",
|
||||
"tests/Feature/DatabaseErrorRedactionTest.php",
|
||||
"tests/Feature/EducationalGuidesTest.php",
|
||||
"tests/Feature/EducationTest.php",
|
||||
"tests/Feature/OpportunitySearchTest.php",
|
||||
"tests/Feature/ProvinceSearchCompatibilityTest.php",
|
||||
"tests/Feature/SectorCatalogueContentTest.php",
|
||||
"tests/Feature/SimulationFiscalMaintenanceActorTest.php",
|
||||
"tests/Feature/SimulationFiscalQaPreviewTest.php",
|
||||
"tests/Feature/SimulationPublishedFiscalTest.php",
|
||||
"tests/Feature/SimulationRateLimitTest.php",
|
||||
"tests/Feature/SimulatorCashflowContinuityTest.php",
|
||||
"tests/Feature/SimulatorReviewMessagesTest.php"
|
||||
]
|
||||
},
|
||||
"additional_recursive_feature_classes": [
|
||||
"tests/Feature/Auth/AuthenticationTest.php",
|
||||
"tests/Feature/Auth/EmailVerificationTest.php",
|
||||
"tests/Feature/Auth/PasswordConfirmationTest.php",
|
||||
"tests/Feature/Auth/PasswordResetTest.php",
|
||||
"tests/Feature/Auth/QaAccountSelectionTest.php",
|
||||
"tests/Feature/Auth/RegistrationTest.php",
|
||||
"tests/Feature/Auth/TwoFactorChallengeTest.php",
|
||||
"tests/Feature/Auth/TwoFactorDecryptionFailureTest.php",
|
||||
"tests/Feature/Auth/VerificationNotificationTest.php",
|
||||
"tests/Feature/Settings/ProfileUpdateTest.php",
|
||||
"tests/Feature/Settings/SecurityTest.php",
|
||||
"tests/Feature/SuiteCrm/SuiteCrmClientTest.php",
|
||||
"tests/Feature/SuiteCrm/SuiteCrmProbeTest.php"
|
||||
],
|
||||
"other_group_explanation": "Fiscal maintenance, QA preview and published fiscal classes require an empty QA schema; the source-rich clone already contains protected rule identities. Those complete classes passed in fiscal-clean.log. SectorCatalogueContentTest passed in remaining-final.log. The single proactive failure passed with its complete 16-case class in proactive-retry.log. No original fixed-database guard was weakened."
|
||||
},
|
||||
"data_preservation": {
|
||||
"active_database_writes": 0,
|
||||
"active_migrations": 0,
|
||||
"active_imports": 0,
|
||||
"remote_pushes": 0,
|
||||
"deployments": 0,
|
||||
"application_key_changes": 0,
|
||||
"original_sources_and_historical_tools_unchanged": true,
|
||||
"qa_host": "127.0.0.1",
|
||||
"qa_port": 55441,
|
||||
"original_qa_cluster_read_only_export": true,
|
||||
"original_qa_cluster_stopped_after_export": true,
|
||||
"editorial_originals_recovered_and_sha256_verified": 28,
|
||||
"editorial_source_archives_unchanged": true,
|
||||
"qa_fixture_data_is_not_acceptance_content": true
|
||||
},
|
||||
"fixes": [
|
||||
"Explicit collection, scalar, query-row and response contracts without analysis suppressions.",
|
||||
"Checked file/hash/size and regular-expression failures; invalid Unicode is preserved and rejected explicitly.",
|
||||
"Public contact JSON endpoint avoids unrelated profile/navigation database access.",
|
||||
"Guarded editorial migrations admit only the existing verified isolated QA identity; negative production/host/port/name/URL/driver tests pass.",
|
||||
"Idempotent interest acknowledgements preserve the current workflow state and use the existing required authentication and UUID contract.",
|
||||
"Simulator provenance retains dossier opportunity choices while selected-consumer fields and requirements remain scoped.",
|
||||
"Home cache invalidation includes the current sector-organization cache key.",
|
||||
"Location classification uses the authoritative public territorial query directly, avoiding a redundant recursive self-subquery while retaining public-ancestor and publication restrictions.",
|
||||
"Original article reading remains available before loading the optional agribusiness opportunity catalogue.",
|
||||
"Authorized profile administration recovers the minimal existing-account directory and selection hints without exposing authentication secrets.",
|
||||
"Regression fixtures use authenticated actors, recent MFA where required, explicit publication and current public document projections; contact fields are partitioned into the personal snapshot.",
|
||||
"Laravel HTTP asset fakes also disable mutable Vite font manifests; the build/test race was removed without changing production fonts.",
|
||||
"Maintained PHP/frontend formatting and lint findings corrected; source archives, generated code and historical evidence retained."
|
||||
],
|
||||
"limitations": [
|
||||
{
|
||||
"area": "Authenticated visual validation / Competitiveness",
|
||||
"status": "pending",
|
||||
"reason": "Automatic Computer Use review could not determine the current Chrome URL with sufficient confidence. UI automation stopped; no bypass or visual acceptance claim."
|
||||
},
|
||||
{
|
||||
"area": "Delivery",
|
||||
"status": "local_only",
|
||||
"reason": "No push, deployment, production migration or editorial publication was requested or performed."
|
||||
}
|
||||
],
|
||||
"requirements": "Technical validation only. Does not close ACT-01, ACT-02, V2-07/V2-10 or replace visual/content acceptance.",
|
||||
"evidence": [
|
||||
{
|
||||
"path": "outputs/validation-20261029/unit-verified.log",
|
||||
"sha256": "caab7fe5f23a2f5374cb1b243ef8f9e53d588c0f7d4633c083e2af6a9924fb38"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/fresh-verified.log",
|
||||
"sha256": "898b13c9910c106fa80d3ce995bf7874054a8a8d7d72712f58e87c9a7510e4c7"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/fresh-corrections.log",
|
||||
"sha256": "b83b6ce6d7b85df6ce28c6f448812138d9448b57122bbe1e91db710bd49a9f0a"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/fresh-consolidated.junit.xml",
|
||||
"sha256": "3f5f71db80fdf417613ad845c51e74cb058591b8371ee33672bd430fff3e08d3"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/simulator-verified.log",
|
||||
"sha256": "396eecbac488062c70ff300f868b9ecf0bf649ab2eb6db0aa090d602d2257d09"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/simulator-corrections.log",
|
||||
"sha256": "a7a8c7a4671eeca464c77600394d2dc9dc8ccdd1650d480b8844e15bee34307f"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/simulator-consolidated.junit.xml",
|
||||
"sha256": "2af02b152d295469c81c2936aeb98f0f82b68462dc3368a576d12dcfa1419511"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/simulator-storage.log",
|
||||
"sha256": "db95e5152d2d94bc45944bb710d97fd8cbe59dccecb4d7c71d27b1069262498f"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/proactive-final.log",
|
||||
"sha256": "918b530b7e0479c72f4a3fcbe05ed2aae2218a0fe66b5344002ad0a94aebd944"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/proactive-retry.log",
|
||||
"sha256": "179a15860d17421136d5e4f1cb30750a89e20a88df783b057a287bbb3af19d6f"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/other-final.log",
|
||||
"sha256": "33ca85df50db88017110cf67bd284ee785f69ce9726da4acb9f7e168ad0cd6d9"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/fiscal-clean.log",
|
||||
"sha256": "470046e008195cc2af3bea722d2a2b3e0a1175912d14c1096e6cb75cbb0606c7"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/remaining-final.log",
|
||||
"sha256": "ec2d1ac9aebcaf2c01e2787f37dd31577c740ea6c72f931711626531825df68a"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/schema.log",
|
||||
"sha256": "f7f155a4d3d5bd22e98f5231e69d19b569dee19bd56164822b2834d87a211f57"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/frontend-verified.log",
|
||||
"sha256": "3b2c56e930c6f6caae69076b3dcecd33423c41d09fd48945bd3c0524f7b40f93"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/phpstan-final-verified.log",
|
||||
"sha256": "1997495ca8f04c2ec09798d55607d1a2f85e3338b772f258666465bf658032d2"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/pint-verified.log",
|
||||
"sha256": "cd1a94fc2cf6a965b86e1a4809d6c7fb9148b1ee374e1010ed2ac96ff4876ec2"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/pint-fixture-verified.log",
|
||||
"sha256": "cd1a94fc2cf6a965b86e1a4809d6c7fb9148b1ee374e1010ed2ac96ff4876ec2"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/pint-territory-verified.log",
|
||||
"sha256": "cd1a94fc2cf6a965b86e1a4809d6c7fb9148b1ee374e1010ed2ac96ff4876ec2"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/pint-last-fixture-verified.log",
|
||||
"sha256": "cd1a94fc2cf6a965b86e1a4809d6c7fb9148b1ee374e1010ed2ac96ff4876ec2"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/routes-final.log",
|
||||
"sha256": "63481f3b07a7ec555694d7e1e4b3e72d287e7db03752bc1c9ef1c3dc3e861418"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/territorial-query-qa.json",
|
||||
"sha256": "7f329807105e166bc2eaef43383ac9de189a7e8f5cd452e1943924671991217f"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/check-final-verified.log",
|
||||
"sha256": "f3dc103584f6845d61a8ce8954c66685a1c0500123cfe738a6d67bb1dd10cfbd"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/types-latest.log",
|
||||
"sha256": "5346ac8a6566c1c38cb0bbda6a029579df58cd78af78e2c4845d9c82b5d1d76c"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/build-verified.log",
|
||||
"sha256": "adf5a5136e1ea02dcfa8e054f2303d9e115d9ec65bc6c765a5d618a614783f05"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/editorial-final.log",
|
||||
"sha256": "fb50ba0514a7c0aceaa0c84650693debb817d2732179000799bc4480ef436545"
|
||||
},
|
||||
{
|
||||
"path": "outputs/validation-20261029/editorial-originals-recovery.json",
|
||||
"sha256": "9f9998a06fee6cde241cca54f5a8060283934328721249a5ad00bcddefa50b9c"
|
||||
}
|
||||
],
|
||||
"qa_runtime_cleanup": {
|
||||
"temporary_preview_server_stopped": true,
|
||||
"temporary_postgresql_cluster_stopped": true,
|
||||
"existing_application_processes_stopped": 0,
|
||||
"qa_backups_and_evidence_retained": true
|
||||
}
|
||||
}
|
||||
@@ -7570,3 +7570,13 @@ Recibo: docs/investmoz/unification/province-search-qa-20261029.json. Instalaçã
|
||||
**Separação mantida:** este resultado encerra a lacuna técnica de compatibilidade/expansão provincial descrita acima, sem declarar conferência visual dos controlos e sem encerrar os requisitos amplos ACT-02/V2-07/V2-10. A conferência visual autenticada de Competitividade continua **pendente — execução e registo pela equipa**. As provas aceites dessa funcionalidade não foram reabertas nem substituídas pela correcção dos filtros. Diagnóstico da ligação Edge continua separado; leitura de URL não declarada recuperada. Nenhum processo local foi terminado nem porta libertada; InvesteMoz e SGF preservados.
|
||||
|
||||
Para o registo da equipa: no cluster autorizado, editar conteúdo legítimo → Guardar rascunho no servidor → sair e reabrir → comparar campos/versão recuperados → conferir na ficha pública exclusivamente a versão aprovada. Registar utilizador/âmbito autorizado, URL/cluster, versão instalada, versões guardada/aprovada, resultado e divergências. Uma nova gravação não deve substituir a aprovação pública existente; nova aprovação depende da decisão de conteúdo aplicável. Sem exemplar aprovado disponível, manter essa parte da conferência pendente em vez de publicar dados sintéticos.
|
||||
|
||||
### 29/10/2026 — correcções e validação automática local após reconciliação
|
||||
|
||||
Validação técnica local concluída na branch `codex/investemoz-reconciliation-20261029`, a partir de `63147312`. Cobertura conferida contra o inventário completo: **798 testes PHP** (91 Unit, 706 Feature em 216 classes e 1 ensaio de schema com 3106 asserções) e **1190 testes frontend**. Tipos TypeScript, PHPStan nível 7 sem erros, Pint, lint/formatação, compilação e os controlos positivos/negativos C132 passaram. Resultados de repetições consolidados por identificador de teste, sem duplicar contagens e sem novos skips.
|
||||
|
||||
Correcções incluem contratos de dados e falhas explícitas de leitura/hash, continuidade do contexto do dossier no simulador, invalidação do cache actual da página inicial, leitura de originais antes do carregamento do catálogo opcional e directório mínimo de contas na administração autorizada. A classificação territorial reutiliza directamente o âmbito público existente, eliminando a subconsulta recursiva redundante; a varredura de rotas com o catálogo territorial completo passou em cerca de 35 segundos, com limite QA de 20 segundos por consulta. Mantidos os testes de exclusão de referências privadas/não aprovadas. Fixtures alinhadas com autenticação, MFA recente, publicação explícita e separação dos snapshots pessoal/económico. O fake HTTP de assets também isola manifestos de fontes mutáveis.
|
||||
|
||||
Execução exclusivamente em bases QA isoladas em `127.0.0.1:55441`, com contextos vazios ou clones preparados conforme as guardas originais. Os 28 originais editoriais foram recuperados de arquivo local e conferidos por SHA-256; seis testes editoriais passaram com scanner real. Preservados os originais, arquivos de fontes, ferramentas históricas, chave da aplicação, dados activos e históricos. Zero migrações/importações/escritas na base activa, push ou deployment. A alteração inclui formatação abrangente do código mantido; o manifesto de hashes identifica os ficheiros validados.
|
||||
|
||||
**Conferência visual autenticada pendente:** a revisão automática interrompeu Computer Use por não conseguir determinar com confiança o URL actual do Chrome. Não foi declarado aceite visual de Competitividade nem encerramento transversal de ACT-01, ACT-02 ou V2-07/V2-10. Recibo e provas: [local-validation-20261029.json](local-validation-20261029.json).
|
||||
|
||||
Reference in New Issue
Block a user