feat(timeline): multi-day historical fire progression timeline slider (Issue 17) #27

Merged
yuris merged 1 commit from feat/issue-17-timeline-slider into main 2026-10-14 21:59:22 +00:00
Owner

Summary

Implements Issue 17: Multi-day historical fire progression timeline slider.

  • src/lib/services/sipongi-historical.ts: Parameterized query service for historical intervals (24h, 48h, 72h, 168h / 7 days) with in-memory caching and per-feature age decay computation (age_hours, age_tier).
  • src/components/controls/timeline-slider.tsx: Interactive timeline scrubbing bar with preset buttons (24 Jam, 48 Jam, 72 Jam, 7 Hari), automated chronological playback with play/pause and 1x/2x speed controls, and live point count readouts.
  • src/components/map/layers/hotspots-layer.tsx: Added GPU-accelerated age decay opacity interpolation (circle-opacity fading from 1.0 down to 0.35 over 72h) and setHotspotsTimeFilter method for zero-re-download filtering.
  • src/components/dashboard/dashboard-client.tsx: Wired timeline scrubbing and preset switching into MapView and HUD.
  • sipongi-historical.test.ts: Vitest suite verifying age decay tiering and chronological filtering.

Closes #17

## Summary Implements Issue 17: Multi-day historical fire progression timeline slider. - `src/lib/services/sipongi-historical.ts`: Parameterized query service for historical intervals (24h, 48h, 72h, 168h / 7 days) with in-memory caching and per-feature age decay computation (`age_hours`, `age_tier`). - `src/components/controls/timeline-slider.tsx`: Interactive timeline scrubbing bar with preset buttons (24 Jam, 48 Jam, 72 Jam, 7 Hari), automated chronological playback with play/pause and 1x/2x speed controls, and live point count readouts. - `src/components/map/layers/hotspots-layer.tsx`: Added GPU-accelerated age decay opacity interpolation (`circle-opacity` fading from 1.0 down to 0.35 over 72h) and `setHotspotsTimeFilter` method for zero-re-download filtering. - `src/components/dashboard/dashboard-client.tsx`: Wired timeline scrubbing and preset switching into MapView and HUD. - `sipongi-historical.test.ts`: Vitest suite verifying age decay tiering and chronological filtering. Closes #17
feat(timeline): multi-day historical fire progression timeline slider (Issue 17)
All checks were successful
CI / Verify Quality & Build (pull_request) Successful in 1m0s
5e94b21e1d
yuris-bot approved these changes 2026-10-14 21:58:33 +00:00
yuris-bot left a comment

Review for Issue 17

PR 27 implements the multi-day historical fire progression timeline slider.
Verdict is APPROVE.

The sipongi historical service caches intervals for 24h, 48h, 72h, and 7 days.
Age decay hours are computed per hotspot feature.
GPU accelerated age decay fades older fires from 1.0 down to 0.35 opacity.
The timeline slider controls include automated playback with play and pause.
Playback speed toggles between 1x and 2x.
Scrubbing updates the map layer filter client side with zero network requests.
The carto table and KPI ribbon dynamically update based on the temporal scrub limit.

All 42 unit tests pass across 6 test suites.
The vp check tool reports zero lint errors across 235 files.
Standalone production build succeeds.
All acceptance criteria are satisfied.
Merge decision is approved.

# Review for Issue 17 PR 27 implements the multi-day historical fire progression timeline slider. Verdict is APPROVE. The sipongi historical service caches intervals for 24h, 48h, 72h, and 7 days. Age decay hours are computed per hotspot feature. GPU accelerated age decay fades older fires from 1.0 down to 0.35 opacity. The timeline slider controls include automated playback with play and pause. Playback speed toggles between 1x and 2x. Scrubbing updates the map layer filter client side with zero network requests. The carto table and KPI ribbon dynamically update based on the temporal scrub limit. All 42 unit tests pass across 6 test suites. The vp check tool reports zero lint errors across 235 files. Standalone production build succeeds. All acceptance criteria are satisfied. Merge decision is approved.
yuris merged commit 9d689b1e4b into main 2026-10-14 21:59:22 +00:00
Sign in to join this conversation.
No reviewers
No labels
backend
frontend
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
yuris/titik-gambut-next!27
No description provided.