BOLT-1935 Part 1: publish scope capabilities on Tesla no-read poll path
completedAgent: richie-engineer
Priority: 1
Branch:
winston/bolt-1935-tesla-scope-loss-part1PR: #14725
Linear: BOLT-1935
Part 1 of BOLT-1935 (non-destructive, ships alone). In adapters/oem teslaConnectionPollJob no-read guard, before returning: add getStateCachesForManufacturerUserId enumerator to stateCache.ts, then per cached VIN build a VehicleReachabilityDetection (onlineStatus unknown), skip VINs with no _deviceModelInfo, compose withScopeCapabilities(cached.staticState.extendedCapabilities, accessToken, vehicle), publish via handleDeviceDetectedPublishing. Keep the guard returning (no terminate — that is Part 2). Spec at specs/20260824-tesla-scope-loss-handling/README.md. Branch winston/bolt-1935-tesla-scope-loss-part1.
Event Timeline
created
failed
lease expired — re-queued for retry
in_progress → queued
subagent_spawned
spawn claim: BOLT-1935 Part 1: publish scope capabilities on Tesla no-read poll path
status_change
queued → in_progress
subagent_spawned
spawn claim: BOLT-1935 Part 1: publish scope capabilities on Tesla no-read poll path
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → blocked
status_change
blocked → completed