Repository navigation
Cloudhal 0.3.11
·
126 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
All @cloudhal/* packages and create-cloudhal at 0.3.11.
Changes
- RFC-0038 step 1:
Site.collections.<key>.permalinkin the contracts (a template,/blog/{slug}; v1 is fixed segments plus{slug}), andentryPath(site, entry)/entryAt(site, path)in@cloudhal/core-ts(also@cloudhal/core-ts/permalinks). Every entry URL in the renderer, starter, API, MCP server, CLI and Studio now comes from them; with nocollectionsset, every URL is the same as before. The renderer's one-argumententryPath(entry)is replaced by core'sentryPath(site, entry)(re-exported from@cloudhal/astro-renderer/routing); themes pass the site, orMediaContext.permalinks. - Collection permalinks, step 2 (RFC-0038 §3–§4): changing a collection's permalink in a site update adds a prefix redirect from the old URL prefix to the new one, in every locale and in the same batch as the site update. A template may not overlap another collection, a taxonomy archive, a page or a reserved path (
path_conflict/reserved_path), and pages and archives may not be created inside a configured prefix. The search index rewrites entry links on the next publish. - Collection permalinks, step 3 (RFC-0038 §5): Studio's Site settings has a Collections section, one row per collection with the URL prefix before
/{slug}and a real entry's address; saving goes through the site update, which writes the permanent redirect, and a path conflict shows on the row. The new MCP toolset_collection_permalink(site:write) moves a collection's URLs and always waits for a person, in every mode, with a prompt listing the old and new template, example entries' old and new URLs and the redirect;dryRun: truereturns that plan without changing anything, and overlaps are refused before anyone is asked.get_sitedocumentscollections.SiteGraphStore.updateSite(site, { dryRun: true })runs every check without writing. A menu item for a collection links to a published page at the collection's permalink prefix when there is one, before the page that lists the collection. The blog starter's README describes collection permalinks. Only someone who may change site settings (site:settings) approves it: tool policies take a newapproverScopes. - Fewer D1 round trips per admin API request. The session is cached in a signed cookie for 60 seconds, so a session revoked elsewhere can stay usable that long (ADR-0010 addendum); membership and roles still apply at once. A member and their site roles load in one query.
get-sessionis no longer rate limited, since the limiter's D1 read and write landed on every session check. Due comment purges are swept at most every 10 seconds per isolate instead of on every request. - Studio's images load faster and stop re-downloading. Preview URLs carry the file's hash (
?v=), so the browser keeps them for a day; without it the content route answersprivate, no-cacheand a 304 through the ETag, instead ofno-store. While an image loads, its tile shows the image's own colour and small blurred preview (computed at upload) instead of a spinner. - Studio switches screens faster: the signed-in session is kept between navigations (asked again after five minutes, on sign-out, on revoking sessions and on any 401) instead of being checked with the server on every click, and the pending screen shows after 150 ms instead of the router's one second, so a short wait no longer looks frozen.
Upgrade
npm install @cloudhal/cli@0.3.11 @cloudhal/core-ts@0.3.11 @cloudhal/astro-renderer@0.3.11 @cloudhal/cloudflare@0.3.11
npx cloudhal deployDocs: https://cloudhal.dev/docs/start/installation#upgrading