Changelog
Every release of leo.ridgwell.family, newest first.
All notable changes to leo.ridgwell.family are documented here. The format is based on Keep a Changelog, with sections always in the order Added, Changed, Fixed, Removed, Security, Deprecated. This is a complete rebuild of the original WordPress site, which moves to v1-leo.ridgwell.family, so this is v2. It uses Date Versioning (YY.MM.DD, the UTC release date, with -1, -2… for later releases the same day) since v26.11.07, its first stable release; v2.0.0 to v2.9.1 were pre-stable, on Semantic Versioning 2.x.y.
v26.11.08-3
Fixed
- **Jobs on Ridgghrs no longer trip over each other's files.** The PHP jobs' containers run as root, so they left
root-owned files in the runner's work folder, and the next job running straight on Ridgghrs couldn't clear them (its checkout failed). Each container job now hands the folder back to the runner's own user when it finishes.
v26.11.08-2
Changed
- **CI and Deploy fall back to Ridgghrs, the family's own runner,** when GitHub won't start a job (a spending limit or
- **The deploy keeps its SSH key in the job's own temporary folder** (and deletes it afterwards), not in
~/.ssh,
billing hold stopped v26.11.08-1's deploy), as Ridgdash and Ridgarch already do. A small first job tests whether GitHub will run anything; if it can't start, every job runs on Ridgghrs (homelab-mascom) instead. Ridgghrs has Docker but no sudo, so the PHP jobs run there in the official php:<version>-cli images rather than setup-php.
since Ridgghrs is shared with the other repos' deploys. scripts/deploy.sh takes the key and known hosts from DEPLOY_SSH_KEY_FILE and DEPLOY_KNOWN_HOSTS_FILE when they're set.
v26.11.08-1
Fixed
- **The cat gets kat.stuxie.dev's newest script,** so it says "Pat the cat" and remembers a bi cat pick from page to
page. The script's address now ends ?v=26.11.08: the old ?v= had been cached with the script from before those fixes.
v26.11.08
Changed
- **The cat is now StuxieDev's kat,** loaded from kat.stuxie.dev as Olly and still called a
cat, so every Ridgwell site shares one cat that's looked after in one place. It looks and behaves as before, the footer's **Your cat** menu still swaps him for Lily, Poppy, Dougal or the bi cat (or none), and Cat Run still uses whichever one you picked. The choice is now kept as sdKat; an earlier choice saved as ljdrCat is moved over, so nobody loses theirs. The cookies and privacy pages say so.
Removed
- **
public/static/js/cat.js,** the site's own copy of the cat.
v26.11.07
Changed
- **The first stable release, and the site is live.** leo.ridgwell.family moves from pre-stable
- **Coming soon mode is off by default.** The site has launched, so
COMING_SOON_MODEnow defaults tofalse(in
Semantic Versioning (2.x.y) to Date Versioning: from now on each release is its UTC release date as YY.MM.DD, with -1, -2… for later releases the same day. There is no 3.0.0; this is v26.11.07, and it never goes back to 2.x.y (the commit scripts refuse).
config.example.php and views/bootstrap.php's fallbacks); turn it on in the server's config.php to show the coming soon page again.
v2.9.1
Changed
- **The coming soon and maintenance pages are light and Ridgwell blue,** in the same style as stuxie.dev's: a light
background with soft Ridgwell-blue glows drifting slowly behind the card (held still with reduced motion), dark text and blue links, whichever theme the visitor picked. The bouncing LJDR logo now changes between three Ridgwell blues at each wall instead of the rainbow, so it shows up on the light background.
v2.9.0
Added
- **A bouncing LJDR logo on the coming soon and maintenance pages,** like an old DVD player's screensaver (as on
Ridgauth's sign-in page): the LJDR mark's shape drifts across the blue background behind the card, changes colour at every wall it hits, and lands exactly in a corner every 117 seconds (the first 61 seconds in), with a little pop. Pure CSS (body.holding::after in site.css); hidden on small screens and with reduced motion.
v2.8.10
Fixed
- **Cat Run** no longer gets stuck on its theme switch: after clicking the theme (or sound) button, that button kept
focus, so pressing Space could press it again instead of starting or jumping. A click on the game's buttons now hands focus straight back to the game, and Space or Up always reaches the game even when a button has focus. The buttons still work from the keyboard with Enter.
v2.8.9
Fixed
- The README says the screenshots job also runs when its scripts change, and that only the site's own "429 Too Many
Requests" answers count (as of v2.8.7); CONTRIBUTING.md lists the Node tests (cr.test.mjs, screenshots.test.mjs) that CI runs.
v2.8.8
Fixed
- Stuxie.com's portfolio screenshot is light only. The site has no dark mode, but its embedded Twitch player shows
something different each time (its chat, or a cookie notice), which made the dark capture look different enough to keep.
v2.8.7
Fixed
- A portfolio screenshot is only counted as rate limited ("429 Too Many Requests") when the site itself is, not an
embed from elsewhere on it: Stuxie.com's archived copy embeds a Twitch player, and Twitch rate limiting the screenshot job kept it from ever being re-taken.
v2.8.6
Changed
- Debug mode stays on as you click around: while a page is in debug mode (
?debug, withDEBUG_MODEon), every
link to another page keeps ?debug, including the portfolio's filters. Links to files (like the CV's PDF) and other sites don't change, and nothing changes outside debug mode.
v2.8.5
Changed
- Portfolio screenshots of archived copies (on archives.ljdr.uk, archives.stuxie.dev, archives.stuxiedev.com and
archives.ridgwell.network) are cropped to just the archived site, without the archive's own header, banner and footer; screenshot.hide works inside it too. As on stuxie.dev.
Fixed
- The LJDR Website v1 and StuxieDev Website v1 screenshots hide their cookie popup, which covered the page.
- A screenshot answered "429 Too Many Requests" (as the four old Stuxedo pages were in today's run) is retried
twice, after 20 and 40 seconds, and then fails so the last good screenshot stays, rather than saving a "Too Many Requests" or half-styled page. As on stuxie.dev.
v2.8.4
Added
- Portfolio screenshots of replaced, archived and defunct projects can come from an
archiveUrl(the project's copy
in the archives), so its url can stay its original address; a defunct project with one gets a screenshot too. As on stuxie.dev.
Fixed
- A replaced or archived project whose dark screenshot files go missing is captured again, rather than kept with its
dark version gone (as on stuxie.dev).
v2.8.3
Changed
- The Shift easter egg changes the X link's name too: it says **Twitter**, and **X** while Shift is held (on the
Contact page, and in the icon links' labels it reads "Twitter").
v2.8.2
Added
- **A Shift easter egg**, as on links.stuxie.dev: the X link shows the old Twitter bird, and turns into the X mark while
you hold Shift. It works on every page, the coming soon page included.
v2.8.1
Added
- **Bluesky** (@leo.ridgwell.family) with the other social links: the header, footer, Contact page and the coming
soon page.
Changed
- The footer says **"Created with ♥ / code / coffee by Leo"**, with the love, code and coffee icons the other Ridgwell
Family sites use, instead of just the heart.
v2.8.0
Added
- **/cv is a page**: the CV in the browser's own PDF viewer, with **Download my CV** (saves the PDF rather than
opening it) and **Open in a new tab**. Browsers that can't show a PDF inside a page, like most phones, get a note pointing at those buttons instead of an empty frame. It's in the sitemap.
Changed
- Every CV link (the home page, Experience, Contact and the footer) goes to /cv instead of straight to the PDF.
v2.7.0
Added
- **Light and dark screenshots.** Each project is now screenshotted as a browser in light mode and in dark mode,
and its card shows the one that matches the site's theme, switching the moment you flip it (the hidden one isn't downloaded). When a site looks the same either way, only one is kept: 33 projects have both, 8 have no dark mode. Archived pages got a one-off dark capture. screenshot.colorScheme captures just one.
v2.6.5
Fixed
- **The experience timeline's dots sit centred on its line.** They were sized without their border, which made them
26px wide instead of 18px and pushed them 4px off the line.
v2.6.4
Changed
- The StuxieDev stat reads **Since 2016**, "building as StuxieDev", after all.
v2.6.3
Fixed
- The home page's last stat reads **2016**, "since building as StuxieDev", instead of "building as StuxieDev
since".
v2.6.2
Fixed
- Nor do they require every screenshot on record to be for a project still in the portfolio: the daily job deletes a
removed project's screenshot on main, so removing a project on test would have failed CI until then.
v2.6.1
Fixed
- The screenshot tests no longer require every project to have a screenshot already: a new project gets its first
one when the daily job runs on main, so that check would have failed CI on test in the meantime. They check that every screenshot on record is for a real project, with its files there.
v2.6.0
Added
- **The portfolio's screenshots and icons update themselves**, as stuxie.dev's do. A daily workflow
screenshotandiconThemedfields for a project, and tests for the screenshot plan, the manifest and the icon
(.github/workflows/screenshots.yml) screenshots every active project, and every replaced or archived one once, in headless Chromium (scripts/screenshots.mjs), and refreshes any icon whose original changed (scripts/icons.mjs, from data/icons.json), then commits what changed to main and deploys it. All 41 capturable projects have their first screenshots.
list.
Changed
- **The portfolio's cards look like stuxie.dev's**: until a project has a screenshot (and while it's in
- **The Stux brands' icons** are their own light and dark versions at full size, from their
global.mediadomains,
development), its icon sits on a glow in the project's own hue instead of a Ridgwell blue panel. Screenshots zoom slightly on hover, and archived and defunct ones are a little desaturated.
shown to suit the theme.
Fixed
- **The cat no longer glitches when you edge away from it slowly.** It now gets up only once the pointer is 72px
away, and sits as soon as it arrives, instead of running on the spot.
Removed
- The hand-made screenshots and single-version brand icons the automatic ones replace (Gaymer.social, which is
defunct, keeps its screenshot).
v2.5.2
Changed
- **The home page photo floats gently**, as stuxie.dev's avatar does, and so does the LJDR logo on the coming soon and
maintenance pages. Both stay still for reduced motion.
Fixed
- The "Open to new roles" badge sits centred across the bottom edge of the photo, floating with it, instead of
hanging off its bottom-left corner.
v2.5.1
Fixed
- CI runs the cat and secret checks as
node --test tests/cr.test.mjs: Node 22 readsnode --test tests/as a
file and fails.
v2.5.0
Added
- **The cat**, the same feature as stuxie.dev's kat: a little pixel cat that follows your pointer (or your taps) around
- **A hidden secret**, as on stuxie.dev, in Ridgwell blue with the same cats. It remembers its own couple of things as
- The Cookies Policy lists both, and CI checks the seal, the build and the cat picker.
every page, sits by it, dozes off when left alone, is happy when patted and leaves for the visit on a double-click. It's **Olly** by default, in his blue jumper; the footer's **Your cat** menu swaps him for Lily, Poppy or Dougal (from cats.ridgwell.family), or stuxie.dev's bi cat, or none, remembered in this browser as ljdrCat. Original pixel art drawn in code, no images, nothing sent anywhere, and it stays away for reduced motion.
ljdrSecret. Its script is built from scripts/src/cr.js, and its trigger is sealed into site.js, which names none of it.
v2.4.4
Fixed
- **The coming soon and maintenance pages show the LJDR logo**, not Leo's photo. The photo stays on the home page.
v2.4.3
Changed
- **Ridgwell Social's portfolio icon** is now the badge-style one Ridgwell Social and the Projects site use: the
family emblem on a round navy avatar with a Fediverse badge (ridgwell-social.webp), in place of v2.4.2's speech bubble.
v2.4.2
Changed
- **Ridgwell Social's portfolio icon** is now its own icon ("Ridgsoci", the blue speech bubble with an "@"), the
same one Ridgwell Social and Ridgdash use.
v2.4.1
Removed
- l.stux.ie is no longer one of this site's short link domains: it's stuxie.dev's own, and that site handles it the
same way (its short links to v1.stuxie.dev, everything else to stuxie.dev). l.ljdr.uk is unchanged.
v2.4.0
Added
- **The original site's short link domains**, l.ljdr.uk and l.stux.ie, now point at this site. Their Hum short
- **Addresses only the original site has** go to the same address on v1-leo.ridgwell.family: its uploads,
links (l.ljdr.uk/b/1Na) still open the post on the original site at v1-leo.ridgwell.family; every other address on them goes to the same address here, where the original site's addresses redirect to their new homes.
portfolio items, category, tag and author pages, ?p= links and Hum short links. They work in maintenance and coming soon mode too, so old links keep working before launch.
Changed
- The README and deploy script name the server folder,
ridgwell.family-leo, as the deploy path.
v2.3.1
Changed
- The host is called by its name, **Stuxedo**, everywhere: the Privacy Policy, the Imprint, the README and the deploy
- Work now happens on the
testbranch, with pull requests intomain; merging intomaindeploys.
scripts.
v2.3.0
Added
- **A "Pages" category** in the portfolio for the Stux brands' landing, holding and placeholder pages: the
- **LJDR Website** (this site, in development) and **LJDR Website v1** (the original WordPress site, replaced), and
- **A category filter** on the portfolio, beside the status filter; the two combine
instance, region, coming soon, maintenance, service and client pages of Stux.Cloud, Stuxedo, Stux.Group, Stux.Dev, StuxAPIs and Stux.Digital, each with its earlier versions marked replaced (29 in all).
**StuxieDev Website v1** (the original WordPress stuxie.dev, replaced) beside **StuxieDev Website**.
(/portfolio?status=replaced&category=Pages).
Changed
- **Versioning is now
2.x.y**, as this is v2 of leo.ridgwell.family (the WordPress site is v1). Earlier releases - **Archived versions link to their copies in the LJDR Archives** rather than to their own addresses.
- SC Instance Page V1 is back, as **Stux.Cloud Instance Page v1** in the Pages category, replaced by v2.
- StuxieDev is now **StuxieDev Website**, in development, as on stuxie.dev; its old screenshot (of the WordPress
are renumbered: v0.1.0 is v2.0.0, v0.2.0 is v2.1.0, v0.3.0 is v2.2.0 and v0.3.1 is v2.2.1.
site) moves to StuxieDev Website v1.
v2.2.1
Removed
- **SC Instance Page V1** from the portfolio, with its screenshot.
v2.2.0
Added
- **A "Replaced" status** for portfolio projects that something newer took over, listed after the active ones as
on stuxie.dev. A replaced project names its successor (replacedBy), and its card says "Replaced by …" with a link. php tests/data.php checks every successor is in the portfolio.
Changed
- **RoboStux v2** (replaced by RoboStux), **RoboStux v1** (replaced by RoboStux v2) and **SC Instance Page V1**
(replaced by Stux.Cloud) are now marked replaced instead of archived.
v2.1.0
Added
- **Ridgwell Social in the portfolio**: social.ridgwell.family, the family's own Fediverse server (GoToSocial, with
- **An "In development" status** for portfolio projects, listed first, with its own filter and badge colour.
- **Project icons**: a project without a screenshot yet can set
icon, shown on a Ridgwell blue panel in its card.
a custom Ridgwell Family theme), listed as in development, at the top of the portfolio.
Fixed
tests/pages.shnow works in Git Bash on Windows (it wrote Git Bash paths into a PHP file, which Windows PHP
couldn't open).
v2.0.0
Added
- **A completely new leo.ridgwell.family, built from scratch**, replacing the WordPress and Divi site, which moves
- **The Ridgwell look, kept**: Ridgwell blue
#0f8bffand the Ridgwell blue gradient (#0f8bffto#0c71c3) with - **Every page from the original site**, with its content carried over: Home, About, Experience (work, skills,
- **Content as data**: the portfolio, experience and reports live in
data/, so updating them means editing a JSON - **Redirects from the original site's addresses**:
/about/me,/about/experience,/about/portfolio, - **Boring Legal Stuff** at
/legal, with the Privacy Policy, Terms and Ethics, Cookies Policy, Imprint, Disclaimer - **Maintenance, coming soon and debug modes** in
config.php(copied fromconfig.example.php). Coming soon mode - **A Fediverse link** to @leo on the Ridgwell Family's GoToSocial server (
SOCIAL_URL). dev-server.sh/.batfor local development (dev mode on by default,--no-dev-modeto see production),- **CI** on PHP 7.4 to 8.4 (lint, data checks, every page in every mode, version rules) and **automatic deploys to
to v1-leo.ridgwell.family. Plain PHP 7.4+, CSS and JavaScript with no framework and no build step: one stylesheet, one small script and inline SVG icons.
Poppins throughout, self-hosted (SIL Open Font License). Light and dark themes follow your device, with a switch in the header that remembers your choice.
education and certifications), Portfolio (13 projects, filterable by status), Reports (The Future of Quantum Computing, and the Game Stats Discord Bot uni report, at their original addresses) and Contact.
file, not a page. php tests/data.php checks them.
/contact-me, the blog, the regional privacy and cookie pages and more go to their new homes, and /cv goes to the CV.
and Opt-Out Preferences.
is on by default, pointing visitors to the original site until launch.
commit.sh/.bat for releases, a changelog page, a sitemap (/sitemap and /sitemap.xml) and a 404 page.
Stuxedo** over SSH on every push to main.
Changed
- The contact form is replaced by direct email, phone and social links, so the site collects nothing.
Removed
- WordPress, Divi, the cookie consent banner and every third-party script. The site sets no cookies.
- The empty blog; its addresses redirect to the reports.