DeepSeek Harness 0.2.0-rc.2: what changed, and how DAC runs it
DAC reaches DeepSeek Harness through a facade plugin (dsh-api-facade, published as
ohdsh-api-facade). The facade pins one harness version and exposes it to the manager over
a frozen wire contract. We build and ship against DSH 0.2.0-rc.2, which is also the
release tagged latest on npm. This post is the record for that version.
The 0.2.0 line is a structural step from 0.1.x. Six changes matter if you embed the harness.
Streaming became opt-in. Assistant deltas no longer live in the persistent session
log. A client that wants them sends assistantStream: true and gets transient live frames;
the durable log keeps whole messages only. History and the default follow stream carry no
per-chunk deltas as a result.
Session storage moved from V3 to V4. The migration is one-way. Back up the data volume before upgrading, because there is no path back.
The host enforces plugin compatibility at boot. It reads each plugin's declared DSH peer range and disables anything out of range at startup. An exact-version exemption exists, but you acknowledge it explicitly.
Settings persistence changed. Live settings registration is gone. Durable configuration comes from the profile patch, and a self-serve API key handed out at runtime survives only until the next restart.
A privacy default flipped. The DeepSeek session-log plugin ships enabled. Deployments that want it off override it in the profile patch.
Messages can carry reasoning blocks alongside the text.
What the facade does about it
A single facade build runs on both the 0.1.x and 0.2.x lines. It declares a dual peer
range, ^0.1.2-rc.1 || ^0.2.0-0, so the 0.2.0 host does not disable it at boot, and it
absorbs the 0.2.0 change to the streaming open signature.
The user-visible piece is the typewriter. With deltas out of the log, older clients that
expect a chunk stream would fall silent. Facade v0.2.5 sets assistantStream: true on
0.2.x hosts only, then translates the live frames back into the frozen chunk shape the
manager already reads. Clients change nothing and streaming returns. The 0.1.x request
path stays byte-for-byte identical.
We verified this end to end on a production 0.2.0-rc.2 stack, covering the smoke tests and the question/approval card chain, and kept a 0.1.5 compatibility run green on the same build.
Tracking status
0.2.0-rc.2 is the newest DSH on the latest channel, so DAC is current on the stable line.
DeepSeek has cut two 0.2.1 alphas since. We stay on the rc until 0.2.1 reaches a stable
tag, and this series gets a new post when the facade moves.