Skip to content

feat(zeph-tools,zeph-llm): add ToolOutput.media plumbing for MCP image passthrough - #6238

Merged
bug-ops merged 1 commit into
mainfrom
feat/issue-6229/multimodal-passthrough
Jul 13, 2026
Merged

feat(zeph-tools,zeph-llm): add ToolOutput.media plumbing for MCP image passthrough#6238
bug-ops merged 1 commit into
mainfrom
feat/issue-6229/multimodal-passthrough

Conversation

@bug-ops

@bug-ops bug-ops commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • Foundational, behavior-preserving plumbing for multimodal MCP ContentBlock::Image passthrough (spec-072). This is P0 of a 4-phase implementation (P0 plumbing -> P1 persistence strip -> P2 decode/validate/attach -> P3 config/CLI/TUI surface); see follow-up issues for P1-P3.
  • Adds ToolOutput.media: Vec<zeph_llm::ImageData> (empty by default) with #[derive(Default)] on ToolOutput, a new zeph-tools -> zeph-llm crate dependency edge, and a hand-written redacting impl Debug for ImageData ([image: {mime}, {n} bytes], never the raw bytes) hardening a latent Debug-derive leak on the existing user-upload image path.
  • Migrates 130 ToolOutput { .. } construction sites across the workspace to ..Default::default() so the new field doesn't require touching every call site's logic.
  • media is never populated in this PR, so it changes no runtime behavior. Decode/validate/attach logic, the persistence strip (SQLite/Qdrant/durable JSONL), vision-tier routing, and the config/CLI/TUI opt-in surface are deferred to P1-P3.

Part of #6229 (P0 only — this PR does NOT close the issue; the issue tracks the full feature and stays open until P1-P3 land as follow-up issues referencing specs/072-multimodal-mcp-passthrough/plan.md).

Test plan

  • cargo +nightly fmt --check
  • cargo clippy --profile ci --workspace --all-targets --features "desktop,ide,server,chat,pdf,scheduler,testing" -- -D warnings
  • cargo clippy --profile ci --workspace --all-targets --features bench -- -D warnings
  • cargo nextest run --config-file .github/nextest.toml --workspace --features "desktop,ide,server,chat,pdf,scheduler" --lib --bins (13475/13475 passed)
  • cargo test --doc --workspace --features "desktop,ide,server,chat,pdf,scheduler"
  • RUSTFLAGS="-D warnings" RUSTDOCFLAGS="--deny rustdoc::broken_intra_doc_links" cargo doc --no-deps --workspace --features "desktop,ide,server,chat,pdf,scheduler"
  • gitleaks protect --staged
  • New unit tests: test_tool_output_default_media_empty, test_image_data_debug_redacts_bytes (asserts exact redacted output and absence of the raw byte values)
  • No LLM Serialization Gate live-session test required for this PR — zero new MessagePart::Image emission or provider request-builder changes (P2 scope)

…e passthrough

Foundational, behavior-preserving plumbing for multimodal MCP ContentBlock::Image
passthrough (spec-072, #6229 P0 of 4): adds ToolOutput.media: Vec<ImageData> with
#[derive(Default)], a new zeph-tools -> zeph-llm dependency edge, and a redacting
Debug impl for ImageData so raw image bytes never reach logs or debug output.

media is never populated in this PR, so no runtime behavior changes. Decode/validate/
attach logic, the persistence strip, vision-tier routing, and the config/CLI/TUI
surface are deferred to P1-P3 follow-up issues.
@github-actions github-actions Bot added enhancement New feature or request size/M Medium PR (51-200 lines) documentation Improvements or additions to documentation llm zeph-llm crate (Ollama, Claude) rust Rust code changes core zeph-core crate tests Test-related changes dependencies Dependency updates and removed enhancement New feature or request labels Jul 13, 2026
@bug-ops
bug-ops enabled auto-merge (squash) July 13, 2026 18:59
@github-actions github-actions Bot added the enhancement New feature or request label Jul 13, 2026
@bug-ops
bug-ops merged commit 3e2bafe into main Jul 13, 2026
46 checks passed
@bug-ops
bug-ops deleted the feat/issue-6229/multimodal-passthrough branch July 13, 2026 19:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core zeph-core crate dependencies Dependency updates documentation Improvements or additions to documentation enhancement New feature or request llm zeph-llm crate (Ollama, Claude) rust Rust code changes size/M Medium PR (51-200 lines) tests Test-related changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant