feat(mobile): recorder time machine, detections, Moments, dossiers and instant start

Records every live contact into an IndexedDB ring buffer so scrubbing
back shows real past positions with ghost trails; playback at up to
600x; timeline pips from every layer. Detects circling aircraft and
quake clusters on live data and opens them as Moments. Adds the
illustrative Empire State hero Moment over real NYC footprints,
entity dossiers, search and link graphs, geolocated reactions,
skyNow, and a bundled real-data snapshot for an instant first frame.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01VVYRAqiQj9Y1V9ZfG1RcDH
This commit is contained in:
Claude committed 2026-10-23 07:52:10 +00:00
1 parent a720b10913
commit 5aba6bab58
8 files changed
+92 -13

No files matched your search

+8 -4
View File
@@ -1502,12 +1502,16 @@ export async function createGlobe(container, options = {}) {
},
async momentOfTheDay() {
const live = liveMoments()
.filter(
(m) => m.tracks.length >= 2 || m.time.end - m.time.start > 5 * 60_000,
// Worth a daily replay: several aircraft circling one place, or an
// emergency with at least 5 min of track. A lone orbit is not enough.
const best = liveMoments()
.filter((m) =>
m.situationId
? m.tracks.length >= 2
: m.time.end - m.time.start > 5 * 60_000,
)
.sort((a, b) => b.tracks.length - a.tracks.length);
return live[0] || hero();
return best[0] || hero();
},
async playMoment(