feat(deep-scan): Deep Scan Ignition Source Foundation#46
Merged
Conversation
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
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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).Kod tabanında DOĞRUDAN kontak/ACC/key-state yayan HİÇBİR kaynak YOK:
NormalizedVehicleData: speed/reverse/rpm/batteryVolt/gearPos… — ignition yokHiworldProtocolParser.java): RPM/BATT_VOLT/GEAR/REVERSE/TEMPS var, açık ACC/IGN komutu yokuseAssistantContextStore:status.ignition = null, "kontak durumu yayan sinyal YOK"commandExecutor.ignitionOn: yalnız remote-command parametresi (OBD PID 0x01 yorumu), gerçek store kaynağı yokBu 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 üretmez →unknownunknown→confirmed=null. Tehlikeli tekil varsayım (hız/RPM/voltaj/OBD-bağlı → ON) yasakengine_runningauthoritative kanıtı olur (zero-trust)observedAt(Date.now, VAL ile aynı taban); yaş > 5000ms (VALSIGNAL_SOURCE_DEFAULTSgerekçesi) veya saat-geri (age<0) → stale, onaya girmezunknown(fail-closed)getConfirmedValue(): boolean | null(orchestration PR'ı runtime'a bağlar)refresh()/ pushsubmitEvidence()); import yan etkisiz; yeni bağımlılık yoksanitizeText, VIN/MAC/koordinat/ham/secret girmez); fail-soft (kaynak/listener hatası izole, throw yok)Yeni/değişen dosyalar
src/platform/deepScan/deepScanIgnitionSource.ts(yeni)src/platform/deepScan/index.ts(export)src/__tests__/deepScanIgnitionSource.test.ts(yeni, 31 test)docs/DEVICE_VALIDATION_LEDGER.md(feat(vehicle): Tanı Bilgi Motoru Temeli (PR-31, deterministik/LLM'siz) #31 🔴)Doğrulama
tsc -btemiz · ✅ ESLint temiz · ✅ Hedef 31/31 · ✅ Tam suite 2794/2794 · ✅ Production buildBilinen eksikler
Şu an hiçbir donanımda doğrudan ignition kaynağı olmadığından resolver daima
unknowndö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