From 07b2e9359b1f0dbc486a29302097097e160cea24 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 5 Nov 2026 01:29:30 -0800 Subject: [PATCH 1/2] build(deps): refresh docs rendering and worker tooling --- .agents/skills/openclaw-brand/SKILL.md | 8 ++- .agents/skills/openclaw-design/SKILL.md | 10 +-- .github/workflows/docs-code-ci.yml | 2 +- .github/workflows/pages.yml | 4 +- .github/workflows/r2-pages.yml | 2 +- CHANGELOG.md | 2 + package-lock.json | 82 ++++++++++++------------- package.json | 6 +- skills-lock.json | 4 +- 9 files changed, 64 insertions(+), 56 deletions(-) diff --git a/.agents/skills/openclaw-brand/SKILL.md b/.agents/skills/openclaw-brand/SKILL.md index 9366d4e4a1..68fb1fbcc8 100644 --- a/.agents/skills/openclaw-brand/SKILL.md +++ b/.agents/skills/openclaw-brand/SKILL.md @@ -1,15 +1,19 @@ --- name: openclaw-brand -description: Apply OpenClaw visual identity to logos, typography, imagery, voice, documents, presentations, social graphics, and launch materials. Use when the task changes brand identity rather than ordinary product UI or public-page composition. +description: Apply OpenClaw visual identity to typography, imagery, voice, documents, presentations, social graphics, and launch materials. Use when the task changes brand identity rather than ordinary product UI or public-page composition. --- # OpenClaw Brand Use the canonical identity without turning every surface into a marketing page. +For OpenClaw and OpenClaw Foundation logo selection and usage, use the +[brand kit README](https://github.com/openclaw/carapace/tree/main/brand-kit) +directly. The workflow below is for other brand work. + ## Workflow -1. Read [identity.md](references/identity.md) for palette, typography, logo, and voice. +1. Read [identity.md](references/identity.md) for palette, typography, and voice. 2. Read [asset-rights.md](references/asset-rights.md) before copying or redistributing assets. 3. Identify the artifact's audience and whether it is product, documentation, or marketing. 4. Use semantic design tokens when the artifact is code. diff --git a/.agents/skills/openclaw-design/SKILL.md b/.agents/skills/openclaw-design/SKILL.md index fff961d5f0..9281214122 100644 --- a/.agents/skills/openclaw-design/SKILL.md +++ b/.agents/skills/openclaw-design/SKILL.md @@ -5,19 +5,21 @@ description: Route OpenClaw design work to canonical brand, Carapace product-int # OpenClaw Design -Choose one focused branch before changing an interface. Load multiple branches -only when the task genuinely crosses them. +For OpenClaw and OpenClaw Foundation logo-only tasks, use the +[brand kit README](https://github.com/openclaw/carapace/tree/main/brand-kit) directly. +For other design work, choose one focused branch before changing an interface. +Load multiple branches only when the task genuinely crosses them. | Skill | Use for | | --- | --- | -| `openclaw-brand` | Identity decisions, typography, logos, imagery, voice, and non-product brand artifacts | +| `openclaw-brand` | Identity decisions, typography, imagery, voice, and non-product brand artifacts | | `openclaw-carapace` | Application UI, semantic tokens, themes, component reuse, and framework adapters | | `openclaw-design-system` | Compatibility alias for projects upgrading an existing skill lock | | `openclaw-marketing-pages` | Public-page composition, landing/content pages, navigation, SEO, and responsive layout | | `openclaw-design-audit` | Design drift, token misuse, component substitution, accessibility, and recurring audits | For a public website change, start with `openclaw-marketing-pages` and add -`openclaw-brand` only when the task changes identity, logo, imagery, typography, +`openclaw-brand` only when the task changes identity, imagery, typography, or voice. For a product application, start with `openclaw-carapace` when it is installed. Projects upgrading an existing lock may use `openclaw-design-system` as the `v0.1.x` compatibility alias. diff --git a/.github/workflows/docs-code-ci.yml b/.github/workflows/docs-code-ci.yml index 2faf8a3993..2c405c4421 100644 --- a/.github/workflows/docs-code-ci.yml +++ b/.github/workflows/docs-code-ci.yml @@ -56,7 +56,7 @@ jobs: run: npm test - name: Validate Worker bundle - run: npx wrangler@4.131.1 deploy --dry-run --config wrangler.toml + run: npx wrangler@4.156.2 deploy --dry-run --config wrangler.toml - name: Restore rendered articles uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index e44d20a6d1..05636bc5bb 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -50,7 +50,7 @@ jobs: run: node --test workers/*.test.mjs - name: Validate Worker bundle - run: npx wrangler@4.131.1 deploy --dry-run --config wrangler.toml + run: npx wrangler@4.156.2 deploy --dry-run --config wrangler.toml - name: Deploy to Cloudflare if: github.event_name == 'workflow_dispatch' && inputs.deploy_worker == true @@ -58,7 +58,7 @@ jobs: CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} run: | - npx wrangler@4.131.1 deploy --config wrangler.toml \ + npx wrangler@4.156.2 deploy --config wrangler.toml \ --tag "${GITHUB_SHA::12}" \ --message "openclaw/docs ${GITHUB_SHA}" diff --git a/.github/workflows/r2-pages.yml b/.github/workflows/r2-pages.yml index 741999e84a..9db0e15e3f 100644 --- a/.github/workflows/r2-pages.yml +++ b/.github/workflows/r2-pages.yml @@ -380,7 +380,7 @@ jobs: CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} run: | - npx wrangler@4.131.1 deploy --config wrangler.toml \ + npx wrangler@4.156.2 deploy --config wrangler.toml \ --tag "${GITHUB_SHA::12}" \ --message "openclaw/docs ${GITHUB_SHA}" diff --git a/CHANGELOG.md b/CHANGELOG.md index 864b6b8ef8..50168b0289 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +- Refresh Lucide, Pagefind, Pele, and Wrangler within the two-day cooldown and sync canonical brand-skill guidance. Thanks @dependabot! (#299) + - Fix two Markdown parser denial-of-service advisories with markdown-it 15.0.3 and refresh Carapace, icons, animation, and browser-test tooling within the two-day dependency cooldown. Thanks @dependabot! (#283, #291) - Reduce translation token use by reconciling only missing or changed pages at high effort; keep full retranslation as explicit recovery and preserve completed work across retries and resumes. diff --git a/package-lock.json b/package-lock.json index 17d9923279..eea18b3cc0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,11 +15,11 @@ "glimm": "0.3.1", "highlight.js": "11.12.0", "htmlparser2": "12.0.0", - "lucide": "1.61.0", + "lucide": "1.67.0", "markdown-it": "15.0.3", "markdown-it-anchor": "10.0.0", - "pagefind": "1.5.2", - "pele": "1.10.0", + "pagefind": "1.6.0", + "pele": "1.13.0", "playwright": "^1.64.1", "tsx": "4.23.15", "web-vitals": "6.2.3", @@ -508,7 +508,7 @@ }, "node_modules/@openclaw/carapace": { "version": "0.6.3", - "resolved": "git+https://github.com/openclaw/carapace.git#c3d76bc75504c8289a16c9dc582c52d65f20207d", + "resolved": "git+ssh://git@github.com/openclaw/carapace.git#c3d76bc75504c8289a16c9dc582c52d65f20207d", "integrity": "sha512-0Kva3yEZ8uBf1b+mVoNWU/hMP+PJNZ7m9+NKJQaTVMYTkCE+r3VE2C8lihKj1vO9BSmnA7wMj2Q4Fe48uRnupg==", "license": "MIT", "engines": { @@ -516,9 +516,9 @@ } }, "node_modules/@pagefind/darwin-arm64": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.5.2.tgz", - "integrity": "sha512-MXpI+7HsAdPkvJ0gk9xj9g541BCqBZOBbdwj9g6lB5LCj6kSV6nqDSjzcAJwvOsfu0fjwvC8hQU+ecfhp+MpiQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.6.0.tgz", + "integrity": "sha512-611gl64aqN12UcMyKPtZ8+vRWBKlJFSh2JgO8uScxa1Eyjo1dXz9r4wZuRno0yCUE/KN0FauEoKZ3KEwUYHCCg==", "cpu": [ "arm64" ], @@ -530,9 +530,9 @@ ] }, "node_modules/@pagefind/darwin-x64": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.5.2.tgz", - "integrity": "sha512-IojxFWMEJe0RQ7PQ3KXQsPIImNsbpPYpoZ+QUDrL8fAl/O27IX+LVLs74/UzEZy5uA2LD8Nz1AiwKr72vrkZQw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.6.0.tgz", + "integrity": "sha512-rd3ZbtuxyYqjASKZAPuIV7eeQQHJ7VYpoNKKG8CvglaD3g30eT5Nb7XGNLYwVReBsCccpkURwrGwWjSwr8nyQQ==", "cpu": [ "x64" ], @@ -544,9 +544,9 @@ ] }, "node_modules/@pagefind/freebsd-x64": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@pagefind/freebsd-x64/-/freebsd-x64-1.5.2.tgz", - "integrity": "sha512-7EVzo9+0w+2cbe671BtMj10UlNo83I+HrLVLfRxO731svHRJKUfJ/mo05gU14pe9PCfpKNQT8FS3Xc/oDN6pOA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@pagefind/freebsd-x64/-/freebsd-x64-1.6.0.tgz", + "integrity": "sha512-d+sXqsaThszmPWGVDSRKqIz9GpZcj/bAksNZfg19asSxU0ogNPOMND4kV4giQvOjPFMsltUFf6hQJfoHQ6+hSQ==", "cpu": [ "x64" ], @@ -558,9 +558,9 @@ ] }, "node_modules/@pagefind/linux-arm64": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.5.2.tgz", - "integrity": "sha512-Ovt9+K35sqzn8H3ZMXGwls4TD/wMJuvRtShHIsmUQREmaxjrDEX7gHckRCrwYJ4XE1H1p6HkLz3wukrAnsfXQw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.6.0.tgz", + "integrity": "sha512-SLB2I+XqCZma8NvIGIH8nyKblgKIxw5PmqsVtofWOKxNHhEtOEsddbqU+hsrNcT3EV0faM6UmKDHVIxcPYq29w==", "cpu": [ "arm64" ], @@ -572,9 +572,9 @@ ] }, "node_modules/@pagefind/linux-x64": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.5.2.tgz", - "integrity": "sha512-V+tFqHKXhQKq/WqPBD67AFy7scn1/aZID00ws4fSDd+1daSi5UHR9VVlRrOUYKxn3VuFQYRD7lYXdZK1WED1YA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.6.0.tgz", + "integrity": "sha512-IbMSx/+Vr/Xk0TTBlLkjgK+rvnbOXGmmb2/MKxQu99AR5DsqQoV3NKEA9PQz2tAhuCZjeD5xJBp4w5N5DHIC7Q==", "cpu": [ "x64" ], @@ -586,9 +586,9 @@ ] }, "node_modules/@pagefind/windows-arm64": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@pagefind/windows-arm64/-/windows-arm64-1.5.2.tgz", - "integrity": "sha512-hN9Nh90fNW61nNRCW9ZyQrAj/mD0eRvmJ8NlTUzkbuW8kIzGJUi3cxjFkEcMZ5h/8FsKWD/VcouZl4yo1F7B6g==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@pagefind/windows-arm64/-/windows-arm64-1.6.0.tgz", + "integrity": "sha512-wUrniW3REr7VWJHz6xE6F/p/AQgHDFpGZiY9sbWT71KfEijDE5Jnc37V8zc7cilV9h/QkwJGXoEP2+ZLwDmhtw==", "cpu": [ "arm64" ], @@ -600,9 +600,9 @@ ] }, "node_modules/@pagefind/windows-x64": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.5.2.tgz", - "integrity": "sha512-Fa2Iyw7kaDRzGMfNYNUXNW2zbL5FQVDgSOcbDHdzBrDEdpqOqg8TcZ68F22ol6NJ9IGzvUdmeyZypLW5dyhqsg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.6.0.tgz", + "integrity": "sha512-cUA2+yXfbymdJllyMjY5YTBwuOgh0/H53Pn5fYKjDnDjk154Ft4U5RVj3TenWySPL/jG6zJfARUWSlyUyXHlZw==", "cpu": [ "x64" ], @@ -1699,9 +1699,9 @@ } }, "node_modules/lucide": { - "version": "1.61.0", - "resolved": "https://registry.npmjs.org/lucide/-/lucide-1.61.0.tgz", - "integrity": "sha512-RPNMBgej6WjPKuCNEODg83CF8lnraCeDOsZ3HZ7KvUYf0O5hdJBzer/Ax/meBHl3xvrp5NmKX0IDA5myyzlvGw==", + "version": "1.67.0", + "resolved": "https://registry.npmjs.org/lucide/-/lucide-1.67.0.tgz", + "integrity": "sha512-08U9yCSaUacMl9bZ6QbB9m1stArkwpn+qcL9I0EoHmNjkOFnrHK2vKD63zvdxzkLvFLw1gKIik/en1apdrDNMg==", "dev": true, "license": "ISC" }, @@ -2575,22 +2575,22 @@ "license": "MIT" }, "node_modules/pagefind": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.5.2.tgz", - "integrity": "sha512-XTUaK0hXMCu2jszWE584JGQT7y284TmMV9l/HX3rnG5uo3rHI/uHU56XTyyyPFjeWEBxECbAi0CaFDJOONtG0Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.6.0.tgz", + "integrity": "sha512-yeOd9EA0TUE1PUfbQIluBxzPadBG5/0BV48FAxwMVLkhZcOvwCz6TX4/a/Ofz97pF9/FwwT7CVbTC97BfmI+LQ==", "dev": true, "license": "MIT", "bin": { "pagefind": "lib/runner/bin.cjs" }, "optionalDependencies": { - "@pagefind/darwin-arm64": "1.5.2", - "@pagefind/darwin-x64": "1.5.2", - "@pagefind/freebsd-x64": "1.5.2", - "@pagefind/linux-arm64": "1.5.2", - "@pagefind/linux-x64": "1.5.2", - "@pagefind/windows-arm64": "1.5.2", - "@pagefind/windows-x64": "1.5.2" + "@pagefind/darwin-arm64": "1.6.0", + "@pagefind/darwin-x64": "1.6.0", + "@pagefind/freebsd-x64": "1.6.0", + "@pagefind/linux-arm64": "1.6.0", + "@pagefind/linux-x64": "1.6.0", + "@pagefind/windows-arm64": "1.6.0", + "@pagefind/windows-x64": "1.6.0" } }, "node_modules/parse-entities": { @@ -2621,9 +2621,9 @@ "license": "MIT" }, "node_modules/pele": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/pele/-/pele-1.10.0.tgz", - "integrity": "sha512-hDMEM+GQ01pZin8tst3PRXGeB/xFATvXBreHHtjx2glSNAQ7nHFq7EbMuNJGTbqkYgueWPboLjyUBsAudsb1qQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/pele/-/pele-1.13.0.tgz", + "integrity": "sha512-Ie8UKY9x00MsuR3jO6AzUwzK2Z6MIV3Tf4EDdITiuk8Uaz8K7g0R082WqsqNaSU8DdgkrRvZThzhit83mi/uiw==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index 1dabbc422f..54d4ad48d3 100644 --- a/package.json +++ b/package.json @@ -28,11 +28,11 @@ "glimm": "0.3.1", "highlight.js": "11.12.0", "htmlparser2": "12.0.0", - "lucide": "1.61.0", + "lucide": "1.67.0", "markdown-it": "15.0.3", "markdown-it-anchor": "10.0.0", - "pagefind": "1.5.2", - "pele": "1.10.0", + "pagefind": "1.6.0", + "pele": "1.13.0", "playwright": "^1.64.1", "tsx": "4.23.15", "web-vitals": "6.2.3", diff --git a/skills-lock.json b/skills-lock.json index 98c5a8d561..b88cb18981 100644 --- a/skills-lock.json +++ b/skills-lock.json @@ -5,7 +5,7 @@ "source": "openclaw/carapace", "sourceType": "github", "skillPath": "openclaw-brand/SKILL.md", - "computedHash": "d4bf50bb9d512dbfbcd4abde7a75d8399b0187ca9486dd7854844aab0cd02e6a" + "computedHash": "b1128d51972a2279b90d02a647176b1a543a9cf12768c91fd4a999cca639f30c" }, "openclaw-carapace": { "source": "openclaw/carapace", @@ -17,7 +17,7 @@ "source": "openclaw/carapace", "sourceType": "github", "skillPath": "openclaw-design/SKILL.md", - "computedHash": "4a9004e762b08f6c9fc836de7b4db26fc27e7b9a90342884047bbffa51c21732" + "computedHash": "fc1001251371d848ae44d334ab6130601e6a510f6221d67835e8efd4a9a0a36b" }, "openclaw-design-audit": { "source": "openclaw/carapace", From 46aaa056e80e4c09b93b25ed85fced3aa9a05879 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 5 Nov 2026 01:32:27 -0800 Subject: [PATCH 2/2] docs: describe the pinned diagram runtime --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 772c54da94..43bebb8ac2 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ For official OpenClaw support, visit [community.openclaw.ai](https://community.o - `npm run docs:smoke` checks representative English and locale pages plus the Pagefind search bundle. - `npm run docs:check` runs both steps. - Source indexing writes completion metadata and reports success only after the output stream finishes and its file closes successfully; write or close errors fail the build before those completion signals. -- Mermaid fences and `` blocks render in the browser with Pele 1.6.0, using the docs theme tokens without re-rendering on theme changes. Source Markdown and the expanded-diagram controls are unchanged; diagram links and images stay disabled. Layout follows Pele rather than Mermaid. +- Mermaid fences and `` blocks render in the browser with the pinned Pele runtime, using the docs theme tokens without re-rendering on theme changes. Source Markdown and the expanded-diagram controls are unchanged; diagram links and images stay disabled. Layout follows Pele rather than Mermaid. - The generated site includes the language picker and static full-text search via Pagefind. - Navigation groups can nest recursively; sidebar links, section metadata, and desktop/mobile tab targets resolve to descendant pages at every depth. - Cloudflare deploys `workers/docs-router.ts`, which serves slashless page URLs, English markdown responses for `.md` paths or `Accept: text/markdown`, and `/api/search` through the `DOCS_BUCKET` R2 binding.