Link Check · recorded run · 4.0.4

See a safe release check run.

Before sharing a page, Link Check reads it. This page replays five runs recorded from the batch check it actually uses: what is refused before any request, what a stalled origin does to the other pages, and what the operator can act on afterwards.

Every number comes from executing Link Check’s code with scripted origins. The page makes no network request and is not a live inspection.

Choose a recorded run
Go to the run

4 targets2 reads at a time2 attempts per targetNot persisted

Recorded run · synthetic

Three pages, two at a time

Change run

0/6 steps

Scripted origin: every read succeeds. This page replays the recorded phases; nothing is fetched here.

Ready to run the recorded check.

  1. 01

    Request validated

    Next

    Waiting for your next step.

  2. 02

    Reviewed hosts checked

    Not reached

    Kept out of the run so far.

  3. 03

    Duplicate pages rejected

    Not reached

    Kept out of the run so far.

  4. 04

    2 of 2 reads in flight

    Not reached

    Kept out of the run so far.

  5. 05

    Every page read

    Not reached

    Kept out of the run so far.

  6. 06

    Recovery stated

    Not reached

    Kept out of the run so far.

Recorded by executing Link Check’s batch runner with scripted inspectors at src/batch.ts (Effect 4.0.4, commit 112c9e7), with tests/batch.test.mjs guarding the trace. No network request, no persisted report and no live inspection.

What the run guarantees

Built with Effect 4

The batch runner decodes a versioned request with an Effect Schema, then resolves the reviewed scope and inspector through a Layer. Tests replace that layer to revoke a host, stall a read, inject a defect or count calls without touching the network.

The inspection itself stays the existing Effect effect: a typed failure channel, a 12-second timeoutOrElse, and tryPromise receiving an AbortSignal. When the timeout wins, the fiber is interrupted and that fetch is aborted; interrupting the batch does the same for reads in flight. A single retry is allowed only when the failure says a repeat read could help.

Per-page outcomes are values, not exceptions: one page failing cannot discard another page’s findings. The Worker maps refusals to 400 or 403 and returns a completed report as 200 even when a page inside it failed.

Optional by design.

App Composer’s own pages are Astro and TypeScript. This one imports a JSON trace at build time and has no Effect dependency. Link Check opts in where typed failures, interruption and bounded concurrency earn it; another app can start with plain TypeScript and add Effect for one workflow later.

All five recorded results, without JavaScript
Recorded by executing src/batch.ts with scripted inspectors. No reads reached the network.
RunScripted originResultReads
Three pages, two at a timeevery read succeeds3 verified, 3 attempts.3
A host is revokednever calledTargetNotPermitted. 0 reads attempted.0
The same page twicenever calledDuplicateTarget. 0 reads attempted.0
One origin stops answeringguestbook never answers; each attempt has a 30 ms budget2 verified, 1 uncertain, 4 attempts.4
A temporary failure clearsguestbook returns HTTP 503 once, then succeeds2 verified, 3 attempts.3

The recorded runs demonstrate Link Check’s request handling and classification. They do not prove a production release, a real origin’s behaviour, platform unfurls or that other apps should adopt Effect. Link Check’s own release checks remain the evidence for its deployment.