Skip to content

feat(vehicle): Araç Parmak İzi Temel Katmanı (PR-25, foundation-only)#25

Merged
selimmujdeci merged 1 commit into
mainfrom
feat/vehicle-fingerprint-foundation
Jul 9, 2026
Merged

feat(vehicle): Araç Parmak İzi Temel Katmanı (PR-25, foundation-only)#25
selimmujdeci merged 1 commit into
mainfrom
feat/vehicle-fingerprint-foundation

Conversation

@selimmujdeci

Copy link
Copy Markdown
Owner

Amaç

Bilinmeyen aftermarket araçları deterministik, tekrar-üretilebilir bir kimlikle (fingerprint) tanımanın temelini kurar. Aynı araç tekrar bağlandığında — VIN olsun olmasın — güvenle tanınıp önceki bağlamın (profil/keşif/ayar) geri getirilebilmesi için zemin. VİZYON: "aracın ikinci beyni" → zero-trust telemetriyle araç öğrenme.

Kapsam — YALNIZ FOUNDATION

Yeni dosyalar

Dosya İçerik
src/platform/vehicleFingerprintService.ts Foundation servisi (SAF + safeStorage)
src/__tests__/vehicleFingerprint.test.ts 23 unit test

Değişen dosyalar (additive, tek satır)

Dosya Değişiklik
src/utils/safeStorage.ts car-vehicle-fingerprintsLRU_PROTECTED (kota dolunca silinmez)

İçerik

  1. Normalizer: VIN · ECU adresi (0x temizli, anlamlı sıfır korunur) · PID bitmap · trailing-zero bayt dolgu temizliği
  2. Builder: VIN + protocol + (normalize/tekil/sıralı) ECU adresleri + PID bitmap + metadata
  3. Deterministik hash: 16-hane hex, FNV-1a çift-tohum. Metadata ve zaman alanları kimliğe DAHİL DEĞİL
  4. Bounded(8) LRU kalıcı depo: save/load/list/remove/clear; taşınca en eski-görülen düşer; safeStorage; ağ yok; bozuk veri → fail-soft
  5. Matcher temeli: aynı VIN = 1.0 · VIN yok ama protocol+ECU+bitmap eşleşmesi = 0.80 · yalnız OBD adaptör MAC = 0.30 · aksi = 0

Testler (23)

Aynı araç→aynı hash · farklı araç→farklı hash · VIN'siz çalışır · ECU sırası hash'i değiştirmez · PID bitmap trailing-zero dolgusu aynı fingerprint · depo max 8 LRU evict · upsert recency (firstSeen korunur) · kalıcılık · bozuk-veri fail-soft · matcher confidence (1.0/0.80/0.30/0) · normalizer birim testleri.

Doğrulama

  • tsc --noEmit temiz · eslint temiz
  • 2404 test yeşil (23 yeni test dahil) — yalnız 23 bilinen env-gated hata (Supabase/OTA/keyBeam, bu PR ile ilgisiz)

Risk

Çok düşük. Tümü additive; tek mevcut-dosya değişikliği safeStorage'a bir koruma-anahtarı eklemek (davranış: yalnız kota-eviction'dan muaf tutma). Servis hiçbir yere wire edilmedi — saf foundation, tüketici yok → çalışan akışları etkilemez. LRU max 8 ile bounded (zero-leak). Determinizm testle kilitli.

Saha doğrulama

🔴 Cihazda henüz doğrulanmadı — ancak bu katman salt-hesap/kalıcılık olduğundan cihaz-bağımsız; gerçek araç doğrulaması tüketici PR'da (fingerprint'i OBD handshake'e bağlayan) yapılacak.

Merge YAPILMADI.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Fauew13VP3vbfKqnocPdfX

Bilinmeyen aftermarket araçları deterministik, tekrar-üretilebilir bir kimlikle
tanımanın temeli: aynı araç tekrar bağlandığında (VIN olsun olmasın) güvenle
tanınabilsin. YALNIZ FOUNDATION — OBD poll/hot-path, useVidStore subscribe,
Discovery Pipeline, native ve SQL/Supabase'e DOKUNULMADI.

- vehicleFingerprintService.ts (yeni, SAF + safeStorage):
  * Normalize: VIN · ECU adresi · PID bitmap · trailing-zero dolgu temizliği
  * Builder: VIN + protocol + (sıralı/tekil) ECU + PID bitmap + metadata
  * Deterministik 16-hane hash (FNV-1a çift-tohum; metadata/zaman DAHİL DEĞİL)
  * Bounded(8) LRU kalıcı depo: save/load/list/remove/clear
  * Matcher temeli: aynı VIN=1.0 · imza(protocol+ECU+bitmap)=0.80 · adaptör MAC=0.30
- safeStorage: car-vehicle-fingerprints → LRU_PROTECTED (kota dolunca silinmez)
- 23 yeni test: aynı/farklı hash · VIN'siz · ECU sıra-bağımsız · PID trailing-zero ·
  max 8 LRU evict · upsert recency · kalıcılık · matcher confidence değerleri

tsc temiz · eslint temiz · 2404 test yeşil (yalnız 23 bilinen env-gated hata, ilgisiz)

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

vercel Bot commented Jul 9, 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 9, 2026 4:47pm
carospro Ready Ready Preview, Comment Jul 9, 2026 4:47pm

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