* feat(ops): implement production operations infrastructure dashboard (phase 1)
- Add backend read-only infrastructure metrics collector (CPU, RAM, swap, disk with 80%/90% thresholds, uptime, network cumulative totals, systemd service allowlist) using standard library only (no psutil).
- Register GET /api/v1/ops/infrastructure endpoint guarded by require_ops_roles('operator', 'owner').
- Add Next.js API proxy route /api/ops/infrastructure validating ops session cookie and forwarding to backend.
- Implement dark-surface OperationsInfrastructure component in website admin console with 30s visibility-gated polling and overlap prevention.
- Add comprehensive backend and frontend test suites (8 backend tests, 43 ops-experience tests).
* fix(ops): query internal website version endpoint defensively on verified port 3001
- Query internal website GET /api/version on verified production listener http://127.0.0.1:3001 (configurable via WEBSITE_INTERNAL_URL).
- Parse JSON defensively with a 4096-byte response bound and validate exact 40-char hex revision pattern.
- Add comprehensive tests for valid, missing, malformed, oversized, and unreachable version responses.
- Do not expose internal URLs or connection errors in API responses.
* fix(ops): map postgresql service to cluster unit postgresql@14-main and preserve health errors
- Map public logical service ID 'postgresql' to fixed systemd unit 'postgresql@14-main'.
- Reject direct systemd unit names and arbitrary service names.
- Preserve HTTP 5xx responses as degraded on /api/health before root fallback.
- Add regression tests for postgresql unit mapping, API response name stability, and health 5xx preservation.
---------
Co-authored-by: Developer <dev@example.com>
|
||
|---|---|---|
| .agents/skills | ||
| .continue/mcpServers | ||
| .github | ||
| .token-optimizer/wiki | ||
| .wrangler/cache | ||
| android | ||
| assets | ||
| backend/motorsignal_api | ||
| cloudflare/motorsignal-r2-worker | ||
| docs | ||
| field_test_export_ride3_unzipped | ||
| field_test_export_ride4_unzipped | ||
| field_test_export_unzipped/field_test_session | ||
| firebase/emulator-tests | ||
| ios | ||
| lib | ||
| linux | ||
| macos | ||
| ride_logs | ||
| scripts | ||
| server/waze_relay | ||
| test | ||
| tool | ||
| web | ||
| website | ||
| windows | ||
| .firebaserc | ||
| .gitignore | ||
| .metadata | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| DESIGN.md | ||
| DEVELOPMENT_HISTORY.md | ||
| FEATURES_CHANGELOG.md | ||
| FIELD_TESTING.md | ||
| MOTORSIGNAL_AI_ENVIRONMENT_AUDIT.md | ||
| MOTORSIGNAL_CLOUD_ARCHITECTURE.md | ||
| MOTORSIGNAL_FINAL_CLOUD_DATA_MODEL.md | ||
| MOTORSIGNAL_FREE_PRO_SPEC.md | ||
| MOTORSIGNAL_PHASE_2B_FIREBASE_SETUP.md | ||
| MOTORSIGNAL_PHASE_2D_R2_MIGRATION.md | ||
| MOTORSIGNAL_PHASE_2E_PRODUCTION_SETUP.md | ||
| MOTORSIGNAL_PHASE_2_CLOUD_SYNC_DISCOVERY.md | ||
| MOTORSIGNAL_PRODUCT_ROADMAP.md | ||
| MOTORSIGNAL_SYNC_ARCHITECTURE_GAP_AUDIT.md | ||
| PHASE9_AUDIT_REPORT.md | ||
| PHASE10_FIELD_TEST_REPORT.md | ||
| PHASE11_5_TORTURE_SOAK_AUDIT_REPORT.md | ||
| PHASE11_FIELD_TEST_READINESS_REPORT.md | ||
| README.md | ||
| TELEMETRY_ARCHITECTURE.md | ||
| TELEMETRY_VALIDATION.md | ||
| analysis_options.yaml | ||
| field_test_export.zip | ||
| field_test_export_ride3.zip | ||
| field_test_export_ride4.zip | ||
| firebase.emulator.json | ||
| firebase.json | ||
| firestore.indexes.json | ||
| firestore.rules | ||
| fix_exceptions.dart | ||
| generate_icon.dart | ||
| project_summary.md | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| release_manifest.json | ||
| serve_apk.js | ||
| skills-lock.json | ||
README.md
Motorcycle Digital Dashboard 🏍️
A high-performance, dark-themed telemetry and analytics dashboard for motorcycles, built with Flutter.
Features
- Real-time Telemetry: Uses GPS and IMU sensors to calculate speed, lean angle (bank), and acceleration/braking G-forces.
- Automatic Ride Recording: Automatically starts tracking when movement is detected and logs your trip.
- Performance Analysis: Automatically measures 0-60 MPH and 0-100 MPH acceleration times.
- Ride History & Replay: View past rides, replay telemetry synchronized with a Google Map.
- Audio Alerts: Text-to-speech alerts for milestones and ride states to keep your eyes on the road.
- Data Export: Export your ride telemetry to
.csvor.gpxfor external analysis.
Setup & Building
- Ensure you have the Flutter SDK installed.
- Clone this repository.
- Run
flutter pub getto fetch dependencies. - Add your Google Maps API key in
android/app/src/main/AndroidManifest.xml(replaceYOUR_API_KEY_HERE). - Run
flutter runorflutter build apk.
Architecture
- Framework: Flutter (Material 3).
- State Management: Riverpod for reactive UI state.
- Database: Drift (SQLite) for robust, local storage.
- Sensor Fusion: Complementary filter combining accelerometer and gyroscope for precise lean angles.
Disclaimer
This application relies on the accuracy of your smartphone's internal sensors. It should be securely mounted to the motorcycle using a rigid mount. Do not interact with the screen while riding. Ride safely!