assets/demo.gif (and the matching assets/demo.mp4) is presented as an 18-second continuous
screen recording of an Agent Browser run, not as the older montage of stills. The capture record
says ffmpeg -f x11grab recorded the same X display used by the session's browser and noVNC view.
It attributes the typing and sign-in click to POST /browser/interact, the page changes to the
session's own navigation, and the takeover keystrokes to that display while the session stayed
open. The retained public evidence and its independently verifiable limits are stated below.
The recording illustrates the product's human-takeover flow end to end: an agent drives the
session over the API, reaches a two-factor prompt it has no way to answer, stops; a human types into
the displayed session; the agent then calls snapshot and continues against the unblocked page.
- The fixture site is local and synthetic, so the run is reproducible and contains no third-party content. It exercises the same navigation, interaction, and snapshot paths as any other target.
- The browser binary is Chromium rather than Google Chrome Stable (see the table). The Compose quickstart installs Chrome.
- The caption bar is an editorial overlay added after capture. The browser frame above it is untouched.
- The repository does not retain the raw capture or timestamped action log, so a third party cannot independently re-verify the capture operator's single-take and no-replay assertions from the published files alone.
- The social preview (
assets/social-preview.png) is a prepared brand asset and is not runtime proof.
The current media first entered public history in pull request #61,
whose head was da3db74f1c9fa3d3867e660bc52936c0cf181db3 and whose merge commit is
0bb66239232d038a49323dc6310557b3c89939b7. That change touched the README, this evidence file,
and demo media only; its executable runtime tree therefore matches its v0.1.0 parent. The public
record does not bind the capture itself to an exact source commit or hosted capture job.
SHA-256 values for the currently committed media:
assets/demo.gif:db9e3fb9a378b5c8c28556224577b78e72a834188259e0f93c06cb15d5c99e13assets/demo.mp4:f9c5445717e2768d4f116d295bd009d6b8406dfdb7875f9b338d9b9476ada7f8assets/demo-poster.png:6a716cb68e9867bdbc0aeee3bb7fa74d9def8e6208f87c998fba2e9b137e2b46
The section below documents the earlier assets/demo.mp4 and assets/demo-poster.png — an
eight-second montage of three still frames with no live motion. Those files have been replaced by
the continuous recording described above. The acceptance evidence recorded here still stands on its
own and is retained unchanged for the v0.1.0 release record.
Two real frames were taken during the isolated acceptance run against the exact image:
demo-frames/api-before.png(834c3641a04a1c20ba76cda64da82567272581f13c15bb5b93c210f1eaab9763) — the page as returned through the control API, before the interaction batch.demo-frames/display-after.png(f8197cafcf4d7ce0bc7e323256307a9d2ed687a0fb96d416dd4e4178feb8a9f3) — an X11 screenshot of the container display, after the interaction batch.
assets/demo-poster.png is a byte-identical copy of demo-frames/display-after.png.
assets/demo.mp4 is an eight-second silent H.264 montage (1280x720, 30 fps) concatenating three
still images: two seconds of assets/social-preview.png, three seconds of api-before.png, and
three seconds of display-after.png. It contains no audio track and no live motion. Checksums for
both generated files were written by the workflow to generated-assets/SHA256SUMS and match the
committed files byte for byte.
Both frames render the same deterministic release fixture, served over container loopback at
127.0.0.1:18080, with the same generated nonce visual-proof-a3c237fb698c9854200f497ee196b811
and the same generated proof color #68c173. acceptance.json records that color and the nonce
digest d89143ca65da86f83a2f69b2a72c0b2ba2691d686feaa0202baa6af54064af6f, which is how the
same-display check is bound to this run rather than to a stock page.
In display-after.png the owned fixture page is the active, foregrounded tab; the button reads
clicked and the text field contains acceptance text, so the API-driven interaction is visible
on the container display. A bounded, denied popup tab remains present but inactive in the
background, which is the expected outcome of the popup-bounded check: the popup is refused and
bounded rather than silently allowed, and the owned page is restored to the foreground before the
click returns.
acceptance.json reports PASS over 33 checks bound to the same image ID, covering:
- image binding:
exact-image-id-handoff,runtime-image-id-proof,remote-podman; - isolation:
isolated-pod-network-none,resource-bounded-pod,same-pod-namespace,loopback-fixture,in-namespace-http-driver,loopback-listener-proof; - session authority:
health,session-create,capacity-rejection,observer-refusal,controller-success; - interaction:
navigation,snapshot,click,type,press,scroll,second-snapshot; - refusals:
direct-ssrf-refusal,redirect-refusal,download-non-persistence,popup-bounded; - human takeover surface:
novnc-web,novnc-websocket,vnc-rfb-readiness; - visual binding:
same-display-color-proof; - teardown:
idempotent-end,process-cleanup,profile-cleanup,pod-cleanup.
The committed logo is assets/agent-browser-logo.png, SHA-256
bb3a63b2a54e3a48dbdc77605f3511d5211ae5b695bac831ca689c7bc593b4e2. It is rebuilt from the
owner-supplied artwork, which had previously been committed as a JPEG carrying a transparency
checkerboard and a dashed border painted into its pixels rather than a real alpha channel. The
committed PNG is 424x452, has a genuine alpha channel, drops the painted border, and uses a
64-colour palette so that JPEG ringing no longer blurs the pixel-art edges.
assets/social-preview.png is a generated 1280x640 brand card, not a screenshot and not runtime
proof. It is composed programmatically from the committed logo plus flat vector shapes and text:
the product name, the vendor line, the tagline, a decorative API panel, and the footer
"Self-hosted Chrome · API control · Live human takeover". The API panel lists only routes that the
v0.1 surface actually implements, and its "CONNECTED / 1280x800 / noVNC" strip is decorative
styling rather than a captured session readout. docs/assets/ holds byte-identical publication
copies of both images so a /docs Pages build cannot escape its source root. The card depicts
the product contract but is not itself a record of a live run.
- Automated acceptance proved: every check listed above, executed against the exact image inside a network-isolated pod.
- Human visual observation: the two committed frames and the generated poster were reviewed after the run and match the recorded nonce, proof color, and interaction state described above.
- Takeover exercised: the noVNC web endpoint, its WebSocket, and VNC/RFB readiness were verified as reachable on container loopback. An interactive human takeover session was not part of this automated run.
- Edits applied to the final media: scaling and letterbox padding to 1280x720, concatenation of the three stills, H.264 encoding at CRF 20, and removal of the encoder creation timestamp. No crop, speed change, redaction, or retouching was applied to the frame content.
- The superseded v0.1 video was generated from stills, not a continuous recording, and proved nothing on its own.
- This evidence covers a single local, network-isolated container run. It does not demonstrate hosted or multi-tenant operation, remote network security, sustained load, or availability.
- Chrome inventory and notice evidence are for transparency and do not grant redistribution authorization. Distribution of this release is source-only.
- Rebuilding the same source later may resolve a newer Chrome Stable version than the one recorded here.
At the time of the v0.1 acceptance record, those assets were re-hashed after copying and matched
generated-assets/SHA256SUMS from the run. The poster and video were visually reviewed, the social
preview was exactly 1280x640, and the release verifier was re-run at the commit that contained
them. Those historical hashes do not describe the current continuous media; its hashes are listed
in Public provenance and integrity.
