Public: anyone can read this; nobody can change it.
A live page never reloads, and a serial check streams its shard #19
Check · Review · Land done · Live — Landed; nothing deploys from this branch, so this is the end of its path.
Two things a person watching a run needs, found while trevato sat on a check's page and saw it reload under him.
shipped merged
Sign in to join this conversation.
new above
offline
Two things a person watching a run needs, found while trevato sat on a check's page and saw it reload under him.
A live page never reloads. Run and app pages carried a bare
<meta http-equiv="refresh" content="5">as the no-script fallback, and the script removed the tag once it had a stream. A refresh is scheduled when the parser meets the tag, and removing the element does not cancel it, so every live page reloaded every five seconds and threw away the reader's scroll and selection; the "newer below" button and the follow-the-tail logic never got a chance. The reload now lives inside<noscript>(layout.tsrefreshMeta), which a browser running the script never parses; a redirect (url=) stays bare. The four removals inclient.tsgo with it.A serial check streams its shard. With
FORGE_CHECK_SHARDS=1the gate's output was held until the shard ended, so a check's log showed nothing for its whole run (the fork's #1101 sat at ten lines for half an hour).test-shards.tsnow writes each line through as it arrives, between a header and a footer; shards running side by side are still written through whole, so they never interleave. The check summariser reads the same lines as before.Tests:
test/refresh-meta.test.ts(new, in the gate) pins the<noscript>wrapping, the bare redirect, and thatclient.tsno longer reaches for the tag;test/shards.test.tsruns the script on a test that speaks, sleeps 1.5 s and speaks again, and proves the first line arrived while the test was still asleep. Typecheck clean;live-pages,web-ui,web,offline,web-apps,studio,apps-ws,check-list,hollowgreen locally.Toward trevato/forge#1102 (watch a check like an Actions run); the title, steps and progress on the run page follow in their own pull.
🤖 Generated with Claude Code