Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a13590-a16f-7f60-be60-fd71627bc99d
9.2 KiB
Independent local consumer trial — 2026-10-13
The fresh consumer agent completed the documented Python/HTTP trial against
http://127.0.0.1:18081 without installing Playwright or a browser, reading
provider source, or copying sibling fixtures. This proves the local Docker
container consumer path only. Preflight and every receipt identify
execution_location: workstation-container, release: development, service
0.1.0, Playwright 1.64.0 and Chromium 156.0.8078.4. It does not prove a Railiance
deployment or accept content-explorer's own task.
The agent first read the repository instructions and consumer contract, then ran:
python3 client/rapp_playwright.py preflight
python3 client/rapp_playwright.py trial --out .local/independent-trial-01
The fresh output directory was created by the documented client. Preflight
reported browser availability; the retained follow-up
preflight records the
same runtime identity. The successful run
6b97d75c-0c39-415f-9cf4-f1813c205066 ran from
2026-10-13T16:43:17.124Z to 16:43:30.498Z.
Evidence
| Check | Observed result |
|---|---|
| Keyboard and assertions | All 14 steps passed across desktop and narrow contexts: visible heading, count 0, Tab, focused increment button, Enter, count 1, screenshot. |
| PNG dimensions | Both desktop files are 1280×800; both narrow files are 390×844. Parsed the PNG IHDR directly and independently recomputed each download SHA-256. |
| Screenshot inspection | Narrow final image visibly shows Count: 1 and an orange focus outline around Increment; no horizontal overflow is visible. This is inspection, not automated visual-baseline acceptance. |
| Capability boundary | GET of the successful run with a deliberately incorrect bearer token returned HTTP 404 and not_found. |
| Deliberate UI failure | Run d6b71146-4f82-4d9c-bf72-4d2b672080d2 expected impossible count 99999: ui_assertion_failed, client exit 2, failed desktop step index 1/action text, one prior screenshot preserved. |
| Target failure | Run 57b03fc8-4947-43a9-8c9b-058f1c46a9e0 navigated to an intentionally missing path on allowed http://host.docker.internal:3300: target_unreachable, client exit 3, zero completed steps/artifacts. Receipt does not distinguish HTTP status, connection, DNS or timeout cause. |
| Service connection failure | Preflight against unused local service port 18089 returned service_unreachable: establish the documented tunnel and retry, exit 3. The real service was not stopped. |
| Private handles | Each client-created output directory is 0700 and its run.json is 0600. No run handles or bearer capabilities are copied into retained evidence. |
Retained evidence:
- Successful receipt, invocation, server trial specification and independent artifact checks.
- Desktop screenshot and narrow screenshot.
- Wrong-token response.
- UI failure receipt, specification, invocation and preserved screenshot.
- Target failure receipt, specification and invocation.
- Client exits, unavailable service probe and permissions.
Usability findings
- The first-command path worked without source inspection or dependency setup. Error categories distinguish assertion, target and service connection failure.
- At trial time, the contract's general “Client exit codes” wording did not
explain that
status --handlereturns 0 when successfully retrieving a failed run. Both failed runs above reproduced this. A script must inspect JSON status; clarify that command-specific behavior or align its exit codes. - Target diagnosis identifies the correct failure category but supplies no sanitized reason such as HTTP status or connection failure. The documentation points to browser-network reachability; more precise safe diagnostics would reduce operator round trips. This test makes no claim about which transport cause produced the observed error.
- At initial reading, SCOPE.md, AGENTS.md and workplans/README.md still described a planning-only repository despite the working client and service. The parent delivery session was informed; those status statements need reconciliation before publishing managed availability.
This report does not establish lifecycle cleanup, cancellation, restart recovery, cross-run browser state isolation, hostile-page safety, a managed endpoint, or consumer application acceptance; those require separate evidence.
Final release verification — 2026-10-13, 17:14–17:16 UTC
Repeated the independent client trial against the corrected immutable release at
http://127.0.0.1:18083, using fresh client output directories:
python3 client/rapp_playwright.py --url http://127.0.0.1:18083 preflight
python3 client/rapp_playwright.py --url http://127.0.0.1:18083 trial --out .local/independent-final-01
python3 client/rapp_playwright.py --url http://127.0.0.1:18083 run --spec .local/independent-final-01/failure-spec.json --out .local/independent-final-ui-failure-01
The release recorded by preflight and both receipts is
sha256:8d6fd5a8172cf906bb503642ed620761945c5138b86f6396c36f65cbe6def441.
Execution location is workstation-release-check; service 0.1.0, Playwright
1.64.0 and Chromium 156.0.8078.4 remain unchanged. Preflight lists no allowed
external origins, and this repeat used only the provider fixture. No external
target, redirect diagnosis or target-unreachable probe was attempted against
this fixture-only container.
Run 35124424-950a-4339-adea-45525b470cab passed all 14 steps, from
2026-10-13T17:14:50.055Z through 17:15:01.861Z, and the client exited 0. Independent
PNG header/hash checks again confirmed four screenshots: two at 1280×800 and two
at 390×844. Their hashes match the initial successful trial. The run-token
rejection probe again returned HTTP 404 / not_found. The new output directory
is 0700 and its private handle is 0600.
Run 75c6b50e-94a1-467f-98fc-7e8937f4362e deliberately failed the count assertion
at desktop step index 1 with ui_assertion_failed, client exit 2, and the prior
1280×800 screenshot preserved with a verified hash. Preflight against unused
service port 18089 again produced service_unreachable and exit 3. Retrieving the
failed run with --url http://127.0.0.1:18083 status --handle succeeded with exit 0, now explicitly documented
in the consumer contract. AGENTS.md and README.md now describe implemented
verification commands and distinguish local evidence from managed availability.
Recovery usability detail: --url must also be repeated on status for a
nondefault endpoint. The first status invocation omitted it, queried the default
18081 service and returned HTTP 404 / exit 3; repeating with the correct 18083
override returned the expected failed-run receipt / exit 0. The private handle
does not automatically select the originating service URL.
Retained final evidence:
- Preflight, successful receipt, invocation, artifact checks, wrong-token response and client outcomes.
- Desktop final, desktop keyboard, narrow final and narrow keyboard.
- Failed assertion receipt, specification, invocation and preserved screenshot.
These are local final-release consumer checks. Read-only root configuration, worker temporary-directory isolation and crash cleanup were reported by the provider; this consumer trial does not independently inspect or establish those properties. Managed platform admission remains pending, and no Railiance deployment or content-explorer acceptance is claimed.