diff --git a/CHANGELOG.md b/CHANGELOG.md index fa23fdf7..c08a2bea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1417,3 +1417,4 @@ Added: - Expanded the explicit operator background-candidate AOI registry from 3 to 9 unique hard-negative locations and added tests for diversity/spread before further YOLO training. - Fixed the all-in-one Dockerfile so documented operator scripts are copied into `/app/scripts/`, then prepared and audited the new Tower `yolo-building-tile-uniquehardneg160` dataset as the next training candidate. - Fixed the YOLO preflight CLI so it respects environment-provided runtime configuration instead of reporting `not_configured` unless CLI flags were supplied. +- Rebuilt the Tower all-in-one image with AI dependencies and verified live migration smoke, browser runtime and YOLO preflight readiness against an existing raster tile manifest. diff --git a/docs/CODEX_EXECUTION_LOG.md b/docs/CODEX_EXECUTION_LOG.md index e75b2ced..793069f8 100644 --- a/docs/CODEX_EXECUTION_LOG.md +++ b/docs/CODEX_EXECUTION_LOG.md @@ -5698,12 +5698,17 @@ Open: - 16 samples, 13 positive samples, 9 background samples - 11,757 labels, 0 missing label files, 0 invalid label rows - repeated background negative share 0.0 +- Tower all-in-one rebuild from commit `f949347` with `GEOINTEL_INSTALL_AI=true`: + - live migration smoke passed. + - browser runtime verification passed on `http://192.168.10.150:1202`. + - `/app/scripts/prepare_operator_real_data_samples.py`, `/app/scripts/export_operator_yolo_tile_dataset.py` and `/app/scripts/audit_operator_yolo_dataset_quality.py` are present in the rebuilt container. + - YOLO preflight with an existing raster tile manifest returned `status: ready`, `dependencies_available: true`, `model_file_exists: true`, `tile_paths_exist: true`, `will_download_models: false` and `will_run_inference: false`. ## Known limitations - Some background candidates contain real GRB buildings. They are still useful as mixed rural/background samples, but the pure negative pressure currently comes mostly from Postel-bos, Lommel-heide and Arendonk-heide plus empty tiles inside sparse candidates. -- The running Tower container was updated via temporary `docker cp` for live data prep before the Dockerfile copy fix existed; a normal rebuild is needed for `/app/scripts/prepare_operator_real_data_samples.py` to exist inside the image automatically. +- The rebuilt Tower image now contains the operator scripts automatically. The generated `yolo-building-tile-uniquehardneg160` dataset is ready for a controlled training candidate, but no model has been promoted from it yet. ## Next recommended pass -- Rebuild the Tower all-in-one image, then use `yolo-building-tile-uniquehardneg160` as the next safer hard-negative training dataset candidate. Benchmark after training before changing defaults. +- Use `yolo-building-tile-uniquehardneg160` as the next safer hard-negative training dataset candidate. Benchmark after training before changing defaults. diff --git a/docs/TODO.md b/docs/TODO.md index 2fc91134..e845efff 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -452,6 +452,6 @@ This file now starts with the current implementation status. Older preparation/b - [x] Keep every new background AOI explicit, `allow_empty_reference=True`, and `sample_role='background_candidate'`. - [x] Add test coverage for minimum background candidate count, unique centers and regional spread. - [x] 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`. +- [x] Rebuild Tower all-in-one image so the newly copied operator scripts are available inside `/app/scripts` without `docker cp`. - [x] Fix YOLO preflight CLI so it respects Tower `.env` runtime configuration. - [ ] Train a new candidate from `yolo-building-tile-uniquehardneg160` and run the positive/background promotion gates before activating it.