Dashboard › craft › Distillation
00e304e7-4d6c-4a07-9c8c-f9287c0ee862["lore_tm_v1_r4Lqy7JfwpzllM9c9LxGlzKzA_iiukUi1_u-oNHpF3s","lore_tm_v1_jSXieDUWTZ4oMAy9nlqqsjTjvQEmyuXusrKhbdw_zOo","lore_tm_v1_dQPLYAGOvDAgfmoEq5phef-QzId1FvO_pU5ZeJspKRk","lore_tm_v1_kYY57_3_pq7qqHoICuu7xRoUOp3-Evc0xptL-V0fNeA","lore_tm_v1_1ocXoL5X9RdoNcz3O5AdiJqaAQ4KfTe6S1_R8UMBiGM","lore_tm_v1_YPIVP9IZ1QBmambyUU3W5c_sqWeLqMhUvjADj_CnC_s","lore_tm_v1_k_7PycIxpgJ1qS5xHrZR-cDVjubYs-nPvOSXvHjd3CA","lore_tm_v1_AOoRdCiqOG-OshT0y10PiyYiJgK-r_QULUiePdkLBbo","lore_tm_v1_6m9wULuZbFDftimJU7dXDEohAfSsC8zUnHUlsg1pRFM","lore_tm_v1_91IQd6w0r0H0aj8xwOJhBcdXpqIA6eIRkFlMr2Gk7Ps","lore_tm_v1_zdfBltg-wCbTCX7ta9sY0nscLVsjBcklg5v0Uylm4Vg","lore_tm_v1_32u5EZqHCN8r0RJsJVVIR7AT4C_2GmASOz6adI3ELME","lore_tm_v1_X0C7cw69H-oQmAg-Fs3UW2OeMC9BZgi-XGdcz7tdg9A","lore_tm_v1_HMGekw0rv6kmsuoJtBw5s7H3apE9RGOrXBlCVvGeywo","lore_tm_v1_PD8xOLB4mSjDEe2SoWDKPLVoLazyNrUjvB1EeWNqrUY","lore_tm_v1_jYRK2ObwkY6kcsqmwW5r-WUKyd9TEG3sv03IhvQ6Bk8","lore_tm_v1_JOw0xNtZSwtINu7_nsIq2iOyFVyNWJbp5zWqDySwglI","lore_tm_v1_I9OQv4gW38zrX4myaX2ugd5yV86GAOih3naw8Y-1d44","lore_tm_v1_l2KirTHtGNJRnCkAKZMm2L9qmDf0XYAxPAFhBdTexe8","lore_tm_v1_Xb_mnxP3NvCXnzCk9ljA6p2t5Kge-DtLrp2b3sTeVZk","lore_tm_v1_PMZZPzkvPZ-MDIYGs-oillZjGMXZbfu_l1t7WVWqjzI","lore_tm_v1_t00WmTKgFhWLfkj-1-pgU6NDLX_c0p6bmacySe2FNzo","lore_tm_v1_zPEJsDfykb_prPdtIT7c5Kb1MH1fUTsM9kiIH4KtJU0","lore_tm_v1_Jn-AM-oGlHvN5N-HLWe_VrGscgOSvfNM32mDVTsx-i0","lore_tm_v1_0oqMNYLm5N3ZXuz-fXoUlYxf11CW9oqje5WTm-esAz0"]
Date: Aug 28, 2026
workspace matches in /home/byk/Code/getsentry/craft-workspace-action-propagation, including action input/configuration in action.yml and src/utils/helpers.ts; workspace propagation tests in src/__tests__/action.test.ts and src/__tests__/config.test.ts; workspace:* dependency handling in src/targets/npm.ts and src/__tests__/versionBump.test.ts; and workspace inputs passed through .github/workflows/release.yml.vitest run -- src/__tests__/action.test.ts src/__tests__/config.test.ts src/commands/workspace_cmds/__tests__/list.test.ts completed successfully: 61 test files passed; 1,147 tests passed; 1 skipped; 1,148 total; duration 27.78s. Logs included expected mocked GitHub release cleanup, duplicate-release, floating-tag, oversized-release-body, and dry-run scenarios.src/targets/__tests__/symbolCollector.test.ts (lines 58 and 68): assigning vi.fn() to imported checkExecutableIsPresent will throw because it is an import.action.yml, docs/src/content/docs/targets/github.md, src/__tests__/action.test.ts, src/__tests__/config.test.ts, src/config.ts, src/index.ts, and src/schemas/project_config.ts; untracked additions: src/commands/workspace.ts and src/commands/workspace_cmds/./tmp/opencode/craft-workspace-review (9.2 MB) failed at startup with TypeError [ERR_INVALID_ARG_VALUE]: createRequire received undefined instead of a file URL or absolute filename; stack points to /tmp/opencode/craft-workspace-review:234365:88. Node also emitted DEP0040 warning that punycode is deprecated.build.mjs: esbuild bundles src/index.ts to dist/craft.js for Node 22, injects ./src/utils/import-meta-url.js, defines import.meta.url as import_meta_url, and sets production process.env.NODE_ENV; it conditionally adds @sentry/esbuild-plugin when SENTRY_AUTH_TOKEN exists, for Sentry org sentry, project craft, uploading sourcemaps dist/craft.js / dist/craft.js.map and deleting dist/**/*.map.build.mjs contains jsoncParserEsmPlugin, which redirects jsonc-parser resolution from lib/umd/ to lib/esm/ because the UMD entry performs dynamic sibling require("./impl/format") calls that esbuild cannot bundle; jsonc-parser is transitive through @vercel/client β @vercel/microfrontends.build.mjs post-processing adds a Node shebang if absent, renames dist/craft.js to executable dist/craft, handles ENOENT to tolerate parallel test-build races, chmods dist/craft to 0o755, and removes dist/craft.js.map if still present.Error: Cannot find module './impl/format', required by /tmp/opencode/craft-workspace-review; this matches the jsonc-parser UMD dynamic-require bundling failure described in build.mjs. Node also emitted DEP0040 (punycode) and DEP0169 (url.parse()) deprecation warnings.[ '__proto__' ] true { releaseBranchPrefix: 'release/proto' }, showing the input contained __proto__ and resolved to an object with releaseBranchPrefix: 'release/proto'.vite-node failed: ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL Command "vite-node" not found; pnpm suggested pnpm exec vite.github.projectPath schema guards in src/schemas/project_config.ts: a workspace-level refinement rejects Workspace github.projectPath is not supported., and another rejects base github.projectPath when workspaces are configured with Workspace configurations cannot use github.projectPath. Tests in src/__tests__/config.test.ts cover rejecting workspace projectPath, rejecting base projectPath with workspaces, and allowing it with an empty workspace map.C..C and C.utf8 rejected Γ©; en_US.UTF-8 accepted Γ©.--config-from in src/config.ts:353, src/commands/prepare.ts:125,796, and an action test using workspace value --config-from=untrusted; expected command output preserves it literally as prepare --workspace=--config-from=untrusted and targets --workspace=--config-from=untrusted.cli\n), carriage return (cli\r), CRLF (cli\r\n), Unicode line separator (cli\u2028), Unicode paragraph separator (cli\u2029), and tab (cli\t); Bash also rejected each corresponding quoted value.error: pathspec 'dist/craft' did not match any file(s) known to git, suggesting it had not been added.src/utils/strings.ts: formatJson(obj: any) serializes with JSON.stringify(obj, null, 4); for an Error that serializes to '{}', it instead returns util.format(obj). formatArtifactConfigForError(artifactsConfig) returns an empty string for absent config; otherwise it YAML-dumps { artifacts: artifactsConfig } with { indent: 2, flowLevel: 3 }, trims trailing whitespace, and prefixes \n\nYour .craft.yml artifact configuration:\n."cli" validated and returned workspace names ['cli']; "__proto__" validated but returned []; "constructor" validated and returned ['constructor']; "toString" validated and returned ['toString']; "cli/v2" was rejected at workspaces.cli/v2; "Γ©" was rejected at workspaces.Γ©.C.utf8 rejected Γ©, Γ€, Δ°, Γ, and ΓΈ, while en_US.utf8 accepted all five.__proto__ is allowed by the workspace-key grammar but silently discarded by Zod record output. workspaces: { __proto__: {} } validates, but getWorkspaceNames() returns [], so workspace selection reports none. Because the root github.projectPath guard uses the now-empty Object.keys() output, this also bypasses the root github.projectPath restriction. Evidence cited: src/schemas/project_config.ts:236-249, src/config.ts:215-225,381-385; existing prototype-name test at src/__tests__/config.test.ts:373-381 does not configure a prototype-named key.en_US.utf8, Bash accepts Γ© for ^[A-Za-z0-9_.-]+$, but the schema rejects it; Unicode-control checks do not reject ordinary non-ASCII letters. Consequently an invalid workspace can pass initial action validation and reach later gh/git side effects. Evidence cited: action.yml:84-90 versus src/schemas/project_config.ts:236-238; side effects at action.yml:93-103,179-191; tests only cover ASCII and / at src/__tests__/action.test.ts:193-220.projectPath: "packages/cli" showed {"workspaceKeys":[],"hasOwnProto":false,"projectPath":"packages/cli"}."__proto__" in input but Zod-produced configuration still showed workspaceKeys: [], hasOwnProto: false, and projectPath: "packages/cli": {"rawKeys":["__proto__"],"workspaceKeys":[],"hasOwnProto":false,"projectPath":"packages/cli"}.