From a96233cf7374cd8c5e55f7129429c547dcdae307 Mon Sep 17 00:00:00 2001 From: Duc-Tam Nguyen Date: Mon, 15 Jun 2026 23:12:08 +0700 Subject: [PATCH] Cut the v0.3.1 release notes Move the Unreleased fix into a dated 0.3.1 section, update the compare links, and add a v0.3.1 summary to the docs release-notes page. This patch redirects / to the main page so a mirror whose entry point is a nested page keeps its CSS and images when served. --- CHANGELOG.md | 19 ++++++++++++++++++- docs/content/reference/release-notes.md | 6 ++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a360ea..e25e6b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,22 @@ All notable changes to kage are recorded here. The format follows ## [Unreleased] +## [0.3.1] - 2026-06-15 + +### Fixed + +- A served mirror whose entry point is a nested page no longer loses its CSS and + images when opened at the root. kage saves each page's asset links as + mirror-relative paths (`../_kage/...`) computed for that page's own location, + but the viewer answered `/` with the main page's bytes in place, so the browser + resolved those relative URLs against `/` and missed every one. A + `developer.apple.com/documentation` mirror, whose main page is + `developer.apple.com/documentation/index.html`, landed at `/` completely + unstyled. kage now redirects `/` to the main page's canonical content path, the + way the archive's `W/mainPage` redirect already does, so the browser resolves + the page's relative assets correctly. Kiwix was unaffected because it follows + that redirect itself. + ## [0.3.0] - 2026-06-15 ### Added @@ -180,7 +196,8 @@ can browse offline, with every script stripped out. a multi-arch container image on GHCR (Chromium bundled), checksums, SBOMs, and a cosign signature, all cut from one version tag by GoReleaser. -[Unreleased]: https://github.com/tamnd/kage/compare/v0.3.0...HEAD +[Unreleased]: https://github.com/tamnd/kage/compare/v0.3.1...HEAD +[0.3.1]: https://github.com/tamnd/kage/compare/v0.3.0...v0.3.1 [0.3.0]: https://github.com/tamnd/kage/compare/v0.2.1...v0.3.0 [0.2.1]: https://github.com/tamnd/kage/compare/v0.2.0...v0.2.1 [0.2.0]: https://github.com/tamnd/kage/compare/v0.1.2...v0.2.0 diff --git a/docs/content/reference/release-notes.md b/docs/content/reference/release-notes.md index 29bc06b..b9b25e8 100644 --- a/docs/content/reference/release-notes.md +++ b/docs/content/reference/release-notes.md @@ -6,6 +6,12 @@ weight: 40 The authoritative, commit-level history lives in [`CHANGELOG.md`](https://github.com/tamnd/kage/blob/main/CHANGELOG.md) and on the [releases page](https://github.com/tamnd/kage/releases). This page summarises each version. +## v0.3.1 + +A fix for broken styling when a packed mirror's home page is a nested page. + +- **`/` redirects to the main page instead of serving it in place.** A page's saved asset links are mirror-relative (`../_kage/...`), computed for that page's own location. The viewer was answering `/` with the main page's bytes directly, so the browser resolved those links against `/` and 404ed the page's CSS and images. A `developer.apple.com/documentation` mirror opened at `/` came up completely unstyled. kage now redirects `/` to the main page's canonical path, the way the archive's `W/mainPage` redirect does, so relative assets resolve correctly. Kiwix already followed that redirect, so it was never affected. + ## v0.3.0 Leaner mirrors, and a way to publish one as a dataset. A clone now keeps the assets that make a site readable offline and leaves the bulk downloads on the live web, and a packed archive converts to a columnar table that drops straight into dataset tooling.