Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a13690-1c84-77a2-aeee-7f517ec60f5d
115 lines
6.1 KiB
Markdown
115 lines
6.1 KiB
Markdown
# 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`.
|