Dashboard › craft › Distillation
a602b516-b823-4f21-bcdb-c044fa944f30["lore_tm_v1_P_9YdjMt4W02Bmxl6xcVdjobpoFPyAJjZDXkaPpTOPE","lore_tm_v1_Wxdrg7DqgoFRgC1WEcc6rMaNnE5hOBzAEiJqPD8l5i0","lore_tm_v1_8HRdvMh-9hlkgsCLQRquQPKWATLzbqwxjQEZJglEC_I","lore_tm_v1_WZxGFru4Pwf1BxjZN006uZ4IahImusNzhA_u1g03OcM","lore_tm_v1_YlA5Zr-emJJxxE3g9hmsCCjPznLkWpshi-kJSUutAc4","lore_tm_v1_5DKYA8bD45F4HJT_XJT4w7RGNCyc91ksl4aSHdrrKuY","lore_tm_v1_ihxVQ2XgIApkpHwGz1nLHgYgGFjHrZlxwuRQoloSOtE"]
Date: Sep 4, 2026
/home/byk/Code/getsentry/craft-workspace-action-propagation and /home/byk/Code/getsentry/publish-workspace-acceptance.action.yml Validate workspace remediation validates PATH_INPUT before any side effect; allowed input is safe concrete relative POSIX segments with . root allowed; validation must reject traversal, absolute, empty, option-like, prototype, and non-ASCII inputs before git/craft/network effects.action.yml remediation preserves workspace-input mutual exclusion, validates workspace segments, and requires titles to include the repository plus the exact full concrete workspace suffix.CRAFT_WORKSPACE; both prepare and targets must explicitly clear it before considering explicit action workspace input.prepare/targets/title/state.detailsFromContext (publish controller) and getCiPollerInput (CI poller), before API endpoints, check-run parsing, checkout, state, and publish.., .., __proto__, leading-dash, empty/non-token repository values and option-like/incomplete/non-semver version values; valid build metadata 4.2.6+sentry1 must remain accepted.realpath containment under the workspace root and regression coverage must exclude external symlink matches.ci-ready only; state isolation with exact --rev; canonical path-only grammar; tests/generated parser/docs/diff hygiene; action shell semantics; and CI poller behavior.file:line findings; explicitly report PASS/CONCERN/MUST-FIX for each numbered remediation and all major workflow contracts; end exactly MERGE or DO-NOT-MERGE; never return empty./home/byk/Code/getsentry/craft-workspace-action-propagation as a 33-entry directory containing .craft.yml, .git, .github/, action.yml, dist/, docs/, node_modules/, package.json, pnpm-lock.yaml, README.md, src/, tsconfig.json, and vitest.config.mts, among other listed files./home/byk/Code/getsentry/publish-workspace-acceptance as a 15-entry directory containing .git, .github/, AGENTS.md, docs/, node_modules/, package.json, README.md, scripts/, src/, vitest.config.js, and yarn.lock.publish-workspace-acceptance/AGENTS.md states this is the Sentry Publish Repository, a GitHub Actions approval system for publishing releases across Sentry projects using Craft; it is a CommonJS JavaScript project on Node.js 24.0.0.publish-workspace-acceptance/AGENTS.md specifies Yarn classic 1.22.22 via Volta and says not to use npm; commands include yarn install, yarn test, yarn test:watch, yarn test src/modules/__tests__/update-issue.js, yarn test -t "pattern", yarn lint, and yarn prettier.publish-workspace-acceptance/AGENTS.md specifies kebab-case files, camelCase variables/functions such as detailsFromContext and publishRepo, UPPER_SNAKE_CASE constants, CommonJS source modules, ES Modules test files, Prettier defaults with double quotes and semicolons, early guard-clause validation, descriptive errors, and throwing on unknown switch cases.publish-workspace-acceptance/AGENTS.md specifies Vitest v4.0.0 with globals enabled; source layout is src/libs/, src/modules/, and src/publish/; key dependencies are @actions/core, @actions/github, and @sentry/node.action.yml, src/__tests__/action.test.ts, src/commands/prepare.ts, workspace/config-related source, documentation, and tests; the output is explicitly elided and does not establish complete diff contents.craft workspace list as printing exact configured workspace names to printing concrete workspace paths as a JSON array; it states action publish titles always carry the full concrete path.cli\nnext and packages/*, and to exercise Read Craft Targets with prepare\ntargets\n.packages/mcp and packages/cli, test glob patterns including packages/* and packages/[cm]*, create an external symlink at packages/external, and test getWorkspaceNames().getWorkspaceNamesFromConfig, glob matching with { posix: true }, physical containment logic checking realMatch.startsWith(\${realRoot}${path.sep}`), workspace-segment validation rejecting empty segments, .and likely other disallowed forms, andgit.revparse(['--show-toplevel'])`.