From 88afa215f83413e36944419017fed1c1f4c1a0c1 Mon Sep 17 00:00:00 2001 From: nicolas de Barquin Date: Tue, 3 Nov 2026 11:02:04 +0100 Subject: [PATCH] 7.3.0-1: stock CSS 7.3.0; new pods get Type Indexes - CSS 7.3.0 (Node 24): consent and account templates merged (WebID repair links), baseline refreshed. - New pods start with a public Type Index (readable by anyone), a private one and a preferences file naming it; the profile links the public index and the preferences file. Profile card template is now an override, in the baseline. - Smoke: both layouts green; Type Index checked on fresh pods (public index 200 anonymously, prefs/private index/settings 401). Closes #30 Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 25 ++++++++++++++++++ Dockerfile | 4 +-- overlay/main.css | 6 +++++ .../identity/account/resource.html.ejs | 9 ++++++- .../templates/identity/oidc/consent.html.ejs | 17 +++++++++++- .../pod/acp/settings/publicTypeIndex.ttl.acr | 20 ++++++++++++++ .../templates/pod/base/profile/card$.ttl.hbs | 26 +++++++++++++++++++ .../templates/pod/base/settings/prefs.ttl.hbs | 10 +++++++ .../base/settings/privateTypeIndex.ttl.hbs | 8 ++++++ .../pod/base/settings/publicTypeIndex.ttl.hbs | 9 +++++++ .../wac/settings/publicTypeIndex.ttl.acl.hbs | 17 ++++++++++++ pod-name-guard/package-lock.json | 18 ++++++------- pod-name-guard/package.json | 2 +- upstream-baseline.sha256 | 7 ++--- 14 files changed, 161 insertions(+), 17 deletions(-) create mode 100644 overlay/templates/pod/acp/settings/publicTypeIndex.ttl.acr create mode 100644 overlay/templates/pod/base/profile/card$.ttl.hbs create mode 100644 overlay/templates/pod/base/settings/prefs.ttl.hbs create mode 100644 overlay/templates/pod/base/settings/privateTypeIndex.ttl.hbs create mode 100644 overlay/templates/pod/base/settings/publicTypeIndex.ttl.hbs create mode 100644 overlay/templates/pod/wac/settings/publicTypeIndex.ttl.acl.hbs diff --git a/CHANGELOG.md b/CHANGELOG.md index aa97cc9..0d424ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,31 @@ Versions are `-`: a new stock release starts at `-1`, a new overlay on the same stock adds one. A tag `v` publishes both images (`.github/workflows/build.yml`). +## 7.3.0-1 — 2026-11-03 + +Stock CSS 7.3.0 (#30). An instance updates the image; nothing to change in +`.env` but the version. Pods made before keep what they have: the new pod +files below come with pods made from this image on. + +- **CSS 7.3.0.** Runs on Node 24 (the guard is built and tested in the stock + image, so it moved with it). Upstream changes that matter to instances: + pod quota now works in subdomain mode (was silently unlimited), write locks + hold while a request body is still arriving, and **a WebID's profile can be + repaired** from the account (`recoverWebId`): it is regenerated from the pod + templates, the old one backed up beside it. +- **Merged into the overlay:** the consent page's "repair it first" line and the + account page's "Repair a WebID in one of your pods" link (stock ids kept, + hidden when the server can't repair), set apart from the main choice. +- **New pods are findable by type.** A new pod starts with a public Type Index + (`settings/publicTypeIndex.ttl`, readable by anyone), a private one + (`settings/privateTypeIndex.ttl`) and a preferences file (`settings/prefs.ttl`, + naming the private index), all private but the public index. The profile + (`pod/base/profile/card$.ttl.hbs`, now an override, in the baseline) links the + public index and the preferences file, so apps never have to write the + profile to add them; a profile repaired by 7.3's recovery keeps the links. + Both layouts, WAC and ACP. Asked by Maps of Making home (mom-home#14, + decision 2026-11-03). + ## 7.2.0-13 — 2026-11-02 An instance updates the image; nothing to change in `.env` but the version. diff --git a/Dockerfile b/Dockerfile index bc27f82..789a7e4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,10 +5,10 @@ # # Nothing in CSS is patched. The image only adds files where stock CSS already # looks for them (templates/), one config, and one component (PodNameGuard). -ARG CSS_VERSION=7.2.0 +ARG CSS_VERSION=7.3.0 # PodNameGuard, built and tested in the stock image it will run in, so on the -# same Node: 18 for CSS 7.x, 22 for 8.0. Until 7.2.0-5 this stage was a pinned +# same Node: 18 for CSS 7.0-7.2, 24 from 7.3.0, 22 for 8.0. Until 7.2.0-5 this stage was a pinned # node:18-slim, which would have kept testing on 18 after the move to 8.0 (and # 18 is past end of life). The stage only builds; nothing of it but the built # component reaches the final image. diff --git a/overlay/main.css b/overlay/main.css index 5db5af1..80e8109 100644 --- a/overlay/main.css +++ b/overlay/main.css @@ -590,3 +590,9 @@ ol.breadcrumbs > li:only-child { display: none; } @media (prefers-reduced-motion: reduce) { .pending-line { animation: none; left: 0; width: 100%; opacity: 0.5; } } + +/* CSS 7.3.0's WebID recovery links (consent, account). On consent it is an + aside to the choice above, not part of it: set apart and quieter. On the + account page it sits beside "Link a WebID": a gap, never run together. */ +#recoverWebId:is(p) { margin-top: 24px; font-size: 0.875rem; color: var(--text-secondary); } +#linkWebId + #recoverWebId { margin-left: 1.5em; } diff --git a/overlay/templates/identity/account/resource.html.ejs b/overlay/templates/identity/account/resource.html.ejs index e5d7188..3745f2f 100644 --- a/overlay/templates/identity/account/resource.html.ejs +++ b/overlay/templates/identity/account/resource.html.ejs @@ -1,4 +1,4 @@ -<%# Override of CSS 7.2.0 identity/account/resource.html.ejs (upstream-baseline.sha256). +<%# Override of CSS 7.3.0 identity/account/resource.html.ejs (upstream-baseline.sha256). Kept from stock: every id and the whole script, but for two labels it sets ("Change" for "(update)", "Remove" for util.js's "(delete)"). Changed: copy, an intro line, and the order — pods and WebIDs first, each @@ -20,6 +20,7 @@

    Link a WebID from elsewhere + Repair a WebID in one of your pods

    How you log in

    @@ -79,6 +80,12 @@ setVisibility('webIds', false); } else { updateElement('linkWebId', controls.html.account.linkWebId, { href: true }); + // CSS 7.3.0 (stock, kept): only shown when the server can recover a WebID from its pods. + if (controls.html.account.recoverWebId) { + updateElement('recoverWebId', controls.html.account.recoverWebId, { href: true }); + } else { + setVisibility('recoverWebId', false); + } showAccountInfo(elements.webIdEntries, webIdLinks, false, true, 'Are you sure you want to delete the registration of this WebID? ' + 'If you do so you will be unable to identify as this WebID using this server, which can potentially cause you to lose access to data restricted to this WebID.', diff --git a/overlay/templates/identity/oidc/consent.html.ejs b/overlay/templates/identity/oidc/consent.html.ejs index 25e1b93..e070053 100644 --- a/overlay/templates/identity/oidc/consent.html.ejs +++ b/overlay/templates/identity/oidc/consent.html.ejs @@ -1,4 +1,4 @@ -<%# Override of CSS 7.2.0 identity/oidc/consent.html.ejs (upstream-baseline.sha256). +<%# Override of CSS 7.3.0 identity/oidc/consent.html.ejs (upstream-baseline.sha256). Kept from stock: every id, name and the consent flow in consent(). Changed: copy; focus starts on the heading (#authorize is disabled at load and cannot take autofocus); the WebID list is sorted, labelled for reading and @@ -37,6 +37,11 @@

    + +

    + If an app can't read or use a WebID that lives in one of your pods, stop here: + repair it first from your account. +