humanish 0.79.0 → 0.81.0

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 (50) hide show
  1. package/README.md +11 -2
  2. package/dist/actor-contract.d.ts +16 -0
  3. package/dist/actor-contract.js.map +1 -1
  4. package/dist/chrome-cdp-probe.js +13 -0
  5. package/dist/chrome-cdp-probe.js.map +1 -1
  6. package/dist/computer-use.d.ts +7 -1
  7. package/dist/computer-use.js +156 -13
  8. package/dist/computer-use.js.map +1 -1
  9. package/dist/concurrent-shared-world-lab.js +1 -0
  10. package/dist/concurrent-shared-world-lab.js.map +1 -1
  11. package/dist/cua-actor-lab.d.ts +7 -6
  12. package/dist/cua-actor-lab.js +95 -21
  13. package/dist/cua-actor-lab.js.map +1 -1
  14. package/dist/e2b-desktop-launch.d.ts +28 -1
  15. package/dist/e2b-desktop-launch.js +88 -1
  16. package/dist/e2b-desktop-launch.js.map +1 -1
  17. package/dist/e2b-desktop-screenshot-cleanup.d.ts +15 -0
  18. package/dist/e2b-desktop-screenshot-cleanup.js +67 -0
  19. package/dist/e2b-desktop-screenshot-cleanup.js.map +1 -0
  20. package/dist/e2b-terminal-lab.d.ts +3 -2
  21. package/dist/e2b-terminal-lab.js +176 -85
  22. package/dist/e2b-terminal-lab.js.map +1 -1
  23. package/dist/first-run-path.js +2 -2
  24. package/dist/first-run-path.js.map +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/lab-config.d.ts +11 -14
  28. package/dist/lab-config.js +2 -2
  29. package/dist/lab-config.js.map +1 -1
  30. package/dist/openai-responses-cu.js +76 -49
  31. package/dist/openai-responses-cu.js.map +1 -1
  32. package/dist/program.js +16 -7
  33. package/dist/program.js.map +1 -1
  34. package/dist/run.d.ts +1 -1
  35. package/dist/shared-world-lab.d.ts +3 -1
  36. package/dist/shared-world-lab.js +16 -1
  37. package/dist/shared-world-lab.js.map +1 -1
  38. package/dist/terminal-node-bootstrap.d.ts +4 -0
  39. package/dist/terminal-node-bootstrap.js +58 -0
  40. package/dist/terminal-node-bootstrap.js.map +1 -0
  41. package/dist/terminal-runtime-auth.d.ts +13 -0
  42. package/dist/terminal-runtime-auth.js +24 -0
  43. package/dist/terminal-runtime-auth.js.map +1 -0
  44. package/docs/architecture/actor-contract.md +22 -0
  45. package/docs/architecture/terminal-product-lane.md +108 -7
  46. package/docs/contracts/feedback.md +14 -0
  47. package/docs/contracts/schemas.md +1 -1
  48. package/docs/goals/current.md +57 -13
  49. package/docs/ramp/README.md +1 -1
  50. package/package.json +4 -2
@@ -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.79.0`; it is not an exhaustive inventory of command/result envelopes. Exported types,
6
+ `0.81.0`; 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,19 @@ 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.79.0`)
32
+ ## Current Program Truth (source `0.81.0`)
33
33
 
34
34
  The package source and repository implementation in this tree agree on these
35
35
  points:
36
36
 
37
+ **Mobile input correction, 2026-09-05 (#676).** The historical 4/4 TodoMVC phone-lane rename
38
+ failures describe the shipped desktop pointer-to-touch conversion path. In two new hosted
39
+ conformance probes, SDK double click emitted two single clicks; direct touch opened the same
40
+ original editor in both. A separate local native-X control reproduced the difference by toggling
41
+ conversion. Mobile viewport and touch flags do not certify gesture equivalence or establish a
42
+ physical-device app defect. Mobile lanes using touch conversion now carry that advisory in run
43
+ warnings. [Method, traces summary and limits](computer-use-actor/receipts/mobile-input-conformance-2026-09-05.md).
44
+
37
45
  The immutable 2026-06-10 proof-roadmap packet is paired with a
38
46
  [current implementation checkpoint](https://github.com/danielgwilson/humanish/blob/main/docs/goals/proof-roadmap/README.md).
39
47
 
@@ -463,6 +471,35 @@ Stop and correct course if:
463
471
 
464
472
  ## Best Next Work
465
473
 
474
+ **2026-09-05 (0.81.0).** First use now distinguishes the free evidence preview
475
+ from a live participant study, with concise successful setup output and complete JSON details
476
+ (#660). The website has runnable docs and a generated CLI reference (#661, #668). Retained participant
477
+ reports survive automatic stops. Supported providers with retained history can add one closing
478
+ report when time and known budget remain; clean reports such as “no confusion or hesitation”
479
+ stay clean (#658, #670, #671). Desktop startup cleanup retains acquired handles and records
480
+ confirmed or unknown reclamation. The SDK's detached screenshot-file cleanup rejection is
481
+ handled (#665, #666).
482
+ Terminal output reconciles SDK callbacks with returned aggregates, preserving legitimate
483
+ repeated lines and usage turns while avoiding doubled capture (#672). Opt-in `openai-egress`
484
+ auth keeps the raw OpenAI runtime key outside the sandbox; every sandbox process can still
485
+ spend through the proxy, so this is not a provider spending limit (#663). Stock terminal
486
+ startup installs a checksum-verified Node archive without refreshing unrelated package mirrors
487
+ and gives newly installed npm a default global prefix on the standard PATH (#677, #680). Mobile studies warn that desktop pointer-to-touch conversion can change repeated-tap
488
+ behavior; gesture failures require direct or native touch confirmation before app attribution
489
+ (#678).
490
+
491
+ **2026-09-04, night (0.80.0).** The observation window reaches every desktop route: the
492
+ sequential and concurrent shared-world seats forward `dwell` the way they forward `stopWhen`
493
+ (#645), with a plumbing test per route and two live receipts, three participants holding together
494
+ on one shared board whose checkpoint digest stood still until they acted, and two seats holding
495
+ in turn on one sandbox (`receipts/dwell-window-2026-09-04.md`). The sequential route refuses a
496
+ sandbox request over the provider's 60-minute cap before any call and names the per-role ceiling
497
+ (#649); the provider's refusal had surfaced as a bundle that failed verification. The planted-defect
498
+ benchmark ran with a second brain, the operator's own Claude Code as the participant: 14 of 15
499
+ reported, nothing invented in three clean runs, 72 of 75 across both brains
500
+ (`bench/RESULTS-2026-09-04-claude.md`). A two-minute window and a camera feed of the adopter's own
501
+ are live receipts too.
502
+
466
503
  **2026-09-04, evening (0.79.0).** Two of the operator's own asks, each with a live receipt. A
467
504
  declared observation window (#510): `dwell` on an actor or a lane holds the page once its condition
468
505
  matches (or from the start), captures a frame on a cadence, takes no action and requests no model
@@ -478,8 +515,9 @@ gives a hosted Chrome lane a capture device (ffmpeg's test pattern generated in
478
515
  `desktopBrowser.media`; a microphone is refused without an image that has an audio stack, before
479
516
  any spend. Live, Chrome raised its real dialog with a preview of the feed, the participant chose
480
517
  "Allow this time" and read back 640x480 (`receipts/participant-camera-2026-09-04.md`). Under
481
- mobile emulation the TodoMVC rename now blocks 3 of 3 phone participants; Excalidraw stays clean
482
- at 12 of 12.
518
+ the then-shipped mobile-emulation input path, TodoMVC rename had stopped 3 of 3 phone
519
+ participants at this checkpoint; Excalidraw read 12 of 12. The 2026-09-05 input-conformance
520
+ correction above qualifies attribution of those mobile failures.
483
521
 
484
522
  **2026-09-04, later (0.78.0).** `@e2b/desktop` moved from 2.2.3 to 2.3.3 (#638): its 2.3.1
485
523
  changelog names the socket #581 found today, a background command's event stream the SDK kept
@@ -514,10 +552,10 @@ mobile-emulated browser: `execution.desktop.fidelity.mobileEmulation: true` appl
514
552
  CSS viewport, the preset's device pixel ratio, touch events and a mobile user agent before the
515
553
  participant's first observation, and the bundle records what the page then reported about itself
516
554
  under `desktopGeometry.fidelity` (#221, `docs/goals/computer-use-actor/receipts/mobile-emulation-2026-09-03.md`).
517
- On the published 0.76.0, with touch emulated, neither phone participant on TodoMVC could rename at
518
- all (a double-tap selects text; the double-click editor never opens), where the 500 px runs without
519
- touch had finished and only called the rename touch-hostile: the responsive-viewport study reported
520
- an opinion, the mobile-emulated study reported a blocker.
555
+ On the published 0.76.0, neither phone participant could rename through the emulated input path,
556
+ where the 500 px runs without touch had finished. Those are historical instrument observations:
557
+ the 2026-09-05 conformance check found SDK double click and direct touch differ on the original
558
+ editor, so the earlier outcome does not establish a touch-device app defect.
521
559
  The persona axis was replicated the same evening on drawDB and TodoMVC and given a third app,
522
560
  Excalidraw, as the clean control (`persona-axis-phone-2026-09-03.md`); a multi-lane study's
523
561
  second and third findings reach `feedback draft` through `--candidate` (#609); a negated report
@@ -554,16 +592,22 @@ and a Claude participant with no memory across turns (#520). `humanish stats` (#
554
592
 
555
593
  The standing queue, in rough order:
556
594
 
557
- 1. #581, the remaining half: a `Sandbox.create` that fails after the API allocated the sandbox
595
+ 1. #509, the microphone tier: a custom desktop image with an audio stack
596
+ (`execution.desktop.template`), then `media.microphone` threaded into the launch the way the
597
+ camera is; the parse-time refusal stands until then;
598
+ 2. #581, the remaining half: a `Sandbox.create` that fails after the API allocated the sandbox
558
599
  (the desktop SDK's own startup) leaves a sandbox this run never learned the id of, reclaimed only
559
600
  by the provider's timeout; the linger itself is the SDK's held command stream, closed by the
560
- 2.3.3 bump (0.78.0), and `doctor` names an older SDK;
561
- 2. #513: there is still nowhere to read the docs on humanish.dev (site copy is locked; a docs
601
+ 2.3.3 bump (0.78.0), and `doctor` names an older SDK; the upstream ask is drafted for the
602
+ operator;
603
+ 3. #221's later tier, a real device or simulator behind the emulated lane, and #623's
604
+ scripted-browser route, which has no model loop and so no dwell or later-tab applier;
605
+ 4. #513: there is still nowhere to read the docs on humanish.dev (site copy is locked; a docs
562
606
  route needs the operator's sign-off);
563
- 3. the TUI views over `stats` and `export` (#455's metrics screen and `s` key), design-gated;
564
- 4. the launch post: a draft with every number and its receipt path sits outside the public repo,
607
+ 5. the TUI views over `stats` and `export` (#455's metrics screen and `s` key), design-gated;
608
+ 6. the launch post: a draft with every number and its receipt path sits outside the public repo,
565
609
  awaiting the operator; nothing has been announced;
566
- 5. registry promotions (#431) and the shared-world honesty half (#365, #446), unchanged.
610
+ 7. registry promotions (#431) and the shared-world honesty half (#365, #446), unchanged.
567
611
 
568
612
  Earlier state, kept for the record:
569
613
 
@@ -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.79.0` (2026-09-04). 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.81.0` (2026-09-05). 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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "humanish",
3
- "version": "0.79.0",
3
+ "version": "0.81.0",
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": [
@@ -73,7 +73,9 @@
73
73
  "tui:typecheck": "pnpm --filter humanish-tui typecheck",
74
74
  "tui:smoke": "node scripts/tui-smoke.mjs",
75
75
  "tui:test": "pnpm --filter humanish-tui test",
76
- "release:dogfood": "node scripts/release-dogfood.mjs"
76
+ "release:dogfood": "node scripts/release-dogfood.mjs",
77
+ "docs:generate": "tsx scripts/generate-cli-docs.ts",
78
+ "docs:check": "tsx scripts/generate-cli-docs.ts --check"
77
79
  },
78
80
  "repository": {
79
81
  "type": "git",