# Humanish 0.94.0

Long analysis requests now honor Humanish's configured deadline instead of
ending early at the HTTP client's header timeout. The default deadline is ten
minutes. Omitted output settings use up to 32,768 tokens when the existing
declared budget admits that allowance, otherwise retaining 16,384. Explicit
output settings remain exact. This adds no retries or automatic budget increase.

Portable HTML stores each distinct raster capture once and resolves it on
demand. A retained 12-participant, 344-capture recording decreased from about
309 MiB to 143 MiB without changing capture bytes or timestamps. Existing
recordings remain readable; new exports retain the same sharing checks.

Participant inbox links now open that participant's synthetic recipient scope.
Unknown scopes fail closed, while the shared inbox remains explicitly labeled
for operators. Supported captured inline images render; unsupported references
show an explanation. Remote images still depend on their original host.
Recipient scopes are navigation isolation, not tenant authentication.

`humanish doctor --lab <lab>` separates participant authentication, hosted
desktop requirements and automatic-analysis credentials. Local Codex or Claude
authentication is checked through that CLI rather than inferred from a file.
The keyless first run needs no model or desktop credentials.
Projects without `package.json` are valid; `doctor` treats the missing optional
npm integration as information while still rejecting unsafe or unreadable files.

Observer keeps the previous decoded capture visible while loading the selected
one, labels it as previous evidence, and withholds action pins until the selected
image is ready. Pinning animates the displaced cards as well as the selected
card, preserving focus and respecting reduced motion. Pin and unpin are
available directly on each card, with readable metadata and phone touch targets.
A repeatable browser
gate checks capture transitions, motion and automated accessibility in both
themes at desktop and phone widths.

An actual Humanish participant joined a synthetic camera room with a separate
hosted peer, exchanged moving video, and left. A second participant denied the
native camera prompt and stayed outside the room. Unsupported media routes and
microphone-file injection now fail before execution instead of silently ignoring
the declaration. This proves one video-only Chromium path; audio, TURN and
provider-specific rooms remain unproven.

Kept evidence and limits:

- [Analysis reliability](../goals/computer-use-actor/receipts/analysis-reliability-2026-09-19.md)
- [Portable recording comparison](../goals/observer-qol/receipts/2026-09-19-portable-export.md)
- [Setup, inbox and camera proof](../goals/computer-use-actor/receipts/reliability-2026-09-19.md)
- [Observer capture and accessibility gate](https://github.com/danielgwilson/humanish/blob/main/scripts/observer-reliability-proof.md)
