humanish 0.99.0 → 0.100.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.
- package/AGENTS.md +2 -0
- package/README.md +25 -4
- package/dist/actor-contract.d.ts +2 -0
- package/dist/actor-contract.js +4 -2
- package/dist/actor-contract.js.map +1 -1
- package/dist/browser-control-client.js +4 -2
- package/dist/browser-control-client.js.map +1 -1
- package/dist/browser-control-dispatcher.js +1 -1
- package/dist/browser-control-dispatcher.js.map +1 -1
- package/dist/computer-use.js +25 -11
- package/dist/computer-use.js.map +1 -1
- package/dist/cua-provider-error.d.ts +5 -1
- package/dist/cua-provider-error.js +9 -2
- package/dist/cua-provider-error.js.map +1 -1
- package/dist/doctor-lab.d.ts +8 -0
- package/dist/doctor-lab.js +9 -4
- package/dist/doctor-lab.js.map +1 -1
- package/dist/first-run-path.d.ts +3 -0
- package/dist/first-run-path.js +22 -1
- package/dist/first-run-path.js.map +1 -1
- package/dist/guest-bootstrap.d.ts +12 -4
- package/dist/guest-bootstrap.js +49 -17
- package/dist/guest-bootstrap.js.map +1 -1
- package/dist/guest-runtime-desktop.d.ts +5 -2
- package/dist/guest-runtime-desktop.js +30 -6
- package/dist/guest-runtime-desktop.js.map +1 -1
- package/dist/guest-runtime-main.js +2 -1
- package/dist/guest-runtime-main.js.map +1 -1
- package/dist/guest-runtime.d.ts +1 -1
- package/dist/guest-runtime.js +5 -3
- package/dist/guest-runtime.js.map +1 -1
- package/dist/init-templates.d.ts +6 -1
- package/dist/init-templates.js +39 -3
- package/dist/init-templates.js.map +1 -1
- package/dist/init.d.ts +6 -1
- package/dist/init.js +35 -3
- package/dist/init.js.map +1 -1
- package/dist/lab-engine.js +1 -1
- package/dist/lab-engine.js.map +1 -1
- package/dist/lab-summary.d.ts +4 -0
- package/dist/lab-summary.js +5 -1
- package/dist/lab-summary.js.map +1 -1
- package/dist/local-firecracker-desktop.js +13 -10
- package/dist/local-firecracker-desktop.js.map +1 -1
- package/dist/local-runtime-release.js +8 -8
- package/dist/observer-app.html +1 -1
- package/dist/program.js +9 -1
- package/dist/program.js.map +1 -1
- package/dist/restricted-codex-participant.js +3 -3
- package/dist/restricted-codex-participant.js.map +1 -1
- package/dist/restricted-codex-policy.d.ts +1 -0
- package/dist/restricted-codex-policy.js.map +1 -1
- package/dist/restricted-codex-session.js +11 -3
- package/dist/restricted-codex-session.js.map +1 -1
- package/dist/tui-app.js +16 -16
- package/docs/architecture/browser-control.md +6 -0
- package/docs/architecture/local-browser-runtime.md +25 -5
- package/docs/contracts/schemas.md +8 -1
- package/docs/goals/current.md +5 -5
- package/docs/ramp/README.md +7 -1
- package/docs/release/0.100.0-local-setup.md +31 -0
- package/docs/release/0.99.1-action-recovery.md +19 -0
- package/docs/release/open-source-readiness.md +10 -0
- package/package.json +1 -1
|
@@ -34,6 +34,12 @@ calls are rejected rather than queued. The client marks its executor with
|
|
|
34
34
|
`stallRecovery: 'fail_closed'`, so an earlier computer-use loop deadline cannot
|
|
35
35
|
trigger the legacy observation retry or idle-action skip behavior.
|
|
36
36
|
|
|
37
|
+
An action explicitly rejected with `action_rejected` / `not_dispatched` can
|
|
38
|
+
recover in the shared study loop. It records the rejection, withholds the rest
|
|
39
|
+
of that action batch and takes a fresh observation before asking the participant
|
|
40
|
+
what to do next. It never automatically replays input. Other executor failures,
|
|
41
|
+
including uncertain outcomes and failed observations, still end the session.
|
|
42
|
+
|
|
37
43
|
## Wire contract
|
|
38
44
|
|
|
39
45
|
Each frame is a four-byte unsigned big-endian length followed by strict UTF-8
|
|
@@ -18,8 +18,22 @@ and account restrictions. Docker access is an administrative capability.
|
|
|
18
18
|
Humanish does not install Docker on Linux or change host permissions. On Mac,
|
|
19
19
|
setup installs Docker only inside the dedicated Lima host.
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
Configure the starter while initializing the project, then start your app on
|
|
22
|
+
the same loopback URL:
|
|
23
|
+
|
|
24
|
+
```sh
|
|
25
|
+
npx humanish init --yes \
|
|
26
|
+
--local-browser http://127.0.0.1:3000 \
|
|
27
|
+
--local-mission "Create a note and explain anything confusing about saving it"
|
|
28
|
+
npx humanish doctor --lab local-browser
|
|
29
|
+
npx humanish lab run local-browser
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
`init` also writes `humanish/labs/local-browser.yaml` with safe defaults when
|
|
33
|
+
the two options are omitted. The options provide the normal setup path for the
|
|
34
|
+
app URL and mission on first setup. If the file already exists, `init` preserves
|
|
35
|
+
it and warns that these options were skipped; edit the existing manifest to
|
|
36
|
+
change its URL or mission. The resulting lab has this shape:
|
|
23
37
|
|
|
24
38
|
```yaml
|
|
25
39
|
schema: humanish.lab.v2
|
|
@@ -42,10 +56,9 @@ execution:
|
|
|
42
56
|
```
|
|
43
57
|
|
|
44
58
|
```sh
|
|
45
|
-
npx humanish init --yes
|
|
46
59
|
npx humanish runtime status --json
|
|
47
|
-
npx humanish doctor --lab
|
|
48
|
-
npx humanish lab run
|
|
60
|
+
npx humanish doctor --lab local-browser --json
|
|
61
|
+
npx humanish lab run local-browser
|
|
49
62
|
```
|
|
50
63
|
|
|
51
64
|
The first live run downloads the pinned runtime archive (about 569 MiB on x64 or
|
|
@@ -68,6 +81,13 @@ For API billing and its supported caps, use `type: openai-computer-use`, remove
|
|
|
68
81
|
default. Neither path silently falls back to another provider or hosted desktop.
|
|
69
82
|
Existing labs without `execution.target: local` retain their previous behavior.
|
|
70
83
|
|
|
84
|
+
Before handing the desktop to the participant, the guest navigates to the
|
|
85
|
+
selected app and waits up to 30 seconds for the initial document's
|
|
86
|
+
`DOMContentLoaded` event, then allows a bounded paint. It does not wait for app
|
|
87
|
+
data, images or network idle: the app's own loading screen remains observable.
|
|
88
|
+
Navigation failures and timeouts fail startup and release the owned desktop.
|
|
89
|
+
Later participant actions and observations do not use this startup wait.
|
|
90
|
+
|
|
71
91
|
## Current limits
|
|
72
92
|
|
|
73
93
|
- Linux x64 or M3-or-newer Mac with native ARM64 Node and Lima. The installed
|
|
@@ -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.
|
|
6
|
+
`0.100.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.
|
|
@@ -768,6 +768,13 @@ scenario:
|
|
|
768
768
|
|
|
769
769
|
## Actor Trace
|
|
770
770
|
|
|
771
|
+
Failed account participant requests may include an optional `failurePhase` in
|
|
772
|
+
`providerRequests`, identifying startup, the named Codex setup RPC, `turn/start`,
|
|
773
|
+
`response`, or cleanup. It is a finite local classification, never raw provider
|
|
774
|
+
text. Older receipts without it remain valid. The phase does not replace the
|
|
775
|
+
separate dispatch, usage, or cleanup evidence, and does not establish the cause
|
|
776
|
+
of a timeout. Participant outcome text includes the phase when available.
|
|
777
|
+
|
|
771
778
|
Actors execute or simulate the trial. Actor evidence is the provider-neutral
|
|
772
779
|
`humanish.actor-trace.v1` (`src/actor-contract.ts`): Codex app-server items,
|
|
773
780
|
Claude Agent SDK blocks, pi events, computer-use cycles, scripted browser
|
package/docs/goals/current.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Current Goals
|
|
2
2
|
|
|
3
|
-
Status date: 2026-09-
|
|
3
|
+
Status date: 2026-09-25. Release baseline: `0.100.0`.
|
|
4
4
|
|
|
5
5
|
This page guides work on current merged source. Published behavior is described
|
|
6
|
-
in the [release notes](../release/0.
|
|
6
|
+
in the [release notes](../release/0.100.0-local-setup.md).
|
|
7
7
|
The [September 9 history](https://github.com/danielgwilson/humanish/blob/main/docs/goals/current-history-2026-09-09.md)
|
|
8
8
|
preserves the former status log; its queues do not supersede this page.
|
|
9
9
|
|
|
@@ -88,7 +88,7 @@ requires decision-equivalent retained evidence and a real deletion branch.
|
|
|
88
88
|
No first-party deletion branch has met that gate. Public demonstrations do not
|
|
89
89
|
substitute for it.
|
|
90
90
|
|
|
91
|
-
## Current Program Truth (source `0.
|
|
91
|
+
## Current Program Truth (source `0.100.0`)
|
|
92
92
|
|
|
93
93
|
| Surface | Available in merged source | Remaining boundary |
|
|
94
94
|
| --- | --- | --- |
|
|
@@ -123,8 +123,8 @@ ordinary TAP/NAT networking. Continue managed-local work from this complete stud
|
|
|
123
123
|
path; the earlier offline owner/service qualification experiments are historical
|
|
124
124
|
fixtures, not an installation architecture or a prerequisite queue. Explicit
|
|
125
125
|
Linux local labs now use the installed CLI/TUI, with a verified runtime download
|
|
126
|
-
before the first live run. Mac support
|
|
127
|
-
remain unfinished. Existing hosted labs retain their behavior.
|
|
126
|
+
before the first live run. Mac support is also shipped; inbox integration and
|
|
127
|
+
optional media remain unfinished. Existing hosted labs retain their behavior.
|
|
128
128
|
|
|
129
129
|
## Gates And Deferred Work
|
|
130
130
|
|
package/docs/ramp/README.md
CHANGED
|
@@ -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.
|
|
5
|
+
Package/source version in this tree: `0.100.0` (2026-09-25). 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
|
|
@@ -54,6 +54,12 @@ If a change does not improve one of those loops, it probably belongs elsewhere.
|
|
|
54
54
|
|
|
55
55
|
## Current State
|
|
56
56
|
|
|
57
|
+
The [0.100.0 release note](../release/0.100.0-local-setup.md) describes local
|
|
58
|
+
browser setup discovery, initial navigation readiness and Codex failure stages.
|
|
59
|
+
|
|
60
|
+
The [0.99.1 release note](../release/0.99.1-action-recovery.md) describes
|
|
61
|
+
participant recovery from browser actions rejected before dispatch.
|
|
62
|
+
|
|
57
63
|
The [0.99.0 release note](../release/0.99.0-local-browser-mac.md) describes
|
|
58
64
|
local browser studies on supported Apple Silicon Macs through Lima, public ARM
|
|
59
65
|
runtime setup, Codex account participants and automatic analysis.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 0.100.0 — Local study setup and startup reliability
|
|
2
|
+
|
|
3
|
+
Initialize a local browser study for your app without writing its lab manifest:
|
|
4
|
+
|
|
5
|
+
```sh
|
|
6
|
+
humanish init --yes --local-browser http://127.0.0.1:3000 \
|
|
7
|
+
--local-mission "Create a note and find it again"
|
|
8
|
+
humanish doctor --lab local-browser
|
|
9
|
+
humanish run local-browser
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
The starter uses local Firecracker browsers and the supported Codex account
|
|
13
|
+
login. Model inference remains remote and consumes account quota; E2B and OpenAI
|
|
14
|
+
API keys are unnecessary for this route. Linux needs local Docker/KVM/TUN;
|
|
15
|
+
supported Apple Silicon Macs use Lima. Init and the TUI explain prerequisites
|
|
16
|
+
and reuse the CLI's readiness checks. Existing lab files are preserved; if the
|
|
17
|
+
local starter already exists, edit its URL and mission in
|
|
18
|
+
`humanish/labs/local-browser.yaml` instead of rerunning the init flags.
|
|
19
|
+
The free preview and hosted starter remain available. Local dry runs work without
|
|
20
|
+
starting a desktop or requesting a model turn.
|
|
21
|
+
|
|
22
|
+
The first local participant capture now follows the target document's
|
|
23
|
+
DOMContentLoaded event and a paint. Previously a fixed 500 ms wait could expose
|
|
24
|
+
the runtime's starter page. Navigation is bounded, supports redirects, and
|
|
25
|
+
reports startup failures; it does not wait for all app data or subsequent loads.
|
|
26
|
+
Updated x64 and ARM64 runtime images carry the initial-navigation change.
|
|
27
|
+
|
|
28
|
+
Failed account participant requests retain their finite execution stage, such
|
|
29
|
+
as `thread/start`, in the recording and outcome text. Older recordings remain
|
|
30
|
+
readable. This adds diagnostic evidence without changing retry or deadline
|
|
31
|
+
behavior; it does not claim the cause of a past timeout is known.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# 0.99.1 — Recover from rejected browser actions
|
|
2
|
+
|
|
3
|
+
A participant can now recover when the desktop explicitly rejects an action
|
|
4
|
+
before sending any input. For example, typing without an editable field focused
|
|
5
|
+
previously ended a local browser study with a harness error, even though the
|
|
6
|
+
browser remained usable.
|
|
7
|
+
|
|
8
|
+
The shared execution loop records the rejection, withholds the remaining actions
|
|
9
|
+
in that batch, and takes a fresh screenshot before asking the participant what
|
|
10
|
+
to do next. This prevents a queued submit from running after rejected typing.
|
|
11
|
+
The next turn receives accurate execution acknowledgements and a recovery hint;
|
|
12
|
+
rejected actions are not recorded as completed input. The harness does not
|
|
13
|
+
replay them automatically.
|
|
14
|
+
|
|
15
|
+
Uncertain outcomes, transport failures, revoked sessions and failed observations
|
|
16
|
+
retain their terminal handling. Existing time and no-progress limits still bound
|
|
17
|
+
repeated rejections. Updated runtime images keep the browser-control connection
|
|
18
|
+
open for this specific rejection; the shared host-side loop then allows recovery.
|
|
19
|
+
Account configuration and desktop setup are unchanged.
|
|
@@ -134,6 +134,16 @@ operations notes, local runtime caches, or private operator packets. Public
|
|
|
134
134
|
they are synthetic, durable, and public-safe. Public image assets must remain on
|
|
135
135
|
the scanner allowlist and keep their approved checksum.
|
|
136
136
|
|
|
137
|
+
## Version Policy
|
|
138
|
+
|
|
139
|
+
Humanish remains on `0.x` until the maintainer explicitly decides to release
|
|
140
|
+
`1.0.0`. General authority to merge and publish does not imply that decision.
|
|
141
|
+
Semantic-version components are integers, not decimals: the next minor after
|
|
142
|
+
`0.99.0` is `0.100.0`; a patch is `0.99.1`. Use patch releases for compatible
|
|
143
|
+
fixes and minor releases for features or pre-1.0 breaking changes, documenting
|
|
144
|
+
any breaking changes and migration steps. Do not use `npm version major` or
|
|
145
|
+
infer 1.0 readiness from a large minor number. See [SemVer](https://semver.org/).
|
|
146
|
+
|
|
137
147
|
## Publish Procedure
|
|
138
148
|
|
|
139
149
|
Only after maintainer approval. Prefer the tag-gated GitHub Actions workflow
|
package/package.json
CHANGED