Dashboard › craft › Distillation
8f82ca1c-15a9-48e1-bc2f-f29699a7cad0["lore_tm_v1_fDzXmzZWN18KvtS9SZernUUYTIPKurXfzFLc04uUxcI","lore_tm_v1_7pYwSMu1W8L1t_OWJWGhtZ4ln1K7vlGzDAGibByjsqU","lore_tm_v1_WBo2QYRZdRLmgeaOAnaK_F0Tq9OMN4HpwGOAsKX1_aM","lore_tm_v1_YB4IlRYqhsFR3m6pgjYz5MDJt5tCAJeg3Hx0wsOA-Tc","lore_tm_v1__QIn035W_PteX5tB4qUa5ciqRWkPzd3oQbAum70P16k","lore_tm_v1_olsp-sWzY7u33qww-I-0YNIzEWewekzU-EGF_x7yA5s","lore_tm_v1_yBUKR5gxwysKgfTJP3HUlpRU4HIobVPcamJb3rgNC3g","lore_tm_v1_wWeZsjVAnO5Nh3LPi7svWohyPMYL4o1jD4qKrJsFPJM","lore_tm_v1_71ipJozePhz5LFxBcQ1odFp4aXeig9rvDzE9mv_xbjw","lore_tm_v1_-07vUuWFMhD0IwsTGTcjgp5mu4T07wFEYtufXUd0r2E","lore_tm_v1_1gDaWpk9-RcR6G37LyOl5qKIaahZaT7jhX-EMftOTqU","lore_tm_v1_WsLIbV8r3d0UeSKcpKhWhqBAQyZ6h9pJXAgOI7ZtbbE","lore_tm_v1_Yd7DIAQk3dz0C8tnznsC5cx6ZUCsZ-KKv-sp8plaBIQ","lore_tm_v1_JepBEiSRDovS4RJ6dESqJr8bDoAyUhMZmAYte_o_drI","lore_tm_v1_lwQzW7Oqj06ThtQ4hjfMnoNpUafrZ_sr59ecNgYu9d8"]
Date: Aug 29, 2026
ses_fb3562c9fffeXLh7cFQ0FkAVsQ completed an adversarial review of the compact release contract and returned DO-NOT-MERGE..github/workflows/publish.yml:239-250 unconditionally runs unavailable getsentry/craft:2.31.0, although compact-title workspace discovery alone requires it at :180-184; docker manifest inspect getsentry/craft:2.31.0 returned no such manifest, while 2.30.1 exists. This would block legacy releases too, without an availability gate or safe fallback. src/modules/__tests__/publish-workflow.js:58-88 asserts the pin but does not test image availability or legacy isolation.path and workspace. src/modules/publish-issue-title.peggy:11,26-33 accepts both optional Path? and LegacyWorkspace?; src/modules/details-from-context.js:34-55,76-83 returns both without rejecting the combination; and src/modules/publish-location.js:5-8 preserves both. Example unsafe title: publish: getsentry/toolkit/packages/cli [workspace: "cli/v2"] @1.2.3; it would publish with non-root CWD plus CRAFT_WORKSPACE, violating the contract. Existing coverage at src/modules/__tests__/publish-location.js:53-70 tests only root legacy workspace behavior.package.json:18-19 regenerates parser before tests and .github/workflows/test.yml:33-34 runs only yarn test; production directly loads committed generated src/modules/publish-issue-title.js through .github/workflows/publish.yml:131-149 and src/modules/details-from-context.js:1. No post-generation clean-tree check ensures the committed parser matches src/modules/publish-issue-title.peggy.pnpm-lock.yaml:1 is unrelated in Yarn-based Publish (package.json:10-13, .github/workflows/test.yml:27-31) and should not enter the change.craft:2.31.0 breaks legacy publishing, and legacy JSON workspace titles can combine workspace with non-root path. Assistant stated intent to fix both, add generated-parser drift detection, and exclude pnpm-lock.yaml..github/workflows/publish.yml around controller execution: it requires ci-ready; parses inputs (id: inputs); resolves CI-approved revision; obtains a GitHub App token; conditionally determines workspace-discovery need; invokes Docker discovery; creates Craft state; derives container CWD with realpath -m "/github/workspace/__repo__/$CRAFT_PUBLISH_PATH"; hashes CWD with SHA-1 first 12 characters; sanitizes version; writes external state; invokes Craft via Docker; and invokes update-issue.js on cancellation/failure.src/modules/publish-location.js: needsWorkspaceDiscovery({ path, workspace }) returns true only for no explicit workspace and path matching exactly /^\.\/[A-Za-z0-9_.-]+$/. resolvePublishLocation({ path, workspace, workspaceNames }) preserves explicit { path, workspace }; otherwise validates discovered names only when discovery is needed; exact one-segment discovered names resolve to { path: ".", workspace: <exact segment> }; other paths remain { path }.src/modules/publish-location.js workspace validation: isWorkspaceName(name) requires a string, rejects "__proto__", and requires /^[A-Za-z0-9_.-]+$/./home/byk/Code/getsentry/publish-workspace-acceptance/src/modules/__tests__/publish-location.js.src/modules/__tests__/publish-location.js tests discovery eligibility: ./cli true; ./packages/cli, ., and ./cli with explicit workspace: "cli" false.src/modules/__tests__/publish-location.js verifies exact non-normalized workspace classification: path: "./CLI" with discovered ["cli", "CLI"] resolves to { path: ".", workspace: "CLI" }.src/modules/__tests__/publish-location.js verifies ./packages remains a path when only "cli" is discovered, and ./packages/cli remains a multi-segment checkout path even if "cli" is a workspace.src/modules/__tests__/publish-location.js verifies root path: "." remains root even with discovered workspaces; explicit legacy root workspace "cli/v2" is preserved; legacy explicit workspace bypasses invalid discovery-list validation; and discovery list ["cli-日本語"] throws Craft workspace discovery returned an invalid workspace list.getsentry/craft:2.30.1 began downloading layers but shell timed out after 120000 ms before compatibility could be established.getsentry/craft:2.30.1 pull completed and to use it only if it supports the pinned-revision contract; otherwise retain an explicit Craft-release gate.Error response from daemon: No such image: getsentry/craft:2.30.1; the timed-out pull did not leave the image locally available.src/modules/__tests__/details-from-context.js, including root title parsing fixture publish: getsentry/sentry@21.3.1 with exact check-runs SHA 7e5ca7ed5581552de066e2a8bc295b8306be38ac, expected parsed root path ., repo sentry, version 21.3.1, merge target custom-branch, and checked targets ["github", "npm[@sentry/node]", "docker[latest]"].src/modules/__tests__/details-from-context.js tests version parsing with + using publish: getsentry/sentry-forked-django-stubs@4.2.6+sentry1, expecting version 4.2.6+sentry1; it tests (default) merge target becomes empty string.src/modules/__tests__/details-from-context.js preserves legacy JSON workspace support: root publish: getsentry/toolkit [workspace: "cli/v2"] @1.2.3 parses workspace "cli/v2"; escaped workspace cli [preview] \"next\" parses as cli [preview] "next"; safe Unicode workspace "cli-日本語" parses unchanged.src/modules/__tests__/details-from-context.js tests rejection of unexpected space before version, invalid JSON escape cli\qnext, and empty/control/format/separator legacy workspace values including escaped newline, NUL, tab, bidi U+202E, line separator U+2028, and paragraph separator U+2029.scripts/generate-publish-issue-title-parser.js: it reads src/modules/publish-issue-title.peggy, generates CommonJS source with peggy.generate(..., { format: "commonjs", grammarSource: "publish-issue-title.peggy", output: "source" }), prepends /* eslint-disable */, formats with Prettier using filepath: outputPath, and writes src/modules/publish-issue-title.js.getsentry/craft:2.30.1 source for --rev support. Conditional approach: use existing immutable 2.30.1 only for legacy requests if it supports pinned checkout; compact one-segment titles remain gated on 2.31.0; otherwise no safe fallback exists.src/publish/resolve-location.js: it parses PUBLISH_ARGS; only when needsWorkspaceDiscovery(input) is true does it parse CRAFT_WORKSPACE_NAMES; otherwise it uses []. It rejects non-array workspace discovery data with Craft workspace discovery returned an invalid workspace list. and emits resolvePublishLocation({ path: input.path, workspace: input.workspace, workspaceNames }) as output result.