humanish 0.85.1 → 0.86.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/concurrent-shared-world-lab.d.ts +1 -1
  2. package/dist/concurrent-shared-world-lab.js +13 -1
  3. package/dist/concurrent-shared-world-lab.js.map +1 -1
  4. package/dist/cua-actor-lab.d.ts +7 -2
  5. package/dist/cua-actor-lab.js +28 -3
  6. package/dist/cua-actor-lab.js.map +1 -1
  7. package/dist/e2b-desktop-launch.d.ts +4 -1
  8. package/dist/e2b-desktop-launch.js +31 -8
  9. package/dist/e2b-desktop-launch.js.map +1 -1
  10. package/dist/e2b-terminal-lab.d.ts +1 -1
  11. package/dist/e2b-terminal-lab.js +13 -2
  12. package/dist/e2b-terminal-lab.js.map +1 -1
  13. package/dist/export.js +1 -1
  14. package/dist/export.js.map +1 -1
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/lab-config.d.ts +4 -0
  18. package/dist/lab-config.js +18 -0
  19. package/dist/lab-config.js.map +1 -1
  20. package/dist/lab-engine.js +24 -1
  21. package/dist/lab-engine.js.map +1 -1
  22. package/dist/observer-app.html +9 -9
  23. package/dist/observer.d.ts +3 -1
  24. package/dist/observer.js +7 -4
  25. package/dist/observer.js.map +1 -1
  26. package/dist/oss-lab.d.ts +1 -1
  27. package/dist/oss-meta-lab.d.ts +1 -1
  28. package/dist/oss-meta-lab.js.map +1 -1
  29. package/dist/participant-assignment.d.ts +12 -0
  30. package/dist/participant-assignment.js +15 -0
  31. package/dist/participant-assignment.js.map +1 -0
  32. package/dist/run.d.ts +13 -1
  33. package/dist/run.js +11 -0
  34. package/dist/run.js.map +1 -1
  35. package/dist/scripted-browser-lab.d.ts +1 -1
  36. package/dist/scripted-browser-lab.js +9 -0
  37. package/dist/scripted-browser-lab.js.map +1 -1
  38. package/dist/shared-world-lab.d.ts +5 -2
  39. package/dist/shared-world-lab.js +13 -1
  40. package/dist/shared-world-lab.js.map +1 -1
  41. package/docs/architecture/task-protocol-support.md +35 -0
  42. package/docs/contracts/run-bundle.md +33 -0
  43. package/docs/contracts/schemas.md +1 -1
  44. package/docs/goals/current.md +5 -1
  45. package/docs/ramp/README.md +10 -1
  46. package/docs/release/0.86.0-participant-evidence.md +50 -0
  47. package/docs/release/0.86.1-task-preflight-saved-recordings.md +40 -0
  48. package/package.json +4 -3
@@ -3,7 +3,7 @@
3
3
  Date: 2026-06-02 (current-state note updated 2026-07-14)
4
4
 
5
5
  Status: reference map for the major contracts shipped through source version
6
- `0.85.1`; it is not an exhaustive inventory of command/result envelopes. Exported types,
6
+ `0.86.1`; it is not an exhaustive inventory of command/result envelopes. Exported types,
7
7
  schema constants, parsers, and validators in `src/` are authoritative. Rows
8
8
  marked "reserved" name layering intent only — no code emits or validates them
9
9
  yet. Do not emit a reserved schema.
@@ -29,11 +29,15 @@ study completed, reproduced, and produced a real accessibility finding via a
29
29
  keyboard-first participant
30
30
  ([docs/goals/email-gated-signup/receipts/](email-gated-signup/receipts/)).
31
31
 
32
- ## Current Program Truth (source `0.85.1`)
32
+ ## Current Program Truth (source `0.86.1`)
33
33
 
34
34
  The package source and repository implementation in this tree agree on these
35
35
  points:
36
36
 
37
+ **Declared tasks and saved recordings, 2026-09-09 (#737, #738).** Task declarations now fail preflight when the execution path cannot consume them, before hooks, processes or paid allocation. Portable HTML exports stay saved recordings over HTTP, including snapshots captured while a participant was running. Ordinary served runs still report real update failures. See the [0.86.1 release note](../release/0.86.1-task-preflight-saved-recordings.md).
38
+
39
+ **Participant evidence context, 2026-09-09 (#733).** New runs preserve each participant's authored mission and lane focus. The Observer distinguishes individual actions within a capture interval, including links and saved moments, and labels the capture's time relative to the action. Supported desktop SDK startup cleanup shares a bounded result between SDK-internal cleanup and Humanish's fallback (#734). See the [0.86.0 release note](../release/0.86.0-participant-evidence.md).
40
+
37
41
  **Observer review continuity, 2026-09-09 (#731).** The run library opens during player/comparison review. Comparison frames link into the player and return to the saved alignment and cursor; participant names stay consistent. Explicit thinking filters reveal narration, and run/setup notices remain inspectable separately from frame-linked findings. See the [0.85.1 release note](../release/0.85.1-observer-continuity.md).
38
42
 
39
43
  **Observer watching and review, 2026-09-09 (#723, #724, #726, #728).** Grid previews preserve complete screens at a shared height, with compact captions and controls below the evidence. Run activity, live viewing, recorded replay and update freshness are distinct. Seeking, refresh and incoming captures preserve the selected viewing intent. The player adds elapsed-time review, zoom, saved moments and participant/cross-run comparison. The built TUI and observe serve existing evidence; exports contain no runtime desktop grants. See the [0.85.0 release note](../release/0.85.0-observer-review.md) for capabilities, acceptance evidence and limits.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Status: public-safe contributor and agent ramp.
4
4
 
5
- Package/source version in this tree: `0.85.1` (2026-09-09). The Observer is phone-usable as a stated requirement (observer/AGENTS.md); interactive primitives start from Base UI. The Observer renderer is the observer/ workspace artifact only; the legacy string-concat renderer was deleted at cutover (#426), and rollback is a version pin to 0.42.0. The containment boundary introduced in
5
+ Package/source version in this tree: `0.86.1` (2026-09-09). The Observer is phone-usable as a stated requirement (observer/AGENTS.md); interactive primitives start from Base UI. The Observer renderer is the observer/ workspace artifact only; the legacy string-concat renderer was deleted at cutover (#426), and rollback is a version pin to 0.42.0. The containment boundary introduced in
6
6
  `0.15.1` remains in force: managed run and output paths bind to validated
7
7
  physical filesystem identities, and stored provider IDs are evidence, not
8
8
  cleanup authority. The bundled OSS meta-lab is dry-run only until
@@ -47,6 +47,15 @@ If a change does not improve one of those loops, it probably belongs elsewhere.
47
47
 
48
48
  ## Current State
49
49
 
50
+ The [0.86.1 release note](../release/0.86.1-task-preflight-saved-recordings.md)
51
+ describes task preflight on unsupported execution paths and saved HTML recordings
52
+ that remain snapshots when served over HTTP.
53
+
54
+ The [0.86.0 release note](../release/0.86.0-participant-evidence.md) describes
55
+ participant assignments, action-specific replay links and bounded cleanup with
56
+ the current desktop SDK. Old runs without assignment fields remain readable;
57
+ the Observer labels that absence instead of borrowing another participant's goal.
58
+
50
59
  Humanish has a working public package shape and a safe first-run path:
51
60
 
52
61
  ```bash
@@ -0,0 +1,50 @@
1
+ # Humanish 0.86.0: know which assignment and action you are reviewing
2
+
3
+ The Observer now shows each participant's assigned mission and lane focus.
4
+ Expand **Assigned task** in the player or participant details to read the
5
+ instructions. Computer-use runs also include their participant-facing task
6
+ goals. Hidden success checks and runtime access details stay outside this
7
+ assignment. Older recordings explicitly say when an assignment was not recorded.
8
+
9
+ Selecting an activity entry now selects that entry's identity, timestamp and
10
+ coordinate pin. Two clicks between the same screenshots can be inspected
11
+ separately. The image remains the recorded capture; its label explains whether
12
+ its timestamp is before, after or equal to the selected entry's timestamp.
13
+ Missing timestamps stay explicit. **Show capture interval** returns to the
14
+ complete interval, and **Next action** visits actions within the same interval.
15
+
16
+ Copied links and local saved moments retain the selected action. Saved entries
17
+ include subsecond timestamps and their recorded order, so repeated clicks or
18
+ keypresses remain distinguishable. A missing saved entry reports its absence.
19
+ On phones, the player keeps the selected participant's name above the evidence.
20
+
21
+ This release also supports the current `@e2b/desktop` 2.4.0 startup cleanup path.
22
+ If startup fails after an instance is acquired, the SDK's internal kill and
23
+ Humanish's fallback share one cleanup result bounded by the lower of the
24
+ caller's request timeout and ten seconds. Unconfirmed cleanup prevents another
25
+ allocation. Successful creation restores normal teardown behavior. Older
26
+ supported SDKs retain their cleanup protection.
27
+
28
+ Install with `npm install -g humanish@0.86.0`. Reopen an existing run with
29
+ `humanish observe --run RUN`, or regenerate its HTML export, to update its viewer.
30
+ Updating the viewer cannot reconstruct assignments absent from the original run.
31
+
32
+ ## Verification and limits
33
+
34
+ The [retained study receipt](https://github.com/danielgwilson/humanish/blob/main/docs/goals/observer-qol/receipts/2026-09-09-participant-context.md)
35
+ records the two-participant app study, actual-recording browser review and two
36
+ hosted SDK startup-fault probes, including their incomplete outcomes and limits.
37
+
38
+ Assignment tests cover computer-use, shared-world and terminal producers,
39
+ including redaction, old bundles and hidden-field exclusion. Shared-world and
40
+ terminal routes retain their mission and role instructions; they do not expose
41
+ unexecuted manifest tasks as participant assignments. Browser checks cover
42
+ action selection, refresh, save/recall and phone context in the production
43
+ artifact. SDK conformance uses the actual installed create/start implementation
44
+ with controlled method faults on the current, older and minimum supported peers.
45
+
46
+ Screenshot replay remains sparse. This change does not add continuous video,
47
+ infer participant thoughts, or certify physical mobile input. A cleanup deadline
48
+ does not establish ownership before the SDK returns a handle or prove provider
49
+ reclamation after an unconfirmed response. Saved moments remain local to the
50
+ browser.
@@ -0,0 +1,40 @@
1
+ # Humanish 0.86.1: enforce declared tasks and preserve saved recordings
2
+
3
+ Humanish now refuses a task protocol when the chosen execution path cannot run
4
+ it. Previously, a shared-world, terminal, scripted or synthetic lab could accept
5
+ `actors[0].tasks` and then omit those tasks during execution. Preflight now names
6
+ the unsupported field before creating a run or starting hooks, processes,
7
+ desktops or model requests. Remove `tasks` only when you intend a mission-only
8
+ study, or choose a supported per-lane computer-use route.
9
+
10
+ The same check protects direct library callers. Per-lane computer-use tasks
11
+ remain supported, including `local-agent`, `local-app` and `desktop-cli` paths.
12
+ Tasks on a second or later actor are rejected because current runners consume
13
+ the first actor. The [support matrix](../architecture/task-protocol-support.md)
14
+ describes the execution boundaries and structured errors.
15
+
16
+ Portable HTML exports now identify themselves as **Saved recording**, including
17
+ when opened from a website. They do not request a live feed, show a retry warning
18
+ for a missing endpoint, or open a desktop preview from a recording captured
19
+ while the participant was running. Recorded outcomes, timestamps and images
20
+ remain intact. Ordinary `humanish observe` and `humanish serve` pages still
21
+ request updates and report real connection failures.
22
+
23
+ Install with `npm install -g humanish@0.86.1`. Regenerate an existing export with
24
+ `humanish export --run RUN --format html` to use the corrected viewer. Existing
25
+ HTML files keep the behavior of the version that produced them.
26
+
27
+ ## Verification and limits
28
+
29
+ The task preflight proof exercises unsupported lab shapes through the compiled
30
+ CLI with provider, network and subprocess operations denied. Parser and direct
31
+ runner tests also cover supported CUA paths and mission-only execution. These
32
+ are refusal and compatibility checks; they do not establish task support in
33
+ the rejected engines.
34
+
35
+ Production browser checks use a retained real recording over HTTP and from a
36
+ local file at desktop and phone widths. Controls cover ordinary served pages,
37
+ legacy exports and a snapshot captured while running. Snapshot checks verify
38
+ that no feed, history or live desktop request occurs; served controls preserve
39
+ the visible connection failure. No run-data schema or original study result
40
+ changes, and this release adds no continuous video or physical-device proof.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "humanish",
3
- "version": "0.85.1",
3
+ "version": "0.86.1",
4
4
  "description": "Open-source-safe CLI for persona simulation, observer review, and public-safe feedback drafts.",
5
5
  "author": "Daniel G Wilson <daniel@danielgwilson.com>",
6
6
  "keywords": [
@@ -50,8 +50,9 @@
50
50
  },
51
51
  "scripts": {
52
52
  "build": "tsc -p tsconfig.build.json && pnpm --filter humanish-observer build && pnpm --filter humanish-tui build && node scripts/finish-build.mjs",
53
- "check": "pnpm typecheck && pnpm test && pnpm tui:test && pnpm build && pnpm cli:startup:test && pnpm tui:smoke",
53
+ "check": "pnpm typecheck && pnpm test && pnpm tui:test && pnpm build && pnpm cli:startup:test && pnpm cli:preflight:test && pnpm tui:smoke",
54
54
  "cli:startup:test": "node scripts/terminal-startup-exit-proof.mjs",
55
+ "cli:preflight:test": "node scripts/task-route-preflight-proof.mjs",
55
56
  "humanish": "tsx src/cli.ts",
56
57
  "pack:dry-run": "npm pack --dry-run",
57
58
  "prepack": "pnpm build",
@@ -108,7 +109,7 @@
108
109
  },
109
110
  "devDependencies": {
110
111
  "@anthropic-ai/claude-agent-sdk": "^0.3.0",
111
- "@e2b/desktop": "^2.3.3",
112
+ "@e2b/desktop": "^2.4.0",
112
113
  "@types/node": "^20.19.41",
113
114
  "@types/pngjs": "^6.0.5",
114
115
  "tsx": "^4.22.4",