# Humanish 0.86.1: enforce declared tasks and preserve saved recordings

Humanish now refuses a task protocol when the chosen execution path cannot run
it. Previously, a shared-world, terminal, scripted or synthetic lab could accept
`actors[0].tasks` and then omit those tasks during execution. Preflight now names
the unsupported field before creating a run or starting hooks, processes,
desktops or model requests. Remove `tasks` only when you intend a mission-only
study, or choose a supported per-lane computer-use route.

The same check protects direct library callers. Per-lane computer-use tasks
remain supported, including `local-agent`, `local-app` and `desktop-cli` paths.
Tasks on a second or later actor are rejected because current runners consume
the first actor. The [support matrix](../architecture/task-protocol-support.md)
describes the execution boundaries and structured errors.

Portable HTML exports now identify themselves as **Saved recording**, including
when opened from a website. They do not request a live feed, show a retry warning
for a missing endpoint, or open a desktop preview from a recording captured
while the participant was running. Recorded outcomes, timestamps and images
remain intact. Ordinary `humanish observe` and `humanish serve` pages still
request updates and report real connection failures.

Install with `npm install -g humanish@0.86.1`. Regenerate an existing export with
`humanish export --run RUN --format html` to use the corrected viewer. Existing
HTML files keep the behavior of the version that produced them.

## Verification and limits

The task preflight proof exercises unsupported lab shapes through the compiled
CLI with provider, network and subprocess operations denied. Parser and direct
runner tests also cover supported CUA paths and mission-only execution. These
are refusal and compatibility checks; they do not establish task support in
the rejected engines.

Production browser checks use a retained real recording over HTTP and from a
local file at desktop and phone widths. Controls cover ordinary served pages,
legacy exports and a snapshot captured while running. Snapshot checks verify
that no feed, history or live desktop request occurs; served controls preserve
the visible connection failure. No run-data schema or original study result
changes, and this release adds no continuous video or physical-device proof.
