reuse-surface/docs/evidence/2026-10-13-browser-discovery.md
tegwick a6da9f2c5c
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
ci / validate-registry (push) Successful in 1m7s
Record hosted browser readback and close synchronized discovery work
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a13690-1c84-77a2-aeee-7f517ec60f5d
2026-10-13 20:52:04 +02:00

115 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Browser discovery review — 2026-10-13
REUSE-WP-0024 resolves the registry-owned portion of REUSE-IN-0001 on the
existing `capability.infotech.headless-browser` record. Provider implementation
and managed lifecycle remain with rapp-playwright and railiance-platform;
CONTENT-WP-0000-T04 remains the consumer's acceptance task.
## Published provider evidence
Fetched the raw client, consumer contract, independent-consumer report and
release manifest at provider commit
`8831a05aeba5ce588f3b395ade676dde2a151c5d`. All four matched `git show` at that
revision byte for byte. The single-file Python client SHA-256 is
`9967a0831ed04e27fde419098af707722d5c81c993e4c294b3677ffb75729c12`.
Pinned public links are retained in the
[capability card](../../registry/capabilities/capability.infotech.headless-browser.md).
The published image is
`forgejo.coulomb.social/coulomb/rapp-playwright@sha256:8d6fd5a8172cf906bb503642ed620761945c5138b86f6396c36f65cbe6def441`
for linux/amd64. Provider publication evidence includes immutable registry
verification and railiance01 pull. This review did not redeploy the provider.
## Fresh client-only local trial
Executed the downloaded client, without installing Playwright or Chromium:
```sh
python3 /tmp/reuse-browser-review/rapp_playwright.py --url http://127.0.0.1:18083 preflight
python3 /tmp/reuse-browser-review/rapp_playwright.py --url http://127.0.0.1:18083 trial --out /tmp/reuse-browser-review/trial-01
```
Both exited 0. Run `6c710b36-319b-45b8-b062-ac2065f5e81b` completed at
**18:42:58 UTC** with **14 passed steps**: visibility, counter checks, Tab,
focused-button assertion, Enter and screenshot in two viewports. The provider
reported service 0.1.0, Playwright 1.64.0, Chromium 156.0.8078.4,
`workstation-release-check`, and the published digest above. Preflight permitted
no external origins; only the synthetic fixture was exercised.
Independently parsed all four PNG headers and recomputed hashes against the
client receipt. Desktop screenshots are 1280×800 and narrow screenshots are
390×844. This validates dimensions and integrity, not visual-baseline quality.
- [Preflight](2026-10-13-browser-discovery/preflight.json)
- [Receipt](2026-10-13-browser-discovery/receipt.json)
- [Independent artifact checks](2026-10-13-browser-discovery/artifact-checks.json)
- [Desktop fixture](2026-10-13-browser-discovery/desktop-final.png)
- [Narrow fixture](2026-10-13-browser-discovery/narrow-final.png)
Private run handles are excluded. The endpoint is ephemeral and was available
on this workstation at trial time; it is not a managed service or a promise of
future availability. The source examples remain a fallback when a provider is
unavailable. No consumer app, remote target or managed browser was tested.
## Assessment and matching
Promoted availability **A2 → A5** under the standard's deployable-container
definition. **A6 managed platform capability remains pending**. D3/C2/R2 stay
conservative; fixture execution does not prove broader target compatibility or
platform operation. Decision recorded in State Hub as
`b8ef28c1-9164-4678-8a61-1652e0f07407`.
Before this fix, `plan-check --intent "headless browser" --no-llm` returned
`new`, with an unrelated context engine first at 0.0476 and the browser third.
After scoring names independently from summaries/tags, the same query returns
`reuse`, with the browser first at **0.6667** and unrelated matches at **0.2 or
less**. Long command/evidence summaries no longer dilute direct name matches.
The output includes the standalone client link, preflight/trial commands,
ephemeral endpoint warning, managed-admission condition and availability-gap
fallback. Reuse advice now describes relevance rather than asserting readiness.
Regressions cover short-name relevance despite long summaries and higher-maturity
unrelated services, summary-only matching, equal-relevance maturity ties, and
hosted CLI output carrying conditional provider instructions. Stats tests now
use a fixed temporary registry rather than assuming the live repo always has
two capabilities.
## Validation
- `.venv/bin/python -m pytest -q`: **212 passed**. One existing Starlette
TestClient/httpx deprecation warning remains.
- `validate --relations --fail-on-warnings`: **3 entries valid**.
- `catalog`, `graph --check`, and `federation compose`: generated successfully;
**66 federated capabilities**, preserving one browser capability.
- Whitespace check passed apart from intentional Markdown hard breaks in the
generated Custodian brief.
## Publication and hosted readback
Implementation commit **`50077c9`** pushed to `origin/main`. Public raw capability
and index documents matched the committed files byte for byte. Refreshed
`https://reuse.coulomb.social/v1/federated?refresh=true` at **18:49:02 UTC**:
`stale: false`, no federation warnings, **66 capabilities**, exactly one browser
entry at **D3 / A5 / C2 / R2**.
The updated local CLI queried this hosted snapshot with `--intent "headless
browser" --no-llm`: browser first, score **0.6667**, verdict **reuse**, with the
client and conditional availability guidance in the returned summary. Matching
runs in the CLI against the hosted index; no server code deployment was needed.
- [Hosted entry readback](2026-10-13-browser-discovery/hosted-readback.json)
- [Hosted-snapshot plan-check](2026-10-13-browser-discovery/hosted-plan-check.json)
REUSE-IN-0001 is closed for registry discovery/consumption concerns. Provider
managed admission and consumer application acceptance remain outside this closure.
`statehub fix-consistency --repo reuse-surface --json` synchronized the finished
workplan and all three done tasks with zero failures or automation errors. Its
generated brief/index are included with the closure commit; the automatic
generated-only commit was refused by the existing Git hook. Four pre-existing
repository-classification advisories remain. A plain intake status PATCH returned
HTTP 500 because closure requires an outcome. Used the supported intake `/close`
transition with `outcome: promoted`, `promoted_to: REUSE-WP-0024` after recording
those fields in the canonical file.
Inbox handoffs and standing notices were read/acknowledged. Progress receipt:
`898a9638-09b8-44fa-8e04-5970c7cd2bbc`.