Dashboard › craft › Distillation
2ef26bb8-0a9e-436a-bd85-5ce8cb3840a5["lore_tm_v1_UEuSzm57FXubzKxvNeEyB4nMlbSeVg07viQ6uCXcJ4c","lore_tm_v1_nFLP-1fBF-9MEaq0MVBHq60NizhknReCoyRV0hUvZYI","lore_tm_v1_NyMcvFmXfLQj7FxsIzJncOMFCq3EgNJpoS_KUeskc34","lore_tm_v1_LmmeOzs80mr_OT22wmtLANS1eCPQOqBO0QaxEL6-P7U","lore_tm_v1_lRJmPGOyfZpIfgxQtCshsDIVhVdrj0NoXVrnp9iz_xo","lore_tm_v1_c9E5ZPLIMSMeyhAeJCy-lqLv6AoO-fqmNits6daHN_o","lore_tm_v1_1qApMlSVFSwhXbYtjXIX2b0Jja6PiGXEOD-ehM5WWRk","lore_tm_v1_m1vRfFPGMZzj_qIfZGMWMYxDtVBRoPR9GrTk-I_ev2Q","lore_tm_v1_6qhVSMUYvdGkMVz4jEKQAA7InCAAITvQwXubi3wphH8","lore_tm_v1_8C6A5vDmaUY_HSK8GKBki_gLI_UKvhk7nvSzNerHG5c","lore_tm_v1_cDQ3vhYHqzBbpMIfpW-MP966BNQjx7YAY6jM4kdcmMY","lore_tm_v1_iNqMlE6etCpig0zsslzjmF6riw_MQx3qBPiQKZVMyrk","lore_tm_v1_fqOI2vHO1U0nHj0Fy2Qimnb3i_JnWGJBrcNSDcly__g","lore_tm_v1_u9KBJTCQkz_5FOfSysKXJK9Y-9HHsHbERnJRGjQ7jFg","lore_tm_v1_M-3lvemVFmWaSOq8osvkBGmOEZMXXb4BBnW2SUfD7bc","lore_tm_v1_kyK5ocRGAcuk6EEG6Sk7MJ_7fPHU9h_klj-R94Jl3pE","lore_tm_v1_5vHjLR4Igia5RXp3Jh2BAc1p5dDvyC-tfqhmWK4UWKA","lore_tm_v1_jkzP0bsPdDwVqQMmzFPqcMVGVdVSPSmIs6e62dEYcmo","lore_tm_v1_ZBWiwrjLP15A56hlyOEOZJyCwdhcWHTgWNEA68NNjl4","lore_tm_v1_kEsPosvlCB3HoJY3fF9H0ql8zXH40nDwHcgtltlBw3k","lore_tm_v1_0xQl4C8Hahg-r4jr8Qa4M9maUHhO2dXo3ycHOrbV93E","lore_tm_v1_c3xfv1TDye8n1ZVCkFQAhGc8MA_VfumQ1yEn6G8iOF4","lore_tm_v1_nMSxHP9nV7kIidgx7W3LeHJ6evfQ60Hdt79tGkXe8I0","lore_tm_v1_HxU1eX4XTsxOzMpC4cINcFgtuxwuxXj0W-2st99uto4","lore_tm_v1_HhJjn1HwwQmryOIruqysxrylGgQirk_P7IYkp3ynWIc","lore_tm_v1_xIcGxRMtPrz_oQPHE1NI1sJNK9TCo3kEYoPU-0nbiaY","lore_tm_v1_RsKPpHKStlmRGkbmJTo4ZSoXRi6N3HVM2TfiU3YjKXo","lore_tm_v1_YZKLMwiMqU1RJxRDz4OkhfAss-gIWfV0JtBByval1UU","lore_tm_v1_kGqqS4tJtNsyNaonSCG6Bz6mk3B8MlHKNVKbNV_xpKQ","lore_tm_v1_zaGp2we7IpF5slk1yolKdPcaNWiLh1hxLGldf_SkgZk","lore_tm_v1_X6anoRPH18KG_uFjfe0dnLITsl8HSJMAWB_z2GaSj_U","lore_tm_v1_1Ipxlasu0Pee7aCvdqh6AhlR6G0tcCz2pXf1Wxy4G8E","lore_tm_v1_AWXnGlCEVvWSQ-rEfOIbvh6HqNooEqCGu-eBQF3eMKU","lore_tm_v1_7w63LiAXzQ3POOn52udqV3COHmaN9RScxaykmrJqun0","lore_tm_v1_JJYGx23UEzW2NLN5RBA1uKDElnU1NZEfmLyxddVUwJM","lore_tm_v1_Ms7HO0FSkkBQl67kuALT0J-YvPVRMSbbDNBNvS5EYPI","lore_tm_v1_CCrlhgPROG8NDPWwzW17eUvfBI_tiRa1OxjG8nNw5tU","lore_tm_v1_bwMGd2ztMVRrJuGRsk-MR_Z2XP8KY-IdwEJXZua1p2U","lore_tm_v1_X0rHoKerhsWs7s73rMp4Xg8DGa_OY_YvGKagr-6JFXY","lore_tm_v1_7j0D8ZtFCi_GY7un2KrMMUFRb7LRuL95gBwAQxC5fAQ","lore_tm_v1_sIOqZugw0C999HR0UDqpjWgLntcpAwkxS1qCyY4RgW0","lore_tm_v1_K8ETcG3yPC-TyXtpoYjib5I2KmtLFkplyIcaB02h3V8","lore_tm_v1_3OkqDQwRLBpcoPgYTtbDqy-HcMMDB89gg1yGTskcZsM","lore_tm_v1_JCJDZJ0g42Gt04N5zc2erbtT8gzj7Pghgj9hdiTx2xY","lore_tm_v1_c3w5g4geIQk69V0fCTDzvcS_6nX0uj7skqpwo6gSxio","lore_tm_v1_3m1bh1JpuB00nE3z-jlhXEWH8L1yHjX_MdKsLlh3XFA","lore_tm_v1_qz8iPRpCvk_5fSkKwgvtVM8g0kzKJFxKdskwAhhJAlA","lore_tm_v1_7892VpIn-hac6Jq6bkfoVOIqDj-steg91vANY343UoE","lore_tm_v1_FfRjl0pvVsP2aZQwM8WOJtjy-mays7Imx01AHm9BaRg","lore_tm_v1_mPv8KCBFs7vCnYdcgq_wWcDAOhNcr0Ra9yWG7kRcnjc","lore_tm_v1_zp5i5mQAwsgNAnXAsdrLMMKICye9alFyG7P7gC5_iEQ","lore_tm_v1_xVBX5lTbBjmvkwbIGrZb-mT2safYCCW_72_y5GY2if8","lore_tm_v1_4B21BYjZWkaze1IoM07vvJrMjxJ5pz6Ux2vsCzdExUA"]
Date: Sep 2, 2026
cli/v2 was accepted by Publish’s src/modules/publish-location.js:53-60 but rejected by Craft’s src/schemas/project_config.ts:221-232 and action.yml:82-85, preventing existing legacy title requests; (2) .github/workflows/publish.yml:138-149 ran post-workflow-details.js (“Inform start”) before resolve-release-revision.js, causing a side effect before malformed/decoy canonical Quick-links validation failed.src/modules/post-workflow-details.js:18 and src/publish/inputs.js:10; confirmed no untracked pnpm-lock.yaml in either worktree and no diff-check whitespace errors.src/modules/publish-issue-title.peggy:10-45 supports optional getsentry/, compact suffixes, and legacy JSON workspace values; CI poller checks out controller source and calls generated parser; canonical Quick-links validation rejects duplicate/decoy check-runs links and enforces title repository; approved revision flows through checkout, discovery, resolved location, state, and craft publish --rev; compact discovery rejects ./..; state parity fixture uses feasible resolved compact location; generated parser check precedes tests; yarn test had 54 passing tests, YAML lint passed, and Craft had 1,156 passing tests.cli/v2; Action input and compact controller classification remain limited to safe one-segment compact names.craft-workspace-action-propagation/src/schemas/project_config.ts, craft-workspace-action-propagation/src/__tests__/config.test.ts, and publish-workspace-acceptance/.github/workflows/publish.yml: legacy workspace-name compatibility restored in Craft schema, and Inform start moved after Resolve CI-approved release revision.publish-workspace-acceptance/src/modules/__tests__/publish-workflow.js with regression coverage that notification occurs after canonical CI-approved release-revision validation.vitest run src/__tests__/config.test.ts src/__tests__/action.test.ts had 2 files / 59 tests passing; formatting check passed.vitest run src/modules/__tests__/publish-workflow.js src/modules/__tests__/details-from-context.js src/modules/__tests__/publish-location.js (3 files / 29 tests), and eslint src .github --ignore-pattern '!.github'; Prettier found only src/modules/__tests__/publish-workflow.js noncompliant.src/modules/__tests__/publish-workflow.js; complete Publish verification passed generated-parser checks, all 9 test files / 54 tests, ESLint, and Prettier formatting.@typescript-eslint/no-unused-vars.@typescript-eslint/no-unused-vars—_abortError at src/commands/publish.ts:482, :499, and :527; _statusError at :515; _diffError at :521; _err at src/utils/git.ts:241 and :249; formatting passed; node build.mjs passed with source-map upload skipped because SENTRY_AUTH_TOKEN was absent.src/modules/release-revision.js:2 accepted a forged complete Quick links: block anywhere in issue body—including changelog, HTML details, or code blocks—allowing a decoy revision; (2) hygiene still included newline-only changes in src/modules/post-workflow-details.js:19 and src/publish/inputs.js:13.yarn prettier --check ..., which ran the repository script prettier --write src and altered unrelated formatting in src/libs/__tests__/github.js, src/libs/github.js, src/modules/process-end-state.js, src/publish/post-result.js, src/publish/post-workflow-details.js, and src/publish/update-issue.js; no corrective edits had yet been made when reported.cli/v2; action.yml rejects slash, ./.., and non-ASCII compact input before side effects; Publish notification follows revision resolution; CI poller uses shared resolver and preserves workflow_dispatch; approved revision reaches checkout/discovery/state/publish; workspace state fixture matches root conversion. Review verification reported Craft pnpm test 1,156 passed/1 skipped, pnpm lint passed with 7 warnings, pnpm build passed; Publish yarn test 54 passed, yarn lint passed, parser generation passed.Requested by, Merge target, then Quick links) rather than accepting any later Quick links: block, and to restore formatter-induced unrelated changes.src/modules/release-revision.js was hardened: CHECK_RUNS_LINK now requires the multiline Action request-header shape Requested by: @..., Merge target: ..., Quick links:, View changes, then the canonical View check runs URL for getsentry/<repo>/commit/<40-lowercase-hex>/checks; CHECK_RUNS_LINK_COUNT still requires exactly one check-runs list entry; repository mismatch throws Expected a View check runs link for getsentry/${repo} in the publish issue body..src/modules/__tests__/release-revision.js with updated regressions covering forged trailing complete Quick-links blocks and issue bodies containing only forged complete blocks; planned shared CI-poller fixtures to include the Action request header.src/modules/__tests__/ci-poller-input.js fixture to conform to the Action-created request-header format while preserving coverage that compact publish: getsentry/toolkit/cli@1.2.3 and legacy publish: toolkit [workspace: "cli/v2"] @1.2.3 resolve to repo: "getsentry/toolkit", revision 7e5ca7ed5581552de066e2a8bc295b8306be38ac, version 1.2.3.src/libs/__tests__/github.js, src/libs/github.js, src/modules/post-workflow-details.js, src/modules/process-end-state.js, src/publish/inputs.js, src/publish/post-result.js, src/publish/post-workflow-details.js, and src/publish/update-issue.js.getsentry/toolkit occurrence in the View changes URL rather than the check-runs URL. Parser generation check and ci-poller-input test passed.src/modules/__tests__/release-revision.js to replace the check-runs repository specifically, and attempted to remove remaining newline-only churn from src/modules/post-workflow-details.js and src/publish/inputs.js.release-revision.js and ci-poller-input.js tests (2 files / 8 tests), and ESLint.src/modules/__tests__/release-revision.js as noncompliant.src/modules/__tests__/release-revision.js; re-ran generated-parser checks, targeted release-revision.js/ci-poller-input.js tests (2 files / 8 tests), and ESLint—all passed.src/modules/post-workflow-details.js and src/publish/inputs.js still had two known newline-only diffs and would be excluded from the intended staged change set.