From acc770989a9704bf0718a9d99f98a416b93f1bfe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2026 08:46:17 +0000 Subject: [PATCH] chore(release): version packages --- .changeset/admin-api-round-trips.md | 7 ------ .changeset/collection-permalinks-step1.md | 10 --------- .changeset/collection-permalinks-step2.md | 6 ------ .changeset/collection-permalinks-step3.md | 10 --------- .changeset/studio-media-speed.md | 6 ------ .changeset/studio-navigation-speed.md | 5 ----- packages/agent-runtime/CHANGELOG.md | 9 ++++++++ packages/agent-runtime/package.json | 2 +- packages/analytics/CHANGELOG.md | 8 +++++++ packages/analytics/package.json | 2 +- packages/api/CHANGELOG.md | 21 ++++++++++++++++++ packages/api/package.json | 2 +- packages/astro-renderer/CHANGELOG.md | 15 +++++++++++++ packages/astro-renderer/package.json | 2 +- packages/cli/CHANGELOG.md | 26 +++++++++++++++++++++++ packages/cli/package.json | 2 +- packages/cloudflare/CHANGELOG.md | 19 +++++++++++++++++ packages/cloudflare/package.json | 2 +- packages/comments/CHANGELOG.md | 11 ++++++++++ packages/comments/package.json | 2 +- packages/core-contracts/CHANGELOG.md | 6 ++++++ packages/core-contracts/package.json | 2 +- packages/core-ts/CHANGELOG.md | 12 +++++++++++ packages/core-ts/package.json | 2 +- packages/create-cloudhal/CHANGELOG.md | 12 +++++++++++ packages/create-cloudhal/package.json | 2 +- packages/mcp-server/CHANGELOG.md | 18 ++++++++++++++++ packages/mcp-server/package.json | 2 +- packages/schedules/CHANGELOG.md | 8 +++++++ packages/schedules/package.json | 2 +- packages/storage/CHANGELOG.md | 7 ++++++ packages/storage/package.json | 2 +- 32 files changed, 185 insertions(+), 57 deletions(-) delete mode 100644 .changeset/admin-api-round-trips.md delete mode 100644 .changeset/collection-permalinks-step1.md delete mode 100644 .changeset/collection-permalinks-step2.md delete mode 100644 .changeset/collection-permalinks-step3.md delete mode 100644 .changeset/studio-media-speed.md delete mode 100644 .changeset/studio-navigation-speed.md diff --git a/.changeset/admin-api-round-trips.md b/.changeset/admin-api-round-trips.md deleted file mode 100644 index 5614d105..00000000 --- a/.changeset/admin-api-round-trips.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@cloudhal/api": patch -"@cloudhal/cloudflare": patch -"@cloudhal/cli": patch ---- - -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-session` is 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. diff --git a/.changeset/collection-permalinks-step1.md b/.changeset/collection-permalinks-step1.md deleted file mode 100644 index ad2b3768..00000000 --- a/.changeset/collection-permalinks-step1.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@cloudhal/core-contracts": patch -"@cloudhal/core-ts": patch -"@cloudhal/astro-renderer": patch -"@cloudhal/api": patch -"@cloudhal/mcp-server": patch -"@cloudhal/cli": patch ---- - -RFC-0038 step 1: `Site.collections..permalink` in the contracts (a template, `/blog/{slug}`; v1 is fixed segments plus `{slug}`), and `entryPath(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 no `collections` set, every URL is the same as before. The renderer's one-argument `entryPath(entry)` is replaced by core's `entryPath(site, entry)` (re-exported from `@cloudhal/astro-renderer/routing`); themes pass the site, or `MediaContext.permalinks`. diff --git a/.changeset/collection-permalinks-step2.md b/.changeset/collection-permalinks-step2.md deleted file mode 100644 index 9a7f60d3..00000000 --- a/.changeset/collection-permalinks-step2.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@cloudhal/core-ts": patch -"@cloudhal/cli": patch ---- - -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. diff --git a/.changeset/collection-permalinks-step3.md b/.changeset/collection-permalinks-step3.md deleted file mode 100644 index b805892e..00000000 --- a/.changeset/collection-permalinks-step3.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@cloudhal/agent-runtime": patch -"@cloudhal/api": patch -"@cloudhal/mcp-server": patch -"@cloudhal/core-ts": patch -"@cloudhal/astro-renderer": patch -"@cloudhal/cli": patch ---- - -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 tool `set_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: true` returns that plan without changing anything, and overlaps are refused before anyone is asked. `get_site` documents `collections`. `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 new `approverScopes`. diff --git a/.changeset/studio-media-speed.md b/.changeset/studio-media-speed.md deleted file mode 100644 index 9d5ba3eb..00000000 --- a/.changeset/studio-media-speed.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@cloudhal/api": patch -"@cloudhal/cli": patch ---- - -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 answers `private, no-cache` and a 304 through the ETag, instead of `no-store`. While an image loads, its tile shows the image's own colour and small blurred preview (computed at upload) instead of a spinner. diff --git a/.changeset/studio-navigation-speed.md b/.changeset/studio-navigation-speed.md deleted file mode 100644 index 32d4e24d..00000000 --- a/.changeset/studio-navigation-speed.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@cloudhal/cli": patch ---- - -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. diff --git a/packages/agent-runtime/CHANGELOG.md b/packages/agent-runtime/CHANGELOG.md index c5734235..c04b0750 100644 --- a/packages/agent-runtime/CHANGELOG.md +++ b/packages/agent-runtime/CHANGELOG.md @@ -1,5 +1,14 @@ # @cloudhal/agent-runtime +## 0.3.11 + +### Patch Changes + +- 4cd475d: 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 tool `set_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: true` returns that plan without changing anything, and overlaps are refused before anyone is asked. `get_site` documents `collections`. `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 new `approverScopes`. +- Updated dependencies [55deb41] + - @cloudhal/core-contracts@0.3.11 + - @cloudhal/storage@0.3.11 + ## 0.3.10 ### Patch Changes diff --git a/packages/agent-runtime/package.json b/packages/agent-runtime/package.json index 0881d5ae..05b7ebf0 100644 --- a/packages/agent-runtime/package.json +++ b/packages/agent-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@cloudhal/agent-runtime", - "version": "0.3.10", + "version": "0.3.11", "description": "Cloudhal agent runtime: policy engine (actors, scopes, approvals), skill loader, audit log", "license": "Apache-2.0", "homepage": "https://cloudhal.dev", diff --git a/packages/analytics/CHANGELOG.md b/packages/analytics/CHANGELOG.md index 8ad18621..66f18a40 100644 --- a/packages/analytics/CHANGELOG.md +++ b/packages/analytics/CHANGELOG.md @@ -1,5 +1,13 @@ # @cloudhal/analytics +## 0.3.11 + +### Patch Changes + +- Updated dependencies [55deb41] + - @cloudhal/core-contracts@0.3.11 + - @cloudhal/storage@0.3.11 + ## 0.3.10 ### Patch Changes diff --git a/packages/analytics/package.json b/packages/analytics/package.json index ec59aaaa..d3fe6c0c 100644 --- a/packages/analytics/package.json +++ b/packages/analytics/package.json @@ -1,6 +1,6 @@ { "name": "@cloudhal/analytics", - "version": "0.3.10", + "version": "0.3.11", "description": "Cloudhal site analytics (RFC-0006): query model, classifiers, beacon handler, SQLite/D1 store, daily rollups and Workers Analytics Engine adapters. Worker-safe.", "license": "Apache-2.0", "homepage": "https://cloudhal.dev", diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index 90a17da3..470b1953 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -1,5 +1,26 @@ # @cloudhal/api +## 0.3.11 + +### Patch Changes + +- 25b002c: 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-session` is 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. +- 55deb41: RFC-0038 step 1: `Site.collections..permalink` in the contracts (a template, `/blog/{slug}`; v1 is fixed segments plus `{slug}`), and `entryPath(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 no `collections` set, every URL is the same as before. The renderer's one-argument `entryPath(entry)` is replaced by core's `entryPath(site, entry)` (re-exported from `@cloudhal/astro-renderer/routing`); themes pass the site, or `MediaContext.permalinks`. +- 4cd475d: 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 tool `set_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: true` returns that plan without changing anything, and overlaps are refused before anyone is asked. `get_site` documents `collections`. `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 new `approverScopes`. +- 1d7998a: 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 answers `private, no-cache` and a 304 through the ETag, instead of `no-store`. While an image loads, its tile shows the image's own colour and small blurred preview (computed at upload) instead of a spinner. +- Updated dependencies [55deb41] +- Updated dependencies [2d0a257] +- Updated dependencies [4cd475d] + - @cloudhal/core-contracts@0.3.11 + - @cloudhal/core-ts@0.3.11 + - @cloudhal/astro-renderer@0.3.11 + - @cloudhal/mcp-server@0.3.11 + - @cloudhal/agent-runtime@0.3.11 + - @cloudhal/analytics@0.3.11 + - @cloudhal/comments@0.3.11 + - @cloudhal/schedules@0.3.11 + - @cloudhal/storage@0.3.11 + ## 0.3.10 ### Patch Changes diff --git a/packages/api/package.json b/packages/api/package.json index ec848673..aa91326d 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@cloudhal/api", - "version": "0.3.10", + "version": "0.3.11", "description": "Cloudhal HTTP API (Hono): sites, pages, entries, snapshots, auth — runs on Node and Cloudflare Workers", "license": "Apache-2.0", "homepage": "https://cloudhal.dev", diff --git a/packages/astro-renderer/CHANGELOG.md b/packages/astro-renderer/CHANGELOG.md index f26342b6..1662fbb6 100644 --- a/packages/astro-renderer/CHANGELOG.md +++ b/packages/astro-renderer/CHANGELOG.md @@ -1,5 +1,20 @@ # @cloudhal/astro-renderer +## 0.3.11 + +### Patch Changes + +- 55deb41: RFC-0038 step 1: `Site.collections..permalink` in the contracts (a template, `/blog/{slug}`; v1 is fixed segments plus `{slug}`), and `entryPath(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 no `collections` set, every URL is the same as before. The renderer's one-argument `entryPath(entry)` is replaced by core's `entryPath(site, entry)` (re-exported from `@cloudhal/astro-renderer/routing`); themes pass the site, or `MediaContext.permalinks`. +- 4cd475d: 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 tool `set_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: true` returns that plan without changing anything, and overlaps are refused before anyone is asked. `get_site` documents `collections`. `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 new `approverScopes`. +- Updated dependencies [55deb41] +- Updated dependencies [2d0a257] +- Updated dependencies [4cd475d] + - @cloudhal/core-contracts@0.3.11 + - @cloudhal/core-ts@0.3.11 + - @cloudhal/analytics@0.3.11 + - @cloudhal/comments@0.3.11 + - @cloudhal/storage@0.3.11 + ## 0.3.10 ### Patch Changes diff --git a/packages/astro-renderer/package.json b/packages/astro-renderer/package.json index 77f7c853..fcf1bdc2 100644 --- a/packages/astro-renderer/package.json +++ b/packages/astro-renderer/package.json @@ -1,6 +1,6 @@ { "name": "@cloudhal/astro-renderer", - "version": "0.3.10", + "version": "0.3.11", "description": "Render a Cloudhal Site Graph with Astro: data sources (live/snapshot), section components and the cloudhal() integration", "license": "Apache-2.0", "homepage": "https://cloudhal.dev", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 07fbe9ad..6de126bb 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,31 @@ # @cloudhal/cli +## 0.3.11 + +### Patch Changes + +- 25b002c: 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-session` is 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. +- 55deb41: RFC-0038 step 1: `Site.collections..permalink` in the contracts (a template, `/blog/{slug}`; v1 is fixed segments plus `{slug}`), and `entryPath(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 no `collections` set, every URL is the same as before. The renderer's one-argument `entryPath(entry)` is replaced by core's `entryPath(site, entry)` (re-exported from `@cloudhal/astro-renderer/routing`); themes pass the site, or `MediaContext.permalinks`. +- 2d0a257: 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. +- 4cd475d: 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 tool `set_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: true` returns that plan without changing anything, and overlaps are refused before anyone is asked. `get_site` documents `collections`. `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 new `approverScopes`. +- 1d7998a: 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 answers `private, no-cache` and a 304 through the ETag, instead of `no-store`. While an image loads, its tile shows the image's own colour and small blurred preview (computed at upload) instead of a spinner. +- bb15690: 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. +- Updated dependencies [25b002c] +- Updated dependencies [55deb41] +- Updated dependencies [2d0a257] +- Updated dependencies [4cd475d] +- Updated dependencies [1d7998a] + - @cloudhal/api@0.3.11 + - @cloudhal/cloudflare@0.3.11 + - @cloudhal/core-contracts@0.3.11 + - @cloudhal/core-ts@0.3.11 + - @cloudhal/mcp-server@0.3.11 + - @cloudhal/agent-runtime@0.3.11 + - @cloudhal/analytics@0.3.11 + - @cloudhal/comments@0.3.11 + - @cloudhal/schedules@0.3.11 + - @cloudhal/storage@0.3.11 + ## 0.3.10 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index ed936d72..556bcb15 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@cloudhal/cli", - "version": "0.3.10", + "version": "0.3.11", "description": "cloudhal — create, run and build Cloudhal sites locally", "license": "Apache-2.0", "homepage": "https://cloudhal.dev", diff --git a/packages/cloudflare/CHANGELOG.md b/packages/cloudflare/CHANGELOG.md index b048eed4..28feb6aa 100644 --- a/packages/cloudflare/CHANGELOG.md +++ b/packages/cloudflare/CHANGELOG.md @@ -1,5 +1,24 @@ # @cloudhal/cloudflare +## 0.3.11 + +### Patch Changes + +- 25b002c: 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-session` is 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. +- Updated dependencies [25b002c] +- Updated dependencies [55deb41] +- Updated dependencies [2d0a257] +- Updated dependencies [4cd475d] +- Updated dependencies [1d7998a] + - @cloudhal/api@0.3.11 + - @cloudhal/core-ts@0.3.11 + - @cloudhal/mcp-server@0.3.11 + - @cloudhal/agent-runtime@0.3.11 + - @cloudhal/analytics@0.3.11 + - @cloudhal/comments@0.3.11 + - @cloudhal/schedules@0.3.11 + - @cloudhal/storage@0.3.11 + ## 0.3.10 ### Patch Changes diff --git a/packages/cloudflare/package.json b/packages/cloudflare/package.json index 27339cb0..abb53357 100644 --- a/packages/cloudflare/package.json +++ b/packages/cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "@cloudhal/cloudflare", - "version": "0.3.10", + "version": "0.3.11", "description": "Cloudhal on Cloudflare: the admin Worker (API, auth, MCP, Studio) over D1 + R2", "license": "Apache-2.0", "homepage": "https://cloudhal.dev", diff --git a/packages/comments/CHANGELOG.md b/packages/comments/CHANGELOG.md index 4a714197..55805206 100644 --- a/packages/comments/CHANGELOG.md +++ b/packages/comments/CHANGELOG.md @@ -1,5 +1,16 @@ # @cloudhal/comments +## 0.3.11 + +### Patch Changes + +- Updated dependencies [55deb41] +- Updated dependencies [2d0a257] +- Updated dependencies [4cd475d] + - @cloudhal/core-contracts@0.3.11 + - @cloudhal/core-ts@0.3.11 + - @cloudhal/storage@0.3.11 + ## 0.3.10 ### Patch Changes diff --git a/packages/comments/package.json b/packages/comments/package.json index e67bf394..c35bcbc6 100644 --- a/packages/comments/package.json +++ b/packages/comments/package.json @@ -1,6 +1,6 @@ { "name": "@cloudhal/comments", - "version": "0.3.10", + "version": "0.3.11", "description": "Cloudhal reader comments (RFC-0007): settings and thread state, text normalising and content rules, linkify, first-party proof of work, the submission pipeline, purge planner, retention plan and the SQLite/D1 store. Worker-safe.", "license": "Apache-2.0", "homepage": "https://cloudhal.dev", diff --git a/packages/core-contracts/CHANGELOG.md b/packages/core-contracts/CHANGELOG.md index ec3ab437..4ba27c3c 100644 --- a/packages/core-contracts/CHANGELOG.md +++ b/packages/core-contracts/CHANGELOG.md @@ -1,5 +1,11 @@ # @cloudhal/core-contracts +## 0.3.11 + +### Patch Changes + +- 55deb41: RFC-0038 step 1: `Site.collections..permalink` in the contracts (a template, `/blog/{slug}`; v1 is fixed segments plus `{slug}`), and `entryPath(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 no `collections` set, every URL is the same as before. The renderer's one-argument `entryPath(entry)` is replaced by core's `entryPath(site, entry)` (re-exported from `@cloudhal/astro-renderer/routing`); themes pass the site, or `MediaContext.permalinks`. + ## 0.3.10 No changes in this release. diff --git a/packages/core-contracts/package.json b/packages/core-contracts/package.json index b235a507..916ac877 100644 --- a/packages/core-contracts/package.json +++ b/packages/core-contracts/package.json @@ -1,6 +1,6 @@ { "name": "@cloudhal/core-contracts", - "version": "0.3.10", + "version": "0.3.11", "description": "Cloudhal domain contracts: JSON Schema source of truth plus generated TypeScript types", "license": "Apache-2.0", "homepage": "https://cloudhal.dev", diff --git a/packages/core-ts/CHANGELOG.md b/packages/core-ts/CHANGELOG.md index 181b2899..fa357569 100644 --- a/packages/core-ts/CHANGELOG.md +++ b/packages/core-ts/CHANGELOG.md @@ -1,5 +1,17 @@ # @cloudhal/core-ts +## 0.3.11 + +### Patch Changes + +- 55deb41: RFC-0038 step 1: `Site.collections..permalink` in the contracts (a template, `/blog/{slug}`; v1 is fixed segments plus `{slug}`), and `entryPath(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 no `collections` set, every URL is the same as before. The renderer's one-argument `entryPath(entry)` is replaced by core's `entryPath(site, entry)` (re-exported from `@cloudhal/astro-renderer/routing`); themes pass the site, or `MediaContext.permalinks`. +- 2d0a257: 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. +- 4cd475d: 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 tool `set_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: true` returns that plan without changing anything, and overlaps are refused before anyone is asked. `get_site` documents `collections`. `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 new `approverScopes`. +- Updated dependencies [55deb41] + - @cloudhal/core-contracts@0.3.11 + - @cloudhal/schedules@0.3.11 + - @cloudhal/storage@0.3.11 + ## 0.3.10 ### Patch Changes diff --git a/packages/core-ts/package.json b/packages/core-ts/package.json index bd82216f..4d5993c1 100644 --- a/packages/core-ts/package.json +++ b/packages/core-ts/package.json @@ -1,6 +1,6 @@ { "name": "@cloudhal/core-ts", - "version": "0.3.10", + "version": "0.3.11", "description": "Cloudhal Site Graph core (TypeScript): load/save nodes with optimistic locking, snapshots, diff, publish and rollback; taxonomies, terms, redirects and menus", "license": "Apache-2.0", "homepage": "https://cloudhal.dev", diff --git a/packages/create-cloudhal/CHANGELOG.md b/packages/create-cloudhal/CHANGELOG.md index 37d41342..fb8b3b62 100644 --- a/packages/create-cloudhal/CHANGELOG.md +++ b/packages/create-cloudhal/CHANGELOG.md @@ -1,5 +1,17 @@ # create-cloudhal +## 0.3.11 + +### Patch Changes + +- Updated dependencies [25b002c] +- Updated dependencies [55deb41] +- Updated dependencies [2d0a257] +- Updated dependencies [4cd475d] +- Updated dependencies [1d7998a] +- Updated dependencies [bb15690] + - @cloudhal/cli@0.3.11 + ## 0.3.10 ### Patch Changes diff --git a/packages/create-cloudhal/package.json b/packages/create-cloudhal/package.json index e6735a9a..59a06080 100644 --- a/packages/create-cloudhal/package.json +++ b/packages/create-cloudhal/package.json @@ -1,6 +1,6 @@ { "name": "create-cloudhal", - "version": "0.3.10", + "version": "0.3.11", "description": "Create a Cloudhal site: npm create cloudhal@latest", "license": "Apache-2.0", "homepage": "https://cloudhal.dev", diff --git a/packages/mcp-server/CHANGELOG.md b/packages/mcp-server/CHANGELOG.md index 52053f6a..1464abd5 100644 --- a/packages/mcp-server/CHANGELOG.md +++ b/packages/mcp-server/CHANGELOG.md @@ -1,5 +1,23 @@ # @cloudhal/mcp-server +## 0.3.11 + +### Patch Changes + +- 55deb41: RFC-0038 step 1: `Site.collections..permalink` in the contracts (a template, `/blog/{slug}`; v1 is fixed segments plus `{slug}`), and `entryPath(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 no `collections` set, every URL is the same as before. The renderer's one-argument `entryPath(entry)` is replaced by core's `entryPath(site, entry)` (re-exported from `@cloudhal/astro-renderer/routing`); themes pass the site, or `MediaContext.permalinks`. +- 4cd475d: 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 tool `set_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: true` returns that plan without changing anything, and overlaps are refused before anyone is asked. `get_site` documents `collections`. `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 new `approverScopes`. +- Updated dependencies [55deb41] +- Updated dependencies [2d0a257] +- Updated dependencies [4cd475d] + - @cloudhal/core-contracts@0.3.11 + - @cloudhal/core-ts@0.3.11 + - @cloudhal/astro-renderer@0.3.11 + - @cloudhal/agent-runtime@0.3.11 + - @cloudhal/analytics@0.3.11 + - @cloudhal/comments@0.3.11 + - @cloudhal/schedules@0.3.11 + - @cloudhal/storage@0.3.11 + ## 0.3.10 ### Patch Changes diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json index abf46997..b2b4fd70 100644 --- a/packages/mcp-server/package.json +++ b/packages/mcp-server/package.json @@ -1,6 +1,6 @@ { "name": "@cloudhal/mcp-server", - "version": "0.3.10", + "version": "0.3.11", "description": "Cloudhal MCP server: semantic site tools (pages, articles, snapshots, preview, publish) governed by the policy engine", "license": "Apache-2.0", "homepage": "https://cloudhal.dev", diff --git a/packages/schedules/CHANGELOG.md b/packages/schedules/CHANGELOG.md index 9d609659..f621c61e 100644 --- a/packages/schedules/CHANGELOG.md +++ b/packages/schedules/CHANGELOG.md @@ -1,5 +1,13 @@ # @cloudhal/schedules +## 0.3.11 + +### Patch Changes + +- Updated dependencies [55deb41] + - @cloudhal/core-contracts@0.3.11 + - @cloudhal/storage@0.3.11 + ## 0.3.10 ### Patch Changes diff --git a/packages/schedules/package.json b/packages/schedules/package.json index b9bc62e9..d2d314f0 100644 --- a/packages/schedules/package.json +++ b/packages/schedules/package.json @@ -1,6 +1,6 @@ { "name": "@cloudhal/schedules", - "version": "0.3.10", + "version": "0.3.11", "description": "Cloudhal schedules (RFC-0008): the time model, the RRULE subset and its sentences, releases (pin, closure, rl1: hash, compose, conflicts, state machine), automation and run state, taint and budget accounting, the Scheduler and runDue, and the SQLite/D1 store. Worker-safe.", "license": "Apache-2.0", "homepage": "https://cloudhal.dev", diff --git a/packages/storage/CHANGELOG.md b/packages/storage/CHANGELOG.md index 18ae0eda..63376233 100644 --- a/packages/storage/CHANGELOG.md +++ b/packages/storage/CHANGELOG.md @@ -1,5 +1,12 @@ # @cloudhal/storage +## 0.3.11 + +### Patch Changes + +- Updated dependencies [55deb41] + - @cloudhal/core-contracts@0.3.11 + ## 0.3.10 ### Patch Changes diff --git a/packages/storage/package.json b/packages/storage/package.json index 0ebc74d9..b0bbee7d 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -1,6 +1,6 @@ { "name": "@cloudhal/storage", - "version": "0.3.10", + "version": "0.3.11", "description": "Cloudhal storage interfaces (SQL driver, blob store) with Cloudflare D1/R2/Durable Object SQLite and local SQLite/filesystem adapters", "license": "Apache-2.0", "homepage": "https://cloudhal.dev",