All checks were successful
PR checks / checks (pull_request) Successful in 1m25s
D4 asked for screenshots of the review stack rather than placeholders. Seventeen
of them: eleven of the site in a browser, six of the app on a phone, all from one
demo deployment wired to a running ServUO shard over a real sidecar, captured on
one day (D42).
The deployment is branded "Runic Gateway Demo" rather than a real community (D43),
and the captures sit beside the claims they support — the homepage, /features/, and
five of the administration pages phase 7 could describe but not show (D44).
The rig is committed rather than remembered (D45):
scripts/seedDemo.mjs content, by driving the site's own API — never SQL,
because a row the product could not have produced is
a screenshot of a product that does not exist
src/data/screens.mjs every capture: route, viewport, scroll, alt, caption
scripts/captureScreens.mjs npm run screens:capture
scripts/checkScreens.mjs the ninth check script, in CI
Shard-side dressing is servuo-plugins' scaffolding (D46), never deployed.
The rig found five things nothing else had. One is fixed upstream — a fresh
module-uo install pinned wire protocol 3 against a sidecar speaking 4, released as
v1.0.2, which this repo's own facts check then caught in platform.json. Four are
raised as product observations and worked around in the rig: a renamed guild
member never reaches the site, a guild deleted while the shard is down is a ghost
row forever, "Houses in danger" cannot show a house that was already collapsing,
and the app's news list prints raw ISO timestamps.
Players online reads 0. Logging a character in needs a UO client driven by hand,
and that is where this stopped — PLAN.md §10 says exactly why, and how to retake
the two frames that would change.
Co-Authored-By: Claude <noreply@anthropic.com>
37 lines
1.4 KiB
Plaintext
37 lines
1.4 KiB
Plaintext
---
|
|
import Base from '../layouts/Base.astro';
|
|
import { brand } from '../lib/brand.mjs';
|
|
|
|
import Hero from '../components/home/Hero.astro';
|
|
import DataPath from '../components/home/DataPath.astro';
|
|
import WhatItLooksLike from '../components/home/WhatItLooksLike.astro';
|
|
import SelfHosted from '../components/home/SelfHosted.astro';
|
|
import Capabilities from '../components/home/Capabilities.astro';
|
|
import GetStarted from '../components/home/GetStarted.astro';
|
|
|
|
/**
|
|
* The homepage — PLAN.md §13 phase 3.
|
|
*
|
|
* Ordered as an argument rather than as a brochure: what it is (hero), how the hard part
|
|
* works (the data path), why you would want it on your own hardware, what you actually get,
|
|
* and how to start. The data path comes second on purpose — it is the claim in the tagline,
|
|
* and a visitor who does not believe it has no reason to read the feature list.
|
|
*
|
|
* The page itself holds no copy and no facts. Each section reads versions from
|
|
* `platform.json` and brand text from `brand.mjs`, so nothing on this route can go stale
|
|
* without a check going red first (§12).
|
|
*
|
|
* `bareTitle` because the hero's own <h1> is the tagline: the default suffix would render
|
|
* "Runic Gateway — Put your … — Runic Gateway".
|
|
*/
|
|
---
|
|
|
|
<Base title={`${brand.siteName} — ${brand.tagline}`} description={brand.tagline} bareTitle>
|
|
<Hero />
|
|
<DataPath />
|
|
<WhatItLooksLike />
|
|
<SelfHosted />
|
|
<Capabilities />
|
|
<GetStarted />
|
|
</Base>
|