feat(capability): Capability Provider Adapter Foundation#52
Merged
Conversation
…try köprüsü
Gerçek runtime/cihaz/platform kanıtlarını salt-okunur biçimde Capability Registry
kayıtlarına aktaran provider adapter. Yalnız provider foundation — gerçek provider
implementasyonları/Event Bus/SystemBoot wiring/persistence ayrı PR'lar; native tarama
başlatmaz, Registry karar kurallarını değiştirmez.
Salt-okunur analiz: doğrulanabilir kaynaklar sınırlı (deviceCapabilities browser
probe, vehicleHal signal support, browser API gps/mic/bt/storage, config/lisans);
runtime kaynağı hiç yok: vehicle.ignition/ai.grok/navigation.offline_map → unknown.
- Provider sözleşmesi {id, domain, source, authoritative?, refreshPolicy?, read()};
read sync/async, kaynak yoksa null. Foundation'da yerleşik gerçek provider yok (DI).
- Provider sonucu → Registry evidence → resolveCapability (status Registry'de çözülür).
- Yalnız değişeni günceller (imza dedup, duplicate update yok, O(1)).
- API: start/refresh/refreshProvider/stop/getStatus/getLastRefreshAt/getProviderResults/
reset/dispose. Steady-state timer/polling yok; paralel allSettled (biri diğerini
bloke etmez); opt-in DI timeout (settle'da temizlenir); timeout/hata/null → unknown.
- DeviceTier varlık uydurmaz (Registry tier engeli); kaynaksız capability açılmaz.
- Fail-soft (provider/Registry hatası izole), privacy (sanitize), immutable çıktı.
- Registry'yi doğrudan import etmez (yapısal DI + type-only → import yan etkisiz);
Registry'yi dispose etmez; bounded 128 provider; yeni bağımlılık yok.
- 41 birim testi (45 senaryo).
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 was referenced Jul 11, 2026
Merged
selimmujdeci
pushed a commit
that referenced
this pull request
Jul 12, 2026
Gerçek rapor gövdesinde platform bölümü doğrulandı: eventBus published=1/retained=1, halWiring started + activeSubscriptionCount=1 → tek bus/tek abonelik ADB veya global debug expose OLMADAN okunabiliyor. Gizlilik sızıntısı yok; bölüm 484 B (~%3.4). Crash/ANR yok, CPU/RSS regresyonu yok. Satır 🔴 KALIYOR: low-tier (T507/K24-Mali-400) doğrulaması yapılmadı. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012M8LbxyAqd22EU1rqtTjft
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ç
Gerçek runtime/cihaz/platform kanıtlarını salt-okunur biçimde Capability Registry kayıtlarına dönüştüren provider adapter temeli:
gerçek kanıt → Capability Provider Adapter → Capability Registry.Yalnız provider foundation. Gerçek provider implementasyonları · Event Bus wiring · SystemBoot wiring · persistence ayrı PR'lar; native tarama başlatmaz, yeni OBD/CAN komutu yok, Registry karar kurallarını değiştirmez, UI/SQL yok.
Salt-okunur analiz bulguları
deviceCapabilities(WebGL/CSS/SAB/cores browser probe → device/platform);vehicleHal.getCapability/hasSignal(araç sinyali desteği, foundation'da hepsi false)vehicle.ignition(kontak yok) ·ai.grok(xAI yok) ·navigation.offline_map(tile paketi yoksa) → unknown/unavailable kalırAdapter mimarisi
Donanımı doğrudan taramaz — yalnız DI ile verilen
providers'ı okur. Foundation'da yerleşik gerçek provider yok (gerçek prob'lar ayrı wiring PR'ı).Provider sözleşmesi:
{ id, domain, source, authoritative?, refreshPolicy?, read() }(read sync/async, kaynak yoksa null). Provider sonucu → Registry evidence'ına normalize →resolveCapability(id, evidence, domain)— status'ü Registry çözer (karar kuralları değişmez). Yalnız değişeni günceller (imza dedup → duplicate update yok, O(1)).API
start · refresh · refreshProvider · stop · getStatus · getLastRefreshAt · getProviderResults · reset · dispose
Refresh / DeviceTier / fail-soft
Promise.allSettled→ biri diğerini bloke etmez); opt-in DI timeout (settle'da temizlenir → leak yok); timeout/hata/null → güvenli unknownai.local_modelrestricted); high tier kanıtsız açmazPrivacy / immutability / yalınlık
Yeni/değişen dosyalar
src/platform/capability/capabilityProviderAdapter.ts(yeni) ·index.ts(export)src/__tests__/capabilityProviderAdapter.test.ts(yeni, 41 test / 45 senaryo)docs/DEVICE_VALIDATION_LEDGER.md(feat(vehicle): Vehicle Learning Confidence Decay & Prune (P2-3) #37 🔴)Doğrulama
tsc -b· ✅ ESLint · ✅ Hedef 41/41 · ✅ Tam suite 3009/3009 · ✅ Production buildBilinen eksikler
Gerçek provider implementasyonları + Event Bus + SystemBoot wiring + persistence = ayrı PR'lar. Cihazda doğrulama Ledger #37 🔴.
🤖 Generated with Claude Code