## Iris Media for DSH 0.1.4

Iris 0.1.4 is an architecture and operability release. It puts explicit host and provider boundaries around the plugin, deepens the two bundled agent Skills, and adds compatibility diagnostics for a running DSH instance. It does not add a new media provider and it does not introduce a standalone server.

### Highlights

- Adds an internal Host Adapter v0 with nine named ports for tools, routes, client slots, Skills, attachments, sessions, Browser, text models, and vision models. Core candidates and shared commands no longer receive a raw DSH context.
- Adds deterministic Local Host fixtures that run local image operations and Task recovery flows without installing DSH, and that fail predictably when a port is missing.
- Adds Provider Adapter v0 for the full lifecycle: discovery, submission, acceptance, polling, cancellation, download, and error mapping. DashScope and the OpenAI Images compatibility path pass the same zero-network conformance runner, and every operation is explicitly supported or unsupported.
- Adds Host Doctor to the Iris workbench and to the authenticated `GET /iris/api/doctor` endpoint. It reports the DSH version, plugin identity, 14 tools, two Skills, four route groups, optional host capabilities, server and client versions, and four UI slots without leaving the process.
- Adds persistent provider x model x capability health evidence. Gray means unconfigured, blue means configured but unverified or stale, green means a success within the last seven days, and muted red is reserved for explicit authentication or permission failures.
- Treats real task success and explicit per-model probes as the same evidence source, shows the evidence time, invalidates evidence on critical configuration or model-capability changes, and aggregates ordered failover paths conservatively. Aggregate timestamps come only from the candidates that determine the displayed state.
- Adds Work Library v0. New media is indexed independently of task history, existing `outputs/` are adopted on upgrade, the workbench shows a paginated mobile-friendly grid, and the floating bubble reads recent works from the same durable index.
- Separates cleanup semantics: clearing terminal tasks keeps works visible, re-indexing recovers local media, and deleting one work, clearing the library, and purging true orphan files remain three distinct confirmed actions.
- Deepens the bundled `iris-verify-ui` and `iris-compose-media` Skills with an explicit user and model invocation policy, DSH slash-command examples, progressive references, Task v2 stopping rules, and ten zero-cost behavioral contracts.
- Tightens the floating bubble for narrow mobile viewports, handles pointer cancellation, and adds a runtime component-tree smoke test that mounts the workbench, the progress dock, and the bubble.
- Adds a restricted same-origin client handshake that reports only plugin, version, protocol, and slot scalars. Concurrent slot reports are merged monotonically so out-of-order requests cannot produce false missing-slot errors.
- Detects the running DSH version through the real npm/npx CLI target, including symbolic links, and reports unknown or unsupported hosts with actionable guidance.
- Publishes the Host Adapter, Provider Adapter, Host Doctor, artifact library, health, architecture, and updated user documentation.

### Safety notes

- Host Doctor does not invoke host ports, open Browser, inspect attachments or sessions, call text or vision models, or contact providers.
- Health tracking performs no scheduled provider probes. Rate limits, network errors, 5xx responses, content-safety failures, cancellation, and unknown acceptance never overwrite a recent success and never trigger hidden cost.
- Provider and host conformance tests are deterministic fixtures. They never submit billable media requests.
- Automatic provider failover remains limited to explicit `not_accepted` results. Accepted or unknown work is never resubmitted automatically.
- Unverified remote cancellation is reported as explicitly unsupported instead of being guessed from private provider APIs.
- The client handshake is diagnostic evidence only. It does not grant capabilities, participate in authentication, or accept API keys, prompts, sessions, or attachment data.
- `artifacts.json` stores only a random ID, an access token, a basename, a MIME type, a size, and a timestamp. It deliberately excludes prompts, provider and model identity, task relationships, credentials, and absolute paths. Work URLs still require an unguessable capability token.
- The work library is not a backup. Deleting a work removes the underlying file after explicit confirmation, so important media should be copied elsewhere.

### Compatibility

- DeepSeek Harness: `>=0.1.2-rc.1 <0.1.3-0` or `0.1.5-rc.1` (the only two verified windows)
- Node.js: `>=20.10.0`
- `ffmpeg` and `ffprobe` are optional and are needed only for video frame extraction and video summaries.

DSH is still a developer preview. These are the only two windows that passed a host canary; other preview versions, including 0.1.4 and a released 0.1.5, are not claimed as compatible until their own canary passes.

### Install or update

```bash
dsh plugin --profile web add @mokuyoaxis/dsh-iris@0.1.4
dsh web
```

Open the complete authentication URL printed by `dsh web`; a bare `http://127.0.0.1:3080` URL may be rejected.

### Verification

- All 56 test files pass, and the structural lint guard covers every JS and MJS file in `lib/`, `tests/`, and `scripts/`.
- Isolated source-link and packed-tarball canaries run on DSH `0.1.2-rc.1` with Node.js 22: the authenticated application bundle registers 14 tools, two Skills, and four route groups, and the client handshake reports four UI slots.
- Host Doctor reports zero hard errors on the canary host. A missing `dsh-builtin-browser` is the only expected warning.
- The daily Android/Linux host on DSH `0.1.5-rc.1` with Node.js 22 loads all 14 tools, two Skills, four route groups, and four UI slots, and Host Doctor accepts the second verified window.
- The packed tarball is scanned for credentials, host-specific absolute paths, and internal records before release.

Image, video, speech, transcription, and model verification requests may consume provider quota or incur charges.

Full changelog: https://github.com/mokuyoaxis/dsh-iris/compare/v0.1.3...v0.1.4
