Migration status — M0 → M4
K8proposedJN retirement, phase by phase. No job changes systems mid-flight; event history migrates with the jobs.
M0 · Mirror — ACTIVE
read-only full-fidelity JN copy
M1 · Map
explicit JN→XOS field mapping, human-reviewed
M2 · Dual-write
short window, both systems
M3 · Cutover
writes flip to XOS ('who turns on first')
M4 · Retire
export, archive, cancel JN
JN mirror (M0)
11 minsince last synchealthy
Rows mirrored
48,112
Freshness SLO
< 15 min · 30d streak ✓
Read-only full-fidelity copy of JN into our own tables. Stale mirror = red tile on the admin home (K1).
Field-map coverage (M1)
61%of JN fields explicitly mapped or explicitly dropped
Human-reviewed JN→XOS mapping. Unmapped fields are listed, not ignored — "quietly gone" is the failure mode this phase exists to prevent.
Dual-write (M2)
OFFturns on for a short window once M1 coverage is signed off
Cutover unit = "who turns on first" — decided post-wireframes. Candidates on record: landscaping (smallest surface) vs. one roofing pipeline.
Cutover checklist (1/9)
The JN capability-replacement checklist (MD§9) — every JN capability needs a live XOS answer before any write cutover.
Born to die: this page's job is to make itself unnecessary. At M4 the mirror, this dashboard, and JN itself all retire together.