Repository navigation
chore: remove legacy sveltekit monorepo - #2
Merged
Merged
Conversation
The project restarts from scratch as a single Astro site with an Adwaita design, per the owner's request. History is kept; every tracked file of the SvelteKit + Hono/Workers monorepo is removed so nothing legacy leaks into the new codebase. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
Single Astro 7 app (static output, Vercel adapter with static headers and CSP, MDX, sitemap with ko/en, Pagefind) on Bun, TypeScript strictest, Biome, Vitest and Playwright. Adds the new CLAUDE.md, the approved plan (docs/plan.md), the decision log, content guide, vercel.json with security and cache headers, CI, and a SessionStart hook for cloud sessions. Refs: docs/plan.md §2, §9, §10 (phase 0) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
- libadwaita 1.10 tokens ported to CSS with light-dark() (system / light / dark via data-theme); two documented AA deviations (ADR-0009) - Adwaita Sans/Mono 51.0 subsets via the Astro Fonts API, Hangul from system fonts; Adwaita symbolic icons inlined at build (ADR-0010) - adw components: Button, Card, BoxedList, ActionRow, ExpanderRow, StatusPage, Banner, Callout, Badge, Kbd, ViewSwitcher, Icon, toast - site chrome: header bar with GNOME-style primary menu (Popover API, style switcher, language), mobile view-switcher bottom bar, footer - ko/en dictionaries and locale-aware routing helpers - distro catalog schema + taxonomy, Fedora reference entry, validator - prose/Prism styles, copy-code; CSP hashes for every inline script/style (ADR-0011); dev-only /design showcase Refs: docs/plan.md §4, §5.2 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
… workflow - http client: descriptive LinuxhubBot UA, robots.txt check per host (Crawl-delay honored), per-host pacing ≥ 1 s, retries with backoff for 429/5xx only, ETag/Last-Modified revalidation cache - shared Zod schemas for releases, mirrors, history and status (src/lib/data-schemas.ts) used by both the sync and the site - run.ts: independent sources, schema + host-allowlist + regression checks, deterministic output (diff only on real changes), release history, failure tracking that keeps the last good data - helpers: checksum files (GNU/BSD/PGP-wrapped), autoindex listing, natural version order, endoflife.date, GitHub releases, SourceForge RSS - fedora (releases.json + endoflife) and arch (releng + mirror status) - geo datasets for mirror ranking from Natural Earth + IANA tzdata - .github/workflows/sync.yml: releases every 6 h, mirrors daily, validate, type-check, commit to main, optional deploy hook, failure issue - unit tests for parsers and the host allowlist Refs: docs/plan.md §6, §7; ADR-0003, ADR-0004 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
- home, catalog with URL-state filters/sort, distro detail (facts, official links, related distros, JSON-LD), 404, about (data, privacy, bot, credits) - download wizard: server-rendered default + progressive cascade (version → edition → arch → file type → mirror), checksum copy, signature and torrent links, remembered choice - nearest official mirror: /api/geo (Vercel geolocation, no-store) with a time-zone fallback; ranking in src/lib/mirrors.ts (tested); compact static /data/mirrors/<slug>.json and /data/releases/<slug>.json endpoints - install guide page with MDX data components (Latest, IsoName, Checksum, VerifyCommand, Steps, Tabs, Anchor), TOC and source citations - Linux guide index/chapter templates, distro finder (attribute-based, explained scoring, tested), side-by-side compare, family tree + timeline, release news + RSS, Pagefind search dialog with Korean particle handling - adw component CSS consolidated into src/styles/adwaita.css - scripts/serve.ts serves dist/ for preview/e2e (astro preview is not available with the Vercel adapter once a server route exists) Refs: docs/plan.md §3, §6, §8 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
Shared MDX partials (ko/en) for verifying a download, writing a bootable USB drive, booting from it (per-vendor keys, Secure Boot variants) and preparing Windows for dual boot. Fedora overview + install guide in both languages as the template for every other distro; versions, file names and checksums come from synced data. Content guide: no bare URLs. Refs: docs/content-guide.md, docs/plan.md §5.2 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
…aders - /og/default.png, /og/learn.png and /og/<distro>.png rendered at build with resvg from an SVG template (distro logo + name + English tagline) using small static Adwaita Sans instances (Latin only) - experimental.clientPrerender: hover prefetch goes through the Speculation Rules API - vercel.json: cache headers for /og/ and /data/; robots.txt with sitemap Refs: docs/plan.md §8 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
28 Playwright tests against the production build: catalog filters and URL state, distro detail and locales, 404, theme persistence, download wizard (default link, edition cascade, nearest-mirror link with a mocked /api/geo), finder, compare, search, install guide anchors, and axe WCAG 2.2 AA on key pages in light and dark. Fixes found by the tests: the mirror suggestion now rebuilds the download link from data (it kept the official default before), and the size label on the download button no longer drops below AA contrast. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
Fails CI when performance drops below 95 or accessibility, best practices or SEO below 100, or when CLS/TBT regress. Local baseline on the current build: performance 98–99, everything else 100, CLS 0, TBT 0 ms. Refs: docs/plan.md §8 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
- Ubuntu + Kubuntu/Xubuntu/Lubuntu/Ubuntu MATE: supported cycles from endoflife.date, files and SHA-256 from SHA256SUMS on releases.ubuntu.com / cdimage.ubuntu.com (signature, torrent when published), newest point release per arch; Ubuntu mirrors from Launchpad's official CD-image list - Debian stable: version from the archive Release file, netinst (amd64 + arm64) and live images per desktop from cdimage.debian.org; mirrors from Mirrors.masterlist, kept only when they answer over HTTPS - Linux Mint: latest + previous series from the official ISO origin with the signed sha256sum.txt (the mirror page sits behind a bot challenge) - Pop!_OS: System76 build API (generic/NVIDIA, amd64/arm64) - releases past end of standard support are no longer offered; artifacts are ordered x86_64 first - wizard labels the official origin server instead of claiming 'nearest' when a distro has no mirror list Refs: docs/plan.md §6, §7 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
scripts/serve.ts now replays the per-page headers Astro writes into .vercel/output/config.json, so e2e sees the same CSP as Vercel. New test: no CSP violations across key pages, including Pagefind's WebAssembly search. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
Each scripts/sync/sources/<slug>.ts default-exports a DistroSource (or an array); index.ts loads them all and rejects duplicate slugs, so adding a distro is a single new file. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
- docs/deploy.md: Vercel project setup, SITE_URL, Actions permissions, optional deploy hook, pre-deploy checks, smoke tests, operations - scripts/sync/docs.ts (bun run sync:docs) regenerates the per-distro table in docs/data-sources.md from the catalog, sync modules and synced data Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
26 researched catalog entries (facts from official sources with citations, official logos with source/license/trademark notes, SVGO-optimized) and the first synced release/mirror data (Arch, Debian, Fedora, Ubuntu + flavors, Linux Mint, Pop!_OS), plus the regenerated data-source table. Remaining distributions follow as their research and verification complete. Refs: docs/plan.md §5.1, §5.3 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
What Linux is, history, why Linux, distributions, desktop environments, and X11 vs Wayland — written from primary sources (kernel.org, gnu.org, freedesktop/Wayland, project announcements), each with cited sources and a review date. Remaining chapters follow. Refs: docs/plan.md §10 (phase 6) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The project restarts from scratch as a single Astro site with an Adwaita
design, per the owner's request. History is kept; every tracked file of the
SvelteKit + Hono/Workers monorepo is removed so nothing legacy leaks into
the new codebase.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01J8A7WuJeLxG7aBvK6xfgC9