feat(scope): make Belgium and North Sea operational default
This commit is contained in:
@@ -7,6 +7,72 @@
|
||||
|
||||
# Changelog
|
||||
|
||||
## Unreleased - Post-V1 capability completion (2026-07-19)
|
||||
|
||||
- Made `Belgium and North Sea Workbench` the unconditional frontend startup
|
||||
context, moved the initial MapLibre viewport to national extent and removed
|
||||
Mol/Kempen defaults from project/area forms and end-user source copy. Mol and
|
||||
Kempen remain golden regression data only.
|
||||
- Added bounded official UrbIS Land Cover products for Brussels using the
|
||||
live-validated `urbisvector:Blocks` WFS layer: total land-cover blocks,
|
||||
FO/GB forest and park blocks, and WB permanent-water blocks. Persisted
|
||||
geometries retain source class codes and expose real hectare metrics.
|
||||
- Restricted the production model-asset catalog to the explicit
|
||||
`YOLO_MODEL_PATH` file so training/smoke checkpoints no longer pollute the
|
||||
end-user selector. The Detection Lab now states the local Mol/Kempen
|
||||
validation scope and explicitly warns that the model is not nationally
|
||||
validated.
|
||||
|
||||
- Implemented real local segmentation inference: `YoloSegmentationAdapter` and
|
||||
`SamSegmentationAdapter` (ultralytics interface) run over existing raster
|
||||
tile manifests, georeference mask polygons to EPSG:4326, suppress duplicate
|
||||
masks by IoU, compute geodesic areas and persist `Segmentation` rows with
|
||||
local-inference provenance. The segmentation model registry now reports
|
||||
`yolo-seg-configured` and `sam-configured` dynamically from
|
||||
`YOLO_SEG_ENABLED`/`YOLO_SEG_MODEL_PATH` and `SAM_ENABLED`/`SAM_MODEL_PATH`.
|
||||
Everything stays fail-closed: no weights are downloaded automatically and a
|
||||
missing file or dependency reports an explicit unavailable status.
|
||||
- Implemented bounded MDK Belgian North Sea bathymetry acquisition
|
||||
(`POST /datasets/bathymetry/mdk/acquire`): WCS 1.0.0 GetCoverage behind the
|
||||
existing strict-TLS readiness probe. Acquisition requires explicit
|
||||
`MDK_BATHYMETRY_ACQUISITION_ENABLED=true`, a coverage id advertised by the
|
||||
live capabilities document, a bounded EPSG:4326 bbox, GeoTIFF validation via
|
||||
rasterio and persists LAT vertical-reference provenance. The bathymetry
|
||||
source registry now reports `acquisition_supported=true` with
|
||||
`configured=false` until the operator opts in.
|
||||
- Added the live-validated `urbis_street_axes` product
|
||||
(`urbisvector:StreetAxes`, INSPIRE_ID identity, LineString geometry) so the
|
||||
Brussels roads theme becomes operational through the existing bounded UrbIS
|
||||
WFS engine. The live capabilities advertise no hydrography feature type, so
|
||||
Brussels surface water intentionally remains `not_configured`.
|
||||
- Extended `.env.example` with the new segmentation and MDK acquisition
|
||||
variables and updated `docs/KNOWN_LIMITATIONS.md` and `docs/TODO.md`.
|
||||
|
||||
### Functional audit fixes (beyond documented scope)
|
||||
|
||||
- Runs can no longer be orphaned in `running`: rejected fixture payloads,
|
||||
unexpected inference errors and the unreachable model fall-through in both
|
||||
`DetectionService.run_detection` and `SegmentationService.run_segmentation`
|
||||
now mark the analysis run and job `failed` before propagating the error, and
|
||||
`JobService.run_sync_job` marks the job failed on unexpected non-AppError
|
||||
exceptions as well (`tests/test_run_state_consistency.py`).
|
||||
- `/api/v1/system/capabilities` no longer hardcodes `sam=false`; it reports
|
||||
the real configured state of the SAM segmentation capability.
|
||||
- `POST /exports/geojson` fails closed with `INVALID_EXPORT_REQUEST` instead of
|
||||
silently returning an empty envelope when no export target matches.
|
||||
- The segmentation workbench now auto-selects a configured non-fixture
|
||||
segmentation model when one exists, mirroring the detection workbench.
|
||||
- Runtime parity: `YOLO_SEG_*`, `SAM_*`, `SEGMENTATION_*` and
|
||||
`MDK_BATHYMETRY_ACQUISITION_*` are now wired through `docker-compose.yml`,
|
||||
`docker-compose.unraid.yml`, `deploy/unraid/run-dockerman-container.sh`,
|
||||
`deploy/unraid/geointel.env.example` and the DockerMan template. Without
|
||||
this the new segmentation and bathymetry features could never be enabled in
|
||||
the deployed runtimes. Compose deployments now also reconcile interrupted
|
||||
runs after a restart (`GEOINTEL_RECONCILE_INTERRUPTED_RUNS_ON_STARTUP=true`),
|
||||
matching the Unraid runtime. Guarded by
|
||||
`test_segmentation_and_mdk_acquisition_are_configurable_in_every_runtime`
|
||||
and `test_compose_reconciles_interrupted_runs_after_restart_like_unraid_runtime`.
|
||||
|
||||
## 1.0.0 - Final Belgium and Belgian North Sea release (2026-07-19)
|
||||
|
||||
- Fixed rectangle analysis so it materializes and reads all applicable
|
||||
|
||||
Reference in New Issue
Block a user