implementation handoff

UAS Database First-Class Domain Tranche 2 Handoff

2026-04-27

Tranche 2 is now live. The UAS Database has a staging lane under data/uas-database/staging/, proposal records can be created and reviewed inside Mission Control, staged company proposals can be promoted into canonical company records, and accepted promotions now create git-backed history commits in the OpenClaw repo. The first end-to-end validation succeeded after fixing two real blockers: a staging UI type mismatch and a history helper that was resolving the wrong git root.

What changed

Staging data model

Created a first-class staging lane under the canonical UAS Database root:

Proposal format supports:

Service and API

Added server-side support for:

Mission Control surface

Added a review surface at:

That surface is enough for operator use in tranche 2:

Files changed

Mission Control routes and UI

Mission Control domain logic

Data

Proposal format

Proposal records are stored as JSON under data/uas-database/staging/.

Key fields:

This is enough to support staging, diff-style human review, conflict detection, and promotion history.

Promotion flow

  1. Operator creates a staged proposal against a canonical company.
  2. Proposal stores the base canonical updatedAtMs value.
  3. Proposal detail view compares the stored base timestamp to the current canonical file timestamp.
  4. If canonical changed, promotion is blocked with a conflict.
  5. If canonical is unchanged and validation passes, promotion:
  1. If promotion fails after file writes begin, the code rolls back the canonical company file and proposal file to their original raw contents.

History behavior

Accepted canonical promotions now create git commits in the parent OpenClaw repo, not the workspace subdirectory.

Live validation produced commit:

Commit message format:

This provides lightweight durable history without introducing a separate revision system.

Validation

Build and runtime

Commands run:

Live checks passed:

Successful promotion validation:

Real blockers fixed during tranche 2

  1. StagingWorkspace.tsx referenced the wrong proposal detail type name, which broke the build.
  2. history.ts assumed the git repo lived at workspace/.git; the real repo root is one level up at /Users/vinny/.openclaw.

Both are fixed and validated.

Remaining gaps

Tranche 2 is complete, but a few things are intentionally still future work:

Recommendation

Move JAM-49 to needs-review and assign Pete. Tranche 2 is ready for review.

Best next build target after review: