feat(deep-scan): W5-3c-2 — Change Baseline Adapter#87
Merged
Conversation
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
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
selimmujdeci
changed the base branch from
feat/deep-scan-offline-change-detection
to
main
July 13, 2026 10:22
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.
W5-3c-2 — Change Baseline Adapter
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:deepScanPersistence.load(hash).discoveredEcus(son TAM taramanın diske yazılı çıktısı)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)
{ecus}(trim+upper+0x-at+dedup, frozen).OfflineChangeDetectionDepsolarak handler'a bağlanabilir.changedFirmware=falseüretmeye devam eder.null.index.ts'ten ihraç edilmez → barrel'ın "import yan etkisiz + self-contained" invaryantı korunur (adaptervehicleKnowledgeBasegraph'ı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 --noEmittemiz · ESLint 0 errorDeğişen dosyalar
src/platform/deepScan/changeBaselineAdapter.ts(yeni —createChangeBaselineAdapter+ tipler)src/__tests__/deepScanChangeBaselineAdapter.test.ts(yeni, 23 test)docs/DEVICE_VALIDATION_LEDGER.md(W5-3c-2 🔴 feat(platform-core): Platform Event Bus runtime ownership (W3) #66)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
discoveredEcus) gerçek veride sık boş olabilir (liste opsiyonel) → handler fail-closedbaseline_incompleteüretir; değerin ne zaman çıkacağı gerçek dolu baseline'lara bağlı.🤖 Generated with Claude Code