Skip to content

fix(agent): grab_frame binary payload + JSON attachment#99

Merged
edgarriba merged 2 commits into
mainfrom
fix/grab-frame-binary-payload
May 18, 2026
Merged

fix(agent): grab_frame binary payload + JSON attachment#99
edgarriba merged 2 commits into
mainfrom
fix/grab-frame-binary-payload

Conversation

@edgarriba

Copy link
Copy Markdown
Member

Summary

  • Camera nodes (oak-camera, rtsp-camera) now send raw JPEG bytes as the Zenoh reply payload and small JSON metadata as the attachment
  • Daemon base64-encodes the JPEG locally before injecting it as an LLM content block
  • Eliminates the ~33% base64 size overhead that was previously on the Zenoh wire

Companion PR

Requires kornia/bubbaloop-nodes-official#35 to be merged first (camera node changes).

Test plan

  • cargo check passes
  • grab_frame tool call returns a valid image content block in the Chat tab
  • age_ms stale-frame check still works

🤖 Generated with Claude Code

…mera nodes

Camera nodes now send raw JPEG bytes as payload and small JSON metadata as
attachment. Daemon base64-encodes the JPEG locally for the LLM content block.
Eliminates ~33% base64 overhead on the Zenoh wire.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

Conflict in camera.rs: main still reads jpeg_b64 from JSON payload (old approach).
Our branch reads raw JPEG bytes from Zenoh payload + metadata from attachment —
the correct binary-payload protocol matching the updated camera nodes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@edgarriba edgarriba merged commit 326a9dd into main May 18, 2026
1 check passed
@edgarriba edgarriba deleted the fix/grab-frame-binary-payload branch May 18, 2026 14:19
edgarriba added a commit that referenced this pull request May 19, 2026
Ships 10 commits worth of features and fixes since v0.0.13:

Features
- agent: grab_frame tool + Gemini Vision provider + image-in-chat (#96)
- dashboard: Chat tab with HTTP+SSE agent gateway (#91)
- agent: client-side turn cancellation via Zenoh cancel topic (#94, #95)
- chat: multi-provider login status, 404 on unknown agent, Claude OAuth
  risk warning (#93)
- mcp: 'bubbaloop mcp --token' prints bearer token for .mcp.json (#90)

Fixes
- agent: grab_frame reads binary JPEG payload + JSON metadata
  attachment from camera nodes (#99)
- chat: clear Responding state after multi-camera grab_frame (#98)
- mcp: eliminate token race between gateway and agent runtime (#89)

Chores
- dashboard: remove LibraryView component (#92, replaced by Chat tab)

Docs
- Comprehensive sync across README, CHANGELOG (backfilled v0.0.8 to
  v0.0.13), CLAUDE.md, ARCHITECTURE.md, ROADMAP.md, concept/reference/
  dashboard docs to match the new feature surface (#100)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant