DeepSeek Harness Multimodal Update: From rc.8 to v0.1.1-rc.2

DeepSeek Harness added native images, a vision model, Files API reuse, subagent bundles, and Windows PTY improvements from rc.8 through v0.1.1-rc.2.

DeepSeek Harness Multimodal Update: From rc.8 to v0.1.1-rc.2

DeepSeek Harness did not ship multimodality in one release. On August 19, v0.1.0-rc.8 opened the first complete path for images to enter the agent loop. On August 21, v0.1.1-rc.1 added a named vision model. Later that day, rc.2 added Files API reuse plus automatic image resizing and format conversion.

Reading only the rc.8 notes produces an easy headline: “DSH can see images now.” The more useful engineering story is that three releases filled in four separate layers—input representation, model routing, payload management, and execution collaboration. Images can now participate in /goal, /plan, MCP/ACP, subagent work, and session history instead of remaining a chat attachment.

TL;DR

  • rc.8 began the multimodal release line, but it is not the latest version as of August 22; GitHub currently lists v0.1.1-rc.2.
  • rc.8 added configurable native image requests, mixed text-image command input, file/session references, and fixes for oversized or accumulated image payloads.
  • rc.1 added DeepSeek-V4-Flash-Vision-Exp; rc.2 prioritizes Files API uploads, reuses uploaded images, and preprocesses them for model requirements.
  • Claude Code and Codex can be installed on demand as Profile Bundles with named instances and non-interactive permission modes. That does not create an isolation boundary by itself.
  • DSH remains a developer preview and every release discussed here is a prerelease. rc.8 also changes the SQLite storage format incompatibly.

rc.8 was more than an upload button

Official DeepSeek Harness v0.1.0-rc.8 release notes

The rc.8 release covers multimodal input, subagents, Windows PTY, tools, and storage. Source: DeepSeek Harness GitHub, captured August 22, 2026.

The official notes group rc.8 into features, fixes, experience improvements, chores, and SDK work. Reorganizing them by product effect reveals five connected tracks.

TrackWhat rc.8 changedPractical effect
Multimodal inputConfigurable native image requests; images accepted by /goal and /planVisual evidence can shape the task and plan, not just a reply
Context referencesFiles and sessions in the composer @ menuContext keeps provenance instead of becoming pasted text
SubagentsClaude Code and Codex as on-demand Profile BundlesOne harness can compose named coding-agent instances
TerminalPersistent PowerShell in Windows PTY, default in MinimalSequential calls share shell state and avoid repeated setup
ReliabilityImage payload, stream cancel, gateway, fork, and SQLite workLong sessions and non-default environments fail less often

The /goal and /plan change matters most. If an image can only appear in a regular chat message, an agent may describe it without preserving it as a task constraint. Mixed command input makes “use this error screenshot to find and verify a fix” a candidate for a complete workflow rather than an isolated visual question.

The @ references matter for a different reason: provenance. When a host knows which file or session supplied context, it can enforce permissions, preserve the relationship in history, and support replay. Pasting content into a prompt discards that structure.

Native vision and tool-mediated vision are different

Community coverage quickly focused on text-only models “seeing” through OCR, color statistics, pixels, and metadata. That describes a useful architecture, but two paths need to stay separate.

Native vision sends an image using a model-supported input type. It is the better fit for photographs, spatial relationships, visual style, and tasks that require holistic semantic interpretation. The adapter must encode the image correctly, enforce size constraints, and match provider-specific request shapes.

Tool-mediated vision turns an image into structured text first. OCR, layout detection, dimensions, color regions, or pixel sampling can supply evidence to a text model. This can work well for UI screenshots, documents, tables, and simple diagrams because their important information is often expressible as text and coordinates.

They are not equivalent. OCR reading a button label does not prove that the system understands occlusion or photographic semantics. A color histogram does not know whether a red region means an alert, a brand color, or a background. Tool-mediated vision supplies inspectable partial evidence, not a universal replacement for a vision model.

The rc.8 release confirms native image requests and payload fixes. It does not promise a built-in universal fallback that automatically reacts to a failed read_image call by running OCR, color, and pixel tools. Community plugins can implement that composition, but product documentation should distinguish official behavior from an installed plugin path.

rc.1 made the vision model explicit

DeepSeek Harness v0.1.1-rc.1 adding a vision-understanding model

v0.1.1-rc.1 adds DeepSeek-V4-Flash-Vision-Exp to the DeepSeek adapter. Source: DeepSeek Harness GitHub, captured August 22, 2026.

rc.8 taught the harness how to express images. rc.1 added a specific multimodal visual-understanding model, DeepSeek-V4-Flash-Vision-Exp. Those are separate requirements: a protocol can carry images while the selected model rejects them; a model can accept images while the harness mishandles attachment history.

An upgrade test should ask:

  • Does the selected model declare image input, rather than relying on a naming guess?
  • Do /goal, /plan, regular turns, and subagent forwarding use compatible image representations?
  • When a text-only model receives an image, does the system reject, route, or invoke an approved parsing tool?
  • Are images persisted, forked, and replayed with the session?
  • Do screenshots containing secrets or user data follow the same policy across models and tools?

Hidden automatic routing can make cost, privacy, and result provenance harder to explain. A useful UI identifies the model or tool that processed an image and retains the trace.

rc.2 tackles the image lifecycle

DeepSeek Harness v0.1.1-rc.2 Files API and image preprocessing improvements

v0.1.1-rc.2 prioritizes Files API uploads and reuse, then resizes and converts images for model requirements. Source: DeepSeek Harness GitHub, captured August 22, 2026.

rc.2 contains only two release bullets, but both address production-shaped problems. The DeepSeek adapter prioritizes the Files API and reuses uploaded files; preprocessing automatically resizes and converts images according to model requirements.

Re-encoding the same image into every turn makes long sessions grow quickly. Latency, request size, and failure probability rise as image history accumulates. A Files API separates image content from message references, allowing reuse without retransmitting identical bytes. Preprocessing reduces failures caused by pixel, byte, or format limits.

Reuse introduces its own lifecycle questions. How long does the file remain available? Who deletes it? Can a fork or another thread reference it? Is a provider file ID scoped to one account? The release does not provide a universal persistence contract, so integrations must verify the actual Files API semantics rather than read “reuse” as “permanent storage.”

Claude Code and Codex become composable subagents

rc.8 makes Claude Code and Codex available as on-demand Profile Bundles with non-interactive permission modes and multiple named instances. This is deeper than connecting two more models: each subagent brings its own harness behavior, tools, session semantics, and permissions.

Named instances let a team separate roles. A codex-reviewer may inspect code and return findings, while a codex-builder may edit files inside an isolated workspace. The parent does not need to delegate every task to one all-powerful child.

Names are not security boundaries, however. Non-interactive mode removes a human wait; it does not authorize bypassing host policy. Each instance still needs a fixed workspace, network boundary, credential set, timeout, and allowed tool surface. The trace should record why the parent delegated, what the child returned, and how the parent used it.

The reportDelivery improvement wakes the parent promptly when a subagent reports. It reduces orchestration latency, but it does not validate completeness. The parent still needs schema, tests, or another objective acceptance gate.

Windows, gateways, and session correctness

Persistent PowerShell makes sequential Windows tool calls behave more like a real terminal. Current directory, environment changes, and shell state can survive across commands. That saves setup time but creates hidden dependencies: a reproducible trace must include the session’s starting state, not only the final command.

rc.8 also fixes two subtle consistency failures. A displayed response prefix survives into follow-ups and forks after a user cancels streaming, reducing divergence between the UI and model history. Custom OpenAI-compatible gateways receive fixes for request-shape differences and missing reasoning content.

“OpenAI-compatible” is not a strict conformance certificate. A gateway still needs tests for images, tools, streaming, reasoning content, and error envelopes. One successful text response proves very little about multimodal agent compatibility.

The upgrade warning: incompatible SQLite storage

The rc.8 notes explicitly say its SQLite improvements reduce storage size and improve read, write, and fork performance while making the data structure incompatible.

Before upgrading a development environment:

  1. Back up the DSH data directory and SQLite files.
  2. Record the current DSH version, bundles, and plugin lock state.
  3. Test old-session read, search, and fork operations on a copy.
  4. Verify that image attachments and Files API references survive restoration.
  5. Keep binary and data rollback paired; reverting only the package may not be enough.

The repository README still calls DSH a developer preview and warns of compatibility-breaking changes. Every release discussed here is marked prerelease. The project is suitable for fast, controlled experiments; it should not hold the only production copy of important work without pinned versions, migration rehearsal, and rollback.

A multimodal acceptance matrix

“Upload one image and receive an answer” covers only the happy path.

ScenarioWhat to verify
One UI screenshotText, layout, and state are distinguished; output cites visible evidence
Oversized imageResize and format behavior; acceptable detail loss
Same image across turnsUpload reuse; stable latency and payload size
Image-heavy historyPayload limits; transparent compaction or eviction
Image sent to a text modelExplicit rejection, routing, or approved tool fallback
/goal and /planVisual constraints persist through execution
Subagent delegationImage, provenance, permissions, and objective travel together
Cancel and forkDisplayed UI and restored model history agree
Sensitive screenshotLogs, telemetry, Files API, and subagents do not leak data

For screenshot-to-fix work, see Multimodal Coding Agents: When Screenshot-to-Fix Actually Works. The same principle applies to DSH: visual input must connect to reproduction state, code state, and objective verification. A screenshot alone is not a complete bug report.

Verdict: multimodality is becoming a harness capability

The sequence from rc.8 to rc.2 is coherent: let images enter goals, plans, and sessions; add an explicit vision model; then manage upload reuse, size, and format. That ordering reflects the real failure modes. Multimodal agents often break because attachments disappear between layers, history becomes too heavy, routing is opaque, or data lifetime is undefined—not because a vision model cannot describe a picture.

DSH’s plugin architecture can combine native vision, OCR tools, subagents, and domain skills. That is the opportunity: perception does not have to be locked inside one model. It is also the risk. The more freely capabilities compose, the more the system needs explicit capability declarations, permissions, traces, and compatible versioning.

Test this release line, but do not stop at “can it see?” Verify how the image enters, who handles it, how it is reused, how it travels through sessions and subagents, and whether failure remains visible.

FAQ

Is rc.8 the latest DeepSeek Harness release?

No. As of August 22, 2026, GitHub lists v0.1.1-rc.2 as the latest release. rc.8 is the August 19 release that began this multimodal update line.

Can a text-only model understand images directly?

No. Plugins can use OCR, layout, pixel, or metadata tools to convert visual evidence into text. That tool-mediated path can help with documents and UIs, but it is not equivalent to native vision.

Are Claude Code and Codex subagents installed automatically?

No. rc.8 makes them available as on-demand Profile Bundles. An operator still configures instances, permissions, workspaces, and credentials.

Can I upgrade over rc.7 without a backup?

That is risky. The rc.8 release declares an incompatible SQLite data structure. Back up first and test session read, fork, image references, and rollback on a copy.

Is DSH multimodal support production-ready?

The project remains a developer preview and these releases are prereleases. Production use requires pinned versions, migration rehearsal, data isolation, observability, and a tested rollback path.