From e86019c6b61cc9dba76583ca8cb715a3127d4668 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:08:16 +0000 Subject: [PATCH 1/2] chore(ui): sync MCP_PACKAGE_KNOWN_LATEST_VERSION with npm dist-tags.latest --- apps/loopover-ui/src/lib/mcp-package.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/loopover-ui/src/lib/mcp-package.ts b/apps/loopover-ui/src/lib/mcp-package.ts index 0585c1a99b..bd66c7ee45 100644 --- a/apps/loopover-ui/src/lib/mcp-package.ts +++ b/apps/loopover-ui/src/lib/mcp-package.ts @@ -8,7 +8,7 @@ export const MCP_PACKAGE_REGISTRY_URL = `https://registry.npmjs.org/${MCP_PACKAG export const MCP_PACKAGE_NPM_URL = `https://www.npmjs.com/package/${MCP_PACKAGE_NAME}`; // Tracks the latest PUBLISHED release: ui:version-audit requires this to equal npm dist-tags.latest, so it is // bumped to a new version only AFTER that version publishes (never ahead of npm). -export const MCP_PACKAGE_KNOWN_LATEST_VERSION = "3.12.0"; +export const MCP_PACKAGE_KNOWN_LATEST_VERSION = "3.13.0"; export const MCP_MINIMUM_SUPPORTED_VERSION = "0.5.0"; export type NpmPackageMetadata = { From 78074aa1e3f7d3bc151b3e674cd354a21b0a72ed Mon Sep 17 00:00:00 2001 From: JSONbored <49853598+JSONbored@users.noreply.github.com> Date: Fri, 24 Jul 2026 14:37:07 -0700 Subject: [PATCH 2/2] fix(ci): allowlist .nojekyll in the UI preview bundle validator Build UI preview artifact failed on this PR (and would fail on any UI PR) with 'Bundle contains unexpected file types: ./client/.nojekyll'. The extensionless-file allowlist in the deploy-ui-preview composite action (new as of #8523's runner-reduction consolidation, never actually exercised against a real bundle until this PR) didn't include .nojekyll -- a zero-byte, purely-advisory host-compatibility marker the SSR build tooling emits by default, same risk profile (no executable content) as the already-allowlisted _headers/_redirects/_routes.json/.assetsignore. --- .github/actions/deploy-ui-preview/action.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/actions/deploy-ui-preview/action.yml b/.github/actions/deploy-ui-preview/action.yml index 5572b104db..b38a6baf44 100644 --- a/.github/actions/deploy-ui-preview/action.yml +++ b/.github/actions/deploy-ui-preview/action.yml @@ -64,9 +64,14 @@ runs: # smuggled scripts/binaries). A few extensionless CF asset files are explicitly permitted. # `zip` covers the served downloads (e.g. /downloads/loopover-extension.zip) — a passive # static asset wrangler only uploads (never executes), so allowing it doesn't run fork code. + # `.nojekyll` is a zero-byte, purely-advisory host-compatibility marker the SSR build tooling + # (Nitro, TanStack Start's build layer) emits into client/ by default for broad static-host + # portability — no executable content, same risk profile as _headers/_redirects/.assetsignore + # below (#8566 gap-closure: this action is brand-new as of #8523 and had never actually built + # a real bundle before, so this exception was simply never exercised until now). unexpected="$(find . -regextype posix-extended -type f \ -not -iregex '.*\.(mjs|js|cjs|map|json|css|html?|txt|svg|png|jpe?g|gif|webp|avif|ico|bmp|woff2?|ttf|otf|eot|wasm|xml|webmanifest|md|csv|zip|wgsl|glb|gltf)$' \ - -not -name '_headers' -not -name '_redirects' -not -name '_routes.json' -not -name '.assetsignore')" + -not -name '_headers' -not -name '_redirects' -not -name '_routes.json' -not -name '.assetsignore' -not -name '.nojekyll')" if [ -n "$unexpected" ]; then echo "::error::Bundle contains unexpected file types — refusing to deploy:" printf '%s\n' "$unexpected"