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

+7 -6
View File
@@ -585,16 +585,18 @@ export function createStage({ scene, requestRender, emit }) {
}),
);
fill.show = false;
const edgeMat = Cesium.Material.fromType('Color', {
color: css(color, c.firstEyes ? 0.95 : 0.6),
});
// One material per polyline: a collection destroys each on removal.
const edgeMat = () =>
Cesium.Material.fromType('Color', {
color: css(color, c.firstEyes ? 0.95 : 0.6),
});
const edges = [];
for (let k = 0; k < 4; k++)
edges.push(
lines.add({
positions: [origin, corners[k]],
width: c.firstEyes ? 1.8 : 1.1,
material: edgeMat,
material: edgeMat(),
show: false,
}),
);
@@ -602,7 +604,7 @@ export function createStage({ scene, requestRender, emit }) {
lines.add({
positions: [...corners, corners[0]],
width: c.firstEyes ? 2 : 1.2,
material: edgeMat,
material: edgeMat(),
show: false,
}),
);
@@ -631,7 +633,6 @@ export function createStage({ scene, requestRender, emit }) {
c,
fill,
edges,
edgeMat,
pin,
flash,
origin,