Skip to content

feat(platform-core): Vehicle HAL runtime wiring (store→provider→adapter→HAL)#65

Merged
selimmujdeci merged 3 commits into
mainfrom
feat/vehicle-hal-runtime-wiring
Jul 12, 2026
Merged

feat(platform-core): Vehicle HAL runtime wiring (store→provider→adapter→HAL)#65
selimmujdeci merged 3 commits into
mainfrom
feat/vehicle-hal-runtime-wiring

Conversation

@selimmujdeci

Copy link
Copy Markdown
Owner

Amaç

useUnifiedVehicleStore (fused worker/CAN/OBD/GPS) veri akışını, daha önce merge edilmiş salt-okunur provider + adapter foundation üzerinden gerçek vehicleHal singleton'ına ayna modunda bağlar. Bu PR yalnız Vehicle HAL veri girişini aktive eder.

useUnifiedVehicleStore
  → createUnifiedVehicleStoreProvider   (PR #53)
  → VehicleHalProviderAdapter           (PR #51)
  → vehicleHal singleton                (PR #49)

Kapsam DIŞI (bilinçli — ayrı PR'lar)

Event Bus wiring · Capability Registry wiring · Platform Kernel servis kaydı · Deep Scan bağlama · tüketicilerin HAL'e taşınması · UI · native/OBD/CAN · poll frekansı.

SystemBoot entegrasyonu (additive, 13 satır)

Wave 2'de VehicleDataLayer'dan SONRA, SystemOrchestrator'dan ÖNCE _reg ile kaydedilir → LIFO shutdown'da store hâlâ ayaktayken adapter/provider dispose olur. Wave sırası (1→2→3→4) değişmez; legacy servisler Kernel'e taşınmaz.

Instance / sahiplik

  • Tek instance: modül-düzeyi aktif-kayıt guard → duplicate start ikinci provider/adapter/subscription açmaz (no-op cleanup döner). HMR/restart bayat kaydı otomatik serbest bırakılır; cleanup yalnız kendi kaydını siler → boot→shutdown→boot güvenli.
  • Sahiplik: provider + adapter wiring'e ait (cleanup dispose eder). vehicleHal paylaşılan singleton → cleanup HAL'i dispose etmez (çift-dispose yok).

Sinyaller

Akan (store'da gerçekten var): speed · rpm · fuel_level · odometer · reverse · coolant_temp · oil_temp · throttle · battery_voltage · gear · ambient_temp · door_state · parking_brake.
TPMS yalnız gerçek 4-tuple veri varsa. ignition kaynağı YOK → ingest edilmez (supported=false, fail-closed). Metadata uydurulmaz; provider/adapter eşlemesi değiştirilmedi.

Performans

Yeni timer/polling yok (mevcut store subscribe akışı). Aynı değer → duplicate ingest yok (adapter O(1) son-değer dedupe). Hot-path'te JSON stringify / deep clone yok; tam snapshot klonlanmaz. Low-tier'da subscription sayısı 1.

Fail-soft

Store yoksa/bozuksa boot çökmez (tek logError + no-op cleanup, wiring kilitlenmez). Provider / adapter start / HAL-ingest hatası izole (tek sinyal bozuksa diğerleri sürer). Cleanup hatası shutdown'ı engellemez. Public API throw etmez. Hata hâlinde legacy store tüketicileri aynen çalışır.

Gözlemlenebilirlik

Bounded getVehicleHalWiringStatus()started / lastRefreshAt / ingestedSignalCount / refreshCount / activeSubscriptionCount / lastErrorCode (sabit kod). Ham telemetri veya prod log spam yok.

Doğrulama

  • npx tsc -b --noEmit temiz
  • ESLint: 0 hata
  • Yeni testler: 43 (platformCoreVehicleHalWiring.test.ts)
  • cleanup.services + cleanup.remote yeşil
  • Tam suite: 3360 test / 193 dosya yeşil
  • Production build başarılı

Ledger

docs/DEVICE_VALIDATION_LEDGER.md #49🔴 cihazda doğrulanmadı. Kabul ölçütleri: tek instance/subscription, hız-RPM-soğutma-voltaj HAL'e doğru akışı, duplicate ingest yok, reconnect/restart'ta subscription çoğalmaz, ignition supported=false kalır, boot regresyonu <50 ms, Xiaomi idle CPU regresyonu yok, Mali-400/K24 ayrıca ölçülür.

🤖 Generated with Claude Code

https://claude.ai/code/session_012M8LbxyAqd22EU1rqtTjft

Selim and others added 2 commits July 12, 2026 12:16
…er→HAL)

UnifiedVehicleStore veri akışı, hazır salt-okunur provider + adapter foundation
üzerinden gerçek vehicleHal singleton'ına ayna modunda bağlanır. Yalnız HAL veri
girişi aktive edilir: Event Bus / Capability Registry / Platform Kernel servis
kaydı / Deep Scan wiring ve tüketici migrasyonu KAPSAM DIŞI.

- platformCoreVehicleHalWiring: tek-instance guard (duplicate start ikinci
  subscription açmaz), idempotent cleanup, bounded status, fail-soft init.
- SystemBoot Wave 2: VehicleDataLayer'dan SONRA, SystemOrchestrator'dan ÖNCE
  _reg ile kaydedilir (LIFO shutdown'da store ayaktayken dispose olur).
- Sahiplik: provider+adapter wiring'in; paylaşılan vehicleHal DISPOSE EDİLMEZ.
- ignition kaynağı yok → ingest yok (supported=false); TPMS yalnız gerçek veri.
- Yeni timer/polling yok; O(1) dedupe; hot-path'te stringify/clone yok.
- Ledger #49 🔴 (cihazda doğrulanmadı).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012M8LbxyAqd22EU1rqtTjft
…ime-wiring

# Conflicts:
#	docs/DEVICE_VALIDATION_LEDGER.md
@vercel

vercel Bot commented Jul 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
car-launcher-pro Ready Ready Preview, Comment Jul 12, 2026 9:35am
carospro Ready Ready Preview, Comment Jul 12, 2026 9:35am

…aç/OBD yok)

Boot crash/ANR yok, cold start delta ~+24ms (<50ms hedefi), idle CPU regresyonu
gözlenmedi. Satır 🔴 KALIYOR: HAL sinyal akışı + ignition/TPMS fail-closed +
reconnect/stale gerçek araç/OBD gerektirir.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012M8LbxyAqd22EU1rqtTjft
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant