Dashboard › craft › Distillation
d2782568-8745-4305-a0db-e63f6384acc8["lore_tm_v1_XWa8TbmkRx8X09gdSGqHne0BAjsRfDBtqUCt-I4ArQI","lore_tm_v1_qT5ouTlnmb54Pqc39KcJmskK8ffL5I4el1M5399gehE","lore_tm_v1_y9e93yf2ZnRFEH_1gV4Ky4IkUncHCtPd4Gm136-FYkk","lore_tm_v1_Pw5PGLNjY07te988khIJudioq1fKK7QVxV2LfPYrerM","lore_tm_v1_qBzmqQFFSsXghZJbaE8bdY9v5iqYAHrx5Y8ty_Y1enc","lore_tm_v1_pEEAhzWyIsJSBl82X-_2_eJJyibleNqqjffGkBVEO00","lore_tm_v1_69X_h5pAXanljUCLEKY6x5BhaTY05MOPuwfjawsmhjw","lore_tm_v1_BaBXvzYn9SmBNrOHmlOTX7R-AMbFt9KcYvccdsSQ03Y","lore_tm_v1_ZLgELZRMp1Itjxf6vAthxUFzIpJEgRNvMiyoZ6mrM0k","lore_tm_v1_bLZz8rdVSKJG5haew-fv5Li0n887r4GyByoFIrmSnZs","lore_tm_v1_wRZ5FqFiGdCj72VQlgKu7tKpwRJVLjAJ-o_SllQGNT8","lore_tm_v1_F27App_Yq60oaIurOX9B2m1V4xNVtDkgGaGIYlWWhcI","lore_tm_v1_7LPsox_3q43-fN92KQaDZGHTuAoVEONecZM7KIsDhfs","lore_tm_v1_SfP86Vk0o4iKCrvUBbR_1eOk16lMvCSLRjH0WH7g4vk","lore_tm_v1_FRVEn3r8wegOjJ85BbPsBwKj5f6YcErQiXnaAWMEw9M","lore_tm_v1_FcqBLErnusW2-hpfUTYdnNk3cVuRHkJcGJEF0yxulUE","lore_tm_v1_0ke57DvS4gB4RHW6xAnKAHJamxYzUF3pK6ttDnmMnTs"]
Date: Sep 2, 2026
publish: getsentry/toolkit/cli@1.2.3; new subpath request publish: getsentry/toolkit/cli/v2@1.2.3; under that stated contract, cli/v2 was always a multi-segment checkout path and never a workspace. Assistant stated Craft Action rejects slash-containing workspace names, workspace plus non-root path is mutually exclusive, and legacy [workspace: "cli/v2"] was documented only for pre-compact requests at docs/publish-issue-format.md:41-49.52ef600d6759911d4b76d7f3108c5a41c3e0ec2a, mergeStateStatus=BLOCKED, reviewDecision=REVIEW_REQUIRED, with no checks returned by this query and 0 top-level comments. Reviews listed: sentry COMMENTED (Aug 26, 14:25:34Z), cursor COMMENTED (Sep 2, 16:32:25Z), and BYK COMMENTED twice (Sep 2, 16:48:03Z and 18:01:08Z).48620564f86d8724982cddb6506c040235fe8954, mergeStateStatus=BLOCKED, reviewDecision=REVIEW_REQUIRED, no reviews, one comment, and a query-returned null/unknown check entry.PRRT_kwDOEgGvjc6cf6mQ was resolved. It concerned invalid JSON escapes in legacy workspace title syntax causing unhandled JSON.parse(workspaceJson) SyntaxError in src/modules/details-from-context.js#L35; the thread stated it was resolved in b658ffa0299fedf78c9dd9a2121cd740691ca157.PRRT_kwDOEgGvjc6elzOu was resolved. Cursor’s high-severity concern was that one-segment paths invoke craft workspace list when root .craft.yml exists, potentially breaking path publishes if Publish shipped before Craft command support. BYK replied that Craft must release first so getsentry/craft:latest contains workspace list and --rev, and discovery must fail closed rather than fall back and silently misroute a compact workspace request.PRRT_kwDOEgGvjc6enlHk requests changing .github/workflows/ci-poller.yml:52 to uses: actions/checkout@v7; PRRT_kwDOEgGvjc6enoCx asks to replace JavaScript passed through YAML/Bash in .github/workflows/publish.yml:179 with a file, preferably a runnable Node script; PRRT_kwDOEgGvjc6enu1L requests a single source of truth between src/modules/publish-issue-title.peggy:2 and the code block in docs/publish-issue-format.md; PRRT_kwDOEgGvjc6envsB asks whether request-header parsing in src/modules/release-revision.js:1 can be part of the Peggy parser/language.src/modules/publish-issue-title.peggy then defined PublishIssueTitle grammar for publish: , optional getsentry/, Repository, optional slash-delimited Path, optional LegacyWorkspace, @Version, and end-of-input. It returned {repo, path: path || "", version, ...(workspace ? { workspace } : {})}. LegacyWorkspace parsed [workspace: <JsonString>]; JsonString preserved JSON parsing semantics by accepting non-control non-quote/non-backslash characters or backslash plus any non-control character, with comments stating JSON.parse provides authoritative escape validation.scripts/generate-publish-issue-title-parser.js then read src/modules/publish-issue-title.peggy, generated CommonJS source with peggy.generate(grammar, { format: "commonjs", grammarSource: "publish-issue-title.peggy", output: "source" }), prepended /* eslint-disable */, formatted via Prettier for src/modules/publish-issue-title.js, wrote the parser normally, and under --check byte-compared it and threw The generated publish issue title parser is stale. Run \yarn generate`.` on drift.src/publish/resolve-location.js then parsed PUBLISH_ARGS, conditionally parsed CRAFT_WORKSPACE_NAMES only when needsWorkspaceDiscovery(input), rejected non-array discovery results with Craft workspace discovery returned an invalid workspace list., and emitted resolvePublishLocation({ path: input.path, workspace: input.workspace, workspaceNames }) as the result action output.actions/checkout@v7; replace inline workflow JavaScript with a runnable resolver; add request-header parsing as a Peggy start rule; and derive published EBNF from the grammar source. These were stated plans, not completed changes.src/schemas/project_config.ts then showed workspace configuration permits arbitrary string workspace keys except __proto__, . and ..; WorkspaceSchema forbids workspace github.projectPath; CraftProjectConfigSchema permits optional workspaces: z.record(WorkspaceNameSchema, WorkspaceSchema); and nonempty workspaces combined with root github.projectPath fails with Workspace configurations cannot use github.projectPath..cli/v2 through title paths using workspace-first resolution after checkout.