Add demo raster fixture workflow
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled

This commit is contained in:
Codex
2026-06-23 00:12:20 +02:00
parent 4ef2d82cfa
commit ca730edc1c
13 changed files with 208 additions and 14 deletions
+1
View File
@@ -260,6 +260,7 @@ AI Lab run controls explicitly explain when no raster dataset is available, inst
- The Data workspace surfaces selected project, AOI and dataset context before creation/upload forms, then separates form and catalog/list regions for faster scanning.
- The Export Center includes a handoff readiness summary, grouped artifact actions and provenance-rich export cards so report/GeoJSON handoff stays understandable in long-running demo projects.
- The Export Center highlights the latest project report, project metadata, dataset GeoJSON, detection GeoJSON and segmentation GeoJSON artifacts with direct preview/download actions.
- The offline demo workflow now selects the seeded raster fixture for Detection and Segmentation Lab prerequisites while keeping the candidate vector dataset open for Data/Map/Export review.
## Workbench shell refactor
+2
View File
@@ -363,7 +363,9 @@ function App(): JSX.Element {
setQaCandidateDatasetId,
setQaReferenceDatasetId,
setQaAreaId,
setSelectedDetectionDatasetId,
setDetectionReferenceDatasetId,
setSelectedSegmentationDatasetId,
setSegmentationReferenceDatasetId,
setErrorMessage,
})
+9
View File
@@ -17,7 +17,9 @@ interface DemoWorkflowOptions {
setQaCandidateDatasetId: (datasetId: string) => void
setQaReferenceDatasetId: (datasetId: string) => void
setQaAreaId: (areaId: string) => void
setSelectedDetectionDatasetId: (datasetId: string) => void
setDetectionReferenceDatasetId: (datasetId: string) => void
setSelectedSegmentationDatasetId: (datasetId: string) => void
setSegmentationReferenceDatasetId: (datasetId: string) => void
setErrorMessage: (message: string | null) => void
}
@@ -36,7 +38,9 @@ export function useDemoWorkflow({
setQaCandidateDatasetId,
setQaReferenceDatasetId,
setQaAreaId,
setSelectedDetectionDatasetId,
setDetectionReferenceDatasetId,
setSelectedSegmentationDatasetId,
setSegmentationReferenceDatasetId,
setErrorMessage,
}: DemoWorkflowOptions) {
@@ -55,7 +59,9 @@ export function useDemoWorkflow({
setQaCandidateDatasetId(result.candidate_dataset_id)
setQaReferenceDatasetId(result.reference_dataset_id)
setQaAreaId(result.area_id)
setSelectedDetectionDatasetId(result.raster_dataset_id ?? '')
setDetectionReferenceDatasetId(result.reference_dataset_id)
setSelectedSegmentationDatasetId(result.raster_dataset_id ?? '')
setSegmentationReferenceDatasetId(result.reference_dataset_id)
setDemoWorkflowMessage(result.message)
await loadProjects(result.project_id)
@@ -67,8 +73,11 @@ export function useDemoWorkflow({
loadExports(result.project_id),
])
const candidateDataset = projectData?.datasets.find((dataset) => dataset.id === result.candidate_dataset_id)
const rasterDataset = projectData?.datasets.find((dataset) => dataset.id === result.raster_dataset_id)
if (candidateDataset) {
await loadDatasetDetails(result.project_id, candidateDataset)
} else if (rasterDataset) {
await loadDatasetDetails(result.project_id, rasterDataset)
}
} catch (error) {
setErrorMessage(formatError(error, 'Failed to load demo workflow'))
+1
View File
@@ -40,6 +40,7 @@ export interface DemoWorkflowResponse {
area_id: string
reference_dataset_id: string
candidate_dataset_id: string
raster_dataset_id?: string | null
quality_check_id: string
metric_count: number
status: string