feat(event-bridge): Vehicle HAL + Capability → Platform Event Bus köprüleri (foundation)#54
Merged
Merged
Conversation
…rüleri (foundation)
Vehicle HAL ve Capability Registry'deki gerçek değişiklikleri tip-güvenli, bounded,
salt-okunur biçimde Platform Event Bus'a aktaran iki köprü. Wiring YOK (SystemBoot/
provider auto-start/Platform Kernel ayrı PR).
Vehicle (createVehicleHalEventBridge):
- HAL subscribe TAM snapshot verir → köprü diff'ler, yalnız değişen supported sinyali yayar.
- vehicle.signal.changed TRANSIENT (history dışı, küçük payload, O(1) dedup, full snapshot yok).
- vehicle.ignition.changed retained yalnız supported+değişince (foundation'da ignition
kaynağı yok → asla yayınlanmaz).
- vehicle.connection.changed retained "en az bir supported sinyal" geçişinde (gerçek olgu).
- vehicle.identity.changed retained yalnız supported (ham fingerprint payloadta değil, metadata).
- vehicle.health.changed YAYINLANMAZ (kaynak yok → uydurulmaz).
Capability (createCapabilityEventBridge):
- record.registered/changed(imza-dedup)/removed.
- snapshot.changed RETAINED küçük payload {revision, counts, changedIds}; full registry yok.
Sayımlar start'ta bir kez createSnapshot, sonra INCREMENTAL O(1) (değişiklik başına
allocation yok). Record payload whitelist (sanitize).
Ortak: start/stop/dispose idempotent; tek abonelik; kaynakların sahibi değil (HAL/Registry/
Bus dispose EDİLMEZ); dispose sonrası no-op; publishedCount/droppedCount; fail-soft; privacy;
immutable payload; katalog isimleri; HAL/Registry/Bus DOĞRUDAN import edilmez (yalnız TYPE);
timer/polling yok; global singleton yok. Güvenlik kararı üretmez; Event Bus davranışı değişmez.
Testler: vehicleHalEventBridge (24) + capabilityEventBridge (24) = 48 yeni.
Tam suite 3111 yeşil, tsc temiz, eslint temiz, production build OK. Ledger #39 → 🔴.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QpXTwq5gqubmnaDWbra5MX
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
selimmujdeci
pushed a commit
that referenced
this pull request
Jul 12, 2026
…ç yok) Bridge canlı: halBridge present/started, dropped=0. Publish/sn = 0.37 (park, GPS-only; 440 sn'de 33→197). Bus delivered=0/listener=0 (abone yok), tek HAL aboneliği, transient event'ler history'yi şişirmiyor. Boot/CPU/RSS regresyonu yok. Satır 🔴 KALIYOR: sürüşteki publish/sn, connection=false/reconnect ve low-tier doğrulaması gerçek araç/OBD gerektiriyor (W4D throttle kararının girdisi). 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ç
Vehicle HAL ve Capability Registry'deki gerçek değişiklikleri tip-güvenli, bounded, salt-okunur biçimde Platform Event Bus'a aktaran iki köprü. Bu bir foundation PR'ıdır — SystemBoot wiring, provider adapter auto-start, Platform Kernel wiring YOK (ayrı PR).
Vehicle HAL Event Bridge
HAL
subscribetam snapshot verir (per-signal delta yok) → köprü snapshot'ları diff'ler, yalnız değişen supported sinyalleri yayınlar.vehicle.signal.changedvehicle.ignition.changedvehicle.connection.changedvehicle.identity.changedvehicle.health.changedCapability Event Bridge
Registry change event yalnız
{type,id,revision,at}verir → köprü record'ugetCapability(id)ile çeker.capability.record.registered/changed/removedcapability.snapshot.changed{revision, counts, changedIds(bounded)}— full registry taşınmaz. Sayımlar start'ta bir kezcreateSnapshot, sonra incremental O(1) (değişiklik başına allocation yok)Record payload whitelist (id/domain/status/available/quality/confidence/source/stale/reason/limitations bounded; Registry'ce zaten sanitize).
Ortak invaryantlar
start/stop/disposeidempotent; tek abonelik; kaynakların sahibi değil → HAL/Registry/Bus dispose EDİLMEZ; dispose sonrası callback no-op.publishedCount/droppedCount(Bus reddi / publish hatası → droppedCount; kaynak servis etkilenmez).Doğrulama
tsc -b --noEmit✅ · ESLint ✅Saha doğrulama
docs/DEVICE_VALIDATION_LEDGER.md#39 → 🔴 cihazda test edilmedi (ölçülebilir kabul ölçütleriyle). SystemBoot/Platform Kernel wiring ayrı PR olduğu açıkça belirtildi.🤖 Generated with Claude Code
https://claude.ai/code/session_01QpXTwq5gqubmnaDWbra5MX