M-5: Vision events — framePending/frameSent/frameExpired (F-007/F-010) #122

Open
opened 2026-05-12 19:37:17 +00:00 by KofTwentyTwo · 0 comments
KofTwentyTwo commented 2026-05-12 19:37:17 +00:00 (Migrated from github.com)

Goal

Vision events: framePending(captureId), frameSent(turnId, captureId), frameExpired(captureId). F-007 / F-010 amendment. Captures correlate via FrameCaptureID. ManualClock advances cause frameExpired after 5s deterministic.

Scope

  • 3 events with FrameCaptureID correlation
  • frameExpired after 5s default TTL, settable via clock
  • ManualClock-driven deterministic expiry in tests

Files

  • packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Vision+Adapter.swift

Acceptance

  • 3 events emitted with correlated FrameCaptureID
  • frameExpired fires 5s after framePending
  • ManualClock advance(by: .seconds(5)) triggers expiry deterministically

Test

S-VIS-003 (5s frameExpired via ManualClock G-002).

Parent epic

#9

Source

.planning/architecture/JARVIS-API-MIGRATION-PLAN.md §2.6 (M-5.2)
.planning/architecture/JARVIS-API-DESIGN-v0.2.md F-007, F-010

## Goal Vision events: framePending(captureId), frameSent(turnId, captureId), frameExpired(captureId). F-007 / F-010 amendment. Captures correlate via FrameCaptureID. ManualClock advances cause frameExpired after 5s deterministic. ## Scope - 3 events with `FrameCaptureID` correlation - `frameExpired` after 5s default TTL, settable via clock - ManualClock-driven deterministic expiry in tests ## Files - `packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Vision+Adapter.swift` ## Acceptance - [ ] 3 events emitted with correlated FrameCaptureID - [ ] `frameExpired` fires 5s after `framePending` - [ ] ManualClock `advance(by: .seconds(5))` triggers expiry deterministically ## Test `S-VIS-003` (5s frameExpired via ManualClock G-002). ## Parent epic #9 ## Source `.planning/architecture/JARVIS-API-MIGRATION-PLAN.md` §2.6 (M-5.2) `.planning/architecture/JARVIS-API-DESIGN-v0.2.md` F-007, F-010
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/Jarvis#122