Skip to content

feat(obd): Keşif Panosu — katalog-dışı PID/DID canlı görünümü (PR-DISC-3)#24

Merged
selimmujdeci merged 1 commit into
mainfrom
feat/discovery-dashboard
Jul 9, 2026
Merged

feat(obd): Keşif Panosu — katalog-dışı PID/DID canlı görünümü (PR-DISC-3)#24
selimmujdeci merged 1 commit into
mainfrom
feat/discovery-dashboard

Conversation

@selimmujdeci

Copy link
Copy Markdown
Owner

Amaç

PR #22 (PR-DISC-1) ve PR-DISC-2 ile kurulan Discovery Capture Pipeline'ı uygulama içinde görünür kılar. Saha testlerinde toplanan gerçek OBD sinyalleri, kataloga eklenmeden önce canlı incelenebilir: filtrele / ara / dışa aktar.

Kapsam — YALNIZ UI + OKUMA

  • DiscoveryCaptureService / DiscoveryQueue / discoveryExport kullanıldı
  • ❌ Discovery algoritması, queue mantığı, capture mantığı, PID/DID registry, native, SQL/Supabase, hot-poll — DOKUNULMADI
  • DiscoveryCaptureService'e yalnız SALT-OKUNUR gözlem katmanı (getObservations/subscribe) eklendi. Capture kararı ve kuyruk davranışı değişmedi (regresyon testiyle kilitli).

Özellikler

  • Özet kartları: Yeni PID · Yeni DID · Toplam · Duplicate · Registry'de mevcut · Son keşif
  • Liste: timestamp, ECU, protocol, mode, PID/DID, request, raw response, decoded value, supported, discovery source, vehicle profile, firmware
  • Rozetler: NEW · KNOWN · DUPLICATE · UNSUPPORTED
  • Filtre: Tümü / PID / DID / Yeni / Duplicate / Bilinen
  • Arama: 7E0, 242E, 8B, VIN, DPF, Renault, Trafic… (tüm metin alanları)
  • Dışa aktarma: mevcut discoveryExport (exportJson) → panoya kopyala
  • Canlı güncelleme: servis aboneliği (yeniden başlatma gerekmez)
  • Virtualization: kendi hafif windowing'i (1000+ kayıt performanslı; harici bağımlılık yok)
  • Empty state: açıklayıcı ekran

Değişen / yeni dosyalar

Tip Dosya
yeni src/components/discovery/DiscoveryDashboard.tsx
yeni src/components/discovery/discoveryDashboardModel.ts (saf view-model)
yeni src/components/discovery/useDiscoveryObservations.ts (zero-leak hook)
yeni src/__tests__/discoveryDashboardModel.test.ts
yeni src/__tests__/discoveryDashboard.test.tsx
değişik (additive) src/platform/obd/discovery/DiscoveryCaptureService.ts — gözlem katmanı
değişik (additive) src/platform/obd/discovery/index.ts — tip export
değişik (additive) src/components/settings/ExpertModePanel.tsx — pano mount

Testler

18 yeni test: rozet doğruluğu · özet · filtre · arama · virtual window · servis gözlem katmanı (capture kararı değişmedi) · bileşen render + empty-state + canlı akış.

Doğrulama

  • tsc --noEmit temiz
  • eslint temiz
  • 2381 test yeşil — yalnız 23 bilinen env-gated hata (deviceAutoPair/keyBeam/ota/vehicleEvent, Supabase env gerektiren, bu PR ile ilgisiz)

Risk

Düşük. Değişiklikler additive; capture/queue/registry davranışı korunuyor ve testle kilitli. Gözlem katmanı MAX_OBSERVATIONS=4096 ile sınırlı (zero-leak). UI, mevcut Expert paneline eklendi.

Saha doğrulama

🔴 Cihazda henüz doğrulanmadı — gerçek araçta OBD Discovery akışıyla canlı liste güncellemesi gözlemlenmeli.

Merge YAPILMADI.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Fauew13VP3vbfKqnocPdfX

…C-3)

Saha testlerinde toplanan gerçek OBD sinyalleri, kataloga eklenmeden önce
uygulama içinde canlı incelenebilsin: özet kartları + filtre + arama + rozet
+ sanallaştırılmış liste + mevcut discoveryExport ile dışa aktarma.

YALNIZ UI + OKUMA. Discovery/capture/queue/registry/native/SQL mantığına
DOKUNULMADI. DiscoveryCaptureService'e yalnız SALT-OKUNUR gözlem katmanı
(getObservations/subscribe) eklendi — capture kararı ve kuyruk davranışı
DEĞİŞMEDİ (testlerle kilitlendi).

- components/discovery/DiscoveryDashboard.tsx — canlı UI (abonelik + virtualization)
- components/discovery/discoveryDashboardModel.ts — saf özet/filtre/arama/rozet/pencere
- components/discovery/useDiscoveryObservations.ts — zero-leak canlı abonelik hook
- DiscoveryCaptureService: gözlem katmanı (new/known/duplicate) + subscribe (additive)
- ExpertModePanel: pano mount (additive)
- 18 yeni test (model + servis gözlem + bileşen render/empty-state)

tsc temiz · eslint temiz · 2381 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:15pm
carospro Ready Ready Preview, Comment Jul 9, 2026 4:15pm

@selimmujdeci selimmujdeci merged commit f210914 into main Jul 9, 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