feat: expose map layer controls and explicit data coverage
This commit is contained in:
@@ -2185,3 +2185,16 @@ O editor captura corpo e sequência em conjunto. Antes do envio em fila e da apr
|
||||
Dois casos novos falharam contra o código anterior e passaram na candidata. Vinte e dois testes frontend dirigidos passaram: temporizador antigo após edição, envio ultrapassado em fila, resposta tardia depois de A→B→A, sequência crescente e confirmação somente do rascunho actual. Tipos, lint, formatação e compilação QA passaram; provas históricas aceites reutilizadas, sem repetição integral. Recibo/hashes em `context_autosave_ordering_increment` de `local-validation-20261029.json`.
|
||||
|
||||
**Visual pendente pela equipa:** em QA, editar sucessivamente enquanto um envio automático aguarda, incluindo regressar ao valor inicial; aguardar a confirmação da revisão actual, sair/regressar e conferir os últimos valores recuperados. Usar atraso controlado de rede em QA, sem alterações sintéticas no activo. Registar revisão, perfil, percurso, esperado/observado e evidência nesta matriz. A prova com temporizadores/fila não substitui a sessão no navegador. Sem instalação ou avanço de main; requisitos transversais permanecem parciais.
|
||||
|
||||
|
||||
### 29/10/2026 — ACT-20261029-02: camadas existentes e cobertura explícita do mapa
|
||||
|
||||
Incremento funcional sobre `87b74f0c`, reutilizando o mapa, as APIs e os filtros territoriais existentes (V2-07/V2-10). Antes da execução foi conferida a matriz e o contrato de `InvestmentCatalogue::map`: pontos, áreas/limites, registos sem coordenadas, fonte/data, limite de resposta e contagens já estavam disponíveis. Não houve perda confirmada nem se reabriu a correcção provincial instalada.
|
||||
|
||||
O painel permite ocultar/repor independentemente pontos e áreas/limites, ambos visíveis por defeito. As opções não mudam filtros, não fazem nova consulta nem eliminam registos. O novo resumo mostra marcadores/áreas recebidos, falta de fonte/data e investimentos sem ponto utilizável, incluindo camadas ocultas; mantém as ligações às fichas. Distingue investimento de marcador: um investimento pode ter vários locais. O total passa a usar `matched_count` da API, em vez de somar marcadores como investimentos; fallback deduplica os identificadores. A indicação de truncagem é agora aviso de cobertura, não falha de ligação. Fontes/datas vazias não passam a comprovadas; ausência de registos não é ausência de investimento.
|
||||
|
||||
Dois testes frontend dirigidos passaram: contagens/proveniência desconhecida/resposta limitada/ausência de dados e ocultação/reposição sem perder registos, filtros ou fichas. O exemplo contém dois marcadores do mesmo investimento e distingue o total encontrado do subconjunto recebido. Tipos, lint, formatação e compilação QA passaram. Provas territoriais e das funcionalidades anteriores reutilizadas, sem repetição integral. Recibo/hashes no campo `map_layer_coverage_increment` de `local-validation-20261029.json`.
|
||||
|
||||
**ACT-02 permanece parcial:** este recorte implementa controlo das camadas já existentes e explicitação de cobertura. Não cria camadas factuais de recursos, infra-estruturas, mão-de-obra ou potencial económico, nem declara completa a cobertura provincial/distrital. Backend, geometrias, divulgação, permissões, fontes, datas e cálculo preservados; sem importações ou escrita no activo.
|
||||
|
||||
**Visual pendente pela equipa:** na candidata, conferir os mapas da ficha de oportunidade, carteira e zona de investimento; ocultar/repor cada camada e ambas, conferir contagens de investimentos/marcadores, fonte/data ausentes e fichas sem coordenadas, e mudar filtros territoriais. Registar revisão, perfil, percurso, esperado/observado e evidência nesta matriz. O painel de contexto administrativo separado mantém o seu âmbito. Sem instalação ou avanço de main.
|
||||
|
||||
@@ -1474,5 +1474,46 @@
|
||||
"preservation": "Frontend sequencing only. Existing backend version/sequence conflict checks preserved, not disabled. No schema, data, permissions or tax changes and no active writes. Historical suites reused.",
|
||||
"visual_acceptance": "Pending team execution and recording; controlled timer/queue tests do not establish browser-session acceptance.",
|
||||
"installation": "Not triggered; main and active release unchanged."
|
||||
},
|
||||
"map_layer_coverage_increment": {
|
||||
"recorded_at": "2026-10-29T21:15:10.944454+00:00",
|
||||
"base_commit": "87b74f0c2a0712bcc35ddea1f6788670d7390fe9",
|
||||
"requirements": [
|
||||
"ACT-20261029-02",
|
||||
"V2-07",
|
||||
"V2-10"
|
||||
],
|
||||
"behavior": [
|
||||
"Existing point and area/limit layers can be hidden and restored independently; both remain enabled by default. No extra query, filter change or record deletion on toggle.",
|
||||
"Coverage table reports returned markers/areas, missing source/date and unlocated opportunities, including hidden layers. Whitespace-only source/date is treated as not indicated, not as evidence.",
|
||||
"Count investments using existing API matched_count, with distinct point identifiers plus unlocated count as fallback. Distinguish marker count from distinct georeferenced investments.",
|
||||
"A truncated response is a coverage warning rather than a failed request. Explicitly distinguish incomplete coverage from absence of investment or availability of resources/infrastructure/labour."
|
||||
],
|
||||
"api_inventory": "InvestmentCatalogue::map already returns matched_count, georeferenced_count, marker_count, unlocated, areas, feature provenance and truncation; backend unchanged.",
|
||||
"checks": {
|
||||
"new_directed_frontend_cases": 2,
|
||||
"passed": 2,
|
||||
"types": "passed",
|
||||
"lint": "passed",
|
||||
"format": "passed",
|
||||
"qa_build": "passed"
|
||||
},
|
||||
"source_sha256": {
|
||||
"resources/js/components/investment-map-panel.tsx": "04834dc0f80282ec57dd1ba596f82a0871b0195bf16b99f411afbfd4c9d7ffa8",
|
||||
"resources/js/components/investment-map-coverage.tsx": "c0b6ea26dd5fdf6d93b7f5b061a48e65f74df6caa7e12490e9a264365671be1c",
|
||||
"tests/frontend/investment-map-panel.test.mjs": "67526c11a9cce25e295b7e0e49ad639077d882dc6e6d83b2c603e25c180ab549"
|
||||
},
|
||||
"evidence": {
|
||||
"outputs/validation-20261029/map-coverage-tests.log": "ffc2170e5e98e2d4aefdd97ff8046291fa37f60fbb708d0244cba6d00f5616c6",
|
||||
"outputs/validation-20261029/map-coverage-types.log": "82962651e47f564de653ad2883f8fd34e7dae4b4468e4ac459cb3331962a3879",
|
||||
"outputs/validation-20261029/map-coverage-lint.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"outputs/validation-20261029/map-coverage-format-check.log": "def31e032d94cd0946ed119a7baceba3757ed29dfaf53c194fe000e28db43747",
|
||||
"outputs/validation-20261029/map-coverage-build.log": "4fd244d1b2bd0016a156b99fd97f684ff207a8a778e689f93da93c8f78cd76f7",
|
||||
"outputs/validation-20261029/map-coverage-build-exit.json": "124fd50cb6d223cdd18fedc166d00af7254199b6e6dedf9be82f71db87af6d01"
|
||||
},
|
||||
"remaining": "ACT-02 remains partial: structured resource/infrastructure/labour/economic-potential layers and factual provincial/district coverage are not implemented or accepted by this increment.",
|
||||
"preservation": "Existing territorial queries, publication/permissions, geometry/source/date values and unlocated links retained. No backend/schema/active data changes, new factual imports or fiscal changes. Prior proofs reused.",
|
||||
"visual_acceptance": "Pending team candidate browser session and recording for portfolio, opportunity and investment-zone map consumers.",
|
||||
"installation": "Not triggered; main and active release unchanged."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7722,3 +7722,16 @@ O editor captura corpo e sequência em conjunto. Antes do envio em fila e da apr
|
||||
Dois casos novos falharam contra o código anterior e passaram na candidata. Vinte e dois testes frontend dirigidos passaram: temporizador antigo após edição, envio ultrapassado em fila, resposta tardia depois de A→B→A, sequência crescente e confirmação somente do rascunho actual. Tipos, lint, formatação e compilação QA passaram; provas históricas aceites reutilizadas, sem repetição integral. Recibo/hashes em `context_autosave_ordering_increment` de `local-validation-20261029.json`.
|
||||
|
||||
**Visual pendente pela equipa:** em QA, editar sucessivamente enquanto um envio automático aguarda, incluindo regressar ao valor inicial; aguardar a confirmação da revisão actual, sair/regressar e conferir os últimos valores recuperados. Usar atraso controlado de rede em QA, sem alterações sintéticas no activo. Registar revisão, perfil, percurso, esperado/observado e evidência nesta matriz. A prova com temporizadores/fila não substitui a sessão no navegador. Sem instalação ou avanço de main; requisitos transversais permanecem parciais.
|
||||
|
||||
|
||||
### 29/10/2026 — ACT-20261029-02: camadas existentes e cobertura explícita do mapa
|
||||
|
||||
Incremento funcional sobre `87b74f0c`, reutilizando o mapa, as APIs e os filtros territoriais existentes (V2-07/V2-10). Antes da execução foi conferida a matriz e o contrato de `InvestmentCatalogue::map`: pontos, áreas/limites, registos sem coordenadas, fonte/data, limite de resposta e contagens já estavam disponíveis. Não houve perda confirmada nem se reabriu a correcção provincial instalada.
|
||||
|
||||
O painel permite ocultar/repor independentemente pontos e áreas/limites, ambos visíveis por defeito. As opções não mudam filtros, não fazem nova consulta nem eliminam registos. O novo resumo mostra marcadores/áreas recebidos, falta de fonte/data e investimentos sem ponto utilizável, incluindo camadas ocultas; mantém as ligações às fichas. Distingue investimento de marcador: um investimento pode ter vários locais. O total passa a usar `matched_count` da API, em vez de somar marcadores como investimentos; fallback deduplica os identificadores. A indicação de truncagem é agora aviso de cobertura, não falha de ligação. Fontes/datas vazias não passam a comprovadas; ausência de registos não é ausência de investimento.
|
||||
|
||||
Dois testes frontend dirigidos passaram: contagens/proveniência desconhecida/resposta limitada/ausência de dados e ocultação/reposição sem perder registos, filtros ou fichas. O exemplo contém dois marcadores do mesmo investimento e distingue o total encontrado do subconjunto recebido. Tipos, lint, formatação e compilação QA passaram. Provas territoriais e das funcionalidades anteriores reutilizadas, sem repetição integral. Recibo/hashes no campo `map_layer_coverage_increment` de `local-validation-20261029.json`.
|
||||
|
||||
**ACT-02 permanece parcial:** este recorte implementa controlo das camadas já existentes e explicitação de cobertura. Não cria camadas factuais de recursos, infra-estruturas, mão-de-obra ou potencial económico, nem declara completa a cobertura provincial/distrital. Backend, geometrias, divulgação, permissões, fontes, datas e cálculo preservados; sem importações ou escrita no activo.
|
||||
|
||||
**Visual pendente pela equipa:** na candidata, conferir os mapas da ficha de oportunidade, carteira e zona de investimento; ocultar/repor cada camada e ambas, conferir contagens de investimentos/marcadores, fonte/data ausentes e fichas sem coordenadas, e mudar filtros territoriais. Registar revisão, perfil, percurso, esperado/observado e evidência nesta matriz. O painel de contexto administrativo separado mantém o seu âmbito. Sem instalação ou avanço de main.
|
||||
|
||||
Reference in New Issue
Block a user