Skip to content

feat(deep-scan): W5-3c-2 — Change Baseline Adapter#87

Merged
selimmujdeci merged 1 commit into
mainfrom
feat/deep-scan-change-baseline-adapter
Jul 13, 2026
Merged

feat(deep-scan): W5-3c-2 — Change Baseline Adapter#87
selimmujdeci merged 1 commit into
mainfrom
feat/deep-scan-change-baseline-adapter

Conversation

@selimmujdeci

Copy link
Copy Markdown
Owner

W5-3c-2 — Change Baseline Adapter

Stacked on #86 (W5-3c-1). Base geçici olarak feat/deep-scan-offline-change-detection; #86 main'e merge olunca bu PR main'e retarget edilir ve diff yalnız W5-3c-2 kalır.

Offline change-detection handler'a (W5-3c-1) gerçek baseline sağlayan salt-okunur adapter. Yalnız adapter eklenir — handler/trigger/wiring değişmez; adapter+handler henüz pass'e/production'a bağlı değildir (W5-3c-3 ayrı PR).

Ne yapar

createChangeBaselineAdapter({persistence?, knowledgeBase?}) (factory + DI) → iki mevcut pasif kaynağı ChangeBaseline (yalnız normalize ECU kümesi) üretir:

  • PRIOR = deepScanPersistence.load(hash).discoveredEcus (son TAM taramanın diske yazılı çıktısı)
  • CURRENT = vehicleKnowledgeBaseStore.get(hash).discoveredEcus (AutoLearning'in pasif öğrendiği ECU seti — read-only store)

Aktif sorgu YOK

İki kaynak da salt-okunur (disk + bellek). Hiçbir save/completeScan/active-record/discovery/ECU-PID-DID isteği/CAN frame/OBD isteği yok.

Kurallar (korundu)

  • Normalize + bounded + immutable çıktı {ecus} (trim+upper+0x-at+dedup, frozen).
  • Privacy: yalnız normalize ECU kimlikleri — VIN/firmware sürümü/PID/DID/supportedModes/koordinat/secret taşımaz (kayıtta olsa bile).
  • DI + factory korunur: handler adapter'ı/persistence'ı/knowledge base'i doğrudan import etmez (saf kalır); adapter çıktısı OfflineChangeDetectionDeps olarak handler'a bağlanabilir.
  • Firmware eklenmedi → handler changedFirmware=false üretmeye devam eder.
  • Fail-soft: kaynak throw / kayıt yok / hash geçersiz → null.
  • Barrel korundu: adapter deepScan index.ts'ten ihraç edilmez → barrel'ın "import yan etkisiz + self-contained" invaryantı korunur (adapter vehicleKnowledgeBase graph'ına dokunur; barrel'a sokulmaz).

Yasak yüzeyler — dokunulmadı

Handler · Trigger · Wiring · SystemBoot · Event Bus · Capability Registry · Driver DNA · Prediction · Assistant Context · Diagnostic Sections · runtime değişikliği · persistence yazımı · completeScan/_finalize/_applyResult/active-record · SQL · Native · HAL · CAN · OBD.

Doğrulama

  • tsc -b --noEmit temiz · ESLint 0 error
  • 23 yeni test · deep scan suite 249 · tam suite 3864 yeşil (212 dosya) · Production Build OK

Değişen dosyalar

Ledger

W5-3c-2 🔴 — bu PR yalnız adapter ekler · handler değişmedi · trigger değişmedi · wiring değişmedi · aktif discovery yok · hiçbir ECU/PID/DID sorgusu gönderilmiyor · Mali-400 cihaz doğrulaması bekliyor.

Bilinen riskler

  • Cihaz doğrulaması yapılmadı → ledger 🔴 (host testleri kodu kanıtlar, saha davranışını değil).
  • Adapter+handler henüz üretimde çağrılmıyor (pass'e bağlama W5-3c-3); gerçek fayda o PR sonrası.
  • Prior baseline (persistence discoveredEcus) gerçek veride sık boş olabilir (liste opsiyonel) → handler fail-closed baseline_incomplete üretir; değerin ne zaman çıkacağı gerçek dolu baseline'lara bağlı.

🤖 Generated with Claude Code

Offline change-detection handler'a (W5-3c-1) GERÇEK baseline sağlayan salt-okunur
adapter: createChangeBaselineAdapter({persistence?, knowledgeBase?}) — factory + DI.

İki mevcut pasif kaynağı ChangeBaseline'a (yalnız normalize ECU kümesi) çevirir:
- PRIOR   = deepScanPersistence.load(hash).discoveredEcus (son tam taramanın çıktısı)
- CURRENT = vehicleKnowledgeBaseStore.get(hash).discoveredEcus (AutoLearning pasif ECU seti)

Aktif sorgu YOK: iki kaynak da salt-okunur; hiçbir save/completeScan/active-record/
discovery/ECU-PID-DID isteği/CAN frame/OBD isteği yok.

- Normalize + bounded + immutable çıktı {ecus} (trim+upper+0x-at+dedup, frozen).
- Privacy: yalnız normalize ECU; VIN/firmware/PID/DID/supportedModes TAŞIMAZ.
- DI + factory korunur: handler adapter'ı/persistence'ı/knowledge base'i DOĞRUDAN
  import ETMEZ (saf kalır); adapter çıktısı OfflineChangeDetectionDeps olarak handler'a
  bağlanabilir (W5-3c-3 wiring ayrı PR).
- Firmware eklenmedi → handler changedFirmware=false üretmeye devam eder.
- Fail-soft: kaynak throw / kayıt yok / hash geçersiz → null.
- Barrel korundu: adapter deepScan index.ts'ten İHRAÇ EDİLMEZ (barrel'ın "import yan
  etkisiz + self-contained" invaryantı korunur).

Handler DEĞİŞMEDİ; trigger/wiring/runtime/persistence-yazımı/Event Bus/Capability/
Assistant/HAL/CAN/OBD/SQL/Native'e dokunulmadı.

Doğrulama: 23 yeni test; tam suite 3864 yeşil (212 dosya); tsc -b --noEmit temiz;
lint 0 error; production build OK.

Ledger: W5-3c-2 🔴 (yalnız adapter · handler/trigger/wiring değişmedi · aktif discovery
yok · ECU/PID/DID sorgusu yok · Mali-400 doğrulaması bekliyor).

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

vercel Bot commented Jul 13, 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 13, 2026 10:18am
carospro Ready Ready Preview, Comment Jul 13, 2026 10:18am

@selimmujdeci
selimmujdeci changed the base branch from feat/deep-scan-offline-change-detection to main July 13, 2026 10:22
@selimmujdeci selimmujdeci reopened this Jul 13, 2026
@selimmujdeci
selimmujdeci merged commit c864040 into main Jul 13, 2026
8 checks passed
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