FrameAttachController leaks pendingFrame on .rejected submit — D-15 byte-release window violated #2

Closed
opened 2026-05-12 18:57:39 +00:00 by KofTwentyTwo · 0 comments
KofTwentyTwo commented 2026-05-12 18:57:39 +00:00 (Migrated from github.com)

Summary

FrameAttachController.confirmSend(userText:) doesn't release pendingFrame when the user submits but the orchestrator returns .rejected. JPEG bytes persist past the D-15 byte-release window — memory leak per pending frame that gets rejected.

Evidence

  • App/Vision/AppDelegateFrameAttachAdapters.swift (around the rejected-submit path)
  • D-15 invariant: frame bytes released within the configured window after submit.

Recommended fix

In the .rejected branch of handleChatSubmit / handleChatCancelAndSubmit, explicitly call frameAttachController.releasePendingFrame() (or equivalent) before returning.

Source

Audit .planning/audit-2026-05-12/vision-audit.md (2026-05-12)

## Summary `FrameAttachController.confirmSend(userText:)` doesn't release `pendingFrame` when the user submits but the orchestrator returns `.rejected`. JPEG bytes persist past the D-15 byte-release window — memory leak per pending frame that gets rejected. ## Evidence - `App/Vision/AppDelegateFrameAttachAdapters.swift` (around the rejected-submit path) - D-15 invariant: frame bytes released within the configured window after submit. ## Recommended fix In the `.rejected` branch of `handleChatSubmit` / `handleChatCancelAndSubmit`, explicitly call `frameAttachController.releasePendingFrame()` (or equivalent) before returning. ## Source Audit `.planning/audit-2026-05-12/vision-audit.md` (2026-05-12)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/Jarvis#2