From 84c9a2001144210b0fc8cb80c917b80de8bbbe13 Mon Sep 17 00:00:00 2001 From: Rickylabs Date: Fri, 26 Jun 2026 17:02:19 +0200 Subject: [PATCH] fix(release): enable --unstable-raw-imports for whole-workspace publish The JSR-safe asset embedding (with { type: 'text' } import attributes) is rejected by the deno publish module-graph builder unless raw-imports is enabled. A member deno.json cannot carry "unstable" (Deno only honors it in the workspace-root config), and the root config's "unstable" does not propagate into per-member publish graph builds. As a result v0.0.1-alpha.5 partial-published: @netscript/fresh-ui and @netscript/plugin failed with "The import attribute type of 'text' is unsupported" and 6 dependents were skipped (23 of 31 members published). Pass --unstable-raw-imports explicitly on the publish command so every member's publish graph build enables the feature. The publish dry-run path does not enforce this restriction, which is why publish:dry-run stayed green while the real publish failed. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_014gW4zfhMMQU6txC828ijct --- .llm/tools/publish-workspace.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.llm/tools/publish-workspace.ts b/.llm/tools/publish-workspace.ts index 49f39de8e..afc1e5ac5 100644 --- a/.llm/tools/publish-workspace.ts +++ b/.llm/tools/publish-workspace.ts @@ -47,7 +47,21 @@ export async function publishWorkspace( // "Module not found". deno publish skips versions already on the registry, // so re-running after a partial publish is safe and idempotent. Slow types // are accepted workspace-wide. - const args = ['publish', '--allow-dirty', '--allow-slow-types']; + // + // --unstable-raw-imports enables the `with { type: 'text' }` asset imports + // (JSR-safe asset embedding) inside the publish module-graph builder. A + // member deno.json cannot carry `unstable` (Deno only honors it in the + // workspace-root config), and the root config's `unstable` does not + // propagate into per-member publish graph builds, so the feature must be + // enabled explicitly on the CLI or publish fails with "The import attribute + // type of 'text' is unsupported". The dry-run path does not enforce this, so + // the flag must travel with the real publish. + const args = [ + 'publish', + '--allow-dirty', + '--allow-slow-types', + '--unstable-raw-imports', + ]; if (options.mode === 'dry-run') { args.push('--dry-run'); }