Files
geointel/docs/TODO.md
T
Jens 438f10fb4b
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 0s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s
Polish GeoIntel workbench and harden Tower deploy
2026-07-28 07:21:48 +02:00

65 KiB

GeoIntel TODO

PyTorch-modelprogramma

Uitvoeringsbord: docs/PYTORCH_TRAINING_ROADMAP_BELGIUM.md.

  • Scheid trainbare beeldtaken van deterministische GIS-analyses.
  • Generaliseer de single-class tile-export op klasse, referentiebron en referentielaag.
  • Laat productietraining fail-closed stoppen wanneer vereiste CUDA ontbreekt.
  • Materialiseer geografisch gescheiden GRB/PICC/URBIS-gebouwcorpora met temporeel passende orthofoto's.
  • Train en evalueer een Belgische gebouwchallenger onafhankelijk; promoveer alleen zonder achtergrondregressie.
  • Houd zonnepanelen en segmentatie not_configured tot gereviewde taaklabels en hold-outs bestaan.

Actieve post-RC datadekkingsfase

Professionaliseringspass (2026-07-27):

  • Voeg een expliciete gastknop toe aan de toegangspoort en open daarmee een korte, projectgebonden, alleen-lezen demowerkruimte.

  • Beperk de gastinterface tot kaartverkenning en bestaand kwaliteitsbewijs; blokkeer operatoracties en toegang tot andere projecten ook server-side.

  • Herwerk de landingspagina, aanmeldhiërarchie, mobiele navigatie en workbenchcontext tot één rustigere en professionelere productervaring.

  • Consolideer na visuele regressiesnapshots de vier historische workbench-stijllagen (app, premium, atlas-workbench, atlas-premium-v2) tot een kleiner gelaagd stijlsysteem.

  • Ontwerp alleen bij een toekomstige publieke multi-projectinstallatie een volwaardig account-, autorisatie- en tenantisolatiemodel; gastmodus is daar uitdrukkelijk geen vervanging voor.

  • Voeg een interactieve, data-gedreven projectatlas toe aan de statuswerkruimte met toegankelijke navigatie, echte readiness-toestanden en reduced-motion ondersteuning.

  • Geef alle primaire werkruimtes een eigen geanimeerde signaalillustratie, verbeter lege toestanden en verwijder de dubbele kaartfoutmelding bij sessieverval.

  • Implementeer de aangeleverde Stitch-landingspagina als echte React- toegangspoort en bescherm de workbench met één veilig geconfigureerd operatoraccount, sessieverval, uitloggen en zichtbare foutstatussen. Dit is geen multi-user- of tenantbeheersysteem.

docs/POST_RC_DATA_COVERAGE_ROADMAP_BELGIUM_NORTH_SEA.md was het autonome uitvoeringsbord na v1.0.0-rc.1 en is nu afgesloten voor v1.0.0. Dit is geen RC-12. De definitieve release blijft immutable bewijs; verdere databronnen zijn post-V1 uitbreidingen.

  • P0: bestaande NGI/RBINS-lagen als kaartthema en selectieanalyse ontsluiten.
  • P0: readiness baseren op bruikbare analysethema's, niet alleen datasetaantal.
  • P1: nationale Statbel-populatieflow veilig operationaliseren.
  • P2: bounded SPW PICC voor Waalse gebouwen, wegen en hydrographie.
  • P3: bounded UrbIS voor Brusselse gebouwen en percelen.
  • P4: maritieme thema's harden en bathymetrie fail-closed onderzoeken.
  • P5: zonefederatie, UX, golden journeys en immutable deployment.

Actief RC-programma: Belgie en de Belgische Noordzee

docs/RC_ROADMAP_BELGIUM_NORTH_SEA.md is vanaf 2026-07-17 het enige actieve releasebord. Mol en de Kempen blijven regressiereferenties, maar de productscope is nu heel Belgie plus de juridisch correct gelabelde Belgische maritieme zones.

  • RC-0: Belgische en maritieme scopefreeze vastleggen.
  • RC-0: autonome roadmap zonder afzonderlijke RC-12 vastleggen.
  • RC-0: deterministisch release-evidence manifest implementeren en draaien.
  • RC-1: actuele productiebackup, verificatie en geisoleerde restore bewijzen.
  • RC-2: liveness/readiness/capabilities fail-closed en waarheidsgetrouw maken.
  • RC-2: verweesde jobs en analysis runs na een procesherstart verzoenen.
  • RC-3: expliciete rasterkeuze en temporeel compatibele detectie-QA afdwingen.
  • RC-4: aparte nationale bron- en dekkingscontracten implementeren zonder het vaste Sprint 7-providerregister te wijzigen.
  • RC-4: expliciete NGI/RBINS-operator en selectiegebonden coverage-API implementeren en lokaal valideren.
  • RC-4: Tower fetch-only, canonieke persistence en live browseracceptatie bewijzen.
  • RC-4: nationale basisdekking en expliciete coverage-contracten voor Wallonie, Brussel en de Belgische Noordzee via golden areas operationaliseren.
  • RC-5: secrets/configuratie/uploadlimieten/immutable deploy en rollback bewijzen.
  • RC-6: volledige CI, dependency-audit, containerscan en SBOM toevoegen.
  • RC-7: kritieke API-routes concrete responsemodellen geven.
  • RC-8: echte frontend- en browser-E2E-releaseflows toevoegen.
  • RC-9: loading, toegankelijkheid, widescreen/mobile en performance afronden.
  • RC-10: dataretentie, diskdruk en veilige cleanup operationaliseren.
  • RC-11: fresh install, upgrade, rollback, releasepakket, tag en live acceptatie afronden.

Een aparte RC-12/soakfase wordt niet uitgevoerd. De relevante fresh-install-, upgrade-, rollback- en runtimebewijzen zijn verplicht opgenomen in RC-5 en RC-11.

Actuele V1-productstatus

Dit is het enige actuele afwerkingsbord. De lange sprint- en voorbereidingslijsten verderop blijven bewaard als historisch bewijs, maar zijn geen open productroadmap meer.

  • Open onvoorwaardelijk de nationale Belgium and North Sea Workbench wanneer die bestaat en start de kaart op Belgische schaal. Mol en de Kempen blijven alleen snel selecteerbare regressiegebieden.
  • Maak UrbIS Land Cover begrensd operationeel voor Brussel: alle Blocks als landbedekking, FO/GB als bos en park en WB als permanent water, met echte PostGIS-oppervlaktemetrics en broncodes.
  • Implementeer begrensde WALOUS 2018/2020/2023 rasteracquisitie in EPSG:3812 met officiële klassen, een expliciete 2018-klassecrosswalk, vergelijkbaarheidscontract, pixelbudget, automatische tijdreeksmaterialisatie en evolutiemetrics. De vaste officiële 2018-GeoTIFF-distributie is live checksum-gevalideerd; bronwaarde 0 wordt expliciet als achtergrond/nodata behandeld.
  • Rond de live provisioning van het officiële SPW MNT 2021-2022 op 1 m in de operatorcache af en bied begrensde terreinacquisitie/analyse in DNG aan. Het bronraster en de checksum-sidecar zijn gevalideerd en het downloadarchief is na veilige extractie verwijderd. De 0,5 m-distributie blijft buiten V1 omdat zij geen noodzakelijke analysecapaciteit toevoegt tegenover de gevalideerde 1 m-bron en officieel als circa 198 GB download wordt aangeboden, exclusief extra werkruimte tijdens extractie.
  • Implementeer de actuele Waalse overstromingsgevaarkaart als afzonderlijk scenario-/juridisch contract; gebruik WMS alleen als context tenzij analytische pixels of vectorgeometrie officieel beschikbaar zijn.
  • Bouw een Belgische AI-validatiematrix met gelabelde golden AOIs in elk gewest en aan de kust. Tot die matrix slaagt blijft de huidige YOLO-status expliciet lokaal gevalideerd en controleplichtig.
  • Kies een begrijpbaar datathema, teken een rechthoek of gebruik het volledige werkgebied en analyseer alle relevante thema's uit PostGIS. Een getekende selectie mag ontbrekende operationele bronproducten begrensd en met maximaal drie gelijktijdige aanvragen materialiseren; niet-toepasselijke of niet-operationele regionale thema's worden niet als ontbrekende meting gepresenteerd.
  • Gebruik voor getekende en handmatig ingevoerde rechthoeken overal bbox ∩ Area; een bbox rond het volledige werkgebied resolveert naar de exacte persistente Area-geometrie en activeert pas dan de full-Area fast path.
  • Toon betekenisvolle eenheden en metrieklabels voor oppervlakte, lengte, inwoners, hoogte, scenario's en stationsmetingen; objectaantallen zijn ondersteunend.
  • Vergelijk beschikbare historische meetmomenten met een volledige tijdreeks, absolute wijziging, procentuele wijziging en bronbeperking.
  • Download vectorresultaten als GeoJSON, rasteranalyses als JSON en historische vergelijkingen als JSON; kopieren blijft voor alle drie mogelijk.
  • Ga vanuit een afgeronde analyse rechtstreeks naar de lokale brongebonden Ollama-assistent of naar Downloads en keer terug zonder het zichtbare kaartresultaat of de evolutievergelijking te verliezen.
  • Herbereken en bewaar het actieve vector-, raster- of evolutieresultaat server-side voordat Downloads wordt geopend, met traceerbare selectie- en bronmetadata.
  • Haal de canonieke regionale werkruimte exact op naam op zodat groei van operator- en benchmarkprojecten de standaard kaartcontext niet kan verdringen.
  • Gebruik de operationele lokale YOLO/PyTorch-keten alleen met persisted detecties, GRB-QA en expliciete controlewaarschuwingen.
  • Toon in de beeldanalyse alleen operationele luchtbeeldrasters en geen hoogte-, overstromings- of thematische beleidsrasters.
  • Draai de volledige applicatie in de beheersbare Unraid-container op poort 1202 met PostGIS, backend, frontend, Ollama-koppeling en modelconfiguratie.
  • Archiveer allowlisted benchmark-, kalibratie- en rooktestwerkruimtes om de actieve projectlijst beheersbaar te houden, zonder gegevens of resultaten te verwijderen.
  • Verberg technische identifiers, modeldetails en interne statussen achter expliciete technische details en gebruik uniforme Nederlandse taaktaal in kaart-, kwaliteits-, detectie- en segmentatiewerkstromen.
  • Begrens de grootste frontendverantwoordelijkheden met afzonderlijke overzichts-, modelbeheer- en kaarthelpermodules zonder gedrag te wijzigen.
  • Maak de vijf bestaande officiële beleidsrasters veilig op aanvraag beschikbaar voor elke begrensde selectie in Vlaanderen, met Dataset-cache, semantische metrics en zonder 1.425 vooraf geladen rasters.
  • Maak de volledige selectieanalyse in Vlaanderen operationeel voor NGI, Statbel, GRB, beleidsrasters, DHMV, overstromingsgevaar, BWK, DOV en VHA: één rechthoek materialiseert ontbrekende officiële bronproducten, leest persistente vector/rastergegevens uit en rapporteert inhoudelijke eenheden.
  • Vervang de gegroeide dashboardpresentatie door de Stitch-gestuurde Atlas Workbench met een compacte navigatierail, vaste contextbalk, taakgerichte schermen en gevalideerde desktop-, ultrawide- en mobiele layouts.

Post-V1 afwerkingspass (2026-07-19):

  • Lokale YOLO-seg- en SAM-segmentatie via de ultralytics-interface: echte adapters, dynamisch modelregister, tegelmanifest-inferentie, georeferentie van maskpolygonen, dedupe, geodetische oppervlakte en persistentie. Blijft fail-closed zonder lokale modelgewichten (YOLO_SEG_*/SAM_* env).
  • Begrensde MDK-bathymetrie-acquisitie (WCS GetCoverage) achter de bestaande strict-TLS readiness-probe: expliciete opt-in, geadverteerd coverage-id verplicht, bbox-limiet, GeoTIFF-validatie, LAT-provenance. Endpoint: POST /datasets/bathymetry/mdk/acquire.
  • UrbIS-wegassen (urbisvector:StreetAxes, live gevalideerd tegen de UrbIS WFS-capabilities) als begrensd Brussels roads-product met lengte-metrics; de WFS adverteert geen hydrografielaag, dus Brussels oppervlaktewater blijft eerlijk not_configured.

Bewuste, niet-blokkerende grenzen:

  • De begrensde SPW-rasterflow maakt Waalse waterbodemhoogte in mDNG analyseerbaar. Watervolume blijft niet beschikbaar zolang geen compatibele wateroppervlaktehoogte, tijdskoppeling, datumtransformatie en onzekerheidsmodel bestaan. Dit is geospatiale correctheid, geen onafgewerkte UI.
  • Gebouwdetectie is operationeel maar blijft een controlekandidaat; verdere training gebeurt pas na nieuwe, onafhankelijke reviewdata.
  • Een echt SAM/YOLO-seg-model en een trainingsstudio blijven post-V1. De persistente segmentatie- en QA-fundering blijft beschikbaar voor later.

Map-first Mol explorer

  • Make the Mol geographic explorer the default workflow.
  • Add drag rectangle selection with automatic persisted theme queries.
  • Separate exact bbox intersection totals from the bounded map preview.
  • Add official Mol GRB roads, water and parcels provisioning support.
  • Select, validate and provision official Statbel 2021-2025 population/statistical-sector snapshots for Mol.
  • Select, validate and provision official Departement Omgeving 2013-2025 forest snapshots from the 10 m land-use map.
  • Define and provision the official 28-municipality Vervoerregio Kempen as the explicit operational regional scope.
  • Partition and provision the complete current GRB building theme for all 28 Kempen transport-region municipalities, with resumable source artifacts and one queryable regional PostGIS dataset.
  • Provision the remaining regional GRB context themes in bounded partitions: roads, water and parcels.
  • Make the complete regional workspace the automatic data context and use municipality/full-region Areas as one spatial filter instead of requiring a region dropdown.
  • Reduce end-user noise by moving technical projects, source metadata, QA evidence, provider internals and model diagnostics behind explicit advanced disclosures.
  • Default Detection Lab to the configured local YOLO asset and present measured model quality and control requirements honestly.
  • Extend official population and land-use time series from Mol to the approved 28-municipality regional scope.
  • Make Evolution automatically open an available regional series and distinguish historical themes from current-only snapshots.
  • Replace object-count-only map results with semantic PostGIS metrics for hectares, kilometres and inhabitants while retaining counts as supporting evidence.
  • Show complete comparable observation timelines and all compatible semantic metric deltas for exact persisted Areas.
  • Expand the modern 2013-2025 land-use operator with water, built-function and transport surfaces from the retained official raster.
  • Add a source inventory that separates loaded data from audited official follow-up sources.
  • Add a local Ollama question window grounded in persisted GeoIntel metrics and installed server models.
  • Add a governed bounded SPW bed-elevation source with explicit mDNG and survey-period semantics; never infer depth or volume from 2D water geometry.
  • Add a compatible water-surface, time, vertical-datum and uncertainty contract before exposing water volume.
  • Integrate governed Waterinfo/VMM annual station series without presenting point measurements as area-wide water volume.
  • Add bounded historical orthophoto acquisition for official 1971-2025 products with a map overlay and no current-GRB QA on old imagery.
  • Add BWK/Natura 2000 through an explicit provider/operator contract.
  • Expand BWK/Natura 2000 state 2025 from Mol to all 28 approved Kempen municipalities with partitioned source evidence.
  • Add a regional VMM flood-hazard operator that provisions official scenario rasters per municipality Area through the canonical API.
  • Add annual agricultural-use parcels through an explicit provider/operator contract.
  • Extend the official 1778/1873/1969 historical buildings, water and roads series from Mol to the approved regional scope with partitioned source audits.
  • Connect a drawn rectangle to bounded official orthophoto acquisition, local configured-YOLO detection and persisted GRB QA.
  • Add governed official space-occupation, open-space, population-density, accessibility and service-level rasters with semantic map metrics.
  • Add the DOV digital soil map for Mol with exact clipping, source attributes and historical survey limitations.
  • Execute the governed thematic-raster operator for every persisted Kempen municipality after the Mol live gate passes.
  • Persist one bounded whole-region snapshot per thematic raster so drawn selections can cross municipality boundaries without changing source semantics.
  • Generalize the DOV soil-map operator to all 28 approved Kempen municipality partitions with one regional snapshot manifest.
  • Add a resumable regional DHMV DTM/DSM operator for all 28 approved Kempen municipality Areas.
  • Execute and audit the complete 336-product VMM and 56-product DHMV regional runtime matrices.
  • Present municipal DHMV/VMM partitions as logical regional layers and analyse cross-boundary rectangles without a municipality prerequisite.
  • Add a read-only source freshness/version audit with explicit publication policies, local integrity checks, operator CLI and compact Status workspace surface.
  • Add explicit bounded GRB/orthophoto catalogue release probes using official capabilities and ISO metadata; keep every acquisition separate and operator-controlled.
  • Add a governed regional GRB plan -> stage -> checksum-confirmed apply workflow that preserves every previous snapshot.
  • Add a fail-closed ALZ publication probe that distinguishes provisional v1/v2 snapshots from the definitive v3 historical edition and never downloads an archive.
  • Add a fail-closed Statbel DCAT publication probe that distinguishes population year, sector-geometry year and the 2025 REDEGEO transition without downloading distributions.
  • Add a fail-closed Statbel population import preflight with archive/schema/CRS/join/total/baseline checks, retained checksums and explicit ZZZZ accounting before any new Dataset import.
  • Add an explicit Statbel population plan -> stage -> named review -> checksum-confirmed apply workflow that preserves every prior annual snapshot.
  • Add an explicit definitive ALZ plan -> stage -> named review -> checksum-confirmed apply workflow while keeping v1/v2 campaign snapshots non-importable.
  • Extend catalogue probes only to additional sources that publish a stable official edition contract; do not add background polling or infer releases from HTTP dates alone.

Governed source expansion backlog

Implement these in order. Every source must use an explicit operator/provider contract, retain raw checksummed evidence, persist through DatasetService and pass live Mol validation before regional expansion.

P1 - Biologische Waarderingskaart / Natura 2000

  • Confirm the official downloadable service/layer/version and licence for the 2025 state.
  • Define stable habitat/biotope/value fields and keep BWK valuation separate from Natura 2000 habitat classification.
  • Clip in EPSG:31370 to Mol, transform to EPSG:4326 and persist valid polygonal vector_features with source feature ids.
  • Add hectare metrics per governed class plus unknown/unmapped-class diagnostics; do not invent an annual trend from one state.
  • Add source manifest, unit tests, live row/count/geometry audit and map/source-inventory presentation.

P2 - Annual agricultural-use parcels

  • Inventory official annual editions and document schema/code-list changes before selecting a comparable year range.
  • Retain annual source files and crop code lists; normalize only fields whose meaning is stable across editions.
  • Persist separate annual Datasets with hectares by crop/use class and an explicit unstable-parcel-identity limitation.
  • Compare area/category totals over time; do not claim parcel lineage where identifiers or boundaries changed.
  • Validate Mol first, then partition all 28 Kempen municipalities with completeness/checksum manifests.

P3 - Buildings and Addresses Register

  • Define a governed snapshot operator and relation mapping between building unit, building object, address and GRB geometry.
  • Keep register lifecycle/status semantics separate from GRB footprint geometry and document match confidence/unmatched rows.
  • Add current building-status/address metrics without exposing personal data or treating addresses as households/population.
  • Add Mol reconciliation tests and a live mismatch report before regional import.

P4 - Digitaal Hoogtemodel Vlaanderen

  • Select official DTM/DSM product, service and native resolution; retain acquisition date and vertical reference.
  • Add bounded raster acquisition/clip storage with nodata, CRS, resolution and checksum validation.
  • Implement governed elevation, relief and slope statistics in metres/degrees; keep drainage interpretation explicitly derived.
  • Do not label terrain/surface height as water depth and do not enable volume from DHMV alone.

P5 - Water depth / bathymetry

  • Audit authoritative sources: no public municipality-wide inland bathymetry for Mol was identified; keep permanent waterbody volume unavailable.
  • Integrate the separate public VMM fluvial/pluvial flood-hazard depth scenarios without presenting them as bathymetry or current water state.
  • Persist scenario identity, source centimetres, normalized metres, WCS checksums, exact Area clipping and positive-depth coverage.
  • Expose mapped inundation area, depth statistics and a clearly named maximum-depth area integral with a prohibition on calling it concurrent volume.
  • Extend the VMM scenario workflow to the approved regional scope using 28 municipality partitions instead of one unsafe monolithic raster.
  • Define waterbody linkage, surface elevation, bottom elevation and uncertainty propagation before adding any volume metric.
  • Validate coverage gaps and prohibit extrapolation outside measured/profiled waterbodies.
  • Add independent GIS review and golden-volume fixtures before exposing the result to users or Ollama.

This file now starts with the current implementation status. Older preparation/backlog sections are preserved below as historical planning context and should not be treated as the live sprint board without checking docs/CODEX_EXECUTION_LOG.md.

Release hardening status

  • Remove Python datetime.utcnow() deprecation warnings from backend service paths.
  • Split frontend production build into app, React vendor and MapLibre vendor chunks.
  • Enforce Python deprecation warnings as release-readiness failures.
  • Fix Docker backend package install order and remove mandatory root .env dependency.
  • Add Docker build context ignores for backend and frontend.
  • Run Docker/PostGIS live validation on Tower/Unraid.
  • Add Unraid Compose template assets with editable ports, storage path and app icon.
  • Add single-container Unraid runtime with embedded PostGIS, backend and frontend.
  • Remove embedded PostGIS password defaults from all-in-one Docker image metadata.
  • Report reused-volume PostgreSQL collation mismatches in live migration smoke.
  • Execute Tower PostgreSQL collation reindex/refresh after backup.

Current implementation status

  • Make Mol the primary workbench, AOI and operator-sample context while preserving broader Kempen coverage.
  • Add a Mol multi-zone operational pack with independent positive holdouts, background control and persisted map-ready AOIs.
  • Execute the Mol pack on live Tower/PostGIS with real orthophotos, GRB references, configured YOLO, persisted QA/QC and a zero-building background control.
  • Persist and stream the complete official Mol municipality boundary plus all 36,941 clipped GRB buildings through the Map workspace.
  • Run a bounded Mol-center raster, tile, configured-YOLO, persisted detection, GRB QA and export workflow on live Tower/PostGIS.
  • Separate persisted database layers from available analysis-result overlays with an explicit Map content mode.
  • Persist combined Mol operator evidence under the Unraid storage mount so reports survive all-in-one container replacement.
  • Visually review Mol Postel and Donk false-positive/false-negative evidence, classify the dominant error modes and only then decide whether another model-training pass is justified.
  • Clip detection QA populations to persisted raster/tile coverage and add box-to-footprint matching diagnostics before reconsidering model training.
  • Add a coverage-aware Mol multi-zone benchmark report with explicit positive-zone, per-zone collapse, reference-coverage and pure-empty background gates.
  • Execute the refreshed coverage-aware Mol operational benchmark against the active local model and record the resulting retain/review decision.
  • Align map-driven building QA with footprint IoU 0.25 and show measured candidate/match/error metrics instead of calling every detection a building.
  • Persist paginated false-positive/false-negative operator decisions and expose them in the Quality workspace.
  • Bound QA evidence resolution to persisted evidence ids instead of loading complete regional reference datasets.
  • Compare confidence 0.10 and 0.15 over independent Mol holdouts; retain 0.15 because it wins F1 in every positive zone while both pass the empty-background control.
  • Complete conservative decisions for the generated 48 false-negative and 48 false-positive review cards, validate both roles fail-closed and retain only 15 confirmed model errors.
  • Audit the confirmed review evidence against the active corpus and holdouts; reject retraining because it provides zero novel leakage-free labels.
  • Backend FastAPI foundation, health endpoint and service structure.
  • React/TypeScript frontend foundation and MapLibre workbench.
  • Map layer visibility, opacity and feature property inspection.
  • Selected project area/AOI map overlay with visibility and opacity controls.
  • SQLAlchemy/PostGIS ORM models and Alembic migration chain through Sprint 9.
  • Dataset upload, storage metadata and vector feature persistence.
  • Raster metadata and raster operation service boundaries.
  • Vector operation service boundaries and fixture-backed tests.
  • Provider registry skeleton for GRB, OSM, manual and fixture providers.
  • Detection Lab foundation, persistence, GeoJSON output and QA integration.
  • Configured-YOLO optional dependency strategy and local preflight.
  • Segmentation Lab foundation, persistence, GeoJSON output and QA integration.
  • QA/QC golden benchmark fixtures and script.
  • Run QA/QC golden benchmark from the main readiness gate.
  • Verify browser-facing demo QA/QC metrics against the golden baseline.
  • Explicit offline demo workflow seed for project, AOI, fixture datasets and persisted QA metrics.
  • Project-scoped QA/QC result listing and frontend QA/QC Results panel.
  • Persisted export foundation for vector/detection/segmentation GeoJSON and project metadata JSON.
  • Lightweight HTML project report artifact export.
  • V1 readiness handoff summary in project metadata/report exports.
  • Browser-facing demo/export workflow smoke script with connected V1 state checks.
  • Compact V1 workbench status strip for project, AOI, datasets, map, QA/QC and exports.
  • Dry-run-first demo export artifact cleanup tooling.
  • Browser-facing default workbench state smoke for the offline demo project.
  • Browser-facing workbench interaction backing-state smoke and stable UI test anchors.
  • Backend API contract audit comparing implemented FastAPI routes with docs/API_CONTRACTS.md.
  • Live Docker/PostGIS validation on Tower/Unraid.
  • Real YOLO compatibility smoke with optional AI extras and local model file.
  • Detection and segmentation workflow hook extraction beyond Sprint 10.
  • Export and QA/QC workflow hook extraction beyond Sprint 10.
  • Dataset, raster and vector workflow hook extraction beyond Sprint 10.
  • Dataset detail, raster controls and vector controls component decomposition.
  • QA/QC results and map workspace component decomposition.
  • Docker Compose port/storage/database configuration via .env defaults for Unraid.
  • Single-container geointel Unraid compose/template runtime.
  • Export preview component decomposition and HTML report download-only UX hardening.
  • Provider, change-detection and map-workspace orchestration hook decomposition.
  • Project/area/dataset cross-load orchestration hook decomposition.
  • Demo workflow orchestration hook decomposition.
  • Final App.tsx import/encoding cleanup and size audit.
  • Optional final bootstrap-effect extraction.
  • Decide next V1 stabilization focus: golden dataset expansion or frontend visual polish backlog.
  • Expand golden QA/QC benchmark coverage across partial, perfect, no-overlap and MultiPolygon scenarios.
  • Improve workbench shell visual polish, mobile navigation density and AI result readability.
  • Improve Map workspace layer provenance, empty guidance and selected-feature summary readability.
  • Add Data/Map mobile visual polish for upload forms, action grids and map toolbar density.
  • Add AI Labs mobile visual polish for model cards, lab forms and result tables.
  • Add Export/System mobile visual polish for export actions and provider capability cards.
  • Add inspector mobile polish for dataset metadata, raster/vector tools and action groups.
  • Add export preview readability polish for large JSON/GeoJSON handoff artifacts.
  • Add accessibility focus polish for primary workbench keyboard navigation.
  • Add raster/vector operation form readability polish for dense tool panels.
  • Add compact loading/error/empty/result state polish across QA, exports and AI labs.
  • Add compact shell density polish for topbar context, mobile navigation and workspace skip flow.
  • Add Overview workspace panel hierarchy polish for readiness and recommended-action regions.
  • Add Data workspace selected-summary and panel density polish.
  • Add Map workspace panel hierarchy and layer-control density polish.
  • Add selected map feature extraction with highlight, property table, copy and GeoJSON download.
  • Add operational GIS map workflow with road basemap, persisted database layer selection and AOI/layer vector_features query run.
  • Add basemap policy notice and guided GIS query-to-QA/export workflow in the Map workspace.
  • Add reusable latest-result mode for repeated Map QA/QC runs without duplicate derived artifacts.
  • Add opt-in Docker/Unraid AI build/runtime path for local PyTorch/Ultralytics YOLO operation.
  • Surface configured-YOLO runtime preflight status through the API and Detection Lab UI.
  • Add read-only local model asset catalog and Detection Lab model-file selection.
  • Add live model asset detection workflow smoke for configured-YOLO runtime/provenance validation.
  • Add one-click full GIS workflow action for query, derived dataset, QA/QC and export handoff.
  • Add QA/QC workspace result hierarchy and filter density polish.
  • Add Change Detection panel hierarchy and analysis workspace density polish.
  • Add calm workbench layout pass to reduce duplicate navigation, heavy card styling and shell density.
  • Add Data and Map usability layout pass with compact catalog cards and map-first spatial review.
  • Add QA/QC and Exports usability layout pass with calmer evidence review and handoff artifact scanning.
  • Add AI Labs Detection/Segmentation hierarchy and result density polish.
  • Add Export/System handoff hierarchy and provider registry density polish.
  • Add widescreen and ultrawide workbench breakpoints for the map-first GIS workflow.
  • Add operator-provided real raster/reference detection + QA workflow smoke.
  • Validate the configured building model on a real georeferenced Kempen orthophoto/GeoTIFF with persisted reference vectors and QA/QC metrics.
  • Fix configured-YOLO mixed-case class labels so Building model output matches building domain filters.
  • Persist CRS metadata in raster tile manifests so AI detections can be transformed to WGS84 GeoJSON correctly.
  • Add real-data detection calibration sweep tooling for confidence-threshold and QA/QC metric comparison.
  • Add calibration QA evidence export tooling for false-positive/false-negative inspection artifacts.
  • Add real-data detection quality matrix tooling for model/tile/threshold comparison.
  • Add reproducible Geel/Mol/Turnhout operator sample preparation and multi-sample quality matrix tooling.
  • Run first Geel/Mol/Turnhout persisted detection quality baseline.
  • Add and benchmark a stronger yolov8s building-segmentation runtime model candidate.
  • Add operator-only tile-level YOLO dataset export with overlapping windows and deterministic negative tile retention.
  • Train and benchmark the first tile-level local YOLO candidate on Tower through the persisted QA/QC matrix.
  • Calibrate confidence, IoU and model selection against additional local orthophoto/reference samples beyond Geel/Mol/Turnhout.
  • Add negative/background AOIs to the operator sample corpus and train an expanded local tile-level YOLO candidate.
  • Add a hard-negative model-quality pass with sparse/background AOIs and explicit false-positive scoring.
  • Train a hard-negative-balanced YOLO candidate and rerun dense QA plus background false-positive matrices.
  • Benchmark an external remote-sensing YOLOv8l building candidate as an explicit local model asset.
  • Train and gate the uniquehardneg160e50 YOLOv8s candidate through 7 positive AOIs and 9 hard-negative/background samples.
  • Train and gate an AOI-scale aoi512e80 YOLOv8s candidate to test the 160px training-scale hypothesis.
  • Raise configured-YOLO max_det through YOLO_MAX_DETECTIONS so dense AOIs are not capped at 300 detections before QA/QC.
  • Rerun live dense-AOI calibration after redeploy with YOLO_MAX_DETECTIONS=1000; Westerlo reached 523/1000 detections at lower thresholds and Turnhout reached 822/1000, confirming the old 300 cap is removed.
  • Add configured-YOLO cross-tile duplicate suppression and raw/suppressed calibration evidence fields.
  • Rerun live dense-AOI calibration after redeploy with YOLO_DUPLICATE_IOU_THRESHOLD=0.5; Westerlo 0.25 improved to F1 0.2537313432835821 and Turnhout 0.25 improved to F1 0.14114114114114112, but the candidate remains rejected.
  • Add OPERATOR_YOLO_MIN_LABEL_VISIBLE_RATIO so the next overlapping-tile dataset can drop tiny clipped edge-fragment labels.
  • Add operator-only larger-AOI sample prep flags so the next training dataset is not limited to one 512x512 tile per documented sample.
  • Regenerate Tower AOI1024 operator samples with paged GRB references and verify no dense reference sample is capped at 1000 features.
  • Export and audit AOI1024 clean-label variants; select yolo-building-aoi1024-visible050-minpx8 as the first audit-passing 512px training candidate.
  • Train and gate geointel-building-yolov8s-aoi1024clean512e50-pt through seven positive AOIs and nine hard-negative/background AOIs.
  • Train and gate background-aware geointel-building-yolov8s-aoi1024bg512r3e50-pt; it is the strongest positive-AOI candidate so far but remains inactive because full background-candidate false-positive pressure still blocks default promotion.
  • Add explicit operator detection profiles for local model assets and promote the expanded-AOI balanced review profile at threshold 0.15 after positive and pure-empty split-background gates passed.
  • Add pure-empty versus sparse-building contextual background corpus classification to operator manifests, hard-negative matrix filters and YOLO tile provenance.
  • Add a split background-corpus matrix runner and report builder that runs pure-empty and sparse-context matrices separately.
  • Teach the model promotion report to consume split background summaries so only pure_empty_negative blocks default promotion and sparse_building_context stays review-only.
  • Add one-command operator workflow to run split background matrices and immediately build the split-aware promotion report.
  • Add preflight-only validation for the split-background promotion workflow before long runtime matrices.
  • Rerun split background matrices on Tower after rebuild, then recalibrate against the cleaner pure-empty gate plus separate sparse-context inspection matrix.
  • Add guarded promoted-candidate activation helper requiring a promotion report path and exact candidate key before .env can be changed.
  • Add per-sample YOLO dataset audit diagnostics for parsed labels, median box area, small-box share and AOI-specific warning codes.
  • Add deterministic visual YOLO label QA contact sheets before spending more CPU on another training run.
  • Filter no-data/low-variance pure-empty negative tiles from operator YOLO exports before the next training run.
  • Regenerate the AOI1024 cleanpx YOLO dataset with low-variance negative filtering and rerun visual contact-sheet QA before training.
  • Train one inactive candidate from the filtered AOI1024 cleanpx YOLO dataset and gate it through the positive-AOI plus split-background promotion workflow; reject it because mean positive F1 remains below gate.
  • Add deterministic dataset/base/trained-model SHA256 provenance to future operator training summaries.
  • Review per-AOI false-negative evidence, expand positive sample/label coverage and verify the resulting candidate improves false-negative rate in every validated AOI.
  • Complete rebuild/restart and browser/runtime smoke for the guarded promoted V1 building detector activation.
  • Expand focused small-building training evidence after reviewing persistent false negatives, train one inactive candidate and pass it through positive, pure-empty and fixed-reference promotion evidence before guarded activation.
  • Audit the promoted model's increased false-positive load from persisted seven-AOI QA evidence, including geodetic area buckets, AOI-qualified tile hotspots and combined review GeoJSON.
  • Add persisted detection provenance, stratified visual contact sheets and an explicit manual-decision gate for false-positive review.
  • Visually classify representative false-positive evidence from Turnhout, Herentals and Geel and review the remaining 5,838 persistent false negatives before any further model training; do not start another blind run.

Sprint 8 status

  • Detection foundation ORM and migration
  • Detection model registry capability stubs
  • Detection run service boundary
  • Detection API foundation
  • Detection Lab UI foundation
  • Segmentation Lab foundation
  • Configured YOLO local preflight
  • Real YOLO/PyTorch model compatibility smoke

0. Repository Foundation

  • Repo mappenstructuur voorbereiden
  • Productdocumentatie voorbereiden
  • Architectuurdocumentatie voorbereiden
  • Codex build plan voorbereiden
  • Masterprompt voorbereiden
  • Init git repository
  • Voeg echte backend scaffold toe
  • Voeg echte frontend scaffold toe

1. Backend Foundation

  • FastAPI app aanmaken
  • Config systeem aanmaken
  • Database connectie voorbereiden
  • SQLAlchemy models toevoegen
  • Alembic migrations toevoegen
  • Health endpoint toevoegen
  • Tests voor health endpoint toevoegen

2. Database / PostGIS

  • Docker compose met PostgreSQL/PostGIS
  • PostGIS extensie activeren
  • projects tabel
  • areas tabel
  • datasets tabel
  • analysis_runs tabel
  • detections tabel
  • quality_checks tabel
  • exports tabel
  • spatial indexes

3. Frontend Foundation

  • React + TypeScript scaffold
  • Routing
  • Layout met sidebar
  • API client
  • Project pages
  • Map Workbench basis
  • Map layer controls
  • Feature property inspector
  • Selected area display

4. Project & Area API

  • POST /projects
  • GET /projects
  • GET /projects/{id}
  • POST /projects/{id}/areas
  • GET /projects/{id}/areas
  • GeoJSON validatie

5. Dataset Manager

  • Upload endpoint
  • Storage paths
  • Raster metadata extraction
  • Vector metadata extraction
  • Dataset list UI
  • Dataset detail UI

6. Raster Core

  • Rasterio metadata reader
  • Raster preview generation
  • Clip raster by area
  • Tile raster by area
  • Save tile metadata

7. Vector Core

  • GeoPandas importer
  • CRS detection
  • CRS transformation
  • Geometry validation
  • Clip vector by area
  • Store features in PostGIS

8. Reference Data

  • OSM fetcher als fallback
  • GRB integration research verwerken in code
  • Reference dataset cache
  • Reference layer viewer

9. Detection Lab

  • YOLO wrapper
  • Model config
  • Inference job
  • Pixel bbox naar geo polygon
  • Detections opslaan
  • Detection UI
  • GeoJSON export

10. QA/QC Lab

  • Spatial matching
  • IoU berekening
  • Precision/recall/F1
  • False positive layer
  • False negative layer
  • QA dashboard
  • QA export foundation

11. Segmentation Lab

  • Segmentation service design
  • Mask artifact path convention
  • Polygonize masks
  • Segmentatiekaartlaag

12. Change Detection

  • Compare two runs
  • Added/removed objects
  • Change stats
  • Change layer

13. Tests

  • Unit tests GIS helpers
  • API tests
  • DB/migration smoke tests
  • Raster fixture tests
  • Vector fixture tests
  • QA/QC tests

14. Portfolio Release

  • Demo dataset voorbereiden
  • Demo workflow documenteren
  • Screenshots toevoegen
  • README portfolio sectie
  • Full smoke test

Repo preparation additions

  • Add Data Catalog.
  • Add Analysis Specifications.
  • Add QA/QC Specification.
  • Add Raster Operations Specification.
  • Add Vector Operations Specification.
  • Add Detection Pipeline Specification.
  • Add Segmentation Pipeline Specification.
  • Add Change Detection Specification.
  • Add UI Page Specifications.
  • Add Storage Architecture.
  • Add Demo Scenarios.
  • Add Development Rules.
  • Add Codex phase prompts.

Recommended first Codex build sequence

  • Phase 1: Backend foundation using docs/CODEX_PHASE_1_PROMPT.md.
  • Phase 2: Dataset Manager using docs/CODEX_PHASE_2_PROMPT.md.
  • Phase 3: Detection + QA/QC skeleton using docs/CODEX_PHASE_3_PROMPT.md.

M2 Engineering Package

  • Add ADR decision records.
  • Add RFC placeholders for future modules.
  • Add API/database/event contracts.
  • Add model registry and class catalogs.
  • Add queue architecture.
  • Add acceptance matrix and test catalog.
  • Add Codex M2 build prompts.
  • Start Codex Pass 01 backend foundation.

M4 Autonomous Build Readiness

  • Add M4 autonomous build readiness document.
  • Add M4 sprint board.
  • Add module build contracts.
  • Add acceptance test catalog.
  • Add API example responses.
  • Add job lifecycle contract.
  • Add frontend state and route contracts.
  • Add backend service IO contracts.
  • Add model registry seed specification.
  • Add demo fixture manifest.
  • Add Codex autonomous runbook.
  • Add Codex pass prompts.
  • Add Geel demo fixtures.

Next M5 Preparation

  • Add concrete SQL migration snippets for every core table.
  • Add OpenAPI YAML draft.
  • Add frontend component prop contracts.
  • Add backend unit-test skeleton files.
  • Add frontend test skeleton files.
  • Add live data connector research notes with verified endpoints.

M5 Operational Readiness Checklist

  • CI/CD specification added.
  • Healthcheck contracts added.
  • Observability plan added.
  • Troubleshooting runbook added.
  • Rollback and recovery plan added.
  • Security checklist added.
  • Geospatial validation rules added.
  • Build governance added.
  • Codex pass documents added.
  • Smoke scripts added.
  • M6: implement actual backend foundation.
  • M6: implement database migrations.
  • M6: implement frontend shell.

M8 Codex Day-1 Readiness

  • Add Day 1 master prompt.
  • Add pass-by-pass Day 1 prompts.
  • Add autonomy boundaries.
  • Add failure recovery playbook.
  • Add quality gate matrix.
  • Add operator checklist.
  • Add smoke script scaffold.
  • Let Codex execute Day 1 implementation passes.

M10 Ultra Preparation

  • Add autonomous build charter.
  • Add Codex start-here guide.
  • Add M10 master autonomous prompt.
  • Add pass sequence.
  • Add geometry and CRS contracts.
  • Add error taxonomy.
  • Add feature flag strategy.
  • Add model adapter guide.
  • Add QA/QC matching algorithm.
  • Add frontend state machine.
  • Add implementation ticket index and tickets.
  • Add API example payloads.
  • Add final pre-Codex checklist.

Current Workbench UI

  • Replace the accumulated shell overrides with a coherent premium presentation layer while preserving V1 behavior.

  • Group navigation into Workspace, Analyze and Deliver and make the inspector an optional drawer.

  • Fix mobile navigation so the active workspace uses the full viewport width.

  • Bound populated Project, Dataset, QA, AI and Export panels so long histories do not push core actions thousands of pixels down-page.

  • Move Data create/upload forms and Map/AI diagnostics into explicit progressive disclosures.

  • Reorder AI Labs around run controls and Map around layer selection plus the MapLibre canvas.

  • Harden detection QA coverage and matching diagnostics before any further model training.

  • Replace the one-page workflow panel stack with a task-based workbench shell.

  • Add persistent project/AOI/dataset/layer context.

  • Move selected dataset details into a persistent inspector.

  • Deploy the shell refactor to Tower and run live browser smoke on port 1202.

  • Polish Data, Map and AI Labs workspaces.

  • Polish QA/QC and Exports workspaces.

  • Add selected-object inspector detail tabs for project, AOI, dataset, QA check, export and AI run context.

  • Improve map/dataset selection ergonomics from the workbench canvas and inspector.

  • Improve populated Data/Exports readability after a demo workflow run.

  • Improve live visual shell width, scroll behavior and Map workspace layout at 1280px.

  • Add export history filtering controls for long-running demo environments.

  • Add a safe export retention/cleanup command for demo environments.

  • Add a live dry-run maintenance smoke for demo export cleanup.

  • Add browser screenshot artifact automation for visual regression handoff.

  • Add backend error-envelope audit for expected user-error paths.

  • Expand golden datasets beyond the original single building QA fixture pair.

  • Add workbench visual polish pass for command bar, panel surfaces, empty states and mobile nav density.

  • Add map/result overlay ergonomics for active layer provenance and feature property summaries.

  • Add export/report handoff polish for artifact readiness, action grouping and export provenance.

  • Polish lightweight HTML project report readability, print styling and handoff sections.

  • Add Map empty-state quick actions for ready vector datasets.

  • Add Data catalog role-density polish for reference/candidate/source scanning.

  • Add Data catalog action polish for map, metadata, export and QA affordances.

  • Add QA/QC handoff polish for candidate/reference context and persisted results.

  • Add QA/QC metric card polish for precision, recall, F1, IoU and error counts.

  • Add mobile overflow hardening for workbench navigation, inspector and long QA identifiers.

  • Add QA/QC result filtering and density controls for long-running demo projects.

  • Add Overview workflow guidance for the V1 project -> data -> map -> QA/AI -> export path.

  • Audit populated demo workflow and tighten complete-state Overview guidance copy.

  • Make Overview workflow rail Map/Export clicks preserve useful dataset context.

  • Add latest handoff artifact cards to the Export Center for report, metadata and GeoJSON outputs.

  • Add QA/QC evidence drilldown for selected checks, false-positive/negative evidence and provenance JSON.

  • Add raster pipeline readiness and guardrail surfaces for metadata, CRS, preview, tile manifest and clip-AOI handoff.

  • Add useful default dataset context so Data, Map and Exports are immediately usable after project/demo load.

  • Make raster tile handoff to Detection Lab auto-select the configured YOLO run form.

  • Add AI Lab run-readiness checks for Detection and Segmentation before job submission.

  • Add AI Lab action guardrails so explicit fixture models are not exposed as normal operator runs.

  • Add persisted vector area selection from the Map workspace with bbox extract and GeoJSON download.

  • Persist map area selections as Export Center handoff artifacts.

  • Persist map area selections as reusable derived vector datasets indexed into vector_features.

  • Add Map workspace QA/QC shortcut for saved derived selection datasets.

  • Add Map workspace QA/QC evidence drilldown handoff for saved selection comparisons.

  • Persist QA/QC feature-level evidence for matches, false positives and false negatives.

  • Render persisted QA/QC feature-level evidence as Map workspace overlays.

  • Add safe local YOLO model env configuration helper for Unraid/Tower runtime activation.

  • Harden configured YOLO inference for single-band raster tiles and wrapped runtime errors.

  • Add operator-only YOLO dataset export and local training-smoke wrapper for real sample calibration.

  • Train/evaluate a small local GeoIntel building-detector smoke from the current operator samples and reject it because QA/QC did not improve.

  • Add operator-only tile-level YOLO dataset export with overlapping windows and deterministic negative tile retention.

  • Run tile-level training on Tower and accept/reject the resulting local model through the persisted QA/QC matrix.

  • Train/evaluate a YOLOv8s hard-negative local building-detector candidate on Tower and keep it inactive because hard-negative false positives remain.

  • Add an operator-facing local model catalog/activation workflow with SHA256, active model status and explicit threshold guidance.

  • Block silent local model asset auto-selection in Detection Lab.

  • Add structured raster tile manifest handoff into Detection Lab with linked preflight visibility.

  • Add full threshold calibration comparison UX so detection runs can compare candidate thresholds before promotion.

  • Add guided in-app detection calibration runner for explicit threshold sweeps.

  • Link guided calibration rows to the QA evidence map.

  • Add guided calibration summary export from the Detection Lab.

  • Allow the evidence bundle script to consume Detection Lab calibration summary exports.

  • Add a local browser-summary QA evidence bundle smoke using mocked canonical evidence responses.

  • Add a multi-AOI calibration evidence portfolio convention for model-review handoff.

  • Run the first live multi-AOI calibration evidence portfolio on Tower for Geel, Mol and Turnhout.

  • Run fresh positive-AOI matrix coverage for Balen, Herentals and Westerlo.

  • Preserve model/tile provenance in calibration evidence bundle summaries.

  • Prevent same-threshold calibration evidence responses from overwriting each other in multi-model portfolios.

  • Add a model promotion decision report that combines positive-AOI score with hard-negative false-positive pressure.

  • Train and reject a YOLOv8s hard-negative r8 partial candidate after 12 CPU epochs through the full positive/background promotion gate.

  • Finish and reject the full YOLOv8s hard-negative r8 e60 candidate through the same promotion gate.

  • Add more AOIs after the tile-level baseline so the next local model attempt is not limited to Geel/Mol/Turnhout.

  • Add negative/background AOIs so the next tile dataset is not all positive tiles.

  • Improve positive training coverage/label quality before the next higher-capacity model attempt; simply extending the same hardneg r8 run is not enough.

Sprint 146 - Operator YOLO dataset quality audit

  • Add a dataset/label-quality audit for generated operator YOLO tile datasets.
  • Report sample coverage, validation coverage, repeated hard-negative pressure and YOLO label area integrity.
  • Wire the audit script into the readiness syntax gate.
  • Use live audit output to decide whether the next model pass needs more positive AOIs, label cleanup or unique hard negatives.
  • Add more unique background/hard-negative AOIs before repeating hard-negative-balanced YOLO training.
  • Supersede yolo-building-tile-expanded160 only with audited AOI1024 corpora; no repeat-heavy r4/r8 dataset became a default.
  • Regenerate Tower operator samples, export a new unique-hard-negative tile dataset and rerun the dataset audit before training.

Sprint 147 - Unique hard-negative AOI expansion

  • Expand the documented operator background candidates from 3 to 9 unique AOIs.
  • Keep every new background AOI explicit, allow_empty_reference=True, and sample_role='background_candidate'.
  • Add test coverage for minimum background candidate count, unique centers and regional spread.
  • Prepare the new samples on Tower and build a fresh hard-negative tile dataset.
  • Rebuild Tower all-in-one image so the newly copied operator scripts are available inside /app/scripts without docker cp.
  • Fix YOLO preflight CLI so it respects Tower .env runtime configuration.
  • Train a new inactive AOI1024 YOLOv8s candidate with visible-label filtering.
  • Fix the all-in-one/compose Nginx upload limit after live 1024px GeoTIFF uploads hit 413 Request Entity Too Large.
  • Fix the all-in-one/compose Nginx proxy timeout after low-threshold persisted YOLO/QA runs hit 504 Gateway Timeout.
  • Rerun the previously failing Geel low-threshold persisted QA/QC path for geointel-building-yolov8s-aoi1024visible025e50-pt after redeploying upload/timeout fixes.
  • Finish remaining AOI1024 positive-sample matrix coverage for geointel-building-yolov8s-aoi1024visible025e50-pt.
  • Run AOI1024 background/hard-negative matrix for geointel-building-yolov8s-aoi1024visible025e50-pt.
  • Fix promotion-report parsing for multi_sample_quality_summary.json inputs.
  • Generate AOI1024 promotion report and keep recommended candidate as none.
  • Add GRB paging before trusting dense reference exports as full ground truth.
  • Regenerate Tower AOI1024 operator samples with paged GRB references, then re-export and audit labels before any new training attempt.
  • Improve AOI1024 label quality before retraining: yolo-building-aoi1024-cleanpx12vis035 now audits ok with 14,632 labels, min_label_px=12, min_label_visible_ratio=0.35, median normalized box area 0.001373291015625 and small-box share 0.0.
  • Train and reject geointel-building-yolov8s-aoi1024cleanpx12vis035e50-pt through the positive/background promotion gate.
  • Keep every local YOLO candidate inactive until positive-AOI and hard-negative promotion reports recommend default activation.

Sprint 181 - Complete Mol municipality workspace

  • Persist the official VRBG municipality boundary for Mol (NIS 13025).
  • Page, deduplicate and boundary-clip the complete GRB GBG building layer.
  • Import municipality layers through the existing DatasetService and VectorFeatureService path, with no direct provider-to-database write.
  • Prefer the complete municipality workspace on a fresh session while keeping the lightweight boundary as the initially rendered layer.
  • Make GeoJSON bounds calculation safe for municipality-scale layers.
  • Acquire and tile a georeferenced raster only for an explicitly selected Mol analysis zone before running the next configured-YOLO validation.

Sprint 182 - Municipality viewport delivery and bounded AI handoff

  • Stop downloading municipality-scale vector datasets as one frontend GeoJSON payload.
  • Deliver large persisted layers through the existing PostGIS bbox endpoint from zoom level 14.
  • Report visible/total counts and explicit truncation instead of silently hiding omitted features.
  • Preserve complete loading and auto-fit behavior for small vectors and persisted AI/QA overlays.
  • Allow the real raster/detection/QA operator smoke to reuse the definitive Mol project.
  • Link operator raster/reference uploads to the persisted analysis Area and keep their names distinct from municipality-wide layers.
  • Execute the bounded Mol-Centrum configured-YOLO/QA workflow in the deployed runtime and retain its persisted ids as release evidence.

Sprint 171 - Positive AOI expansion and small-building recovery

  • Reject cross-model false-negative comparisons when reference populations differ.
  • Add explicit Olen, Lille, Oud-Turnhout and Kasterlee positive training AOIs.
  • Preserve Turnhout, Retie, Westerlo and Arendonk-heide as manifest-backed validation holdouts.
  • Make the tile exporter reject unknown validation samples and holdout leakage.
  • Refresh the full AOI1024 operator manifest on Tower and fetch only missing AOIs.
  • Export and audit a low-minimum-label dataset without changing the active model.
  • Render and inspect a sample-balanced label contact sheet before training.
  • Finish the inactive expanded-minpx4 candidate and run the full promotion gate.
  • Export the focused 23-sample minpx3 corpus with independent Vosselaar/Grobbendonk validation and external Turnhout/Retie/Westerlo holdouts.
  • Train, audit and guarded-activate the focused small-building candidate only after all persisted promotion gates passed.

Sprint 199 - Reviewed accuracy expansion and fail-closed challenger

  • Add six complete training-only AOIs outside every protected Mol/Kempen holdout.
  • Page and audit 9,964 new GRB building references with municipality and CRS provenance.
  • Export and visually inspect the 252-tile, 79,192-label reviewed-accuracy corpus.
  • Train one inactive 20-epoch YOLOv8s challenger from the active local model without downloads.
  • Rerun active and challenger models on identical coverage-aware reference populations.
  • Confirm positive-zone F1 improvement in all seven holdouts.
  • Reject challenger activation because Postel-bos produced two detections while the active model remained at zero.
  • Update the recommended UI profile with the current active model's coverage-aligned evidence.
  • Collect new training-only hard negatives matching the two Postel-bos errors before another challenger attempt.

Sprint 212 - Platform-wide official source portfolio

  • Rebalance official source planning across six platform domains.
  • Distinguish operational ready Datasets from audited but unimplemented sources.
  • Reduce Sources workspace noise through domain summaries and progressive disclosure.
  • Add official space, soil, mobility, population, service, climate and economy candidates.
  • Replace the water-first recommendation with a cross-domain implementation wave.
  • Implement the governed Flemish thematic-raster registry for space occupation, open space, population density, node value and service level.
  • Add the digital soil map through DatasetService and VectorFeatureService.

Sprint 224 - Governed GRB evolution

  • Audit all eight retained regional GRB snapshots for complete official source identities and geometry-hash fallbacks.
  • Validate old governed snapshots through authoritative, complete and approved operator provenance before enabling object-level comparison.
  • Make future regional GRB imports reject missing official OGC identities.
  • Persist explicit identity schemes and collection prefixes on new GRB snapshots.
  • Show precise daily edition ranges and explain registration-date nuance in the Evolution workspace.
  • Document refresh readiness across the complete official-source portfolio.
  • Verify and add the governed ALZ catalog probe against the official campaign-snapshot and definitive-archive publication contract.
  • Add a read-only orthophoto preflight for product variant, official edition, exact WCS selected-area domain and deterministic flight-year points.
  • Keep orthophoto pixel refresh manual through a separate plan-stage-review-apply flow that retains the passed preflight identity and creates a new immutable Dataset with official YYYY.NN source version.

Bathymetry follow-up

  • Add governed municipality partition orchestration for all of Flanders after the Mol VHA operator passes live acceptance.
  • Add read-only MDK WCS capability/TLS probe and maritime scope metadata.
  • Add bounded MDK GeoTIFF acquisition only after live CRS, LAT, nodata and response-limit validation. Current official endpoint is blocked by TLS hostname mismatch and unavailable capabilities; never bypass verification.
  • Add SPW staged-download adapter with mDNG metadata and survey-epoch coverage validation.
  • Add authoritative territorial-sea, EEZ and continental-shelf boundary layers with legally accurate labels.
  • Add vertical-datum conversion only when authoritative transforms and uncertainty tests exist; never merge TAW, LAT and mDNG implicitly.
  • Add water volume only when bed and water-surface inputs share a governed time, datum and coverage contract.

Scale-aware map selection

  • Prevent country-scale rectangles from fan-out querying every local provider and replace repeated source-limit errors with one overview status.
  • Partition compatible 20-50 km regional vector acquisitions into bounded source requests and combine their persisted PostGIS metrics.
  • Keep terrain, flood and thematic rasters behind explicit pixel and selection-size budgets.
  • Provision additional national-scale baseline datasets before exposing more overview themes; do not synthesize regional detail at national scale.

Sprint 226 - GeoIntel and ITWorx brand system

  • Replace the legacy GI/mountain artwork with a distinctive atlas and location mark.
  • Use one canonical SVG across in-product branding and the browser favicon.
  • Generate matching 32 px, Apple touch and Unraid PNG derivatives.
  • Add the approved ITWorx.tech identity as a subtle Jens maker signature.
  • Revisit alternative lockups only when an approved GeoIntel brand guide exists.

Sprint 227 - Task-first usability audit

  • Reduce the desktop navigation rail and contain long card/context labels.
  • Align the latest-state and evolution controls as one responsive header group.
  • Make searchable municipality selection the first step of the map workflow.
  • Route an empty quality workspace to real map and image-analysis actions.
  • Replace passive management naming with an actionable system/source monitor.
  • Preserve existing persisted Area, source, analysis and QA contracts.
  • Add more direct quality-review actions only when a persisted candidate/reference pair exists; never synthesize a check.

Sprint 228 - Optional spatial entry and municipality activation

  • Search the real persisted NGI municipality catalog instead of existing project Areas.
  • Match Dutch, French and German names plus NIS codes.
  • Activate the exact official geometry idempotently as a reusable project Area.
  • Present municipality search as an optional shortcut beside free map drawing.
  • Explain theme choice as map and primary-metric focus rather than a mandatory workflow gate.
  • Keep narrow theme-card copy and status labels inside their cards.
  • Replace the former compass icon with a scale-safe GeoIntel geo-lens mark.

Audit remediation (2026-07-26)

  • Freeze an audit remediation roadmap with NVIDIA GPU as a server requirement.
  • Add fail-closed CUDA configuration and preflight/runtime validation.
  • Rebuild Tower with NVIDIA device exposure and capture a CUDA inference smoke.
  • Implement the persisted parent/partition/checkpoint AOI operation.
  • Add source-aware seam deduplication contracts and one-result Dataset aggregation across child partitions.
  • Extend the zone x theme x source resolver with partition-union coverage and per-Dataset evidence.
  • Resolve governed North Sea bathymetry access without bypassing TLS.
  • Enforce the active building-only model classes, CUDA readiness and persisted Mol/Kempen Area scope.
  • Add national/regional holdout evidence before expanding model classes or validated Areas.

Belgian PyTorch training programme (2026-07-26)

  • Add governed SPW and UrbIS orthophoto acquisition.
  • Normalize GRB/PICC/UrbIS building labels with decision provenance.
  • Assemble and checksum an initial 19-AOI Belgian candidate corpus.
  • Run generic and incumbent-based CUDA candidate training without promotion.
  • Complete representative human label/contact-sheet review (the complete 42-AOI review queue and four contact sheets are ready; AI-assisted inspection is recorded separately and does not count as human sign-off).
  • Expand each region/context/split until the national minimum-composition gate passes (42 independent 256 m AOIs at 25 cm, including pure-background and hard-negative contexts).
  • Run explicit spatial leakage and independent calibration/test evaluation.
  • Promote only if every regional and pure-background gate passes.
  • Freeze the objective train/evaluate/error-analysis loop and regional exit gates.
  • Expand the second corpus wave to 60 independent AOIs and 10,262 accepted labels.
  • Resolve the v3 Flanders and Wallonia generalisation failures through additional training-only evidence and retraining.
  • Replace rolling-mosaic training inputs with governed dated 2025 Flanders/Brussels and complete 2023 SPW imagery; retain exact flight-day limitations.
  • Reject positive labels over blank/no-data imagery and replace partial SPW 2024 coverage with the complete dated SPW 2023 campaign.
  • Exclude GRB/PICC features created after the corresponding dated imagery period while retaining auditable rejection evidence.

Sprint 229 - Visual release correction and Tower redeploy

  • Audit the revised landing page, guest map flow and quality workspace at desktop, laptop and tablet widths.
  • Keep the new consolidated GeoIntel design system while correcting the quality-details grid and narrow-laptop result layout.
  • Preserve complete insight labels and readable dataset/evidence cards without weakening the map-first workflow.
  • Make guest authentication independent of optional browser scrolling support.
  • Restore the explicit frontend dependency exclusion required by the Unraid build-context gate.
  • Push the verified release and redeploy the Dockerman-native all-in-one runtime from /mnt/user/appdata/geointel.