audit: seal accuracy phase 1 evidence
This commit is contained in:
+3
-2
@@ -12,5 +12,6 @@ Dockerfile text eol=lf
|
|||||||
*.css text eol=lf
|
*.css text eol=lf
|
||||||
*.json text eol=lf
|
*.json text eol=lf
|
||||||
|
|
||||||
# Retained audit exports preserve source bytes, including tool-emitted whitespace.
|
# Retained audit exports preserve source bytes, including line endings and
|
||||||
artifacts/evidence/accuracy/** -whitespace
|
# tool-emitted whitespace.
|
||||||
|
artifacts/evidence/accuracy/** -text -whitespace
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
command=python -m alembic heads
|
command=python -m alembic heads
|
||||||
exit_code=0
|
exit_code=0
|
||||||
captured_at=2026-08-01T18:37:24.0020021+02:00
|
captured_at=2026-08-01T18:37:24.0020021+02:00
|
||||||
|
|
||||||
202607260001 (head)
|
202607260001 (head)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,28 +1,28 @@
|
|||||||
workdir=backend
|
workdir=backend
|
||||||
command=python -m pytest -W error::DeprecationWarning
|
command=python -m pytest -W error::DeprecationWarning
|
||||||
exit_code=2
|
exit_code=2
|
||||||
captured_at=2026-08-01T18:33:34.1591431+02:00
|
captured_at=2026-08-01T18:33:34.1591431+02:00
|
||||||
|
|
||||||
============================= test session starts =============================
|
============================= test session starts =============================
|
||||||
platform win32 -- Python 3.13.2, pytest-8.4.0, pluggy-1.6.0
|
platform win32 -- Python 3.13.2, pytest-8.4.0, pluggy-1.6.0
|
||||||
rootdir: C:\Projects\geointel\backend
|
rootdir: C:\Projects\geointel\backend
|
||||||
configfile: pyproject.toml
|
configfile: pyproject.toml
|
||||||
plugins: asyncio-1.0.0, cov-6.3.0, anyio-4.12.1
|
plugins: asyncio-1.0.0, cov-6.3.0, anyio-4.12.1
|
||||||
asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function
|
asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function
|
||||||
collected 1194 items / 1 error
|
collected 1194 items / 1 error
|
||||||
|
|
||||||
=================================== ERRORS ====================================
|
=================================== ERRORS ====================================
|
||||||
__________ ERROR collecting tests/test_operator_polygon_label_qa.py ___________
|
__________ ERROR collecting tests/test_operator_polygon_label_qa.py ___________
|
||||||
ImportError while importing test module 'C:\Projects\geointel\backend\tests\test_operator_polygon_label_qa.py'.
|
ImportError while importing test module 'C:\Projects\geointel\backend\tests\test_operator_polygon_label_qa.py'.
|
||||||
Hint: make sure your test modules/packages have valid Python names.
|
Hint: make sure your test modules/packages have valid Python names.
|
||||||
Traceback:
|
Traceback:
|
||||||
C:\Program Files\Python313\Lib\importlib\__init__.py:88: in import_module
|
C:\Program Files\Python313\Lib\importlib\__init__.py:88: in import_module
|
||||||
return _bootstrap._gcd_import(name[level:], package, level)
|
return _bootstrap._gcd_import(name[level:], package, level)
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
tests\test_operator_polygon_label_qa.py:1: in <module>
|
tests\test_operator_polygon_label_qa.py:1: in <module>
|
||||||
from scripts.render_operator_polygon_label_qa import geometry_rings
|
from scripts.render_operator_polygon_label_qa import geometry_rings
|
||||||
E ModuleNotFoundError: No module named 'scripts.render_operator_polygon_label_qa'
|
E ModuleNotFoundError: No module named 'scripts.render_operator_polygon_label_qa'
|
||||||
=========================== short test summary info ===========================
|
=========================== short test summary info ===========================
|
||||||
ERROR tests/test_operator_polygon_label_qa.py
|
ERROR tests/test_operator_polygon_label_qa.py
|
||||||
!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
|
!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
|
||||||
============================== 1 error in 5.69s ===============================
|
============================== 1 error in 5.69s ===============================
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,325 +1,325 @@
|
|||||||
command=python -m pytest backend/tests -q -p no:cacheprovider -W error::DeprecationWarning --junitxml=artifacts/evidence/accuracy/P1/backend-full-suite.junit.xml
|
command=python -m pytest backend/tests -q -p no:cacheprovider -W error::DeprecationWarning --junitxml=artifacts/evidence/accuracy/P1/backend-full-suite.junit.xml
|
||||||
exit_code=1
|
exit_code=1
|
||||||
captured_at=2026-08-01T18:32:02.4460806+02:00
|
captured_at=2026-08-01T18:32:02.4460806+02:00
|
||||||
|
|
||||||
........................................................................ [ 6%]
|
........................................................................ [ 6%]
|
||||||
........................................................................ [ 12%]
|
........................................................................ [ 12%]
|
||||||
.........................................F..........F..................F [ 18%]
|
.........................................F..........F..................F [ 18%]
|
||||||
..................F..................................................... [ 24%]
|
..................F..................................................... [ 24%]
|
||||||
.........F.............................................................. [ 30%]
|
.........F.............................................................. [ 30%]
|
||||||
........................................................................ [ 36%]
|
........................................................................ [ 36%]
|
||||||
.....F.F.......................................FF....................... [ 42%]
|
.....F.F.......................................FF....................... [ 42%]
|
||||||
........................................................................ [ 48%]
|
........................................................................ [ 48%]
|
||||||
..F..................................................................... [ 54%]
|
..F..................................................................... [ 54%]
|
||||||
........................................................................ [ 60%]
|
........................................................................ [ 60%]
|
||||||
.......F................................................................ [ 66%]
|
.......F................................................................ [ 66%]
|
||||||
........................................................................ [ 72%]
|
........................................................................ [ 72%]
|
||||||
........................................FFFF...........F................ [ 78%]
|
........................................FFFF...........F................ [ 78%]
|
||||||
...............................................F........................ [ 84%]
|
...............................................F........................ [ 84%]
|
||||||
........................................................................ [ 90%]
|
........................................................................ [ 90%]
|
||||||
........................................................................ [ 96%]
|
........................................................................ [ 96%]
|
||||||
............................................. [100%]
|
............................................. [100%]
|
||||||
================================== FAILURES ===================================
|
================================== FAILURES ===================================
|
||||||
_ test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox _
|
_ test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox _
|
||||||
|
|
||||||
def test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox() -> None:
|
def test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox() -> None:
|
||||||
root = Path(__file__).parents[2]
|
root = Path(__file__).parents[2]
|
||||||
focus = (root / "frontend" / "src" / "config" / "primaryFocus.ts").read_text(encoding="utf-8")
|
focus = (root / "frontend" / "src" / "config" / "primaryFocus.ts").read_text(encoding="utf-8")
|
||||||
workspace_hook = (root / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text(encoding="utf-8")
|
workspace_hook = (root / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text(encoding="utf-8")
|
||||||
coverage_hook = (root / "frontend" / "src" / "hooks" / "useCoverageResolver.ts").read_text(encoding="utf-8")
|
coverage_hook = (root / "frontend" / "src" / "hooks" / "useCoverageResolver.ts").read_text(encoding="utf-8")
|
||||||
map_workspace = (root / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8")
|
map_workspace = (root / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8")
|
||||||
|
|
||||||
assert "Belgium and North Sea Workbench" in focus
|
assert "Belgium and North Sea Workbench" in focus
|
||||||
assert "nationalProject" in workspace_hook
|
assert "nationalProject" in workspace_hook
|
||||||
assert "return nationalProject.id" in workspace_hook
|
assert "return nationalProject.id" in workspace_hook
|
||||||
assert "NATIONAL_WORKSPACE_REGION" in workspace_hook
|
assert "NATIONAL_WORKSPACE_REGION" in workspace_hook
|
||||||
assert "externalApi.resolveCoverage" in coverage_hook
|
assert "externalApi.resolveCoverage" in coverage_hook
|
||||||
assert "coverage.outside_supported_scope" in map_workspace
|
assert "coverage.outside_supported_scope" in map_workspace
|
||||||
assert "coverageStatusLabel" in map_workspace
|
assert "coverageStatusLabel" in map_workspace
|
||||||
> assert "coverageSelectionAvailable" in map_workspace
|
> assert "coverageSelectionAvailable" in map_workspace
|
||||||
E assert 'coverageSelectionAvailable' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
E assert 'coverageSelectionAvailable' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||||
|
|
||||||
backend\tests\test_rc4_national_coverage.py:432: AssertionError
|
backend\tests\test_rc4_national_coverage.py:432: AssertionError
|
||||||
____ test_runtime_configuration_is_validated_before_container_replacement _____
|
____ test_runtime_configuration_is_validated_before_container_replacement _____
|
||||||
|
|
||||||
def test_runtime_configuration_is_validated_before_container_replacement() -> None:
|
def test_runtime_configuration_is_validated_before_container_replacement() -> None:
|
||||||
run_script = (ROOT / "deploy" / "unraid" / "run-dockerman-container.sh").read_text(encoding="utf-8")
|
run_script = (ROOT / "deploy" / "unraid" / "run-dockerman-container.sh").read_text(encoding="utf-8")
|
||||||
|
|
||||||
validation_index = run_script.index("validate_runtime_config")
|
validation_index = run_script.index("validate_runtime_config")
|
||||||
> replacement_index = run_script.index("docker compose down")
|
> replacement_index = run_script.index("docker compose down")
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
E ValueError: substring not found
|
E ValueError: substring not found
|
||||||
|
|
||||||
backend\tests\test_rc5_release_deployment.py:65: ValueError
|
backend\tests\test_rc5_release_deployment.py:65: ValueError
|
||||||
___________ test_rc9_loading_and_accessibility_states_are_explicit ____________
|
___________ test_rc9_loading_and_accessibility_states_are_explicit ____________
|
||||||
|
|
||||||
def test_rc9_loading_and_accessibility_states_are_explicit() -> None:
|
def test_rc9_loading_and_accessibility_states_are_explicit() -> None:
|
||||||
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
|
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
|
||||||
map_workspace = (
|
map_workspace = (
|
||||||
ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx"
|
ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx"
|
||||||
).read_text(encoding="utf-8")
|
).read_text(encoding="utf-8")
|
||||||
geo_map = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(
|
geo_map = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(
|
||||||
encoding="utf-8"
|
encoding="utf-8"
|
||||||
)
|
)
|
||||||
|
|
||||||
assert "workspaceDataLoading" in app
|
assert "workspaceDataLoading" in app
|
||||||
assert 'role="status" aria-live="polite"' in app
|
assert 'role="status" aria-live="polite"' in app
|
||||||
assert "Databronnen worden gecontroleerd" in map_workspace
|
assert "Databronnen worden gecontroleerd" in map_workspace
|
||||||
> assert "Beschikbaarheid controleren" in map_workspace
|
> assert "Beschikbaarheid controleren" in map_workspace
|
||||||
E assert 'Beschikbaarheid controleren' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
E assert 'Beschikbaarheid controleren' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||||
|
|
||||||
backend\tests\test_rc9_ux_release_contract.py:33: AssertionError
|
backend\tests\test_rc9_ux_release_contract.py:33: AssertionError
|
||||||
___________ test_all_in_one_deploy_embeds_immutable_build_identity ____________
|
___________ test_all_in_one_deploy_embeds_immutable_build_identity ____________
|
||||||
|
|
||||||
def test_all_in_one_deploy_embeds_immutable_build_identity() -> None:
|
def test_all_in_one_deploy_embeds_immutable_build_identity() -> None:
|
||||||
dockerfile = (ROOT / "deploy" / "unraid" / "Dockerfile.all-in-one").read_text(encoding="utf-8")
|
dockerfile = (ROOT / "deploy" / "unraid" / "Dockerfile.all-in-one").read_text(encoding="utf-8")
|
||||||
release_script = (ROOT / "deploy" / "unraid" / "deploy-release.sh").read_text(encoding="utf-8")
|
release_script = (ROOT / "deploy" / "unraid" / "deploy-release.sh").read_text(encoding="utf-8")
|
||||||
deploy_powershell = (ROOT / "scripts" / "deploy_tower.ps1").read_text(encoding="utf-8")
|
deploy_powershell = (ROOT / "scripts" / "deploy_tower.ps1").read_text(encoding="utf-8")
|
||||||
deploy_shell = (ROOT / "scripts" / "deploy_tower.sh").read_text(encoding="utf-8")
|
deploy_shell = (ROOT / "scripts" / "deploy_tower.sh").read_text(encoding="utf-8")
|
||||||
|
|
||||||
assert "ARG GEOINTEL_BUILD_SHA=unknown" in dockerfile
|
assert "ARG GEOINTEL_BUILD_SHA=unknown" in dockerfile
|
||||||
assert 'GEOINTEL_BUILD_SHA="${GEOINTEL_BUILD_SHA}"' in dockerfile
|
assert 'GEOINTEL_BUILD_SHA="${GEOINTEL_BUILD_SHA}"' in dockerfile
|
||||||
assert 'GEOINTEL_BUILD_TIME="${GEOINTEL_BUILD_TIME}"' in dockerfile
|
assert 'GEOINTEL_BUILD_TIME="${GEOINTEL_BUILD_TIME}"' in dockerfile
|
||||||
assert 'org.opencontainers.image.revision="${GEOINTEL_BUILD_SHA}"' in dockerfile
|
assert 'org.opencontainers.image.revision="${GEOINTEL_BUILD_SHA}"' in dockerfile
|
||||||
> assert 'GEOINTEL_BUILD_SHA="$(git rev-parse HEAD)"' in release_script
|
> assert 'GEOINTEL_BUILD_SHA="$(git rev-parse HEAD)"' in release_script
|
||||||
E assert 'GEOINTEL_BUILD_SHA="$(git rev-parse HEAD)"' in '#!/usr/bin/env bash\nset -euo pipefail\n\nROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"\ncd "$ROOT"\n\nG...ge.revision"}} created={{index .Config.Labels "org.opencontainers.image.created"}}\' \\\n "$GEOINTEL_RELEASE_IMAGE"\n'
|
E assert 'GEOINTEL_BUILD_SHA="$(git rev-parse HEAD)"' in '#!/usr/bin/env bash\nset -euo pipefail\n\nROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"\ncd "$ROOT"\n\nG...ge.revision"}} created={{index .Config.Labels "org.opencontainers.image.created"}}\' \\\n "$GEOINTEL_RELEASE_IMAGE"\n'
|
||||||
|
|
||||||
backend\tests\test_rc_runtime_observability.py:47: AssertionError
|
backend\tests\test_rc_runtime_observability.py:47: AssertionError
|
||||||
_____________ test_frontend_exposes_map_bbox_selection_contracts ______________
|
_____________ test_frontend_exposes_map_bbox_selection_contracts ______________
|
||||||
|
|
||||||
def test_frontend_exposes_map_bbox_selection_contracts() -> None:
|
def test_frontend_exposes_map_bbox_selection_contracts() -> None:
|
||||||
api_client = (ROOT / "frontend" / "src" / "services" / "api" / "datasets.ts").read_text(encoding="utf-8")
|
api_client = (ROOT / "frontend" / "src" / "services" / "api" / "datasets.ts").read_text(encoding="utf-8")
|
||||||
map_workspace = (ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8")
|
map_workspace = (ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8")
|
||||||
geomap = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(encoding="utf-8")
|
geomap = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(encoding="utf-8")
|
||||||
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
|
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
|
||||||
extract_hook = (ROOT / "frontend" / "src" / "hooks" / "useMapSelectionExtract.ts").read_text(encoding="utf-8")
|
extract_hook = (ROOT / "frontend" / "src" / "hooks" / "useMapSelectionExtract.ts").read_text(encoding="utf-8")
|
||||||
theme_hook = (ROOT / "frontend" / "src" / "hooks" / "useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
|
theme_hook = (ROOT / "frontend" / "src" / "hooks" / "useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
|
||||||
|
|
||||||
assert "selectVectorFeatures" in api_client
|
assert "selectVectorFeatures" in api_client
|
||||||
assert "Area selection" in map_workspace
|
assert "Area selection" in map_workspace
|
||||||
assert "Teken rechthoek" in map_workspace
|
assert "Teken rechthoek" in map_workspace
|
||||||
assert "Objecten in gebied ophalen" in map_workspace
|
assert "Objecten in gebied ophalen" in map_workspace
|
||||||
assert "Gebiedsdownload bewaren" in map_workspace
|
assert "Gebiedsdownload bewaren" in map_workspace
|
||||||
assert "bboxSelectionMode" in geomap
|
assert "bboxSelectionMode" in geomap
|
||||||
assert "selection-bbox" in geomap
|
assert "selection-bbox" in geomap
|
||||||
assert "selection-result" in geomap
|
assert "selection-result" in geomap
|
||||||
assert "useMapSelectionExtract" in app
|
assert "useMapSelectionExtract" in app
|
||||||
assert "area_id: areaId" in extract_hook
|
assert "area_id: areaId" in extract_hook
|
||||||
assert "area_id: areaId" in theme_hook
|
assert "area_id: areaId" in theme_hook
|
||||||
> assert "analyzeSelection(selectedAreaBbox, selectedMapArea?.id)" in map_workspace
|
> assert "analyzeSelection(selectedAreaBbox, selectedMapArea?.id)" in map_workspace
|
||||||
E assert 'analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
E assert 'analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||||
|
|
||||||
backend\tests\test_sprint106_map_bbox_extract.py:356: AssertionError
|
backend\tests\test_sprint106_map_bbox_extract.py:356: AssertionError
|
||||||
______ test_frontend_declares_national_scope_as_primary_operating_focus _______
|
______ test_frontend_declares_national_scope_as_primary_operating_focus _______
|
||||||
|
|
||||||
def test_frontend_declares_national_scope_as_primary_operating_focus() -> None:
|
def test_frontend_declares_national_scope_as_primary_operating_focus() -> None:
|
||||||
focus = (ROOT / "frontend" / "src" / "config" / "primaryFocus.ts").read_text(
|
focus = (ROOT / "frontend" / "src" / "config" / "primaryFocus.ts").read_text(
|
||||||
encoding="utf-8"
|
encoding="utf-8"
|
||||||
)
|
)
|
||||||
project_hook = (ROOT / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text(
|
project_hook = (ROOT / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text(
|
||||||
encoding="utf-8"
|
encoding="utf-8"
|
||||||
)
|
)
|
||||||
map_source = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(
|
map_source = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(
|
||||||
encoding="utf-8"
|
encoding="utf-8"
|
||||||
)
|
)
|
||||||
navigation = (
|
navigation = (
|
||||||
ROOT
|
ROOT
|
||||||
/ "frontend"
|
/ "frontend"
|
||||||
/ "src"
|
/ "src"
|
||||||
/ "components"
|
/ "components"
|
||||||
/ "shell"
|
/ "shell"
|
||||||
/ "WorkbenchNavigation.tsx"
|
/ "WorkbenchNavigation.tsx"
|
||||||
).read_text(encoding="utf-8")
|
).read_text(encoding="utf-8")
|
||||||
|
|
||||||
assert "NATIONAL_WORKSPACE_PROJECT_NAME = 'Belgium and North Sea Workbench'" in focus
|
assert "NATIONAL_WORKSPACE_PROJECT_NAME = 'Belgium and North Sea Workbench'" in focus
|
||||||
assert "NATIONAL_WORKSPACE_REGION = 'Belgie en Belgische Noordzee'" in focus
|
assert "NATIONAL_WORKSPACE_REGION = 'Belgie en Belgische Noordzee'" in focus
|
||||||
assert "NATIONAL_MAP_CENTER" in focus
|
assert "NATIONAL_MAP_CENTER" in focus
|
||||||
assert "return nationalProject.id" in project_hook
|
assert "return nationalProject.id" in project_hook
|
||||||
assert "hasMappedAnalysisContext(data)" in project_hook
|
assert "hasMappedAnalysisContext(data)" in project_hook
|
||||||
assert "dataset.dataset_type === 'raster'" in project_hook
|
assert "dataset.dataset_type === 'raster'" in project_hook
|
||||||
assert "dataset.dataset_type === 'vector' || dataset.dataset_type === 'geojson'" in project_hook
|
assert "dataset.dataset_type === 'vector' || dataset.dataset_type === 'geojson'" in project_hook
|
||||||
assert "PRIMARY_FOCUS_AREA_NAME" not in project_hook
|
assert "PRIMARY_FOCUS_AREA_NAME" not in project_hook
|
||||||
assert "PRIMARY_FOCUS_AREA_GEOJSON" not in project_hook
|
assert "PRIMARY_FOCUS_AREA_GEOJSON" not in project_hook
|
||||||
assert "center: NATIONAL_MAP_CENTER" in map_source
|
assert "center: NATIONAL_MAP_CENTER" in map_source
|
||||||
assert "zoom: NATIONAL_MAP_ZOOM" in map_source
|
assert "zoom: NATIONAL_MAP_ZOOM" in map_source
|
||||||
assert "GeoIntel" in navigation
|
assert "GeoIntel" in navigation
|
||||||
> assert "Atlas Workbench" in navigation
|
> assert "Atlas Workbench" in navigation
|
||||||
E AssertionError: assert 'Atlas Workbench' in 'import {\n Activity,\n Bot,\n Database,\n Download,\n Map,\n ScanSearch,\n Settings,\n ShieldCheck,\n type L... )\n })}\n </div>\n ))}\n </nav>\n <ItWorxSignature />\n </aside>\n )\n}\n'
|
E AssertionError: assert 'Atlas Workbench' in 'import {\n Activity,\n Bot,\n Database,\n Download,\n Map,\n ScanSearch,\n Settings,\n ShieldCheck,\n type L... )\n })}\n </div>\n ))}\n </nav>\n <ItWorxSignature />\n </aside>\n )\n}\n'
|
||||||
|
|
||||||
backend\tests\test_sprint177_mol_primary_focus.py:38: AssertionError
|
backend\tests\test_sprint177_mol_primary_focus.py:38: AssertionError
|
||||||
______ test_product_docs_record_national_scope_and_mol_regression_focus _______
|
______ test_product_docs_record_national_scope_and_mol_regression_focus _______
|
||||||
|
|
||||||
def test_product_docs_record_national_scope_and_mol_regression_focus() -> None:
|
def test_product_docs_record_national_scope_and_mol_regression_focus() -> None:
|
||||||
readme = (ROOT / "README.md").read_text(encoding="utf-8")
|
readme = (ROOT / "README.md").read_text(encoding="utf-8")
|
||||||
vision = (ROOT / "docs" / "PRODUCT_VISION.md").read_text(encoding="utf-8")
|
vision = (ROOT / "docs" / "PRODUCT_VISION.md").read_text(encoding="utf-8")
|
||||||
|
|
||||||
> assert "Belgium and the Belgian North Sea" in readme
|
> assert "Belgium and the Belgian North Sea" in readme
|
||||||
E assert 'Belgium and the Belgian North Sea' in '# GeoIntel\n\n<p align="center">\n <img src="frontend/public/geointel-icon.png" width="92" alt="GeoIntel logo">\n</p...\n\nActieve mijlpaal: **v1.0.0 � Belgium and Belgian North Sea**.\n\nGeoIntel is een project van Jens / ITWorx.tech.\n'
|
E assert 'Belgium and the Belgian North Sea' in '# GeoIntel\n\n<p align="center">\n <img src="frontend/public/geointel-icon.png" width="92" alt="GeoIntel logo">\n</p...\n\nActieve mijlpaal: **v1.0.0 � Belgium and Belgian North Sea**.\n\nGeoIntel is een project van Jens / ITWorx.tech.\n'
|
||||||
|
|
||||||
backend\tests\test_sprint177_mol_primary_focus.py:62: AssertionError
|
backend\tests\test_sprint177_mol_primary_focus.py:62: AssertionError
|
||||||
_____________ test_map_first_explorer_is_the_default_product_flow _____________
|
_____________ test_map_first_explorer_is_the_default_product_flow _____________
|
||||||
|
|
||||||
def test_map_first_explorer_is_the_default_product_flow() -> None:
|
def test_map_first_explorer_is_the_default_product_flow() -> None:
|
||||||
app = read("frontend/src/App.tsx")
|
app = read("frontend/src/App.tsx")
|
||||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||||
|
|
||||||
assert "useState<WorkspaceKey>('map')" in app
|
assert "useState<WorkspaceKey>('map')" in app
|
||||||
assert "Gebied analyseren" in workspace
|
assert "Gebied analyseren" in workspace
|
||||||
> assert "<h3>Focus op de kaart <small>optioneel</small></h3>" in workspace
|
> assert "<h3>Focus op de kaart <small>optioneel</small></h3>" in workspace
|
||||||
E assert '<h3>Focus op de kaart <small>optioneel</small></h3>' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
E assert '<h3>Focus op de kaart <small>optioneel</small></h3>' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||||
|
|
||||||
backend\tests\test_sprint186_map_first_geographic_explorer.py:19: AssertionError
|
backend\tests\test_sprint186_map_first_geographic_explorer.py:19: AssertionError
|
||||||
___________ test_map_rectangle_drag_is_wired_to_automatic_analysis ____________
|
___________ test_map_rectangle_drag_is_wired_to_automatic_analysis ____________
|
||||||
|
|
||||||
def test_map_rectangle_drag_is_wired_to_automatic_analysis() -> None:
|
def test_map_rectangle_drag_is_wired_to_automatic_analysis() -> None:
|
||||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||||
geomap = read("frontend/src/components/GeoMap.tsx")
|
geomap = read("frontend/src/components/GeoMap.tsx")
|
||||||
styles = read("frontend/src/styles/app.css")
|
styles = read("frontend/src/styles/app.css")
|
||||||
|
|
||||||
assert "onMapBboxPreview={handleMapBboxPreview}" in workspace
|
assert "onMapBboxPreview={handleMapBboxPreview}" in workspace
|
||||||
assert "onMapBboxSelect={handleMapBboxSelect}" in workspace
|
assert "onMapBboxSelect={handleMapBboxSelect}" in workspace
|
||||||
assert "void analyzeSelection(bbox, areaIdForSelection(bbox))" in workspace
|
assert "void analyzeSelection(bbox, areaIdForSelection(bbox))" in workspace
|
||||||
assert "const areaIdForSelection" in workspace
|
assert "const areaIdForSelection" in workspace
|
||||||
assert "bbox && selectedMapArea ? selectedMapArea.id : undefined" in workspace
|
assert "bbox && selectedMapArea ? selectedMapArea.id : undefined" in workspace
|
||||||
> assert "void analyzeSelection(selectedAreaBbox, selectedMapArea?.id)" in workspace
|
> assert "void analyzeSelection(selectedAreaBbox, selectedMapArea?.id)" in workspace
|
||||||
E assert 'void analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
E assert 'void analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||||
|
|
||||||
backend\tests\test_sprint186_map_first_geographic_explorer.py:44: AssertionError
|
backend\tests\test_sprint186_map_first_geographic_explorer.py:44: AssertionError
|
||||||
__ test_evolution_theme_catalog_distinguishes_history_from_current_only_data __
|
__ test_evolution_theme_catalog_distinguishes_history_from_current_only_data __
|
||||||
|
|
||||||
def test_evolution_theme_catalog_distinguishes_history_from_current_only_data() -> None:
|
def test_evolution_theme_catalog_distinguishes_history_from_current_only_data() -> None:
|
||||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||||
|
|
||||||
assert "analysisMode === 'current'" in workspace
|
assert "analysisMode === 'current'" in workspace
|
||||||
> assert "Boolean(dataset || onDemandProduct)" in workspace
|
> assert "Boolean(dataset || onDemandProduct)" in workspace
|
||||||
E assert 'Boolean(dataset || onDemandProduct)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
E assert 'Boolean(dataset || onDemandProduct)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||||
|
|
||||||
backend\tests\test_sprint200_temporal_explorer_handoff.py:25: AssertionError
|
backend\tests\test_sprint200_temporal_explorer_handoff.py:25: AssertionError
|
||||||
_____ test_regional_map_uses_logical_partition_groups_and_exact_analysis ______
|
_____ test_regional_map_uses_logical_partition_groups_and_exact_analysis ______
|
||||||
|
|
||||||
def test_regional_map_uses_logical_partition_groups_and_exact_analysis() -> None:
|
def test_regional_map_uses_logical_partition_groups_and_exact_analysis() -> None:
|
||||||
app = (ROOT / "frontend/src/App.tsx").read_text(encoding="utf-8")
|
app = (ROOT / "frontend/src/App.tsx").read_text(encoding="utf-8")
|
||||||
workspace = (ROOT / "frontend/src/components/map/MapWorkspace.tsx").read_text(encoding="utf-8")
|
workspace = (ROOT / "frontend/src/components/map/MapWorkspace.tsx").read_text(encoding="utf-8")
|
||||||
hook = (ROOT / "frontend/src/hooks/useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
|
hook = (ROOT / "frontend/src/hooks/useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
|
||||||
api = (ROOT / "frontend/src/services/api/datasets.ts").read_text(encoding="utf-8")
|
api = (ROOT / "frontend/src/services/api/datasets.ts").read_text(encoding="utf-8")
|
||||||
|
|
||||||
assert "regionalScopeSelected" in workspace
|
assert "regionalScopeSelected" in workspace
|
||||||
assert "rasterPartitionsForDataset" in workspace
|
assert "rasterPartitionsForDataset" in workspace
|
||||||
assert "imageOverlays={activeImageOverlays}" in workspace
|
assert "imageOverlays={activeImageOverlays}" in workspace
|
||||||
> assert "de juiste gemeentelijke rasters worden automatisch gecombineerd" in workspace
|
> assert "de juiste gemeentelijke rasters worden automatisch gecombineerd" in workspace
|
||||||
E assert 'de juiste gemeentelijke rasters worden automatisch gecombineerd' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
E assert 'de juiste gemeentelijke rasters worden automatisch gecombineerd' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||||
|
|
||||||
backend\tests\test_sprint219_regional_raster_explorer.py:30: AssertionError
|
backend\tests\test_sprint219_regional_raster_explorer.py:30: AssertionError
|
||||||
___ test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope ____
|
___ test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope ____
|
||||||
|
|
||||||
def test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope() -> None:
|
def test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope() -> None:
|
||||||
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
|
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
|
||||||
index = (ROOT / "frontend" / "index.html").read_text(encoding="utf-8")
|
index = (ROOT / "frontend" / "index.html").read_text(encoding="utf-8")
|
||||||
focus = (
|
focus = (
|
||||||
ROOT / "frontend" / "src" / "config" / "primaryFocus.ts"
|
ROOT / "frontend" / "src" / "config" / "primaryFocus.ts"
|
||||||
).read_text(encoding="utf-8")
|
).read_text(encoding="utf-8")
|
||||||
map_workspace = (
|
map_workspace = (
|
||||||
ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx"
|
ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx"
|
||||||
).read_text(encoding="utf-8")
|
).read_text(encoding="utf-8")
|
||||||
theme_hook = (
|
theme_hook = (
|
||||||
ROOT / "frontend" / "src" / "hooks" / "useMapThemeSelectionInsights.ts"
|
ROOT / "frontend" / "src" / "hooks" / "useMapThemeSelectionInsights.ts"
|
||||||
).read_text(encoding="utf-8")
|
).read_text(encoding="utf-8")
|
||||||
dataset_api = (
|
dataset_api = (
|
||||||
ROOT / "frontend" / "src" / "services" / "api" / "datasets.ts"
|
ROOT / "frontend" / "src" / "services" / "api" / "datasets.ts"
|
||||||
).read_text(encoding="utf-8")
|
).read_text(encoding="utf-8")
|
||||||
|
|
||||||
assert "isPartitionedBathymetry" in map_workspace
|
assert "isPartitionedBathymetry" in map_workspace
|
||||||
assert "regionalPartitionedThemeActive" in map_workspace
|
assert "regionalPartitionedThemeActive" in map_workspace
|
||||||
> assert "datasetAvailabilityLabel(dataset, partitions)" in map_workspace
|
> assert "datasetAvailabilityLabel(dataset, partitions)" in map_workspace
|
||||||
E assert 'datasetAvailabilityLabel(dataset, partitions)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
E assert 'datasetAvailabilityLabel(dataset, partitions)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||||
|
|
||||||
backend\tests\test_sprint236_bathymetry_expansion.py:478: AssertionError
|
backend\tests\test_sprint236_bathymetry_expansion.py:478: AssertionError
|
||||||
____ test_flanders_workspace_exposes_governed_thematic_products_on_demand _____
|
____ test_flanders_workspace_exposes_governed_thematic_products_on_demand _____
|
||||||
|
|
||||||
def test_flanders_workspace_exposes_governed_thematic_products_on_demand() -> None:
|
def test_flanders_workspace_exposes_governed_thematic_products_on_demand() -> None:
|
||||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||||
product_hook = read("frontend/src/hooks/useOfficialMapProducts.ts")
|
product_hook = read("frontend/src/hooks/useOfficialMapProducts.ts")
|
||||||
selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts")
|
selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts")
|
||||||
api = read("frontend/src/services/api/datasets.ts")
|
api = read("frontend/src/services/api/datasets.ts")
|
||||||
|
|
||||||
assert "activeScopeProject?.name === FLANDERS_WORKSPACE_PROJECT_NAME" in workspace
|
assert "activeScopeProject?.name === FLANDERS_WORKSPACE_PROJECT_NAME" in workspace
|
||||||
assert "new Map<DataThemeId, OnDemandMapProduct>" in workspace
|
assert "new Map<DataThemeId, OnDemandMapProduct>" in workspace
|
||||||
> assert "'Automatisch'" in workspace
|
> assert "'Automatisch'" in workspace
|
||||||
E assert "'Automatisch'" in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
E assert "'Automatisch'" in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||||
|
|
||||||
backend\tests\test_sprint237_flanders_thematic_on_demand.py:19: AssertionError
|
backend\tests\test_sprint237_flanders_thematic_on_demand.py:19: AssertionError
|
||||||
________ test_selection_reads_and_bounded_acquires_all_relevant_themes ________
|
________ test_selection_reads_and_bounded_acquires_all_relevant_themes ________
|
||||||
|
|
||||||
def test_selection_reads_and_bounded_acquires_all_relevant_themes() -> None:
|
def test_selection_reads_and_bounded_acquires_all_relevant_themes() -> None:
|
||||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||||
app = read("frontend/src/App.tsx")
|
app = read("frontend/src/App.tsx")
|
||||||
selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts")
|
selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts")
|
||||||
|
|
||||||
> assert "for (const theme of [activeTheme])" in workspace
|
> assert "for (const theme of [activeTheme])" in workspace
|
||||||
E assert 'for (const theme of [activeTheme])' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
E assert 'for (const theme of [activeTheme])' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||||
|
|
||||||
backend\tests\test_sprint237_flanders_thematic_on_demand.py:37: AssertionError
|
backend\tests\test_sprint237_flanders_thematic_on_demand.py:37: AssertionError
|
||||||
______ test_regional_on_demand_sources_require_a_bounded_drawn_selection ______
|
______ test_regional_on_demand_sources_require_a_bounded_drawn_selection ______
|
||||||
|
|
||||||
def test_regional_on_demand_sources_require_a_bounded_drawn_selection() -> None:
|
def test_regional_on_demand_sources_require_a_bounded_drawn_selection() -> None:
|
||||||
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
|
||||||
|
|
||||||
assert "regionalOnDemandThemeActive" in workspace
|
assert "regionalOnDemandThemeActive" in workspace
|
||||||
> assert "regionalRasterThemeActive || regionalOnDemandThemeActive" in workspace
|
> assert "regionalRasterThemeActive || regionalOnDemandThemeActive" in workspace
|
||||||
E assert 'regionalRasterThemeActive || regionalOnDemandThemeActive' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
E assert 'regionalRasterThemeActive || regionalOnDemandThemeActive' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||||
|
|
||||||
backend\tests\test_sprint237_flanders_thematic_on_demand.py:56: AssertionError
|
backend\tests\test_sprint237_flanders_thematic_on_demand.py:56: AssertionError
|
||||||
_____ test_grb_frontend_and_contracts_use_only_the_governed_backend_path ______
|
_____ test_grb_frontend_and_contracts_use_only_the_governed_backend_path ______
|
||||||
|
|
||||||
def test_grb_frontend_and_contracts_use_only_the_governed_backend_path() -> None:
|
def test_grb_frontend_and_contracts_use_only_the_governed_backend_path() -> None:
|
||||||
selection_hook = (ROOT / "frontend/src/hooks/useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
|
selection_hook = (ROOT / "frontend/src/hooks/useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
|
||||||
catalog_hook = (ROOT / "frontend/src/hooks/useOfficialMapProducts.ts").read_text(encoding="utf-8")
|
catalog_hook = (ROOT / "frontend/src/hooks/useOfficialMapProducts.ts").read_text(encoding="utf-8")
|
||||||
workspace = (ROOT / "frontend/src/components/map/MapWorkspace.tsx").read_text(encoding="utf-8")
|
workspace = (ROOT / "frontend/src/components/map/MapWorkspace.tsx").read_text(encoding="utf-8")
|
||||||
contracts = (ROOT / "docs/API_CONTRACTS.md").read_text(encoding="utf-8")
|
contracts = (ROOT / "docs/API_CONTRACTS.md").read_text(encoding="utf-8")
|
||||||
|
|
||||||
assert "datasetsApi.acquireGrb" in selection_hook
|
assert "datasetsApi.acquireGrb" in selection_hook
|
||||||
assert "datasetsApi.listGrbProducts" in catalog_hook
|
assert "datasetsApi.listGrbProducts" in catalog_hook
|
||||||
assert "officialMapProducts.grb" in workspace
|
assert "officialMapProducts.grb" in workspace
|
||||||
assert "result[product.key] = null" in workspace
|
assert "result[product.key] = null" in workspace
|
||||||
assert ": onDemandThemeActive\n ? null\n : mapFeatureCollection" in workspace
|
assert ": onDemandThemeActive\n ? null\n : mapFeatureCollection" in workspace
|
||||||
assert "onSetContextLayerLabel" in workspace
|
assert "onSetContextLayerLabel" in workspace
|
||||||
> assert "'Automatisch'" in workspace
|
> assert "'Automatisch'" in workspace
|
||||||
E assert "'Automatisch'" in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
E assert "'Automatisch'" in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.</p>\n )}\n </div>\n </div>\n </details>\n </div>\n </section>\n )\n}\n"
|
||||||
|
|
||||||
backend\tests\test_sprint239_bounded_grb_acquisition.py:394: AssertionError
|
backend\tests\test_sprint239_bounded_grb_acquisition.py:394: AssertionError
|
||||||
__________ test_app_entrypoint_has_clean_encoding_and_react_imports ___________
|
__________ test_app_entrypoint_has_clean_encoding_and_react_imports ___________
|
||||||
|
|
||||||
def test_app_entrypoint_has_clean_encoding_and_react_imports() -> None:
|
def test_app_entrypoint_has_clean_encoding_and_react_imports() -> None:
|
||||||
app_path = ROOT / "frontend" / "src" / "App.tsx"
|
app_path = ROOT / "frontend" / "src" / "App.tsx"
|
||||||
app_bytes = app_path.read_bytes()
|
app_bytes = app_path.read_bytes()
|
||||||
app = app_path.read_text(encoding="utf-8")
|
app = app_path.read_text(encoding="utf-8")
|
||||||
|
|
||||||
assert not app_bytes.startswith(b"\xef\xbb\xbf")
|
assert not app_bytes.startswith(b"\xef\xbb\xbf")
|
||||||
assert "import { useEffect, useMemo, useRef, useState } from 'react'" in app
|
assert "import { useEffect, useMemo, useRef, useState } from 'react'" in app
|
||||||
assert "FormEvent" not in app
|
assert "FormEvent" not in app
|
||||||
> assert app.count("useEffect(") == 1
|
> assert app.count("useEffect(") == 1
|
||||||
E assert 3 == 1
|
E assert 3 == 1
|
||||||
E + where 3 = <built-in method count of str object at 0x000001FED98D8C30>('useEffect(')
|
E + where 3 = <built-in method count of str object at 0x000001FED98D8C30>('useEffect(')
|
||||||
E + where <built-in method count of str object at 0x000001FED98D8C30> = "import { useEffect, useMemo, useRef, useState } from 'react'\nimport { CircleAlert, LogOut, ShieldCheck, UserRound } ...ator' : 'open')}\n loggingOut={loggingOut}\n onLogout={handleLogout}\n />\n )\n}\n\nexport default App\n".count
|
E + where <built-in method count of str object at 0x000001FED98D8C30> = "import { useEffect, useMemo, useRef, useState } from 'react'\nimport { CircleAlert, LogOut, ShieldCheck, UserRound } ...ator' : 'open')}\n loggingOut={loggingOut}\n onLogout={handleLogout}\n />\n )\n}\n\nexport default App\n".count
|
||||||
|
|
||||||
backend\tests\test_sprint39_frontend_orchestration_hooks.py:40: AssertionError
|
backend\tests\test_sprint39_frontend_orchestration_hooks.py:40: AssertionError
|
||||||
- generated xml file: C:\Projects\geointel\artifacts\evidence\accuracy\P1\backend-full-suite.junit.xml -
|
- generated xml file: C:\Projects\geointel\artifacts\evidence\accuracy\P1\backend-full-suite.junit.xml -
|
||||||
=========================== short test summary info ===========================
|
=========================== short test summary info ===========================
|
||||||
FAILED backend\tests\test_rc4_national_coverage.py::test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox
|
FAILED backend\tests\test_rc4_national_coverage.py::test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox
|
||||||
FAILED backend\tests\test_rc5_release_deployment.py::test_runtime_configuration_is_validated_before_container_replacement
|
FAILED backend\tests\test_rc5_release_deployment.py::test_runtime_configuration_is_validated_before_container_replacement
|
||||||
FAILED backend\tests\test_rc9_ux_release_contract.py::test_rc9_loading_and_accessibility_states_are_explicit
|
FAILED backend\tests\test_rc9_ux_release_contract.py::test_rc9_loading_and_accessibility_states_are_explicit
|
||||||
FAILED backend\tests\test_rc_runtime_observability.py::test_all_in_one_deploy_embeds_immutable_build_identity
|
FAILED backend\tests\test_rc_runtime_observability.py::test_all_in_one_deploy_embeds_immutable_build_identity
|
||||||
FAILED backend\tests\test_sprint106_map_bbox_extract.py::test_frontend_exposes_map_bbox_selection_contracts
|
FAILED backend\tests\test_sprint106_map_bbox_extract.py::test_frontend_exposes_map_bbox_selection_contracts
|
||||||
FAILED backend\tests\test_sprint177_mol_primary_focus.py::test_frontend_declares_national_scope_as_primary_operating_focus
|
FAILED backend\tests\test_sprint177_mol_primary_focus.py::test_frontend_declares_national_scope_as_primary_operating_focus
|
||||||
FAILED backend\tests\test_sprint177_mol_primary_focus.py::test_product_docs_record_national_scope_and_mol_regression_focus
|
FAILED backend\tests\test_sprint177_mol_primary_focus.py::test_product_docs_record_national_scope_and_mol_regression_focus
|
||||||
FAILED backend\tests\test_sprint186_map_first_geographic_explorer.py::test_map_first_explorer_is_the_default_product_flow
|
FAILED backend\tests\test_sprint186_map_first_geographic_explorer.py::test_map_first_explorer_is_the_default_product_flow
|
||||||
FAILED backend\tests\test_sprint186_map_first_geographic_explorer.py::test_map_rectangle_drag_is_wired_to_automatic_analysis
|
FAILED backend\tests\test_sprint186_map_first_geographic_explorer.py::test_map_rectangle_drag_is_wired_to_automatic_analysis
|
||||||
FAILED backend\tests\test_sprint200_temporal_explorer_handoff.py::test_evolution_theme_catalog_distinguishes_history_from_current_only_data
|
FAILED backend\tests\test_sprint200_temporal_explorer_handoff.py::test_evolution_theme_catalog_distinguishes_history_from_current_only_data
|
||||||
FAILED backend\tests\test_sprint219_regional_raster_explorer.py::test_regional_map_uses_logical_partition_groups_and_exact_analysis
|
FAILED backend\tests\test_sprint219_regional_raster_explorer.py::test_regional_map_uses_logical_partition_groups_and_exact_analysis
|
||||||
FAILED backend\tests\test_sprint236_bathymetry_expansion.py::test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope
|
FAILED backend\tests\test_sprint236_bathymetry_expansion.py::test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope
|
||||||
FAILED backend\tests\test_sprint237_flanders_thematic_on_demand.py::test_flanders_workspace_exposes_governed_thematic_products_on_demand
|
FAILED backend\tests\test_sprint237_flanders_thematic_on_demand.py::test_flanders_workspace_exposes_governed_thematic_products_on_demand
|
||||||
FAILED backend\tests\test_sprint237_flanders_thematic_on_demand.py::test_selection_reads_and_bounded_acquires_all_relevant_themes
|
FAILED backend\tests\test_sprint237_flanders_thematic_on_demand.py::test_selection_reads_and_bounded_acquires_all_relevant_themes
|
||||||
FAILED backend\tests\test_sprint237_flanders_thematic_on_demand.py::test_regional_on_demand_sources_require_a_bounded_drawn_selection
|
FAILED backend\tests\test_sprint237_flanders_thematic_on_demand.py::test_regional_on_demand_sources_require_a_bounded_drawn_selection
|
||||||
FAILED backend\tests\test_sprint239_bounded_grb_acquisition.py::test_grb_frontend_and_contracts_use_only_the_governed_backend_path
|
FAILED backend\tests\test_sprint239_bounded_grb_acquisition.py::test_grb_frontend_and_contracts_use_only_the_governed_backend_path
|
||||||
FAILED backend\tests\test_sprint39_frontend_orchestration_hooks.py::test_app_entrypoint_has_clean_encoding_and_react_imports
|
FAILED backend\tests\test_sprint39_frontend_orchestration_hooks.py::test_app_entrypoint_has_clean_encoding_and_react_imports
|
||||||
17 failed, 1180 passed in 70.63s (0:01:10)
|
17 failed, 1180 passed in 70.63s (0:01:10)
|
||||||
|
|||||||
@@ -0,0 +1,278 @@
|
|||||||
|
{
|
||||||
|
"audited_repository_head": "3d442ef43fac0fdf1b86f3149c9b4c512830a39d",
|
||||||
|
"claim_boundary": "This manifest proves retained-file identity and completeness. It does not establish model accuracy, human label acceptance, split independence or release readiness.",
|
||||||
|
"evidence_file_count": 28,
|
||||||
|
"evidence_files": [
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/alembic-heads.txt",
|
||||||
|
"role": "execution_log",
|
||||||
|
"sha256": "da4521233c6718fc7a5865c53904e73685fbdce65a1449b19cd0dc2e40d037ed",
|
||||||
|
"size_bytes": 116
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/alembic-offline-upgrade.sql",
|
||||||
|
"role": "migration_evidence",
|
||||||
|
"sha256": "e8905b881890cf95885a7515e3d9dcf2a7a0a24c4edbc57e98a363edcb22dd0e",
|
||||||
|
"size_bytes": 20199
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/backend-ci-entrypoint.txt",
|
||||||
|
"role": "execution_log",
|
||||||
|
"sha256": "0ac774ec19b4ff0a15142aab5f1db68c2592a230401d794ae7d040320e3ac0c0",
|
||||||
|
"size_bytes": 1601
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/backend-full-suite.junit.xml",
|
||||||
|
"role": "test_report",
|
||||||
|
"sha256": "a01d0b5b6974d7ed184f46e8e35ac3b06c9a5db565e45e140b5f799819396b08",
|
||||||
|
"size_bytes": 207086
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/backend-full-suite.txt",
|
||||||
|
"role": "execution_log",
|
||||||
|
"sha256": "8521ed48b17b382752418750b3ea374831958fb063e83ef87048212e0fd5ea69",
|
||||||
|
"size_bytes": 23972
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/commands-and-results.md",
|
||||||
|
"role": "execution_log",
|
||||||
|
"sha256": "451d4cfc2d6d67937411b23192d9418ef6721af678aed1b0d5cb82113d82efc5",
|
||||||
|
"size_bytes": 8427
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/forensic-reproductions.json",
|
||||||
|
"role": "defect_reproduction",
|
||||||
|
"sha256": "f6349199a15ae789092d3d65c17a39a9b32ea3ed557571c0c228c4be3cf7235e",
|
||||||
|
"size_bytes": 3533
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/frontend-build.txt",
|
||||||
|
"role": "execution_log",
|
||||||
|
"sha256": "c3b8e10ef177ac1c2dc045bd710df1caeb46f8922a721291be431b304abbc079",
|
||||||
|
"size_bytes": 2356
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/frontend-lint.txt",
|
||||||
|
"role": "lint_evidence",
|
||||||
|
"sha256": "1115b013515c753e2dfb73abdad9024aec7b4c2337d117c7e1181341fef15c7f",
|
||||||
|
"size_bytes": 418
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/frontend-typecheck.txt",
|
||||||
|
"role": "execution_log",
|
||||||
|
"sha256": "3891c85c77b5ff50a1eb6d27a2a65d40c2c05423768734efd9d980f3784d68fa",
|
||||||
|
"size_bytes": 163
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/frontend-vitest-unit.txt",
|
||||||
|
"role": "test_evidence",
|
||||||
|
"sha256": "6341bfa51ca3f4fe5ec7d4af7239c3c5e1a29e6bfe8bdfae85e824a2a6482ad0",
|
||||||
|
"size_bytes": 2774
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/frontend-vitest.txt",
|
||||||
|
"role": "test_evidence",
|
||||||
|
"sha256": "8a84afa48cc59e473725ed105a3f88da24f001cdcb794d942ede2ab8f0d48e48",
|
||||||
|
"size_bytes": 333
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/golden-qa-reproducibility.json",
|
||||||
|
"role": "test_evidence",
|
||||||
|
"sha256": "576e5667a989c34086db3a2bc57003115a8a61b14e9f49f5407ee380baf0829d",
|
||||||
|
"size_bytes": 505
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/golden-qa-run-1.json",
|
||||||
|
"role": "test_evidence",
|
||||||
|
"sha256": "ec96862b024987b59e56579920361582e718126b07885732335ac1b4d51b61bc",
|
||||||
|
"size_bytes": 5242
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/golden-qa-run-2.json",
|
||||||
|
"role": "test_evidence",
|
||||||
|
"sha256": "4f900711a706dd56dd16b368e261761051f6d52a38bfd421e7d1c5f66ee51e49",
|
||||||
|
"size_bytes": 5242
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/local-artifact-inventory.json",
|
||||||
|
"role": "structured_inventory",
|
||||||
|
"sha256": "0e187dbf3e91ee8e35567d6c8cd6e1cadfa6275d5908b829253491f3804adf7d",
|
||||||
|
"size_bytes": 75535
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/openapi-contract-audit.txt",
|
||||||
|
"role": "execution_log",
|
||||||
|
"sha256": "5af3d8f00be3f57fc309bc198fa3995d1eae7270a5f210b3e94d1aeeb653119d",
|
||||||
|
"size_bytes": 212
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/phase1-baseline-summary.json",
|
||||||
|
"role": "structured_inventory",
|
||||||
|
"sha256": "7d5960df64bdd4fb9b9d9d7a93de5f9cfd770f4dcf21454899345afe3ab12342",
|
||||||
|
"size_bytes": 1143
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/phase1-tooling-tests.txt",
|
||||||
|
"role": "test_evidence",
|
||||||
|
"sha256": "a9bf261e1a811ad3e8bfa8edc439a11f00b46bc157f9ab6fc970033a87f45748",
|
||||||
|
"size_bytes": 250
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/repository-inventory.json",
|
||||||
|
"role": "structured_inventory",
|
||||||
|
"sha256": "07fa9356f298f9fe360e2e362ce9f3d558a9a66544fed3a5567cd9a5666451c7",
|
||||||
|
"size_bytes": 27695
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/repository-ruff-baseline.json",
|
||||||
|
"role": "lint_evidence",
|
||||||
|
"sha256": "de6617f030e49550e714c49b6e14bf291bf85016fd58086e9ca38b33a52252e9",
|
||||||
|
"size_bytes": 59359
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/repository-ruff-baseline.txt",
|
||||||
|
"role": "lint_evidence",
|
||||||
|
"sha256": "cd654cea65710167beff8307cb71533fb645f25247ef46e7adc421bd520c9191",
|
||||||
|
"size_bytes": 57870
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/static-risk-signals.json",
|
||||||
|
"role": "structured_inventory",
|
||||||
|
"sha256": "729f0a5d3eece61be8e26d44b5dfa29c6cbf21eb16b8694a2d4dc45c94720757",
|
||||||
|
"size_bytes": 22467
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/tower-gpu-inference-smoke.json",
|
||||||
|
"role": "runtime_evidence",
|
||||||
|
"sha256": "692a9fa193d589123b042110d7e80755f0c6634854f3134c291fc6083adb7b77",
|
||||||
|
"size_bytes": 5675
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/tower-key-artifact-hashes.json",
|
||||||
|
"role": "structured_inventory",
|
||||||
|
"sha256": "4d88d350604b377682da4d928c37ffb00ea1a32d2690d9b2bd54117363930414",
|
||||||
|
"size_bytes": 949
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/tower-ml-data-lineage-snapshot.json",
|
||||||
|
"role": "lineage_evidence",
|
||||||
|
"sha256": "d80275e8198ce63366d2a2d44eb8fba1f27c29d85aaaaedb94991d8c56febfb6",
|
||||||
|
"size_bytes": 71659
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/tower-runtime-database-snapshot-detailed.json",
|
||||||
|
"role": "runtime_evidence",
|
||||||
|
"sha256": "744389b6c384a9fb3a9e16e56f1477f3b752e11a5b98e1fad7df47b4703a9ca1",
|
||||||
|
"size_bytes": 14946
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "artifacts/evidence/accuracy/P1/tower-runtime-database-snapshot.json",
|
||||||
|
"role": "runtime_evidence",
|
||||||
|
"sha256": "aa7681d4a19ca20b7b442c509b3f56cb97bf239b2b5cc6a1fb1ca140d5320e9e",
|
||||||
|
"size_bytes": 10127
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"evidence_root": "artifacts/evidence/accuracy/P1",
|
||||||
|
"evidence_total_bytes": 629854,
|
||||||
|
"generated_at": "2026-08-01T17:00:31.742672+00:00",
|
||||||
|
"program_file_count": 16,
|
||||||
|
"program_files": [
|
||||||
|
{
|
||||||
|
"path": "docs/accuracy-program/00-execution-contract.md",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "d6c71dbccbb1e1f3bda2835cf9f53c3a5a92c173e9136d5cfccf007ec2c28684",
|
||||||
|
"size_bytes": 8720
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "docs/accuracy-program/01-system-inventory.md",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "2b27c28ca06ab8e8a36f12cccc8df23d5e83894e39b8e33406e6a6c05092cf22",
|
||||||
|
"size_bytes": 15708
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "docs/accuracy-program/02-data-lineage.md",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "8af25f30d43863438678b3e867c9bf0a318cdac78e12c891254fb2570e2d9d1d",
|
||||||
|
"size_bytes": 20409
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "docs/accuracy-program/03-baseline-and-gaps.md",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "ad3c2aae2944443d0f5d09b5c415b6202109071a6f194bb8b09b7df30332e3b3",
|
||||||
|
"size_bytes": 21253
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "docs/accuracy-program/04-risk-register.md",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "f3c0d35b95fd180a391950c2a6c9339aa3e4ace0e8512affbd242d159ca1e574",
|
||||||
|
"size_bytes": 23851
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "docs/accuracy-program/05-metric-framework.md",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "18abfc21964b7d98848d8ae513afce242184980c9517c9184d40efd9165ea00d",
|
||||||
|
"size_bytes": 28053
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "docs/accuracy-program/06-implementation-roadmap.md",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "c76ffebee4a23796ff221e6d4c5b5138f99d55a8b1422e897058b12a78a29ad9",
|
||||||
|
"size_bytes": 23695
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "docs/accuracy-program/status.json",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "5841cde783c7d8d4a54b126ed4120c83a553c9dec9a31e6ce45703ce3ab731c4",
|
||||||
|
"size_bytes": 7953
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "scripts/build_accuracy_phase1_evidence_manifest.py",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "882a935b29f787fc11a9f7b528392c1727463be24adcb0cac47a09fdb69a8382",
|
||||||
|
"size_bytes": 5523
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "scripts/collect_accuracy_phase1_inference_smoke.py",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "6d81541b7aa83f3c03ba5320a8075892eee658905ee981ba727e59f3b1dc792a",
|
||||||
|
"size_bytes": 6756
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "scripts/collect_accuracy_phase1_ml_lineage.py",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "3b1d3e45d45f1d4ca1211d1b2c70d9d93e15abc3b3ecfbd2e8302f645d6db7e1",
|
||||||
|
"size_bytes": 14080
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "scripts/collect_accuracy_phase1_runtime.py",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "a907779306076dccdf7fcf45f554e4778f5fab0e59d6af55673322775a1f5b4f",
|
||||||
|
"size_bytes": 13387
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "scripts/reproduce_accuracy_phase1_findings.py",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "c0f34e6bcaf73dcdada6e5b529a2e8e2177b1e97ee039c586d6ae51bb743015f",
|
||||||
|
"size_bytes": 9447
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "scripts/run_accuracy_phase1_baseline.py",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "fcbd280245ccc598cab7ec5ca6448fbb350f7fa59aecc20177fdb0069c416643",
|
||||||
|
"size_bytes": 14498
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "scripts/verify_accuracy_phase1_evidence.py",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "fc72c315d26b8b7542fe01666aef56a8538d09090f2c0c877c4dd8a33c93e556",
|
||||||
|
"size_bytes": 4925
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "tests/test_accuracy_phase1_baseline.py",
|
||||||
|
"role": "phase1_program",
|
||||||
|
"sha256": "868f433b7de61e9ab3cd7aa9ad5bb2d29e8286afdcd68274ed290909ec605c7f",
|
||||||
|
"size_bytes": 3009
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"schema_version": 1
|
||||||
|
}
|
||||||
@@ -1,116 +1,116 @@
|
|||||||
{
|
{
|
||||||
"findings": [
|
"findings": [
|
||||||
{
|
{
|
||||||
"expected": "A small buildings partition remains partial; a roads bbox cannot complete buildings coverage.",
|
"expected": "A small buildings partition remains partial; a roads bbox cannot complete buildings coverage.",
|
||||||
"id": "P1-COV-001",
|
"id": "P1-COV-001",
|
||||||
"observed": {
|
"observed": {
|
||||||
"fully_covered": true,
|
"fully_covered": true,
|
||||||
"matched_dataset_ids": [
|
"matched_dataset_ids": [
|
||||||
"00000000-0000-4000-8000-000000000001"
|
"00000000-0000-4000-8000-000000000001"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"reproduced": true,
|
"reproduced": true,
|
||||||
"severity": "critical",
|
"severity": "critical",
|
||||||
"source": "backend/app/services/coverage_registry_service.py:481-505"
|
"source": "backend/app/services/coverage_registry_service.py:481-505"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"expected": "A 100 metre buffer is projected to a metric CRS and spans roughly hundreds of metres.",
|
"expected": "A 100 metre buffer is projected to a metric CRS and spans roughly hundreds of metres.",
|
||||||
"id": "P1-CRS-001",
|
"id": "P1-CRS-001",
|
||||||
"observed": {
|
"observed": {
|
||||||
"bounds_epsg4326": [
|
"bounds_epsg4326": [
|
||||||
-95.0,
|
-95.0,
|
||||||
-49.0,
|
-49.0,
|
||||||
105.0,
|
105.0,
|
||||||
151.0
|
151.0
|
||||||
],
|
],
|
||||||
"longitude_span_degrees": 200.0
|
"longitude_span_degrees": 200.0
|
||||||
},
|
},
|
||||||
"reproduced": true,
|
"reproduced": true,
|
||||||
"severity": "critical",
|
"severity": "critical",
|
||||||
"source": "backend/app/services/vector_operations_service.py:179-203"
|
"source": "backend/app/services/vector_operations_service.py:179-203"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"expected": "Non-WGS84 input is transformed to EPSG:4326 or rejected before persistence.",
|
"expected": "Non-WGS84 input is transformed to EPSG:4326 or rejected before persistence.",
|
||||||
"id": "P1-CRS-002",
|
"id": "P1-CRS-002",
|
||||||
"observed": {
|
"observed": {
|
||||||
"stored_coordinates": [
|
"stored_coordinates": [
|
||||||
150000.0,
|
150000.0,
|
||||||
210000.0
|
210000.0
|
||||||
],
|
],
|
||||||
"stored_srid": 4326
|
"stored_srid": 4326
|
||||||
},
|
},
|
||||||
"reproduced": true,
|
"reproduced": true,
|
||||||
"severity": "critical",
|
"severity": "critical",
|
||||||
"source": "backend/app/services/vector_feature_service.py:271-299"
|
"source": "backend/app/services/vector_feature_service.py:271-299"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"expected": "Only server-attested source identities can produce authoritative operational coverage.",
|
"expected": "Only server-attested source identities can produce authoritative operational coverage.",
|
||||||
"id": "P1-AUTH-001",
|
"id": "P1-AUTH-001",
|
||||||
"observed": {
|
"observed": {
|
||||||
"caller_controlled_source_name": "grb",
|
"caller_controlled_source_name": "grb",
|
||||||
"coverage_status": "operational",
|
"coverage_status": "operational",
|
||||||
"reported_authority": "authoritative"
|
"reported_authority": "authoritative"
|
||||||
},
|
},
|
||||||
"reproduced": true,
|
"reproduced": true,
|
||||||
"severity": "critical",
|
"severity": "critical",
|
||||||
"source": "backend/app/api/routes/datasets.py:142-163; backend/app/services/coverage_registry_service.py:463-559"
|
"source": "backend/app/api/routes/datasets.py:142-163; backend/app/services/coverage_registry_service.py:463-559"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"expected": "Validation scope is bound to immutable geometry/source/checksum evidence.",
|
"expected": "Validation scope is bound to immutable geometry/source/checksum evidence.",
|
||||||
"id": "P1-AI-001",
|
"id": "P1-AI-001",
|
||||||
"observed": {
|
"observed": {
|
||||||
"accepted": true,
|
"accepted": true,
|
||||||
"area_name": "Mol validation bypass",
|
"area_name": "Mol validation bypass",
|
||||||
"geometry_bounds": [
|
"geometry_bounds": [
|
||||||
-75.0,
|
-75.0,
|
||||||
35.0,
|
35.0,
|
||||||
-74.9,
|
-74.9,
|
||||||
35.1
|
35.1
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"reproduced": true,
|
"reproduced": true,
|
||||||
"severity": "critical",
|
"severity": "critical",
|
||||||
"source": "backend/app/services/detection_service.py:223-232"
|
"source": "backend/app/services/detection_service.py:223-232"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"expected": "Renaming an Area cannot change its legal coverage-zone identity.",
|
"expected": "Renaming an Area cannot change its legal coverage-zone identity.",
|
||||||
"id": "P1-COV-002",
|
"id": "P1-COV-002",
|
||||||
"observed": {
|
"observed": {
|
||||||
"canonical": {
|
"canonical": {
|
||||||
"outside": false,
|
"outside": false,
|
||||||
"zones": [
|
"zones": [
|
||||||
"flanders"
|
"flanders"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"renamed_same_geometry": {
|
"renamed_same_geometry": {
|
||||||
"outside": true,
|
"outside": true,
|
||||||
"zones": []
|
"zones": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"reproduced": true,
|
"reproduced": true,
|
||||||
"severity": "high",
|
"severity": "high",
|
||||||
"source": "backend/app/services/coverage_registry_service.py:56-65,425-447"
|
"source": "backend/app/services/coverage_registry_service.py:56-65,425-447"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"expected": "PATCH /areas/{area_id} either validates and applies geometry or rejects the field.",
|
"expected": "PATCH /areas/{area_id} either validates and applies geometry or rejects the field.",
|
||||||
"id": "P1-API-001",
|
"id": "P1-API-001",
|
||||||
"observed": {
|
"observed": {
|
||||||
"geometry_silently_ignored": true,
|
"geometry_silently_ignored": true,
|
||||||
"parsed_payload": {
|
"parsed_payload": {
|
||||||
"crs": null,
|
"crs": null,
|
||||||
"name": "Renamed"
|
"name": "Renamed"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"reproduced": true,
|
"reproduced": true,
|
||||||
"severity": "high",
|
"severity": "high",
|
||||||
"source": "backend/app/schemas/area.py:15-17; backend/app/services/area_service.py:154-171"
|
"source": "backend/app/schemas/area.py:15-17; backend/app/services/area_service.py:154-171"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"purpose": "Read-only deterministic reproductions of Phase-1 contract violations.",
|
"purpose": "Read-only deterministic reproductions of Phase-1 contract violations.",
|
||||||
"schema_version": 1,
|
"schema_version": 1,
|
||||||
"summary": {
|
"summary": {
|
||||||
"all_reproduced": true,
|
"all_reproduced": true,
|
||||||
"reproduced": 7,
|
"reproduced": 7,
|
||||||
"total": 7
|
"total": 7
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,31 +1,31 @@
|
|||||||
command=npm run build
|
command=npm run build
|
||||||
exit_code=0
|
exit_code=0
|
||||||
captured_at=2026-08-01T18:34:50.3212385+02:00
|
captured_at=2026-08-01T18:34:50.3212385+02:00
|
||||||
|
|
||||||
|
|
||||||
> geointel-frontend@1.0.0 build
|
> geointel-frontend@1.0.0 build
|
||||||
> tsc -b && vite build
|
> tsc -b && vite build
|
||||||
|
|
||||||
[36mvite v7.3.6 [32mbuilding client environment for production...[36m[39m
|
[36mvite v7.3.6 [32mbuilding client environment for production...[36m[39m
|
||||||
transforming...
|
transforming...
|
||||||
[32m✓[39m 1896 modules transformed.
|
[32m✓[39m 1896 modules transformed.
|
||||||
rendering chunks...
|
rendering chunks...
|
||||||
computing gzip size...
|
computing gzip size...
|
||||||
[2mdist/[22m[32mindex.html [39m[1m[2m 0.98 kB[22m[1m[22m[2m │ gzip: 0.49 kB[22m
|
[2mdist/[22m[32mindex.html [39m[1m[2m 0.98 kB[22m[1m[22m[2m │ gzip: 0.49 kB[22m
|
||||||
[2mdist/[22m[32massets/manrope-latin-500-normal-BYYD-dBL.woff2 [39m[1m[2m 14.04 kB[22m[1m[22m
|
[2mdist/[22m[32massets/manrope-latin-500-normal-BYYD-dBL.woff2 [39m[1m[2m 14.04 kB[22m[1m[22m
|
||||||
[2mdist/[22m[32massets/manrope-latin-600-normal-4f0koTD-.woff2 [39m[1m[2m 14.17 kB[22m[1m[22m
|
[2mdist/[22m[32massets/manrope-latin-600-normal-4f0koTD-.woff2 [39m[1m[2m 14.17 kB[22m[1m[22m
|
||||||
[2mdist/[22m[32massets/manrope-latin-700-normal-BZp_XxE4.woff2 [39m[1m[2m 14.21 kB[22m[1m[22m
|
[2mdist/[22m[32massets/manrope-latin-700-normal-BZp_XxE4.woff2 [39m[1m[2m 14.21 kB[22m[1m[22m
|
||||||
[2mdist/[22m[32massets/public-sans-latin-600-normal-Fru-LXNs.woff2 [39m[1m[2m 14.59 kB[22m[1m[22m
|
[2mdist/[22m[32massets/public-sans-latin-600-normal-Fru-LXNs.woff2 [39m[1m[2m 14.59 kB[22m[1m[22m
|
||||||
[2mdist/[22m[32massets/public-sans-latin-400-normal-8Rpg0ruU.woff2 [39m[1m[2m 14.63 kB[22m[1m[22m
|
[2mdist/[22m[32massets/public-sans-latin-400-normal-8Rpg0ruU.woff2 [39m[1m[2m 14.63 kB[22m[1m[22m
|
||||||
[2mdist/[22m[32massets/public-sans-latin-500-normal-NlrCPXnF.woff2 [39m[1m[2m 14.66 kB[22m[1m[22m
|
[2mdist/[22m[32massets/public-sans-latin-500-normal-NlrCPXnF.woff2 [39m[1m[2m 14.66 kB[22m[1m[22m
|
||||||
[2mdist/[22m[32massets/manrope-latin-500-normal-DMZssgOp.woff [39m[1m[2m 18.24 kB[22m[1m[22m
|
[2mdist/[22m[32massets/manrope-latin-500-normal-DMZssgOp.woff [39m[1m[2m 18.24 kB[22m[1m[22m
|
||||||
[2mdist/[22m[32massets/manrope-latin-600-normal-BqgrALkZ.woff [39m[1m[2m 18.38 kB[22m[1m[22m
|
[2mdist/[22m[32massets/manrope-latin-600-normal-BqgrALkZ.woff [39m[1m[2m 18.38 kB[22m[1m[22m
|
||||||
[2mdist/[22m[32massets/manrope-latin-700-normal-DGRFkw-m.woff [39m[1m[2m 18.41 kB[22m[1m[22m
|
[2mdist/[22m[32massets/manrope-latin-700-normal-DGRFkw-m.woff [39m[1m[2m 18.41 kB[22m[1m[22m
|
||||||
[2mdist/[22m[32massets/public-sans-latin-400-normal-SBbinRkI.woff [39m[1m[2m 18.49 kB[22m[1m[22m
|
[2mdist/[22m[32massets/public-sans-latin-400-normal-SBbinRkI.woff [39m[1m[2m 18.49 kB[22m[1m[22m
|
||||||
[2mdist/[22m[32massets/public-sans-latin-500-normal-vCxiVFAq.woff [39m[1m[2m 18.52 kB[22m[1m[22m
|
[2mdist/[22m[32massets/public-sans-latin-500-normal-vCxiVFAq.woff [39m[1m[2m 18.52 kB[22m[1m[22m
|
||||||
[2mdist/[22m[32massets/public-sans-latin-600-normal-BR59oU-I.woff [39m[1m[2m 18.56 kB[22m[1m[22m
|
[2mdist/[22m[32massets/public-sans-latin-600-normal-BR59oU-I.woff [39m[1m[2m 18.56 kB[22m[1m[22m
|
||||||
[2mdist/[22m[35massets/index-BNS8Tp4f.css [39m[1m[2m426.59 kB[22m[1m[22m[2m │ gzip: 69.40 kB[22m
|
[2mdist/[22m[35massets/index-BNS8Tp4f.css [39m[1m[2m426.59 kB[22m[1m[22m[2m │ gzip: 69.40 kB[22m
|
||||||
[2mdist/[22m[36massets/vendor-CrqJdhs-.js [39m[1m[2m140.80 kB[22m[1m[22m[2m │ gzip: 45.27 kB[22m
|
[2mdist/[22m[36massets/vendor-CrqJdhs-.js [39m[1m[2m140.80 kB[22m[1m[22m[2m │ gzip: 45.27 kB[22m
|
||||||
[2mdist/[22m[36massets/index-DR8RUeAl.js [39m[1m[2m457.16 kB[22m[1m[22m[2m │ gzip: 119.71 kB[22m
|
[2mdist/[22m[36massets/index-DR8RUeAl.js [39m[1m[2m457.16 kB[22m[1m[22m[2m │ gzip: 119.71 kB[22m
|
||||||
[2mdist/[22m[36massets/maplibre-DEBTaTl_.js [39m[1m[2m802.71 kB[22m[1m[22m[2m │ gzip: 217.71 kB[22m
|
[2mdist/[22m[36massets/maplibre-DEBTaTl_.js [39m[1m[2m802.71 kB[22m[1m[22m[2m │ gzip: 217.71 kB[22m
|
||||||
[32m✓ built in 9.80s[39m
|
[32m✓ built in 9.80s[39m
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
command=npm run lint
|
command=npm run lint
|
||||||
exit_code=1
|
exit_code=1
|
||||||
captured_at=2026-08-01T18:36:26.6162306+02:00
|
captured_at=2026-08-01T18:36:26.6162306+02:00
|
||||||
|
|
||||||
npm error Missing script: "lint"
|
npm error Missing script: "lint"
|
||||||
npm error
|
npm error
|
||||||
npm error Did you mean this?
|
npm error Did you mean this?
|
||||||
npm error npm link # Symlink a package folder
|
npm error npm link # Symlink a package folder
|
||||||
npm error
|
npm error
|
||||||
npm error To see a list of scripts, run:
|
npm error To see a list of scripts, run:
|
||||||
npm error npm run
|
npm error npm run
|
||||||
npm error A complete log of this run can be found in: C:\Users\Jens\AppData\Local\npm-cache\_logs\2026-08-01T16_36_25_353Z-debug-0.log
|
npm error A complete log of this run can be found in: C:\Users\Jens\AppData\Local\npm-cache\_logs\2026-08-01T16_36_25_353Z-debug-0.log
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
command=npm run typecheck
|
command=npm run typecheck
|
||||||
exit_code=0
|
exit_code=0
|
||||||
captured_at=2026-08-01T18:34:27.3623155+02:00
|
captured_at=2026-08-01T18:34:27.3623155+02:00
|
||||||
|
|
||||||
|
|
||||||
> geointel-frontend@1.0.0 typecheck
|
> geointel-frontend@1.0.0 typecheck
|
||||||
> tsc -p tsconfig.json --noEmit
|
> tsc -p tsconfig.json --noEmit
|
||||||
|
|
||||||
|
|||||||
@@ -1,35 +1,35 @@
|
|||||||
command=npm run test:unit
|
command=npm run test:unit
|
||||||
exit_code=0
|
exit_code=0
|
||||||
captured_at=2026-08-01T18:35:24.4298867+02:00
|
captured_at=2026-08-01T18:35:24.4298867+02:00
|
||||||
|
|
||||||
|
|
||||||
> geointel-frontend@1.0.0 test:unit
|
> geointel-frontend@1.0.0 test:unit
|
||||||
> vitest run
|
> vitest run
|
||||||
|
|
||||||
|
|
||||||
[1m[46m RUN [49m[22m [36mv3.2.6 [39m[90mC:/Projects/geointel/frontend[39m
|
[1m[46m RUN [49m[22m [36mv3.2.6 [39m[90mC:/Projects/geointel/frontend[39m
|
||||||
|
|
||||||
[32m✓[39m src/lib/datasetCapabilities.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
[32m✓[39m src/lib/datasetCapabilities.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
||||||
[32m✓[39m src/lib/performanceBudget.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 41[2mms[22m[39m
|
[32m✓[39m src/lib/performanceBudget.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 41[2mms[22m[39m
|
||||||
[32m✓[39m src/components/map/mapWorkspaceUtils.test.ts [2m([22m[2m14 tests[22m[2m)[22m[32m 36[2mms[22m[39m
|
[32m✓[39m src/components/map/mapWorkspaceUtils.test.ts [2m([22m[2m14 tests[22m[2m)[22m[32m 36[2mms[22m[39m
|
||||||
[32m✓[39m src/hooks/useMapThemeSelectionInsights.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 43[2mms[22m[39m
|
[32m✓[39m src/hooks/useMapThemeSelectionInsights.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 43[2mms[22m[39m
|
||||||
[32m✓[39m src/hooks/useCoverageResolver.test.tsx [2m([22m[2m4 tests[22m[2m)[22m[32m 47[2mms[22m[39m
|
[32m✓[39m src/hooks/useCoverageResolver.test.tsx [2m([22m[2m4 tests[22m[2m)[22m[32m 47[2mms[22m[39m
|
||||||
[32m✓[39m src/hooks/useTemporalComparison.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 36[2mms[22m[39m
|
[32m✓[39m src/hooks/useTemporalComparison.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 36[2mms[22m[39m
|
||||||
[32m✓[39m src/components/WorkbenchStatusStrip.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[32m 151[2mms[22m[39m
|
[32m✓[39m src/components/WorkbenchStatusStrip.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[32m 151[2mms[22m[39m
|
||||||
[32m✓[39m src/hooks/useWorkbenchBootstrap.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 60[2mms[22m[39m
|
[32m✓[39m src/hooks/useWorkbenchBootstrap.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 60[2mms[22m[39m
|
||||||
[32m✓[39m src/components/map/LiveAnalysisJourney.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 59[2mms[22m[39m
|
[32m✓[39m src/components/map/LiveAnalysisJourney.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 59[2mms[22m[39m
|
||||||
[32m✓[39m src/components/overview/ProjectAtlasIllustration.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[32m 267[2mms[22m[39m
|
[32m✓[39m src/components/overview/ProjectAtlasIllustration.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[32m 267[2mms[22m[39m
|
||||||
[32m✓[39m src/components/models/ModelSelector.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[33m 342[2mms[22m[39m
|
[32m✓[39m src/components/models/ModelSelector.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[33m 342[2mms[22m[39m
|
||||||
[32m✓[39m src/components/detection/AiPipelineIllustration.test.tsx [2m([22m[2m1 test[22m[2m)[22m[32m 296[2mms[22m[39m
|
[32m✓[39m src/components/detection/AiPipelineIllustration.test.tsx [2m([22m[2m1 test[22m[2m)[22m[32m 296[2mms[22m[39m
|
||||||
[32m✓[39m src/components/auth/LandingProjectStory.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[33m 332[2mms[22m[39m
|
[32m✓[39m src/components/auth/LandingProjectStory.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[33m 332[2mms[22m[39m
|
||||||
[32m✓[39m src/components/map/MunicipalitySearch.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[33m 483[2mms[22m[39m
|
[32m✓[39m src/components/map/MunicipalitySearch.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[33m 483[2mms[22m[39m
|
||||||
[33m[2m✓[22m[39m MunicipalitySearch[2m > [22msearches the official municipality catalog and activates a result [33m 468[2mms[22m[39m
|
[33m[2m✓[22m[39m MunicipalitySearch[2m > [22msearches the official municipality catalog and activates a result [33m 468[2mms[22m[39m
|
||||||
[32m✓[39m src/components/auth/LandingPage.test.tsx [2m([22m[2m4 tests[22m[2m)[22m[33m 825[2mms[22m[39m
|
[32m✓[39m src/components/auth/LandingPage.test.tsx [2m([22m[2m4 tests[22m[2m)[22m[33m 825[2mms[22m[39m
|
||||||
[33m[2m✓[22m[39m LandingPage[2m > [22mpresents the professionalised landing page and submits the operator login [33m 471[2mms[22m[39m
|
[33m[2m✓[22m[39m LandingPage[2m > [22mpresents the professionalised landing page and submits the operator login [33m 471[2mms[22m[39m
|
||||||
[32m✓[39m src/lib/bathymetryRaster.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
[32m✓[39m src/lib/bathymetryRaster.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
||||||
|
|
||||||
[2m Test Files [22m [1m[32m16 passed[39m[22m[90m (16)[39m
|
[2m Test Files [22m [1m[32m16 passed[39m[22m[90m (16)[39m
|
||||||
[2m Tests [22m [1m[32m51 passed[39m[22m[90m (51)[39m
|
[2m Tests [22m [1m[32m51 passed[39m[22m[90m (51)[39m
|
||||||
[2m Start at [22m 18:35:16
|
[2m Start at [22m 18:35:16
|
||||||
[2m Duration [22m 7.37s[2m (transform 2.45s, setup 0ms, collect 14.66s, tests 3.03s, environment 45.46s, prepare 8.07s)[22m
|
[2m Duration [22m 7.37s[2m (transform 2.45s, setup 0ms, collect 14.66s, tests 3.03s, environment 45.46s, prepare 8.07s)[22m
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
command=npm test -- --run
|
command=npm test -- --run
|
||||||
exit_code=1
|
exit_code=1
|
||||||
captured_at=2026-08-01T18:34:11.9904224+02:00
|
captured_at=2026-08-01T18:34:11.9904224+02:00
|
||||||
|
|
||||||
npm error Missing script: "test"
|
npm error Missing script: "test"
|
||||||
npm error
|
npm error
|
||||||
npm error To see a list of scripts, run:
|
npm error To see a list of scripts, run:
|
||||||
npm error npm run
|
npm error npm run
|
||||||
npm error A complete log of this run can be found in: C:\Users\Jens\AppData\Local\npm-cache\_logs\2026-08-01T16_34_11_785Z-debug-0.log
|
npm error A complete log of this run can be found in: C:\Users\Jens\AppData\Local\npm-cache\_logs\2026-08-01T16_34_11_785Z-debug-0.log
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"schema_version": 1,
|
"schema_version": 1,
|
||||||
"command": "python scripts/run_golden_qa_benchmark.py --json",
|
"command": "python scripts/run_golden_qa_benchmark.py --json",
|
||||||
"run_1_exit_code": 0,
|
"run_1_exit_code": 0,
|
||||||
"run_2_exit_code": 0,
|
"run_2_exit_code": 0,
|
||||||
"run_1_sha256": "ec96862b024987b59e56579920361582e718126b07885732335ac1b4d51b61bc",
|
"run_1_sha256": "ec96862b024987b59e56579920361582e718126b07885732335ac1b4d51b61bc",
|
||||||
"run_2_sha256": "4f900711a706dd56dd16b368e261761051f6d52a38bfd421e7d1c5f66ee51e49",
|
"run_2_sha256": "4f900711a706dd56dd16b368e261761051f6d52a38bfd421e7d1c5f66ee51e49",
|
||||||
"byte_identical": false,
|
"byte_identical": false,
|
||||||
"semantic_results_equal": true,
|
"semantic_results_equal": true,
|
||||||
"interpretation": "Metric values are stable, but UUID4-backed run identity makes retained JSON byte-nondeterministic."
|
"interpretation": "Metric values are stable, but UUID4-backed run identity makes retained JSON byte-nondeterministic."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,177 +1,177 @@
|
|||||||
{
|
{
|
||||||
"benchmark_id": "golden-buildings-partial-match-v1",
|
"benchmark_id": "golden-buildings-partial-match-v1",
|
||||||
"fixtures": {
|
"fixtures": {
|
||||||
"candidate": "fixtures/golden/predicted_buildings.geojson",
|
"candidate": "fixtures/golden/predicted_buildings.geojson",
|
||||||
"reference": "fixtures/golden/reference_buildings.geojson"
|
"reference": "fixtures/golden/reference_buildings.geojson"
|
||||||
},
|
},
|
||||||
"metrics": {
|
"metrics": {
|
||||||
"f1": 0.5,
|
"f1": 0.5,
|
||||||
"false_negative_count": 1,
|
"false_negative_count": 1,
|
||||||
"false_positive_count": 1,
|
"false_positive_count": 1,
|
||||||
"mean_iou": 0.8339768339652592,
|
"mean_iou": 0.8339768339652592,
|
||||||
"precision": 0.5,
|
"precision": 0.5,
|
||||||
"recall": 0.5
|
"recall": 0.5
|
||||||
},
|
},
|
||||||
"persistence": {
|
"persistence": {
|
||||||
"commit_count": 4,
|
"commit_count": 4,
|
||||||
"metric_count": 24,
|
"metric_count": 24,
|
||||||
"metric_keys": [
|
"metric_keys": [
|
||||||
"f1",
|
"f1",
|
||||||
"false_negative_count",
|
"false_negative_count",
|
||||||
"false_positive_count",
|
"false_positive_count",
|
||||||
"mean_iou",
|
"mean_iou",
|
||||||
"precision",
|
"precision",
|
||||||
"recall"
|
"recall"
|
||||||
],
|
],
|
||||||
"quality_check_count": 4
|
"quality_check_count": 4
|
||||||
},
|
},
|
||||||
"scenario_count": 4,
|
"scenario_count": 4,
|
||||||
"scenarios": [
|
"scenarios": [
|
||||||
{
|
{
|
||||||
"benchmark_id": "golden-buildings-partial-match-v1",
|
"benchmark_id": "golden-buildings-partial-match-v1",
|
||||||
"description": "Two reference building polygons and two candidate building polygons: one candidate matches ref-1, one candidate is a false positive, and ref-2 is a false negative.",
|
"description": "Two reference building polygons and two candidate building polygons: one candidate matches ref-1, one candidate is a false positive, and ref-2 is a false negative.",
|
||||||
"fixtures": {
|
"fixtures": {
|
||||||
"candidate": "fixtures/golden/predicted_buildings.geojson",
|
"candidate": "fixtures/golden/predicted_buildings.geojson",
|
||||||
"reference": "fixtures/golden/reference_buildings.geojson"
|
"reference": "fixtures/golden/reference_buildings.geojson"
|
||||||
},
|
},
|
||||||
"metrics": {
|
"metrics": {
|
||||||
"f1": 0.5,
|
"f1": 0.5,
|
||||||
"false_negative_count": 1,
|
"false_negative_count": 1,
|
||||||
"false_positive_count": 1,
|
"false_positive_count": 1,
|
||||||
"mean_iou": 0.8339768339652592,
|
"mean_iou": 0.8339768339652592,
|
||||||
"precision": 0.5,
|
"precision": 0.5,
|
||||||
"recall": 0.5
|
"recall": 0.5
|
||||||
},
|
},
|
||||||
"persistence": {
|
"persistence": {
|
||||||
"commit_count": 1,
|
"commit_count": 1,
|
||||||
"metric_count": 6,
|
"metric_count": 6,
|
||||||
"metric_keys": [
|
"metric_keys": [
|
||||||
"precision",
|
"precision",
|
||||||
"recall",
|
"recall",
|
||||||
"f1",
|
"f1",
|
||||||
"mean_iou",
|
"mean_iou",
|
||||||
"false_positive_count",
|
"false_positive_count",
|
||||||
"false_negative_count"
|
"false_negative_count"
|
||||||
],
|
],
|
||||||
"quality_check_count": 1
|
"quality_check_count": 1
|
||||||
},
|
},
|
||||||
"quality_check_id": "5fe92da9-2d8d-46a4-9992-2de89e3cf511",
|
"quality_check_id": "5fe92da9-2d8d-46a4-9992-2de89e3cf511",
|
||||||
"result_counts": {
|
"result_counts": {
|
||||||
"candidate_feature_count": 2,
|
"candidate_feature_count": 2,
|
||||||
"matches": 1,
|
"matches": 1,
|
||||||
"reference_feature_count": 2
|
"reference_feature_count": 2
|
||||||
},
|
},
|
||||||
"status": "passed"
|
"status": "passed"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"benchmark_id": "golden-buildings-perfect-match-v1",
|
"benchmark_id": "golden-buildings-perfect-match-v1",
|
||||||
"description": "One candidate building polygon exactly matches one reference polygon.",
|
"description": "One candidate building polygon exactly matches one reference polygon.",
|
||||||
"fixtures": {
|
"fixtures": {
|
||||||
"candidate": "fixtures/golden/predicted_buildings_perfect.geojson",
|
"candidate": "fixtures/golden/predicted_buildings_perfect.geojson",
|
||||||
"reference": "fixtures/golden/reference_buildings_perfect.geojson"
|
"reference": "fixtures/golden/reference_buildings_perfect.geojson"
|
||||||
},
|
},
|
||||||
"metrics": {
|
"metrics": {
|
||||||
"f1": 1.0,
|
"f1": 1.0,
|
||||||
"false_negative_count": 0,
|
"false_negative_count": 0,
|
||||||
"false_positive_count": 0,
|
"false_positive_count": 0,
|
||||||
"mean_iou": 1.0,
|
"mean_iou": 1.0,
|
||||||
"precision": 1.0,
|
"precision": 1.0,
|
||||||
"recall": 1.0
|
"recall": 1.0
|
||||||
},
|
},
|
||||||
"persistence": {
|
"persistence": {
|
||||||
"commit_count": 1,
|
"commit_count": 1,
|
||||||
"metric_count": 6,
|
"metric_count": 6,
|
||||||
"metric_keys": [
|
"metric_keys": [
|
||||||
"precision",
|
"precision",
|
||||||
"recall",
|
"recall",
|
||||||
"f1",
|
"f1",
|
||||||
"mean_iou",
|
"mean_iou",
|
||||||
"false_positive_count",
|
"false_positive_count",
|
||||||
"false_negative_count"
|
"false_negative_count"
|
||||||
],
|
],
|
||||||
"quality_check_count": 1
|
"quality_check_count": 1
|
||||||
},
|
},
|
||||||
"quality_check_id": "7b8c1444-31e6-4780-92cb-f2060f4a4048",
|
"quality_check_id": "7b8c1444-31e6-4780-92cb-f2060f4a4048",
|
||||||
"result_counts": {
|
"result_counts": {
|
||||||
"candidate_feature_count": 1,
|
"candidate_feature_count": 1,
|
||||||
"matches": 1,
|
"matches": 1,
|
||||||
"reference_feature_count": 1
|
"reference_feature_count": 1
|
||||||
},
|
},
|
||||||
"status": "passed"
|
"status": "passed"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"benchmark_id": "golden-buildings-no-overlap-v1",
|
"benchmark_id": "golden-buildings-no-overlap-v1",
|
||||||
"description": "One candidate polygon and one reference polygon do not overlap.",
|
"description": "One candidate polygon and one reference polygon do not overlap.",
|
||||||
"fixtures": {
|
"fixtures": {
|
||||||
"candidate": "fixtures/golden/predicted_buildings_no_overlap.geojson",
|
"candidate": "fixtures/golden/predicted_buildings_no_overlap.geojson",
|
||||||
"reference": "fixtures/golden/reference_buildings_no_overlap.geojson"
|
"reference": "fixtures/golden/reference_buildings_no_overlap.geojson"
|
||||||
},
|
},
|
||||||
"metrics": {
|
"metrics": {
|
||||||
"f1": null,
|
"f1": null,
|
||||||
"false_negative_count": 1,
|
"false_negative_count": 1,
|
||||||
"false_positive_count": 1,
|
"false_positive_count": 1,
|
||||||
"mean_iou": null,
|
"mean_iou": null,
|
||||||
"precision": 0.0,
|
"precision": 0.0,
|
||||||
"recall": 0.0
|
"recall": 0.0
|
||||||
},
|
},
|
||||||
"persistence": {
|
"persistence": {
|
||||||
"commit_count": 1,
|
"commit_count": 1,
|
||||||
"metric_count": 6,
|
"metric_count": 6,
|
||||||
"metric_keys": [
|
"metric_keys": [
|
||||||
"precision",
|
"precision",
|
||||||
"recall",
|
"recall",
|
||||||
"f1",
|
"f1",
|
||||||
"mean_iou",
|
"mean_iou",
|
||||||
"false_positive_count",
|
"false_positive_count",
|
||||||
"false_negative_count"
|
"false_negative_count"
|
||||||
],
|
],
|
||||||
"quality_check_count": 1
|
"quality_check_count": 1
|
||||||
},
|
},
|
||||||
"quality_check_id": "1ffb1817-b237-4ca8-aad7-ff3312ac7e03",
|
"quality_check_id": "1ffb1817-b237-4ca8-aad7-ff3312ac7e03",
|
||||||
"result_counts": {
|
"result_counts": {
|
||||||
"candidate_feature_count": 1,
|
"candidate_feature_count": 1,
|
||||||
"matches": 0,
|
"matches": 0,
|
||||||
"reference_feature_count": 1
|
"reference_feature_count": 1
|
||||||
},
|
},
|
||||||
"status": "passed"
|
"status": "passed"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"benchmark_id": "golden-buildings-multipolygon-match-v1",
|
"benchmark_id": "golden-buildings-multipolygon-match-v1",
|
||||||
"description": "One candidate MultiPolygon exactly matches one reference MultiPolygon.",
|
"description": "One candidate MultiPolygon exactly matches one reference MultiPolygon.",
|
||||||
"fixtures": {
|
"fixtures": {
|
||||||
"candidate": "fixtures/golden/predicted_buildings_multipolygon.geojson",
|
"candidate": "fixtures/golden/predicted_buildings_multipolygon.geojson",
|
||||||
"reference": "fixtures/golden/reference_buildings_multipolygon.geojson"
|
"reference": "fixtures/golden/reference_buildings_multipolygon.geojson"
|
||||||
},
|
},
|
||||||
"metrics": {
|
"metrics": {
|
||||||
"f1": 1.0,
|
"f1": 1.0,
|
||||||
"false_negative_count": 0,
|
"false_negative_count": 0,
|
||||||
"false_positive_count": 0,
|
"false_positive_count": 0,
|
||||||
"mean_iou": 1.0,
|
"mean_iou": 1.0,
|
||||||
"precision": 1.0,
|
"precision": 1.0,
|
||||||
"recall": 1.0
|
"recall": 1.0
|
||||||
},
|
},
|
||||||
"persistence": {
|
"persistence": {
|
||||||
"commit_count": 1,
|
"commit_count": 1,
|
||||||
"metric_count": 6,
|
"metric_count": 6,
|
||||||
"metric_keys": [
|
"metric_keys": [
|
||||||
"precision",
|
"precision",
|
||||||
"recall",
|
"recall",
|
||||||
"f1",
|
"f1",
|
||||||
"mean_iou",
|
"mean_iou",
|
||||||
"false_positive_count",
|
"false_positive_count",
|
||||||
"false_negative_count"
|
"false_negative_count"
|
||||||
],
|
],
|
||||||
"quality_check_count": 1
|
"quality_check_count": 1
|
||||||
},
|
},
|
||||||
"quality_check_id": "60e6a321-2aaf-467b-9281-f30dd4179333",
|
"quality_check_id": "60e6a321-2aaf-467b-9281-f30dd4179333",
|
||||||
"result_counts": {
|
"result_counts": {
|
||||||
"candidate_feature_count": 1,
|
"candidate_feature_count": 1,
|
||||||
"matches": 1,
|
"matches": 1,
|
||||||
"reference_feature_count": 1
|
"reference_feature_count": 1
|
||||||
},
|
},
|
||||||
"status": "passed"
|
"status": "passed"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"status": "passed",
|
"status": "passed",
|
||||||
"version": 1
|
"version": 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,177 +1,177 @@
|
|||||||
{
|
{
|
||||||
"benchmark_id": "golden-buildings-partial-match-v1",
|
"benchmark_id": "golden-buildings-partial-match-v1",
|
||||||
"fixtures": {
|
"fixtures": {
|
||||||
"candidate": "fixtures/golden/predicted_buildings.geojson",
|
"candidate": "fixtures/golden/predicted_buildings.geojson",
|
||||||
"reference": "fixtures/golden/reference_buildings.geojson"
|
"reference": "fixtures/golden/reference_buildings.geojson"
|
||||||
},
|
},
|
||||||
"metrics": {
|
"metrics": {
|
||||||
"f1": 0.5,
|
"f1": 0.5,
|
||||||
"false_negative_count": 1,
|
"false_negative_count": 1,
|
||||||
"false_positive_count": 1,
|
"false_positive_count": 1,
|
||||||
"mean_iou": 0.8339768339652592,
|
"mean_iou": 0.8339768339652592,
|
||||||
"precision": 0.5,
|
"precision": 0.5,
|
||||||
"recall": 0.5
|
"recall": 0.5
|
||||||
},
|
},
|
||||||
"persistence": {
|
"persistence": {
|
||||||
"commit_count": 4,
|
"commit_count": 4,
|
||||||
"metric_count": 24,
|
"metric_count": 24,
|
||||||
"metric_keys": [
|
"metric_keys": [
|
||||||
"f1",
|
"f1",
|
||||||
"false_negative_count",
|
"false_negative_count",
|
||||||
"false_positive_count",
|
"false_positive_count",
|
||||||
"mean_iou",
|
"mean_iou",
|
||||||
"precision",
|
"precision",
|
||||||
"recall"
|
"recall"
|
||||||
],
|
],
|
||||||
"quality_check_count": 4
|
"quality_check_count": 4
|
||||||
},
|
},
|
||||||
"scenario_count": 4,
|
"scenario_count": 4,
|
||||||
"scenarios": [
|
"scenarios": [
|
||||||
{
|
{
|
||||||
"benchmark_id": "golden-buildings-partial-match-v1",
|
"benchmark_id": "golden-buildings-partial-match-v1",
|
||||||
"description": "Two reference building polygons and two candidate building polygons: one candidate matches ref-1, one candidate is a false positive, and ref-2 is a false negative.",
|
"description": "Two reference building polygons and two candidate building polygons: one candidate matches ref-1, one candidate is a false positive, and ref-2 is a false negative.",
|
||||||
"fixtures": {
|
"fixtures": {
|
||||||
"candidate": "fixtures/golden/predicted_buildings.geojson",
|
"candidate": "fixtures/golden/predicted_buildings.geojson",
|
||||||
"reference": "fixtures/golden/reference_buildings.geojson"
|
"reference": "fixtures/golden/reference_buildings.geojson"
|
||||||
},
|
},
|
||||||
"metrics": {
|
"metrics": {
|
||||||
"f1": 0.5,
|
"f1": 0.5,
|
||||||
"false_negative_count": 1,
|
"false_negative_count": 1,
|
||||||
"false_positive_count": 1,
|
"false_positive_count": 1,
|
||||||
"mean_iou": 0.8339768339652592,
|
"mean_iou": 0.8339768339652592,
|
||||||
"precision": 0.5,
|
"precision": 0.5,
|
||||||
"recall": 0.5
|
"recall": 0.5
|
||||||
},
|
},
|
||||||
"persistence": {
|
"persistence": {
|
||||||
"commit_count": 1,
|
"commit_count": 1,
|
||||||
"metric_count": 6,
|
"metric_count": 6,
|
||||||
"metric_keys": [
|
"metric_keys": [
|
||||||
"precision",
|
"precision",
|
||||||
"recall",
|
"recall",
|
||||||
"f1",
|
"f1",
|
||||||
"mean_iou",
|
"mean_iou",
|
||||||
"false_positive_count",
|
"false_positive_count",
|
||||||
"false_negative_count"
|
"false_negative_count"
|
||||||
],
|
],
|
||||||
"quality_check_count": 1
|
"quality_check_count": 1
|
||||||
},
|
},
|
||||||
"quality_check_id": "8d030591-a701-46ee-ae59-7f529db053d3",
|
"quality_check_id": "8d030591-a701-46ee-ae59-7f529db053d3",
|
||||||
"result_counts": {
|
"result_counts": {
|
||||||
"candidate_feature_count": 2,
|
"candidate_feature_count": 2,
|
||||||
"matches": 1,
|
"matches": 1,
|
||||||
"reference_feature_count": 2
|
"reference_feature_count": 2
|
||||||
},
|
},
|
||||||
"status": "passed"
|
"status": "passed"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"benchmark_id": "golden-buildings-perfect-match-v1",
|
"benchmark_id": "golden-buildings-perfect-match-v1",
|
||||||
"description": "One candidate building polygon exactly matches one reference polygon.",
|
"description": "One candidate building polygon exactly matches one reference polygon.",
|
||||||
"fixtures": {
|
"fixtures": {
|
||||||
"candidate": "fixtures/golden/predicted_buildings_perfect.geojson",
|
"candidate": "fixtures/golden/predicted_buildings_perfect.geojson",
|
||||||
"reference": "fixtures/golden/reference_buildings_perfect.geojson"
|
"reference": "fixtures/golden/reference_buildings_perfect.geojson"
|
||||||
},
|
},
|
||||||
"metrics": {
|
"metrics": {
|
||||||
"f1": 1.0,
|
"f1": 1.0,
|
||||||
"false_negative_count": 0,
|
"false_negative_count": 0,
|
||||||
"false_positive_count": 0,
|
"false_positive_count": 0,
|
||||||
"mean_iou": 1.0,
|
"mean_iou": 1.0,
|
||||||
"precision": 1.0,
|
"precision": 1.0,
|
||||||
"recall": 1.0
|
"recall": 1.0
|
||||||
},
|
},
|
||||||
"persistence": {
|
"persistence": {
|
||||||
"commit_count": 1,
|
"commit_count": 1,
|
||||||
"metric_count": 6,
|
"metric_count": 6,
|
||||||
"metric_keys": [
|
"metric_keys": [
|
||||||
"precision",
|
"precision",
|
||||||
"recall",
|
"recall",
|
||||||
"f1",
|
"f1",
|
||||||
"mean_iou",
|
"mean_iou",
|
||||||
"false_positive_count",
|
"false_positive_count",
|
||||||
"false_negative_count"
|
"false_negative_count"
|
||||||
],
|
],
|
||||||
"quality_check_count": 1
|
"quality_check_count": 1
|
||||||
},
|
},
|
||||||
"quality_check_id": "bc99f243-ee42-40bf-ad71-22da29e5278f",
|
"quality_check_id": "bc99f243-ee42-40bf-ad71-22da29e5278f",
|
||||||
"result_counts": {
|
"result_counts": {
|
||||||
"candidate_feature_count": 1,
|
"candidate_feature_count": 1,
|
||||||
"matches": 1,
|
"matches": 1,
|
||||||
"reference_feature_count": 1
|
"reference_feature_count": 1
|
||||||
},
|
},
|
||||||
"status": "passed"
|
"status": "passed"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"benchmark_id": "golden-buildings-no-overlap-v1",
|
"benchmark_id": "golden-buildings-no-overlap-v1",
|
||||||
"description": "One candidate polygon and one reference polygon do not overlap.",
|
"description": "One candidate polygon and one reference polygon do not overlap.",
|
||||||
"fixtures": {
|
"fixtures": {
|
||||||
"candidate": "fixtures/golden/predicted_buildings_no_overlap.geojson",
|
"candidate": "fixtures/golden/predicted_buildings_no_overlap.geojson",
|
||||||
"reference": "fixtures/golden/reference_buildings_no_overlap.geojson"
|
"reference": "fixtures/golden/reference_buildings_no_overlap.geojson"
|
||||||
},
|
},
|
||||||
"metrics": {
|
"metrics": {
|
||||||
"f1": null,
|
"f1": null,
|
||||||
"false_negative_count": 1,
|
"false_negative_count": 1,
|
||||||
"false_positive_count": 1,
|
"false_positive_count": 1,
|
||||||
"mean_iou": null,
|
"mean_iou": null,
|
||||||
"precision": 0.0,
|
"precision": 0.0,
|
||||||
"recall": 0.0
|
"recall": 0.0
|
||||||
},
|
},
|
||||||
"persistence": {
|
"persistence": {
|
||||||
"commit_count": 1,
|
"commit_count": 1,
|
||||||
"metric_count": 6,
|
"metric_count": 6,
|
||||||
"metric_keys": [
|
"metric_keys": [
|
||||||
"precision",
|
"precision",
|
||||||
"recall",
|
"recall",
|
||||||
"f1",
|
"f1",
|
||||||
"mean_iou",
|
"mean_iou",
|
||||||
"false_positive_count",
|
"false_positive_count",
|
||||||
"false_negative_count"
|
"false_negative_count"
|
||||||
],
|
],
|
||||||
"quality_check_count": 1
|
"quality_check_count": 1
|
||||||
},
|
},
|
||||||
"quality_check_id": "b12249f0-24e3-4bbf-837a-e4a962d1bca9",
|
"quality_check_id": "b12249f0-24e3-4bbf-837a-e4a962d1bca9",
|
||||||
"result_counts": {
|
"result_counts": {
|
||||||
"candidate_feature_count": 1,
|
"candidate_feature_count": 1,
|
||||||
"matches": 0,
|
"matches": 0,
|
||||||
"reference_feature_count": 1
|
"reference_feature_count": 1
|
||||||
},
|
},
|
||||||
"status": "passed"
|
"status": "passed"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"benchmark_id": "golden-buildings-multipolygon-match-v1",
|
"benchmark_id": "golden-buildings-multipolygon-match-v1",
|
||||||
"description": "One candidate MultiPolygon exactly matches one reference MultiPolygon.",
|
"description": "One candidate MultiPolygon exactly matches one reference MultiPolygon.",
|
||||||
"fixtures": {
|
"fixtures": {
|
||||||
"candidate": "fixtures/golden/predicted_buildings_multipolygon.geojson",
|
"candidate": "fixtures/golden/predicted_buildings_multipolygon.geojson",
|
||||||
"reference": "fixtures/golden/reference_buildings_multipolygon.geojson"
|
"reference": "fixtures/golden/reference_buildings_multipolygon.geojson"
|
||||||
},
|
},
|
||||||
"metrics": {
|
"metrics": {
|
||||||
"f1": 1.0,
|
"f1": 1.0,
|
||||||
"false_negative_count": 0,
|
"false_negative_count": 0,
|
||||||
"false_positive_count": 0,
|
"false_positive_count": 0,
|
||||||
"mean_iou": 1.0,
|
"mean_iou": 1.0,
|
||||||
"precision": 1.0,
|
"precision": 1.0,
|
||||||
"recall": 1.0
|
"recall": 1.0
|
||||||
},
|
},
|
||||||
"persistence": {
|
"persistence": {
|
||||||
"commit_count": 1,
|
"commit_count": 1,
|
||||||
"metric_count": 6,
|
"metric_count": 6,
|
||||||
"metric_keys": [
|
"metric_keys": [
|
||||||
"precision",
|
"precision",
|
||||||
"recall",
|
"recall",
|
||||||
"f1",
|
"f1",
|
||||||
"mean_iou",
|
"mean_iou",
|
||||||
"false_positive_count",
|
"false_positive_count",
|
||||||
"false_negative_count"
|
"false_negative_count"
|
||||||
],
|
],
|
||||||
"quality_check_count": 1
|
"quality_check_count": 1
|
||||||
},
|
},
|
||||||
"quality_check_id": "4dabce04-4c65-4dac-807d-9f9cbaa8c72f",
|
"quality_check_id": "4dabce04-4c65-4dac-807d-9f9cbaa8c72f",
|
||||||
"result_counts": {
|
"result_counts": {
|
||||||
"candidate_feature_count": 1,
|
"candidate_feature_count": 1,
|
||||||
"matches": 1,
|
"matches": 1,
|
||||||
"reference_feature_count": 1
|
"reference_feature_count": 1
|
||||||
},
|
},
|
||||||
"status": "passed"
|
"status": "passed"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"status": "passed",
|
"status": "passed",
|
||||||
"version": 1
|
"version": 1
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
command=python scripts/audit_api_contracts.py
|
command=python scripts/audit_api_contracts.py
|
||||||
exit_code=0
|
exit_code=0
|
||||||
captured_at=2026-08-01T18:37:24.4984309+02:00
|
captured_at=2026-08-01T18:37:24.4984309+02:00
|
||||||
|
|
||||||
API contract audit OK: 147 implemented routes match docs; 10 explicit non-envelope endpoints tracked.
|
API contract audit OK: 147 implemented routes match docs; 10 explicit non-envelope endpoints tracked.
|
||||||
|
|||||||
@@ -1,36 +1,36 @@
|
|||||||
{
|
{
|
||||||
"baseline_scope": [
|
"baseline_scope": [
|
||||||
"tracked repository state",
|
"tracked repository state",
|
||||||
"static code/test/migration inventory",
|
"static code/test/migration inventory",
|
||||||
"tracked mirror comparison",
|
"tracked mirror comparison",
|
||||||
"local artifact inventory",
|
"local artifact inventory",
|
||||||
"mock/fixture/placeholder/fallback triage signals"
|
"mock/fixture/placeholder/fallback triage signals"
|
||||||
],
|
],
|
||||||
"finding_count": 2,
|
"finding_count": 2,
|
||||||
"findings": [
|
"findings": [
|
||||||
{
|
{
|
||||||
"evidence": {
|
"evidence": {
|
||||||
"paired_different_file_count": 68,
|
"paired_different_file_count": 68,
|
||||||
"tracked_mirror_file_count": 1153
|
"tracked_mirror_file_count": 1153
|
||||||
},
|
},
|
||||||
"id": "P1-REPO-001",
|
"id": "P1-REPO-001",
|
||||||
"severity": "high",
|
"severity": "high",
|
||||||
"title": "Tracked nested repository mirror creates ambiguous source state"
|
"title": "Tracked nested repository mirror creates ambiguous source state"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "P1-ML-LOCAL-001",
|
"id": "P1-ML-LOCAL-001",
|
||||||
"interpretation": "Production model truth must be verified on the mounted Tower volume.",
|
"interpretation": "Production model truth must be verified on the mounted Tower volume.",
|
||||||
"severity": "info",
|
"severity": "info",
|
||||||
"title": "No local checkpoint is available in the repository checkout"
|
"title": "No local checkpoint is available in the repository checkout"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"generated_at": "2026-08-01T15:53:53.482303+00:00",
|
"generated_at": "2026-08-01T15:53:53.482303+00:00",
|
||||||
"schema_version": 1,
|
"schema_version": 1,
|
||||||
"separate_required_evidence": [
|
"separate_required_evidence": [
|
||||||
"Tower database/storage audit",
|
"Tower database/storage audit",
|
||||||
"Tower CUDA/model preflight and representative inference",
|
"Tower CUDA/model preflight and representative inference",
|
||||||
"corpus leakage/duplicate/label/time review",
|
"corpus leakage/duplicate/label/time review",
|
||||||
"independent human visual review"
|
"independent human visual review"
|
||||||
],
|
],
|
||||||
"status": "findings_present"
|
"status": "findings_present"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
command=python -m pytest tests/test_accuracy_phase1_baseline.py -q -p no:cacheprovider
|
command=python -m pytest tests/test_accuracy_phase1_baseline.py -q -p no:cacheprovider
|
||||||
exit_code=0
|
exit_code=0
|
||||||
captured_at=2026-08-01T18:33:32.0526074+02:00
|
captured_at=2026-08-01T18:33:32.0526074+02:00
|
||||||
|
|
||||||
.... [100%]
|
.... [100%]
|
||||||
4 passed in 1.24s
|
4 passed in 1.24s
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,215 +1,215 @@
|
|||||||
{
|
{
|
||||||
"captured_at": "2026-08-01T18:13:54.6553+02:00",
|
"captured_at": "2026-08-01T18:13:54.6553+02:00",
|
||||||
"claim_boundary": "One production-adapter inference completed on one existing tile. No accuracy, calibration, geographic-generalization, or release claim follows from this smoke.",
|
"claim_boundary": "One production-adapter inference completed on one existing tile. No accuracy, calibration, geographic-generalization, or release claim follows from this smoke.",
|
||||||
"configuration": {
|
"configuration": {
|
||||||
"confidence": 0.5,
|
"confidence": 0.5,
|
||||||
"deterministic_algorithms": true,
|
"deterministic_algorithms": true,
|
||||||
"device": "cuda:0",
|
"device": "cuda:0",
|
||||||
"image_size": 640,
|
"image_size": 640,
|
||||||
"max_detections": 1000,
|
"max_detections": 1000,
|
||||||
"seed": 20260801
|
"seed": 20260801
|
||||||
},
|
},
|
||||||
"input": {
|
"input": {
|
||||||
"manifest_path": "/app/storage/tiles/cb80638d-dbef-48ac-b19c-cec7c3efc96e/ae0ff76d-70c0-404f-b777-54d14517179a/b191c968-7d56-4e0d-afbb-8b5baaa62470/manifest.json",
|
"manifest_path": "/app/storage/tiles/cb80638d-dbef-48ac-b19c-cec7c3efc96e/ae0ff76d-70c0-404f-b777-54d14517179a/b191c968-7d56-4e0d-afbb-8b5baaa62470/manifest.json",
|
||||||
"manifest_sha256": "6ab8a96bf2a1405e224932afb90255311a09bbeaed4e9a2fdcdf8b1bc2230abd",
|
"manifest_sha256": "6ab8a96bf2a1405e224932afb90255311a09bbeaed4e9a2fdcdf8b1bc2230abd",
|
||||||
"raster": {
|
"raster": {
|
||||||
"available": true,
|
"available": true,
|
||||||
"bounds": [
|
"bounds": [
|
||||||
193277.53584918313,
|
193277.53584918313,
|
||||||
205708.27443503588,
|
205708.27443503588,
|
||||||
193777.53584918313,
|
193777.53584918313,
|
||||||
206208.27443503588
|
206208.27443503588
|
||||||
],
|
],
|
||||||
"count": 3,
|
"count": 3,
|
||||||
"crs": "EPSG:31370",
|
"crs": "EPSG:31370",
|
||||||
"dtypes": [
|
"dtypes": [
|
||||||
"uint8",
|
"uint8",
|
||||||
"uint8",
|
"uint8",
|
||||||
"uint8"
|
"uint8"
|
||||||
],
|
],
|
||||||
"height": 512,
|
"height": 512,
|
||||||
"nodata": null,
|
"nodata": null,
|
||||||
"transform": [
|
"transform": [
|
||||||
0.9765625,
|
0.9765625,
|
||||||
0.0,
|
0.0,
|
||||||
193277.53584918313,
|
193277.53584918313,
|
||||||
0.0,
|
0.0,
|
||||||
-0.9765625,
|
-0.9765625,
|
||||||
206208.27443503588,
|
206208.27443503588,
|
||||||
0.0,
|
0.0,
|
||||||
0.0,
|
0.0,
|
||||||
1.0
|
1.0
|
||||||
],
|
],
|
||||||
"width": 512
|
"width": 512
|
||||||
},
|
},
|
||||||
"tile_path": "/app/storage/tiles/cb80638d-dbef-48ac-b19c-cec7c3efc96e/ae0ff76d-70c0-404f-b777-54d14517179a/b191c968-7d56-4e0d-afbb-8b5baaa62470/tile_0000.tif",
|
"tile_path": "/app/storage/tiles/cb80638d-dbef-48ac-b19c-cec7c3efc96e/ae0ff76d-70c0-404f-b777-54d14517179a/b191c968-7d56-4e0d-afbb-8b5baaa62470/tile_0000.tif",
|
||||||
"tile_sha256": "134a9e86850c92c577c73bc6ee57a9df7d4c1c513ae6450263e800b6dd47b6ee",
|
"tile_sha256": "134a9e86850c92c577c73bc6ee57a9df7d4c1c513ae6450263e800b6dd47b6ee",
|
||||||
"tile_size_bytes": 669227
|
"tile_size_bytes": 669227
|
||||||
},
|
},
|
||||||
"model": {
|
"model": {
|
||||||
"path": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
"path": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
"sha256": "a9088b8491dfae36694b53e9e9406cb4e3511d334a5712fa34f75078a47759c1",
|
"sha256": "a9088b8491dfae36694b53e9e9406cb4e3511d334a5712fa34f75078a47759c1",
|
||||||
"size_bytes": 22516074
|
"size_bytes": 22516074
|
||||||
},
|
},
|
||||||
"output": {
|
"output": {
|
||||||
"class_counts": {
|
"class_counts": {
|
||||||
"building": 17
|
"building": 17
|
||||||
},
|
},
|
||||||
"confidence": {
|
"confidence": {
|
||||||
"maximum": 0.8144345879554749,
|
"maximum": 0.8144345879554749,
|
||||||
"mean": 0.5594814244438621,
|
"mean": 0.5594814244438621,
|
||||||
"minimum": 0.5008771419525146
|
"minimum": 0.5008771419525146
|
||||||
},
|
},
|
||||||
"count": 17,
|
"count": 17,
|
||||||
"sample": [
|
"sample": [
|
||||||
{
|
{
|
||||||
"bbox": [
|
"bbox": [
|
||||||
125.5418930053711,
|
125.5418930053711,
|
||||||
157.9995880126953,
|
157.9995880126953,
|
||||||
187.2771453857422,
|
187.2771453857422,
|
||||||
232.72903442382812
|
232.72903442382812
|
||||||
],
|
],
|
||||||
"class_name": "building",
|
"class_name": "building",
|
||||||
"confidence": 0.8144345879554749,
|
"confidence": 0.8144345879554749,
|
||||||
"properties": {
|
"properties": {
|
||||||
"class_id": 0
|
"class_id": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"bbox": [
|
"bbox": [
|
||||||
38.20725631713867,
|
38.20725631713867,
|
||||||
487.8446350097656,
|
487.8446350097656,
|
||||||
56.458614349365234,
|
56.458614349365234,
|
||||||
510.8298034667969
|
510.8298034667969
|
||||||
],
|
],
|
||||||
"class_name": "building",
|
"class_name": "building",
|
||||||
"confidence": 0.6531882286071777,
|
"confidence": 0.6531882286071777,
|
||||||
"properties": {
|
"properties": {
|
||||||
"class_id": 0
|
"class_id": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"bbox": [
|
"bbox": [
|
||||||
177.36990356445312,
|
177.36990356445312,
|
||||||
229.9929656982422,
|
229.9929656982422,
|
||||||
248.5861053466797,
|
248.5861053466797,
|
||||||
267.96173095703125
|
267.96173095703125
|
||||||
],
|
],
|
||||||
"class_name": "building",
|
"class_name": "building",
|
||||||
"confidence": 0.6213690638542175,
|
"confidence": 0.6213690638542175,
|
||||||
"properties": {
|
"properties": {
|
||||||
"class_id": 0
|
"class_id": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"bbox": [
|
"bbox": [
|
||||||
367.4935607910156,
|
367.4935607910156,
|
||||||
474.3263244628906,
|
474.3263244628906,
|
||||||
407.673828125,
|
407.673828125,
|
||||||
498.2358093261719
|
498.2358093261719
|
||||||
],
|
],
|
||||||
"class_name": "building",
|
"class_name": "building",
|
||||||
"confidence": 0.6148342490196228,
|
"confidence": 0.6148342490196228,
|
||||||
"properties": {
|
"properties": {
|
||||||
"class_id": 0
|
"class_id": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"bbox": [
|
"bbox": [
|
||||||
435.2783203125,
|
435.2783203125,
|
||||||
131.2145233154297,
|
131.2145233154297,
|
||||||
453.61016845703125,
|
453.61016845703125,
|
||||||
166.76919555664062
|
166.76919555664062
|
||||||
],
|
],
|
||||||
"class_name": "building",
|
"class_name": "building",
|
||||||
"confidence": 0.5637134313583374,
|
"confidence": 0.5637134313583374,
|
||||||
"properties": {
|
"properties": {
|
||||||
"class_id": 0
|
"class_id": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"bbox": [
|
"bbox": [
|
||||||
407.32525634765625,
|
407.32525634765625,
|
||||||
317.380126953125,
|
317.380126953125,
|
||||||
416.885009765625,
|
416.885009765625,
|
||||||
326.8919982910156
|
326.8919982910156
|
||||||
],
|
],
|
||||||
"class_name": "building",
|
"class_name": "building",
|
||||||
"confidence": 0.547556459903717,
|
"confidence": 0.547556459903717,
|
||||||
"properties": {
|
"properties": {
|
||||||
"class_id": 0
|
"class_id": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"bbox": [
|
"bbox": [
|
||||||
395.66558837890625,
|
395.66558837890625,
|
||||||
356.8952331542969,
|
356.8952331542969,
|
||||||
413.51416015625,
|
413.51416015625,
|
||||||
377.1672668457031
|
377.1672668457031
|
||||||
],
|
],
|
||||||
"class_name": "building",
|
"class_name": "building",
|
||||||
"confidence": 0.5378748774528503,
|
"confidence": 0.5378748774528503,
|
||||||
"properties": {
|
"properties": {
|
||||||
"class_id": 0
|
"class_id": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"bbox": [
|
"bbox": [
|
||||||
394.0309143066406,
|
394.0309143066406,
|
||||||
143.1604461669922,
|
143.1604461669922,
|
||||||
408.4023132324219,
|
408.4023132324219,
|
||||||
167.8805389404297
|
167.8805389404297
|
||||||
],
|
],
|
||||||
"class_name": "building",
|
"class_name": "building",
|
||||||
"confidence": 0.5360639095306396,
|
"confidence": 0.5360639095306396,
|
||||||
"properties": {
|
"properties": {
|
||||||
"class_id": 0
|
"class_id": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"bbox": [
|
"bbox": [
|
||||||
125.3250503540039,
|
125.3250503540039,
|
||||||
56.1500358581543,
|
56.1500358581543,
|
||||||
157.87998962402344,
|
157.87998962402344,
|
||||||
68.70291900634766
|
68.70291900634766
|
||||||
],
|
],
|
||||||
"class_name": "building",
|
"class_name": "building",
|
||||||
"confidence": 0.5342658162117004,
|
"confidence": 0.5342658162117004,
|
||||||
"properties": {
|
"properties": {
|
||||||
"class_id": 0
|
"class_id": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"bbox": [
|
"bbox": [
|
||||||
213.7998504638672,
|
213.7998504638672,
|
||||||
77.86518859863281,
|
77.86518859863281,
|
||||||
230.8061065673828,
|
230.8061065673828,
|
||||||
90.1888198852539
|
90.1888198852539
|
||||||
],
|
],
|
||||||
"class_name": "building",
|
"class_name": "building",
|
||||||
"confidence": 0.5319290161132812,
|
"confidence": 0.5319290161132812,
|
||||||
"properties": {
|
"properties": {
|
||||||
"class_id": 0
|
"class_id": 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"read_only": true,
|
"read_only": true,
|
||||||
"runtime": {
|
"runtime": {
|
||||||
"cuda_available": true,
|
"cuda_available": true,
|
||||||
"cuda_device_index": 0,
|
"cuda_device_index": 0,
|
||||||
"cuda_device_name": "NVIDIA GeForce RTX 4080 SUPER",
|
"cuda_device_name": "NVIDIA GeForce RTX 4080 SUPER",
|
||||||
"cuda_peak_memory_bytes": 82307072,
|
"cuda_peak_memory_bytes": 82307072,
|
||||||
"cuda_runtime": "12.8",
|
"cuda_runtime": "12.8",
|
||||||
"python": "3.11.2 (main, May 12 2026, 05:17:27) [GCC 12.2.0]",
|
"python": "3.11.2 (main, May 12 2026, 05:17:27) [GCC 12.2.0]",
|
||||||
"torch": "2.11.0+cu128",
|
"torch": "2.11.0+cu128",
|
||||||
"ultralytics": "8.4.99"
|
"ultralytics": "8.4.99"
|
||||||
},
|
},
|
||||||
"schema_version": 1,
|
"schema_version": 1,
|
||||||
"status": "passed",
|
"status": "passed",
|
||||||
"timing_seconds": {
|
"timing_seconds": {
|
||||||
"inference": 0.8836944859940559,
|
"inference": 0.8836944859940559,
|
||||||
"model_load": 0.48524460900807753,
|
"model_load": 0.48524460900807753,
|
||||||
"total": 1.3689390950021334
|
"total": 1.3689390950021334
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +1,25 @@
|
|||||||
{
|
{
|
||||||
"schema_version": 1,
|
"schema_version": 1,
|
||||||
"captured_at": "2026-08-01T18:46:19.288288+02:00",
|
"captured_at": "2026-08-01T18:46:19.288288+02:00",
|
||||||
"read_only": true,
|
"read_only": true,
|
||||||
"artifacts": [
|
"artifacts": [
|
||||||
{
|
{
|
||||||
"path": "/app/storage/training/building-be-v62-v58-flanders-balanced-transfer-r1/runs/flanders/weights/best.pt",
|
"path": "/app/storage/training/building-be-v62-v58-flanders-balanced-transfer-r1/runs/flanders/weights/best.pt",
|
||||||
"exists": true,
|
"exists": true,
|
||||||
"size_bytes": 456136473,
|
"size_bytes": 456136473,
|
||||||
"sha256": "889ee5b3bfe722803542d15a53a51a716872cf0e8516da5e8291e0a2605adbdb"
|
"sha256": "889ee5b3bfe722803542d15a53a51a716872cf0e8516da5e8291e0a2605adbdb"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "/app/storage/training/building-be-v62-v58-flanders-balanced-transfer-r1/runs/flanders/weights/last.pt",
|
"path": "/app/storage/training/building-be-v62-v58-flanders-balanced-transfer-r1/runs/flanders/weights/last.pt",
|
||||||
"exists": true,
|
"exists": true,
|
||||||
"size_bytes": 456136985,
|
"size_bytes": 456136985,
|
||||||
"sha256": "08d12061f017c45c123c824ffa043bc07794beef251c903299eb1e0954636c8b"
|
"sha256": "08d12061f017c45c123c824ffa043bc07794beef251c903299eb1e0954636c8b"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "/app/storage/training/building-be-v56-rotated-quality-audit-r1/operator_yolo_dataset_quality_audit.json",
|
"path": "/app/storage/training/building-be-v56-rotated-quality-audit-r1/operator_yolo_dataset_quality_audit.json",
|
||||||
"exists": true,
|
"exists": true,
|
||||||
"size_bytes": 153659,
|
"size_bytes": 153659,
|
||||||
"sha256": "da0d4648ee2365ab949f1b00518ddba0a17cb722a41cb228525b4d2e7657ce36"
|
"sha256": "da0d4648ee2365ab949f1b00518ddba0a17cb722a41cb228525b4d2e7657ce36"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,397 +1,397 @@
|
|||||||
{
|
{
|
||||||
"active_model": {
|
"active_model": {
|
||||||
"classes": "building",
|
"classes": "building",
|
||||||
"configured_path": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
"configured_path": "/app/models/geointel-building-yolov8s-smallbld-minpx3-img640-ft30.pt",
|
||||||
"device": "cuda:0",
|
"device": "cuda:0",
|
||||||
"exists": true,
|
"exists": true,
|
||||||
"model_id": "yolo-configured",
|
"model_id": "yolo-configured",
|
||||||
"model_version": "",
|
"model_version": "",
|
||||||
"require_cuda": "true",
|
"require_cuda": "true",
|
||||||
"sha256": "a9088b8491dfae36694b53e9e9406cb4e3511d334a5712fa34f75078a47759c1",
|
"sha256": "a9088b8491dfae36694b53e9e9406cb4e3511d334a5712fa34f75078a47759c1",
|
||||||
"size_bytes": 22516074,
|
"size_bytes": 22516074,
|
||||||
"validated_area_names": "Mol,Kempen",
|
"validated_area_names": "Mol,Kempen",
|
||||||
"validation_scope_enforced": "true"
|
"validation_scope_enforced": "true"
|
||||||
},
|
},
|
||||||
"database": {
|
"database": {
|
||||||
"analysis_statuses": [
|
"analysis_statuses": [
|
||||||
{
|
{
|
||||||
"count": 2,
|
"count": 2,
|
||||||
"status": "failed"
|
"status": "failed"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 1144,
|
"count": 1144,
|
||||||
"status": "success"
|
"status": "success"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"confidence_integrity": [
|
"confidence_integrity": [
|
||||||
{
|
{
|
||||||
"detections_outside_unit_interval": 0,
|
"detections_outside_unit_interval": 0,
|
||||||
"segmentations_outside_unit_interval": 0
|
"segmentations_outside_unit_interval": 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dataset_lineage_gaps": [
|
"dataset_lineage_gaps": [
|
||||||
{
|
{
|
||||||
"missing_checksum": 0,
|
"missing_checksum": 0,
|
||||||
"missing_crs": 0,
|
"missing_crs": 0,
|
||||||
"missing_imported_at": 0,
|
"missing_imported_at": 0,
|
||||||
"missing_observed_at": 2377,
|
"missing_observed_at": 2377,
|
||||||
"missing_provenance_metadata": 0,
|
"missing_provenance_metadata": 0,
|
||||||
"missing_source_metadata": 0,
|
"missing_source_metadata": 0,
|
||||||
"missing_source_version": 1761,
|
"missing_source_version": 1761,
|
||||||
"total": 3377
|
"total": 3377
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dataset_statuses": [
|
"dataset_statuses": [
|
||||||
{
|
{
|
||||||
"count": 3377,
|
"count": 3377,
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dataset_version_gaps": [
|
"dataset_version_gaps": [
|
||||||
{
|
{
|
||||||
"missing_checksum": 0,
|
"missing_checksum": 0,
|
||||||
"missing_provenance_metadata": 0,
|
"missing_provenance_metadata": 0,
|
||||||
"missing_source_metadata": 0,
|
"missing_source_metadata": 0,
|
||||||
"missing_storage_path": 0,
|
"missing_storage_path": 0,
|
||||||
"total": 1671
|
"total": 1671
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"geometry_integrity": {
|
"geometry_integrity": {
|
||||||
"areas": {
|
"areas": {
|
||||||
"rows": [
|
"rows": [
|
||||||
{
|
{
|
||||||
"empty": 0,
|
"empty": 0,
|
||||||
"invalid": 0,
|
"invalid": 0,
|
||||||
"outside_epsg4326_domain": 0,
|
"outside_epsg4326_domain": 0,
|
||||||
"populated": 387,
|
"populated": 387,
|
||||||
"wrong_srid": 0
|
"wrong_srid": 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"status": "ok"
|
"status": "ok"
|
||||||
},
|
},
|
||||||
"detections": {
|
"detections": {
|
||||||
"rows": [
|
"rows": [
|
||||||
{
|
{
|
||||||
"empty": 0,
|
"empty": 0,
|
||||||
"invalid": 0,
|
"invalid": 0,
|
||||||
"outside_epsg4326_domain": 4,
|
"outside_epsg4326_domain": 4,
|
||||||
"populated": 299233,
|
"populated": 299233,
|
||||||
"wrong_srid": 0
|
"wrong_srid": 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"status": "ok"
|
"status": "ok"
|
||||||
},
|
},
|
||||||
"segmentations": {
|
"segmentations": {
|
||||||
"rows": [
|
"rows": [
|
||||||
{
|
{
|
||||||
"empty": 0,
|
"empty": 0,
|
||||||
"invalid": 0,
|
"invalid": 0,
|
||||||
"outside_epsg4326_domain": 0,
|
"outside_epsg4326_domain": 0,
|
||||||
"populated": 0,
|
"populated": 0,
|
||||||
"wrong_srid": 0
|
"wrong_srid": 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"status": "ok"
|
"status": "ok"
|
||||||
},
|
},
|
||||||
"vector_features": {
|
"vector_features": {
|
||||||
"rows": [
|
"rows": [
|
||||||
{
|
{
|
||||||
"empty": 0,
|
"empty": 0,
|
||||||
"invalid": 0,
|
"invalid": 0,
|
||||||
"outside_epsg4326_domain": 0,
|
"outside_epsg4326_domain": 0,
|
||||||
"populated": 6689447,
|
"populated": 6689447,
|
||||||
"wrong_srid": 0
|
"wrong_srid": 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"status": "ok"
|
"status": "ok"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"job_statuses": [
|
"job_statuses": [
|
||||||
{
|
{
|
||||||
"count": 135,
|
"count": 135,
|
||||||
"status": "failed"
|
"status": "failed"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 4325,
|
"count": 4325,
|
||||||
"status": "success"
|
"status": "success"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"metric_nulls": [
|
"metric_nulls": [
|
||||||
{
|
{
|
||||||
"metric_key": "f1",
|
"metric_key": "f1",
|
||||||
"null_values": 58,
|
"null_values": 58,
|
||||||
"total": 697
|
"total": 697
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metric_key": "false_negative_count",
|
"metric_key": "false_negative_count",
|
||||||
"null_values": 0,
|
"null_values": 0,
|
||||||
"total": 697
|
"total": 697
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metric_key": "false_positive_count",
|
"metric_key": "false_positive_count",
|
||||||
"null_values": 0,
|
"null_values": 0,
|
||||||
"total": 697
|
"total": 697
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metric_key": "mean_iou",
|
"metric_key": "mean_iou",
|
||||||
"null_values": 90,
|
"null_values": 90,
|
||||||
"total": 697
|
"total": 697
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metric_key": "precision",
|
"metric_key": "precision",
|
||||||
"null_values": 58,
|
"null_values": 58,
|
||||||
"total": 697
|
"total": 697
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"metric_key": "recall",
|
"metric_key": "recall",
|
||||||
"null_values": 1,
|
"null_values": 1,
|
||||||
"total": 697
|
"total": 697
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"migration_heads": [
|
"migration_heads": [
|
||||||
"202607260001"
|
"202607260001"
|
||||||
],
|
],
|
||||||
"model_run_summary": [
|
"model_run_summary": [
|
||||||
{
|
{
|
||||||
"analysis_type": "detection",
|
"analysis_type": "detection",
|
||||||
"count": 1144,
|
"count": 1144,
|
||||||
"model_name": "yolo-configured",
|
"model_name": "yolo-configured",
|
||||||
"model_version": "",
|
"model_version": "",
|
||||||
"status": "success"
|
"status": "success"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"analysis_type": "detection",
|
"analysis_type": "detection",
|
||||||
"count": 2,
|
"count": 2,
|
||||||
"model_name": "yolo-configured",
|
"model_name": "yolo-configured",
|
||||||
"model_version": "",
|
"model_version": "",
|
||||||
"status": "failed"
|
"status": "failed"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"postgis_version": "POSTGIS=\"3.6.4 94d984b\" [EXTENSION] PGSQL=\"160\" GEOS=\"3.11.1-CAPI-1.17.1\" PROJ=\"9.1.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/tmp/proj DATABASE_PATH=/usr/share/proj/proj.db\" LIBXML=\"2.9.14\" LIBJSON=\"0.16\" LIBPROTOBUF=\"1.4.1\" WAGYU=\"0.5.0 (Internal)\" (core procs from \"3.4.3 e365945\" need upgrade) TOPOLOGY (topology procs from \"3.4.3 e365945\" need upgrade)",
|
"postgis_version": "POSTGIS=\"3.6.4 94d984b\" [EXTENSION] PGSQL=\"160\" GEOS=\"3.11.1-CAPI-1.17.1\" PROJ=\"9.1.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/tmp/proj DATABASE_PATH=/usr/share/proj/proj.db\" LIBXML=\"2.9.14\" LIBJSON=\"0.16\" LIBPROTOBUF=\"1.4.1\" WAGYU=\"0.5.0 (Internal)\" (core procs from \"3.4.3 e365945\" need upgrade) TOPOLOGY (topology procs from \"3.4.3 e365945\" need upgrade)",
|
||||||
"source_summary": [
|
"source_summary": [
|
||||||
{
|
{
|
||||||
"count": 1751,
|
"count": 1751,
|
||||||
"reference_count": 660,
|
"reference_count": 660,
|
||||||
"source_name": "manual",
|
"source_name": "manual",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 339,
|
"count": 339,
|
||||||
"reference_count": 0,
|
"reference_count": 0,
|
||||||
"source_name": "vmm_flood_hazard",
|
"source_name": "vmm_flood_hazard",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 273,
|
"count": 273,
|
||||||
"reference_count": 273,
|
"reference_count": 273,
|
||||||
"source_name": "vmm_vha_bathymetry_profiles",
|
"source_name": "vmm_vha_bathymetry_profiles",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 210,
|
"count": 210,
|
||||||
"reference_count": 0,
|
"reference_count": 0,
|
||||||
"source_name": "department_omgeving_thematic_raster",
|
"source_name": "department_omgeving_thematic_raster",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 179,
|
"count": 179,
|
||||||
"reference_count": 179,
|
"reference_count": 179,
|
||||||
"source_name": "grb",
|
"source_name": "grb",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 168,
|
"count": 168,
|
||||||
"reference_count": 0,
|
"reference_count": 0,
|
||||||
"source_name": "digitaal_vlaanderen_orthophoto",
|
"source_name": "digitaal_vlaanderen_orthophoto",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 107,
|
"count": 107,
|
||||||
"reference_count": 0,
|
"reference_count": 0,
|
||||||
"source_name": "spw_orthophoto",
|
"source_name": "spw_orthophoto",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 68,
|
"count": 68,
|
||||||
"reference_count": 68,
|
"reference_count": 68,
|
||||||
"source_name": "spw_picc",
|
"source_name": "spw_picc",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 60,
|
"count": 60,
|
||||||
"reference_count": 0,
|
"reference_count": 0,
|
||||||
"source_name": "digitaal_vlaanderen_dhmv",
|
"source_name": "digitaal_vlaanderen_dhmv",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 36,
|
"count": 36,
|
||||||
"reference_count": 36,
|
"reference_count": 36,
|
||||||
"source_name": "urbis",
|
"source_name": "urbis",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 26,
|
"count": 26,
|
||||||
"reference_count": 0,
|
"reference_count": 0,
|
||||||
"source_name": "urbis_orthophoto",
|
"source_name": "urbis_orthophoto",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 26,
|
"count": 26,
|
||||||
"reference_count": 26,
|
"reference_count": 26,
|
||||||
"source_name": "waterinfo",
|
"source_name": "waterinfo",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 25,
|
"count": 25,
|
||||||
"reference_count": 25,
|
"reference_count": 25,
|
||||||
"source_name": "department_omgeving_land_use",
|
"source_name": "department_omgeving_land_use",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 21,
|
"count": 21,
|
||||||
"reference_count": 21,
|
"reference_count": 21,
|
||||||
"source_name": "historical_landuse",
|
"source_name": "historical_landuse",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 18,
|
"count": 18,
|
||||||
"reference_count": 18,
|
"reference_count": 18,
|
||||||
"source_name": "agentschap_landbouw_zeevisserij_agricultural_parcels",
|
"source_name": "agentschap_landbouw_zeevisserij_agricultural_parcels",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 15,
|
"count": 15,
|
||||||
"reference_count": 15,
|
"reference_count": 15,
|
||||||
"source_name": "statbel",
|
"source_name": "statbel",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 13,
|
"count": 13,
|
||||||
"reference_count": 13,
|
"reference_count": 13,
|
||||||
"source_name": "dov_soil_map",
|
"source_name": "dov_soil_map",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 12,
|
"count": 12,
|
||||||
"reference_count": 12,
|
"reference_count": 12,
|
||||||
"source_name": "inbo_bwk_natura2000",
|
"source_name": "inbo_bwk_natura2000",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 7,
|
"count": 7,
|
||||||
"reference_count": 0,
|
"reference_count": 0,
|
||||||
"source_name": "spw_walous_land_cover",
|
"source_name": "spw_walous_land_cover",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 6,
|
"count": 6,
|
||||||
"reference_count": 0,
|
"reference_count": 0,
|
||||||
"source_name": "vrbg",
|
"source_name": "vrbg",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 5,
|
"count": 5,
|
||||||
"reference_count": 1,
|
"reference_count": 1,
|
||||||
"source_name": "fixture",
|
"source_name": "fixture",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 4,
|
"count": 4,
|
||||||
"reference_count": 4,
|
"reference_count": 4,
|
||||||
"source_name": "ngi_adminvector",
|
"source_name": "ngi_adminvector",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 3,
|
"count": 3,
|
||||||
"reference_count": 0,
|
"reference_count": 0,
|
||||||
"source_name": "map_selection",
|
"source_name": "map_selection",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 1,
|
"count": 1,
|
||||||
"reference_count": 1,
|
"reference_count": 1,
|
||||||
"source_name": "digitaal_vlaanderen_buildings_addresses_register",
|
"source_name": "digitaal_vlaanderen_buildings_addresses_register",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 1,
|
"count": 1,
|
||||||
"reference_count": 1,
|
"reference_count": 1,
|
||||||
"source_name": "rbins_marine_reporting_units",
|
"source_name": "rbins_marine_reporting_units",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 1,
|
"count": 1,
|
||||||
"reference_count": 1,
|
"reference_count": 1,
|
||||||
"source_name": "rbins_msp_2026",
|
"source_name": "rbins_msp_2026",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 1,
|
"count": 1,
|
||||||
"reference_count": 0,
|
"reference_count": 0,
|
||||||
"source_name": "spw_bathymetry",
|
"source_name": "spw_bathymetry",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"count": 1,
|
"count": 1,
|
||||||
"reference_count": 0,
|
"reference_count": 0,
|
||||||
"source_name": "spw_terrain",
|
"source_name": "spw_terrain",
|
||||||
"status": "ready"
|
"status": "ready"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"table_counts": {
|
"table_counts": {
|
||||||
"analysis_runs": 1146,
|
"analysis_runs": 1146,
|
||||||
"aoi_operation_partitions": 61,
|
"aoi_operation_partitions": 61,
|
||||||
"aoi_operations": 4,
|
"aoi_operations": 4,
|
||||||
"areas": 387,
|
"areas": 387,
|
||||||
"dataset_versions": 1671,
|
"dataset_versions": 1671,
|
||||||
"datasets": 3377,
|
"datasets": 3377,
|
||||||
"detection_reviews": 0,
|
"detection_reviews": 0,
|
||||||
"detections": 299233,
|
"detections": 299233,
|
||||||
"exports": 768,
|
"exports": 768,
|
||||||
"jobs": 4460,
|
"jobs": 4460,
|
||||||
"metrics": 4182,
|
"metrics": 4182,
|
||||||
"projects": 1097,
|
"projects": 1097,
|
||||||
"quality_checks": 697,
|
"quality_checks": 697,
|
||||||
"segmentations": 0,
|
"segmentations": 0,
|
||||||
"vector_features": 6689447
|
"vector_features": 6689447
|
||||||
},
|
},
|
||||||
"version": "PostgreSQL 16.14 (Debian 16.14-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit"
|
"version": "PostgreSQL 16.14 (Debian 16.14-1.pgdg12+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit"
|
||||||
},
|
},
|
||||||
"generated_at": "2026-08-01T16:03:11.003029+00:00",
|
"generated_at": "2026-08-01T16:03:11.003029+00:00",
|
||||||
"mode": "read_only",
|
"mode": "read_only",
|
||||||
"runtime": {
|
"runtime": {
|
||||||
"cuda": {
|
"cuda": {
|
||||||
"available": true,
|
"available": true,
|
||||||
"device_count": 1,
|
"device_count": 1,
|
||||||
"device_names": [
|
"device_names": [
|
||||||
"NVIDIA GeForce RTX 4080 SUPER"
|
"NVIDIA GeForce RTX 4080 SUPER"
|
||||||
],
|
],
|
||||||
"runtime_version": "12.8"
|
"runtime_version": "12.8"
|
||||||
},
|
},
|
||||||
"packages": {
|
"packages": {
|
||||||
"fastapi": "0.139.2",
|
"fastapi": "0.139.2",
|
||||||
"geoalchemy2": "0.20.0",
|
"geoalchemy2": "0.20.0",
|
||||||
"geointel-backend": "0.1.0",
|
"geointel-backend": "0.1.0",
|
||||||
"geopandas": "1.1.4",
|
"geopandas": "1.1.4",
|
||||||
"pyproj": "3.7.2",
|
"pyproj": "3.7.2",
|
||||||
"rasterio": "1.4.4",
|
"rasterio": "1.4.4",
|
||||||
"shapely": "2.1.2",
|
"shapely": "2.1.2",
|
||||||
"sqlalchemy": "2.0.51",
|
"sqlalchemy": "2.0.51",
|
||||||
"torch": "2.11.0+cu128",
|
"torch": "2.11.0+cu128",
|
||||||
"torchvision": "0.26.0+cu128",
|
"torchvision": "0.26.0+cu128",
|
||||||
"ultralytics": "8.4.99"
|
"ultralytics": "8.4.99"
|
||||||
},
|
},
|
||||||
"platform": "Linux-6.12.54-Unraid-x86_64-with-glibc2.36",
|
"platform": "Linux-6.12.54-Unraid-x86_64-with-glibc2.36",
|
||||||
"python": "3.11.2"
|
"python": "3.11.2"
|
||||||
},
|
},
|
||||||
"schema_version": 1,
|
"schema_version": 1,
|
||||||
"statement_timeout_ms": 30000,
|
"statement_timeout_ms": 30000,
|
||||||
"storage_references": {
|
"storage_references": {
|
||||||
"checked_count": 5816,
|
"checked_count": 5816,
|
||||||
"missing_count": 0,
|
"missing_count": 0,
|
||||||
"missing_records": [],
|
"missing_records": [],
|
||||||
"records_truncated": false,
|
"records_truncated": false,
|
||||||
"scope": "direct datasets, dataset_versions and exports storage_path columns"
|
"scope": "direct datasets, dataset_versions and exports storage_path columns"
|
||||||
},
|
},
|
||||||
"storage_root": "/app/storage"
|
"storage_root": "/app/storage"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user