Skip to content

feat(deep-scan): Deep Scan Ignition Source Foundation#46

Merged
selimmujdeci merged 1 commit into
mainfrom
feat/deep-scan-ignition-source
Jul 11, 2026
Merged

feat(deep-scan): Deep Scan Ignition Source Foundation#46
selimmujdeci merged 1 commit into
mainfrom
feat/deep-scan-ignition-source

Conversation

@selimmujdeci

Copy link
Copy Markdown
Owner

Amaç

Deep Scan Runtime'ın üç durumlu ignitionConfirmed (true/false/null) alanını, mevcut araç sinyallerinden güvenli ve deterministik biçimde besleyecek bir Ignition Source katmanı. Yalnız kaynak sözleşmesi + saf resolver — gerçek orchestration, runtime wiring ve doğrudan kaynak entegrasyonu KAPSAM DIŞI (ayrı PR).

⚠️ Salt-okunur denetim bulgusu (kritik)

Kod tabanında DOĞRUDAN kontak/ACC/key-state yayan HİÇBİR kaynak YOK:

  • VAL NormalizedVehicleData: speed/reverse/rpm/batteryVolt/gearPos… — ignition yok
  • Hiworld CAN (HiworldProtocolParser.java): RPM/BATT_VOLT/GEAR/REVERSE/TEMPS var, açık ACC/IGN komutu yok
  • NativeHAL (AAOS VHAL plugin): speed/rpm/fuel/coolant/gear — ignition yok
  • useAssistantContextStore: status.ignition = null, "kontak durumu yayan sinyal YOK"
  • commandExecutor.ignitionOn: yalnız remote-command parametresi (OBD PID 0x01 yorumu), gerçek store kaynağı yok

Bu yüzden bu katman kontağı asla tek yardımcı sinyalden çıkarsamaz; doğrudan kaynak ileride eklenince sözleşmeye aynen oturur.

Tasarım

  • resolveIgnitionState(evidence, now) saf çözümleyici: yalnız authoritative kaynaklar (native_acc/can_ignition/engine_running/manual) onay verir; yardımcı (rpm/alternator/battery_voltage/obd_transport) tek başına asla ON üretmezunknown
  • Fail-closed: kesin doğrulanamazsa unknownconfirmed=null. Tehlikeli tekil varsayım (hız/RPM/voltaj/OBD-bağlı → ON) yasak
  • Fizik magic number uydurulmadı: kodda motor-çalışıyor RPM eşiği / alternatör voltaj eşiği yok → ham sayıya eşik uygulanmaz; yardımcı sinyaller çağıran tarafından bool'a yorumlanıp engine_running authoritative kanıtı olur (zero-trust)
  • Stale/zaman: observedAt (Date.now, VAL ile aynı taban); yaş > 5000ms (VAL SIGNAL_SOURCE_DEFAULTS gerekçesi) veya saat-geri (age<0) → stale, onaya girmez
  • Çelişki: iki güvenilir authoritative kaynak zıtsa → unknown (fail-closed)
  • Confidence kapısı 0.7 (VAL base 0.85–0.98 gerekçesi; politika sabiti, cihazda ayarlanabilir)
  • Adapter API: getConfirmedValue(): boolean | null (orchestration PR'ı runtime'a bağlar)
  • Yalın: runtime/SystemBoot'a otomatik bağlanmaz; polling timer yok (pull refresh() / push submitEvidence()); import yan etkisiz; yeni bağımlılık yok
  • Manual override prod varsayılan kapalı (dev/test); bounded (kanıt 16 / listener 32); immutable (deep-freeze); privacy (sanitizeText, VIN/MAC/koordinat/ham/secret girmez); fail-soft (kaynak/listener hatası izole, throw yok)

Yeni/değişen dosyalar

Doğrulama

  • tsc -b temiz · ✅ ESLint temiz · ✅ Hedef 31/31 · ✅ Tam suite 2794/2794 · ✅ Production build

Bilinen eksikler

Şu an hiçbir donanımda doğrudan ignition kaynağı olmadığından resolver daima unknown döner (fail-closed, doğru davranış). Gerçek native/CAN ignition kaynağı entegrasyonu + runtime wiring + orchestration ayrı PR. Cihazda doğrulama Ledger #31 🔴 bekliyor.

🤖 Generated with Claude Code

Deep Scan Runtime'ın üç durumlu ignitionConfirmed'ını güvenli + deterministik
besleyecek Ignition Source katmanı. Yalnız kaynak sözleşmesi + saf resolver —
gerçek orchestration, runtime wiring ve doğrudan kaynak entegrasyonu KAPSAM DIŞI.

Salt-okunur denetim sonucu: depoda DOĞRUDAN kontak/ACC/key-state kaynağı YOK
(VAL/Hiworld CAN/NativeHAL/assistantContextStore teyit etti). Bu yüzden:

- resolveIgnitionState(evidence, now): yalnız authoritative kaynaklar
  (native_acc/can_ignition/engine_running/manual) onay verir; yardımcı kaynaklar
  (rpm/alternator/battery_voltage/obd_transport) tek başına ASLA ON üretmez.
- Fail-closed: kesin doğrulanamazsa unknown → confirmed=null. Tehlikeli tekil
  varsayım (hız/RPM/voltaj/OBD-bağlı → ON) yasak. Fizik magic number uydurulmadı
  (kodda eşik yok → ham sayıya eşik uygulanmaz; zero-trust).
- Stale/zaman: observedAt (Date.now), yaş>5000ms veya saat-geri → stale;
  çelişki (iki authoritative zıt) → unknown; confidence kapısı 0.7.
- Adapter API: getConfirmedValue(): boolean | null (orchestration PR'ı bağlar).
- Yalın: runtime/SystemBoot'a bağlanmaz; polling timer yok; import yan etkisiz;
  yeni bağımlılık yok. Manual override prod varsayılan kapalı.
- Bounded (kanıt 16/listener 32), immutable, privacy (sanitizeText), fail-soft.
- 31 birim testi.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PaohAWKE2s1FhB6Hmmcj2p
@vercel

vercel Bot commented Jul 11, 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 11, 2026 4:15am
carospro Ready Ready Preview, Comment Jul 11, 2026 4:15am

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