Repository navigation
docs: describe the code that actually ships - #9
Conversation
The module repos changed daily; these pages did not. Every claim below was checked against the source before being rewritten or removed. Encore: the page sold a moderated music-request app. `encore/src` is the unmodified template — its home route renders "Coral Module — Ready to build." and `.env.example` holds only HOST and PORT. The three JELLYFIN_* variables the page told you to set are read by nothing. Rewritten as the scaffold it is. Librarian: removed the Features and Analytics trees. `grep -ril` over librarian/src returns zero files for each of duplicate, bulk, analytic, statistic, backup and codec. Documented what exists instead — import plans, hardlink-with-copy-fallback, roots, path mappings, scan jobs — and added the access model: LIBRARIAN_REQUIRE_LOGIN defaults to true and every filesystem operation additionally requires a Jellyfin administrator. The compose guide walked a first-run user straight into that login wall without mentioning it. Fathom: removed reading-progress tracking, ratings and reviews, personal collections and recommendation algorithms. None of them have code. fathom/README.md:10-17 is the honest scope. Marquee: replaced the template boilerplate opener with what it does, and documented MARQUEE_DATA_DIR and the /setup flow. KAPOW!: SUPABASE_DB_PASSWORD is a `supabase link` argument, not an app variable — dropped from the env table, with SUPABASE_DB_URL and the six accepted key aliases added. /host/:code requires ?token=. Replaced the eyJ.../AIzaS... placeholders, which read like leaked credentials. Aurora: dropped the genre "filtering" claim; README lists browsing, sorting and pagination only. Added AURORA_STREAM_TOKEN_SECRET, HOST, PORT and AURORA_DISABLE_SPA_PRERENDER, and noted that PLEX_URL/PLEX_TOKEN are read by nothing. Tide: added the cgroup memory guard, the TORRENT_DOWNLOADS_DIR legacy alias and CORAL_SERVICE_TOKEN. Module contracts: files.move was listed as "defined in spec 1" on a page that says a module advertises a capability only when it works. It is implemented nowhere; moved to Reserved. Contributing: Coral has never used ESLint — every repo ships a biome.json. The script is `typecheck`, not `type-check`. The licence claim is now what is provable: several module repos carry no LICENSE file at all. Project templates: the template has no api/example.ts, no routes/components/ and no src/integrations/. Fixed the getLibraryItems signature, which omitted the positional media type and passed an undocumented parentId. Also: every module now states a status — Shipping, Early or Scaffold — so a reader can tell Aurora from Encore without cloning both; Docker Hub image names added for Fathom, Marquee, Encore and KAPOW! (all verified to exist on the registry); Vercel dropped as a deploy target for the three modules with no vercel.json; /healthz documented; and the homepage cards are links, which none of the nine were.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Starlight's grey scale runs light to dark — gray-1 is body text, gray-5 a border, gray-6 and gray-7 surfaces. This palette defined it backwards and extended it to gray-10, so every Starlight component that coloured text with gray-3 rendered #1a2438 on a #090f22 background: a contrast ratio of 1.23:1, against the 4.5:1 WCAG AA asks for. Unreadable. It went unnoticed because the pages only used <Card>, which the stylesheet overrides explicitly. The homepage's <LinkCard> descriptions have no such override, so they came out invisible. Same hues, correct order, with the measured contrast recorded per step. gray-3 now sits at 8.3:1. gray-5 is 3.1:1, the WCAG 1.4.11 floor for a border. It also fixes a second-order bug: link cards took their hover background from gray-7, which was #77839a — a light grey fill on a dark card. Separately, `overflow: hidden` on tables — there to clip the rounded corners — was clipping the last column instead. The four-column environment tables made it obvious: the Purpose text ran off the edge with no scrollbar to reach it. Corners are now rounded on the header cells, and long identifiers like TIDE_MEMORY_CHECK_INTERVAL_MS can wrap rather than forcing the table wide.
|
Added Root cause was not the new markup. Starlight's grey scale runs light to
The bug predates this PR — it just never showed, because the pages only used Every step now carries its measured ratio as a comment. Second fix in the same commit: Both verified in a browser at the width the screenshot was taken, not just by |
The active sidebar item rendered as near-white on the teal pill — 1.59:1,
where the rule two hundred lines up asks for #07242a on teal, which is 8.71:1.
`.sidebar-pane * { color: #f0ede8 !important }` was the cause. Starlight puts
the link text in a <span> inside the anchor, and a universal selector paints
that span directly, so the anchor's own colour never reached it. Inheritance
loses to a direct !important declaration every time.
That rule, and the matching ones on the mobile table of contents, existed to
force light text into panels that the inverted grey scale had made dark-on-
dark. With the scale the right way round they are not needed, and they are
actively harmful: `*` and `[class*="toc"]` are broad enough that the next
component added to either panel would have hit the same trap.
Removed the universal overrides. Sidebar links are now coloured on the anchor
only, kept neutral so the current-page pill is the only accent in the rail —
13.0:1 for the links, 8.7:1 for the pill. The panels keep their opaque
background, which is a real requirement: they sit over page content, and
--sl-color-bg-sidebar is deliberately translucent for the desktop rail.
Verified in a browser: current page, inactive links, and the expanded mobile
table of contents.
|
Added It rendered near-white on the teal pill — 1.59:1 — while the rule two
That rule, and the matching ones on the mobile table of contents Now:
Sidebar links are set on the anchor only, and kept neutral so the pill is the Verified in a browser: current page, inactive links, and the expanded mobile Worth noting the pattern across both fixes: every one of these was a blunt |
1 of 3. Stack: this → [SEO/GEO infrastructure] → [CI and hygiene].
The module repos change daily; these pages had not since April. Every claim
below was checked against the source before being rewritten or removed — this
PR adds no feature descriptions that I could not find code for.
The load-bearing corrections
Encore sold a moderated guest music-request app.
encore/srcis theunmodified template: its home route renders "Coral Module — Ready to build.",
.env.exampleholds onlyHOSTandPORT, andpackage.jsonis still"name": "coral-module". The threeJELLYFIN_*variables the page told you toset are read by nothing.
getcoral/encorehas ~2.3k Docker Hub pulls.Rewritten as the scaffold it is.
Librarian documented six features with no implementation.
grep -riloverlibrarian/srcreturns zero files for each ofduplicate,bulk,analytic,statistic,backup,codec. Replaced with what exists — importplans, hardlink-with-copy-fallback, roots, path mappings, scan jobs.
A security default was missing.
librarian/src/lib/config-store.ts:182defaults
requireLogintotrue, and every filesystem operation additionallyrequires a Jellyfin administrator. The page never mentioned auth, and the
compose guide walked a first-run user straight into that login wall. Both fixed.
files.movewas listed as "defined in spec 1" on a page that states amodule advertises a capability only when it actually works. It is implemented
nowhere. Moved to Reserved.
Contributing claimed all Coral projects use ESLint. None ever has — every
repo ships a
biome.json. Alsopnpm type-check→typecheck.Where the docs were right and something else was wrong
The
getcoral/*image names were correct. I queried the registry: all sevenexist, with pull counts.
aurora/README.mdis the stale one (it still points atghcr.io/eliancodes/aurora-ui). Image names added to Fathom, Marquee, Encoreand KAPOW!, which previously showed only
docker build -t <name> ..libraries/npm-packages.mdis also correct as it stands —@get-coral/telemetryexists locally at 0.1.0 but 404s on npm, so adding it would have introduced a
new error. That page gained depth, not corrections.
Also
Aurora from Encore without cloning both.
SUPABASE_DB_PASSWORDis asupabase linkargument, not an appvariable;
/host/:codeneeds?token=; theeyJ.../AIzaS...placeholdersread like leaked credentials and are gone.
AURORA_STREAM_TOKEN_SECRET,HOST,PORT,AURORA_DISABLE_SPA_PRERENDER; notedPLEX_URL/PLEX_TOKENare read by nothing.
TORRENT_DOWNLOADS_DIR,CORAL_SERVICE_TOKEN.api/example.ts, noroutes/components/, nosrc/integrations/.getLibraryItemssignature fixed.vercel.json.Review note
The licence section now says only what is provable: the npm packages declare
MIT and three repos carry a
LICENSEfile, but tide, librarian, fathom,marquee, encore, jellyfin, create-coral, template and dev-standards have
neither a LICENSE file nor a
licensefield. Worth fixing upstream.Verification
pnpm buildclean; all 17 pages render; no broken internal links.