Dashboard › craft › Distillation
dca4fdf4-0cd0-4ce1-aec4-4cd77817a67d["lore_tm_v1_Hg-syJTaXfMLfzAiVIu6b9yHZ1rMNkoS6T5SUstln1A","lore_tm_v1_YLAW7pGf3dNzQQunJJ81p37aVLB7Pj9kw-k_6g0ssDY","lore_tm_v1_Y5ZN9pdxJYDwhfYIk13iARmIyAG0C4kHiMPIDdJQ1gc","lore_tm_v1_864Kf7VFLUXP6rB7KZOEBTBOMovHKY8c6xz01tQiyyI","lore_tm_v1_yNJoFfUD7ngfUjmkhJ83YXkfVQkpN8gEIu38pc3QDYA","lore_tm_v1_rKPX6fVlqNf3JjdUBbOW6xKfcI4MNhP6UWxj8shJh34","lore_tm_v1_3Bg4MjJzNT2M455Moa2x9rna0nH5Oy13g3ISyDmQ4ws","lore_tm_v1_VrWb7cC5pWq7CLRWf2lDSQfzKHol7ppJ9Qw9fUBAMv8","lore_tm_v1_3tBSW1s7k0sCw5KmEXq6kwA7_yWuqzcxi3ph_ld2fEY"]
Date: Aug 26, 2026
/home/byk/Code/getsentry/craft-workspace-action-propagation: modified .github/workflows/release.yml, action.yml, src/commands/__tests__/publish.test.ts, and src/commands/publish.ts; untracked src/__tests__/action.test.ts./home/byk/Code/getsentry/publish-workspace-acceptance: modified .github/workflows/publish.yml, src/modules/__tests__/details-from-context.js, src/modules/__tests__/update-issue.js, src/modules/details-from-context.js, and src/modules/update-issue.js.publish-workspace-acceptance/src/publish/inputs.js imports @actions/github, @actions/core, and detailsFromContext from ../modules/details-from-context; inputs() calls detailsFromContext({ context: github.context }) and writes the result as the GitHub Action output named result via core.setOutput('result', result), then invokes inputs()./home/byk/Code/getsentry/craft-workspace-action-propagation using pnpm script tsc --noEmit./home/byk/Code/getsentry/publish-workspace-acceptance using yarn run v1.22.22 and vitest run passed: 5 test files and all 22 tests passed; duration 963ms (transform 224ms, import 894ms, tests 126ms); total Yarn completion 1.49s.vitest.config.js:1:1 uses ESM syntax while loaded as CommonJS, incompatible with Viteβs planned default configLoader: 'native'; suggested .mjs, nearest package.json "type": "module", or VITE_CONFIG_NATIVE_IGNORE_WARNING=true.fatal: invalid object name '83d210b'..github/workflows/publish.yml, the Set targets step runs only when fromJSON(steps.inputs.outputs.result).targets is truthy and exports CRAFT_PUBLISH_REPO, CRAFT_PUBLISH_PATH, CRAFT_PUBLISH_VERSION, and CRAFT_PUBLISH_TARGETS_JSON..github/workflows/publish.yml Set targets constructs a prepopulated Craft publish-state payload with jq -n --argjson source "$CRAFT_PUBLISH_TARGETS_JSON" '[{($source[]): true }] | add | {"published": (. // {}) }'..github/workflows/publish.yml maps CRAFT_PUBLISH_PATH to Craft container cwd: ././ β /github/workspace/__repo__; ./* β /github/workspace/__repo__/${CRAFT_PUBLISH_PATH#./}; otherwise β /github/workspace/__repo__/${CRAFT_PUBLISH_PATH}. It strips a trailing slash, hashes this container cwd with sha1sum | cut -c1-12, and sanitizes owner, repo, and version by lowercasing and replacing non-[a-z0-9._-] runs with _, trimming leading/trailing underscores..github/workflows/publish.yml writes publish state outside the checked-out repository at $GITHUB_WORKSPACE/.craft-state/craft/publish-state-${owner_sanitised}-${repo_sanitised}-${cwd_hash}-${version_sanitised}.json; it creates the directory, writes the JSON payload, and logs the state-file path..github/workflows/publish.yml invokes docker://getsentry/craft:latest as βPublish using Craft,β enters /bin/bash, exports HOME=/root, changes into __repo__/${{ fromJSON(steps.inputs.outputs.result).path }}, and executes craft publish ${{ fromJSON(steps.inputs.outputs.result).version }}.XDG_STATE_HOME: /github/workspace/.craft-state so publish state is outside __repo__/; it also supplies CRAFT_MERGE_TARGET, CRAFT_LOG_LEVEL, CRAFT_DRY_RUN, Git identity, GitHub/API tokens, registry credentials, and target credentials/secrets including CLOUDFLARE_API_TOKEN, COCOAPODS_TRUNK_TOKEN, CRAFT_GCS_TARGET_CREDS_JSON, CRATES_IO_TOKEN, DOCKER_PASSWORD, HEX_API_KEY, NPM_TOKEN, GEM_HOST_API_KEY, and AWS credentials.publish-workspace-acceptance/src/modules/__tests__/details-from-context.js tests parsing workspace title publish: getsentry/toolkit [workspace: "cli/v2"] @1.2.3 into repo: "toolkit", version: "1.2.3", and workspace: "cli/v2".details-from-context.js tests escaped workspace parsing: title publish: getsentry/toolkit [workspace: "cli [preview] \\"next\\""] @1.2.3 yields cli [preview] "next".details-from-context.js rejects legacy title publish: getsentry/toolkit @1.2.3 with Invalid publish issue title.details-from-context.js rejects explicit empty workspace plus escaped newline (cli\\nnext), NUL (\\u0000), tab (cli\\tnext), and bidi format character (cli\\u202enext) workspaces with Workspace names must be nonempty and cannot contain Unicode control, format, or separator characters.details-from-context.js rejects checkout-escaping path title publish: getsentry/toolkit/../other@1.2.3 with Invalid publish issue path, and missing issue payload with Issue context is not defined.craft/action.yml:173-179 puts WORKSPACE alongside rather than inside env on a composite-action step; GitHub will reject this metadata, and craft prepare would not receive the workspace if it were ignored. Assistant marked workspace-based releases blocked and βDO-NOT-MERGE.βsrc/__tests__/action.test.ts:65-83 masks the manifest defect by injecting WORKSPACE directly while executing only the shell snippet rather than validating parsed composite-action step env.src/__tests__/action.test.ts:106-115 checks only a Cf bidi character, omitting Cc, Zl, Zp, empty-title behavior, and valid non-control Unicode; publish/src/modules/__tests__/details-from-context.js:162-242 checks empty, Cc, and Cf but omits Zl, Zp, and valid non-control Unicode; craft/src/commands/__tests__/publish.test.ts tests getPublishStateGitHubConfig in isolation but not publishMain reading the exact prepopulated workflow state file; workflow filename calculation lacks executable regression coverage.publish/.github/workflows/publish.yml:214-230), exports CRAFT_PUBLISH_STATE_GITHUB_REPO separately (:255-258), and Craft applies this override only in getPublishStatePath (craft/src/commands/publish.ts:715-731) through a state-only GitHub config without altering resolved configuration for status/artifact providers (:685-686).craft/action.yml:74-82 validates Cc, Cf, Zl, and Zp before title construction; action.yml:263-270 emits workspace title syntax only for nonempty input; absent/empty action input preserves legacy title syntax; publish/src/modules/details-from-context.js:26-31 rejects explicit empty workspace titles and the same Unicode classes while accepting valid non-control Unicode.action.yml:74-82 validation occurs before GitHub API calls (:91-94), $GITHUB_ENV writes (:102-104), artifact download (:110-116), installation (:118-168), Git (:182), and Craft invocation.--workspace=$WORKSPACE array argument in action.yml:185-213 to prevent option injection, and publish state as remaining under XDG outside __repo__; malformed titles and checkout escapes are rejected.