184 lines
7.7 KiB
JSON
184 lines
7.7 KiB
JSON
{
|
|
"date": "2026-11-04",
|
|
"base_commit": "a9241ff2",
|
|
"requirement": "ACT-20261029-02; V2-07/V2-10",
|
|
"scope": "Primeiro recorte quantitativo: observações públicas existentes das zonas/parques do contexto do mapa; main local",
|
|
"inventory_before_fixtures": {
|
|
"database": "main_visual_20261104_test",
|
|
"visible_zones": 8,
|
|
"public_observations": [],
|
|
"no_private_ciphertext_read": true
|
|
},
|
|
"source_reused": "InvestmentZoneOperationalDetails::publicData -> integral.observations; mesma selecção de divulgação da ficha, sem desencriptar preparação privada",
|
|
"indicators": {
|
|
"workforce": [
|
|
"employment"
|
|
],
|
|
"economic_potential": [
|
|
"investment",
|
|
"production",
|
|
"exports",
|
|
"local_procurement"
|
|
]
|
|
},
|
|
"contract": {
|
|
"route": "GET /api/v1/investment/map",
|
|
"new_field": "quantitative_context",
|
|
"states": [
|
|
"available",
|
|
"unavailable",
|
|
"not_included"
|
|
],
|
|
"client_network_error_state": "error",
|
|
"zone_limit": 30,
|
|
"record_limit": 200,
|
|
"truncation_explicit": true,
|
|
"scope": "Mesmo conjunto de zonas autorizado pelos filtros existentes de contexto; não alarga pesquisa nem representa valores das oportunidades. Filtros específicos que já excluem zonas devolvem not_included.",
|
|
"metadata": [
|
|
"id",
|
|
"label",
|
|
"description",
|
|
"value",
|
|
"unit",
|
|
"period_start",
|
|
"period_end",
|
|
"scope",
|
|
"population",
|
|
"methodology",
|
|
"source_reference",
|
|
"source_date",
|
|
"knowledge",
|
|
"zone_id",
|
|
"zone_name",
|
|
"zone_version",
|
|
"url",
|
|
"theme",
|
|
"missing_metadata",
|
|
"phase_id",
|
|
"plot_id"
|
|
]
|
|
},
|
|
"behaviour": [
|
|
"Valores numéricos conhecidos preservados como texto, incluindo zero e precisão decimal; sem conversão binária para somas.",
|
|
"Valor desconhecido permanece null/Por determinar, mesmo perante quantidade contraditória numa fonte legada. Divergência conserva etiqueta.",
|
|
"Unidade, período, base/população, âmbito, metodologia e fonte/data em cada linha; metadados em falta explicitados, sem os completar por inferência.",
|
|
"Sem agregações, médias, câmbio, normalização ou comparação automática; emprego não equivale a disponibilidade laboral nem os montantes a índice de potencial.",
|
|
"Contagens de oportunidades e de observações territoriais separadas. Sem geometrias ou posições criadas.",
|
|
"Carregamento, erro, cadastro indisponível e âmbito não consultado distintos de resposta sem observações.",
|
|
"Números JSON com casas decimais extraídos como texto decimal pelo PostgreSQL a partir do mesmo snapshot carregado; metadados/valor/versão não são emparelhados com uma leitura posterior."
|
|
],
|
|
"checks": {
|
|
"database_tests": 11,
|
|
"database_assertions": 99,
|
|
"new_database_tests": 6,
|
|
"existing_thematic_regression_tests": 5,
|
|
"frontend_tests": 18,
|
|
"new_frontend_tests": 3,
|
|
"phpstan_errors": 0,
|
|
"types": "passed",
|
|
"pint": "passed",
|
|
"lint": "passed",
|
|
"qa_build": "passed; avisos de fonte opcional e dimensão de chunks"
|
|
},
|
|
"initial_attempts": "Nove dos dez casos BD passaram inicialmente; comparação da serialização JSON antes/depois do jsonb corrigida para comparar duas leituras reais do servidor. Fixture frontend repetia o rótulo de emprego numa linha de produção; rótulo corrigido. Sem alterar regras do produto para satisfazer estes testes. Logs BD iniciais conservados em quantitative-map-initial.*.",
|
|
"visual": {
|
|
"url": "http://127.0.0.2:18644/oportunidades?q=SYNTHETIC-QUANT-20261104&province_id=bfde2651-2b46-5d9c-a500-733fa55a8c5c&view=map",
|
|
"database": "main_visual_20261104_test",
|
|
"synthetic_zone_id": "b3349058-f120-4704-b34c-32ba7c1146c4",
|
|
"synthetic_observations": 5,
|
|
"workforce_rows": 2,
|
|
"economic_rows": 3,
|
|
"values_checked": [
|
|
"0 pessoas (emprego previsto sintético)",
|
|
"Por determinar (emprego indirecto sintético)",
|
|
"125.7500 toneladas",
|
|
"100000.00 MZN",
|
|
"25.50 USD em divergência"
|
|
],
|
|
"coordinates_created": false,
|
|
"geometry_created": false,
|
|
"existing_zones_sha256": "8d7d6d778f826453556caa131def70747706ac338aac472959a2057811d4cc77"
|
|
},
|
|
"preservation": {
|
|
"previous_artifact_hashes_verified_unchanged": 51,
|
|
"accepted_full_database_tests_preserved_not_reexecuted": 1325,
|
|
"previous_pending_items_preserved": true
|
|
},
|
|
"pending": [
|
|
"O snapshot QA tinha oito fichas públicas e zero observações quantitativas divulgadas; demonstração não estabelece cobertura factual real nem diagnostica dados do remoto.",
|
|
"Séries oficiais/regionais comparáveis, oferta laboral, natureza prevista/efectiva e metodologia de potencial quantitativo dependem dos dados aplicáveis, sem novos índices presumidos.",
|
|
"Cobertura nacional, georreferenciação própria, conferência remota e aceitação da equipa continuam pendentes. ACT-02/V2-07/V2-10 não encerrados."
|
|
],
|
|
"safety": {
|
|
"branch": "main local",
|
|
"push": false,
|
|
"active_database_changed": false,
|
|
"migration": false,
|
|
"permissions_changed": false,
|
|
"automatic_publication": false,
|
|
"service_restarts": false
|
|
},
|
|
"proofs": {
|
|
"outputs/quantitative-map-20261104/source-inventory-before-fixtures.json": {
|
|
"sha256": "b547bd8c34c09c7d779c8226e9a68ad7160d008bf9e2f68832c694022eb36597",
|
|
"bytes": 142
|
|
},
|
|
"outputs/quantitative-map-20261104/prior-evidence.json": {
|
|
"sha256": "49989437b12a348ca866404523e81d33fd695e0298acd2574ed579eb1872a915",
|
|
"bytes": 6766
|
|
},
|
|
"outputs/quantitative-map-20261104/fixture-receipt.json": {
|
|
"sha256": "2053ed900664fa65372bc4c0404da872b167213ca025ba88799af8221acfd46f",
|
|
"bytes": 409
|
|
},
|
|
"outputs/quantitative-map-20261104/all-indicators.jpg": {
|
|
"sha256": "9d1a455c1298f2c2579f37b354ab72aae32b5045c957a203b657cb6932d871da",
|
|
"bytes": 217406
|
|
},
|
|
"outputs/quantitative-map-20261104/all-indicators.dom.txt": {
|
|
"sha256": "c8e998ea7f4efdb1df6df57c07b014d86efdd4af9479ebea7bb52af964013285",
|
|
"bytes": 23575
|
|
},
|
|
"outputs/quantitative-map-20261104/workforce-indicators.jpg": {
|
|
"sha256": "e14ee34543d5482a5c288bd3bb0733b496d4aecefee12cd0f5d0e5d8aa6f1576",
|
|
"bytes": 187352
|
|
},
|
|
"outputs/quantitative-map-20261104/workforce-indicators.dom.txt": {
|
|
"sha256": "d659fd72bf7df061c7ff6542c0dee8e10ef74a4a7ba45ba1abb3adb0fc5a4d03",
|
|
"bytes": 17344
|
|
},
|
|
"outputs/quantitative-map-20261104/economic-indicators.dom.txt": {
|
|
"sha256": "11ebdf8284c36f20b2196f4bc4eada37c70c99d232c03a31ef54d673cfb8ddbb",
|
|
"bytes": 19366
|
|
},
|
|
"outputs/main-db-qa-20261104/quantitative-map.log": {
|
|
"sha256": "7914ad0e266ae90a884c5f3ffa783a7859d4e342a7a64fb6c96f90388be44f97",
|
|
"bytes": 96
|
|
},
|
|
"outputs/main-db-qa-20261104/quantitative-map.junit.xml": {
|
|
"sha256": "5d01befa688ec8edd9e3a58f9821f248fda5ec6c86318a02ada7b48c6b4b9494",
|
|
"bytes": 4703
|
|
},
|
|
"outputs/main-db-qa-20261104/quantitative-map-frontend.log": {
|
|
"sha256": "240847ad2e9d75e2d77bb3ea66e2814d18dbe7b85e79722da11306ec843b2941",
|
|
"bytes": 2476
|
|
},
|
|
"outputs/main-db-qa-20261104/quantitative-map-phpstan.log": {
|
|
"sha256": "1997495ca8f04c2ec09798d55607d1a2f85e3338b772f258666465bf658032d2",
|
|
"bytes": 49
|
|
},
|
|
"outputs/main-db-qa-20261104/quantitative-map-types.log": {
|
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"bytes": 0
|
|
},
|
|
"outputs/main-db-qa-20261104/quantitative-map-lint.log": {
|
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"bytes": 0
|
|
},
|
|
"outputs/main-db-qa-20261104/quantitative-map-build.log": {
|
|
"sha256": "6cefd15069e09c1bfd8b404842b719227ea7785e7908f07a69f66029fe4639e3",
|
|
"bytes": 31606
|
|
}
|
|
}
|
|
}
|