Files
terra-view/docs/ROADMAP.md
T
2026-06-05 06:37:09 +00:00

3.4 KiB

Terra-View Roadmap

Living document — captures known deferred work, in-flight initiatives, and longer-term ideas. Bump items up/down or strike them through as priorities shift. Source of truth for "what's next" should be this file plus the ## Current Development Focus block in CLAUDE.md.

Last updated: 2026-06-05 (Terra-View v0.13.3)


In Flight

Work that's started or has obvious next steps in the code.

  • SFM Integration Phase 2 — device control — expose /device/* (start, stop, erase, push-config) through the Terra-View proxy. Blocked on SFM growing an auth layer; placeholder TODOs already in backend/services/device_controller.py (lines 73, 109, 207, 282, 582).
  • Calibration sync from SFM events — done in v0.13.x. Daily 03:15 job + Settings "Sync now" button. Future: surface "last sync" timestamp on unit detail; per-unit "sync this one" action.
  • Synology NAS deployment — doc lives at docs/SYNOLOGY_DEPLOYMENT.md. Need to actually deploy
    • write up what tripped us up vs. the doc's expectations.

Near-Term

Concrete things scoped but not started.

  • Migrate GPS coord parse in photos.py — currently writes to dead RosterUnit.coordinates field. Should write to the active MonitoringLocation instead (matches the location-as-truth refactor done elsewhere). Helper: backend/services/unit_location.py.
  • Phase 3 — drag-to-resize deployment bars on the fleet-wide deployment-history Gantt (/tools/deployment-history). Phase 2 (the calendar + Gantt tabs) shipped in v0.12.0.
  • Phase 5c — swap-detection daily job — placeholder card already in templates/tools.html:162. Auto-detects unit swaps in the field (BE12345 → BE67890 at the same project+location) from operator-typed metadata. Pairs with a notification inbox.
  • Geocoding for address strings — TODO in templates/dashboard.html:913. Lets locations without explicit coordinates still appear on maps.
  • ModemManager backendbackend/routers/modem_dashboard.py:279 has a TODO for querying a real modem backend. Currently the modem dashboard is mostly read-only metadata.

Medium-Term

Bigger features, sketched but not designed in detail.

  • Alerting — email/SMS for missing units, calibration-expiring-soon, sync failures. README's "Future Enhancements" has had this for a while; would pair well with the existing UserPreferences thresholds.
  • Multi-user auth — currently single-tenant, no login. Probably the prerequisite for any cloud-hosted multi-customer deployment.
  • Notification inbox — central place for swap-detection alerts, sync errors, calibration warnings, FT-flag review queue, etc.
  • Audit log UIUnitHistory already records everything; expose a filterable view.

Long-Term / Wishlist

Speculative. Promote up the list once there's a concrete need.

  • PostgreSQL backend for larger deployments (SQLite is fine for now)
  • Advanced filtering / saved searches on roster + events
  • Export roster in additional formats (XLSX, GeoJSON)
  • Public-facing project status pages (read-only, share-link gated)
  • SLM module parity with seismographs — modal-based event/measurement detail similar to SFM modal
  • Weather station / accelerometer / GPS tracker modules (new device-type modules following the SLMM pattern — see CLAUDE.md → "Adding a New Device Type Module")

Done / Reference

For shipped items, see CHANGELOG.md. For architecture decisions, see CLAUDE.md.