Mission Control

Artifacts

K
← Back to artifacts

UAS Database phase 1 Mission Control slice, implementation handoff

OtherReady For ReviewCreated Apr 24, 20263 min readFull screen ↗

What shipped

Implemented the first Mission Control UAS Database slice as a company-first browse and edit flow.

Product surface

  • New Mission Control nav entry: UAS Database
  • New index route: /uas-database
  • New detail route: /uas-database/companies/[id]
  • New API routes:
  • /api/uas-database/companies
  • /api/uas-database/companies/[id]

Core behavior

  • Company-only browse list, no mixed master list
  • Task-list-style scrolling company rows with:
  • search
  • Lantronix relevance filter
  • vertical filter
  • role filter
  • region filter
  • NDAA filter
  • QC filter
  • evidence confidence filter
  • validation issues filter
  • sort options
  • Company row opens detail page in a new tab
  • Company detail page supports editing and saving back to source JSON
  • Related products shown inline on company page
  • Customer segment context blended into company page, with segment selector and inline segment cards
  • Human-readable evidence field added as evidence_digest, plus linked structured evidence traceability below
  • QC implemented as qc_checked only
  • Review notes continue to use existing company notes
  • Previous / next review navigation uses list filters from query params to preserve review context

Data / schema changes

Updated company schema to support:

  • qc_checked: boolean
  • evidence_digest: string

Compatibility layer

UI naming is UAS Database. Data path stays compatible with the existing phase-1 dataset by resolving:

  1. ../data/uas-database if present
  2. fallback: ../data/lantronix-uas-workbench-phase1

Files touched

  • mission-control/lib/nav.ts
  • mission-control/components/layout/Sidebar.tsx
  • mission-control/lib/uas-database-types.ts
  • mission-control/lib/uas-database-store.ts
  • mission-control/app/api/uas-database/companies/route.ts
  • mission-control/app/api/uas-database/companies/[id]/route.ts
  • mission-control/components/uas-database/UasDatabaseWorkspace.tsx
  • mission-control/components/uas-database/CompanyDetailWorkspace.tsx
  • mission-control/app/(app)/uas-database/page.tsx
  • mission-control/app/(app)/uas-database/companies/[id]/page.tsx
  • data/lantronix-uas-workbench-phase1/schema/company.schema.json

Validation status

Completed

  • Source-level implementation completed for the new browse, detail, and save flow.
  • The UAS Database bundle was rebuilt successfully.
  • Mission Control service was restarted successfully.
  • Runtime validation now confirms:
  • /uas-database returns 200
  • /api/uas-database/companies returns 200
  • a company detail route resolves successfully, validated with company:parallel-flight-technologies
  • The earlier blocker was fixed in mission-control/lib/uas-database-store.ts: company records are now normalized before list rendering, and the sanitizer defaults missing legacy array / object fields instead of assuming target_customer_segment_ids, evidence.source_ids, ndaa_profile, and related fields are always present.

Optional follow-up

From workspace/mission-control:

bash
npm run lint

How Pete should test now

  1. Open Mission Control.
  2. Click UAS Database in the left nav.
  3. Confirm the company list loads and filters work.
  4. Open a company row in a new tab.
  5. Edit fields such as summary, QC checked, notes, or evidence digest.
  6. Save changes.
  7. Re-open the same company and confirm the JSON-backed changes persisted.
  8. Confirm related products, customer segment context, evidence traceability, and previous / next review navigation are visible.

Known gaps

  • The detail page edits company fields only. Related product, customer segment, and evidence records are view-only in this first slice.
  • Evidence digest is schema-backed and editable, but existing records are not pre-seeded with digest text. The page shows a derived fallback summary when the field is empty.
  • data/uas-database/ compatibility is in place, but the physical dataset still currently lives under the legacy phase-1 path.