Dashboard › craft › Distillation
adbf8e66-944c-4207-8ae2-9c82c195d26b["lore_tm_v1_skSZBylQeL4YJUwMP5Ai1nJMRxHBLkqjdmUyxVVv_OE","lore_tm_v1_u5ILjFOMPL1T7l4qt-ZetzwFBvZWLDgmtXU8mM8cjXg","lore_tm_v1_H7kEscyWBxXd4Kc7AMh-t8gb2h54kOvMIM2Un2R4E6c","lore_tm_v1_JKCHY07voX6h3Xb8IgrVVriECu0c4kpEvkci-Oz0Faw","lore_tm_v1_kt0MGOH0qL8ZuoJudzvxibLN9--CK5bm58VWoXn4-Us","lore_tm_v1_yzL5BDkAgtkwcZQLQB4BBRpJGBY8R_kstUjgYxP6gm4","lore_tm_v1_HuZa1b3Y4IShBGjm5DGXILeSSPm9dNFFmJ2nXg4SdQ0","lore_tm_v1_7XMC5wHFXmbcC_CQxK9_-avgZSwkgxyGBZxSSEgUDmM","lore_tm_v1_IT1HVFeuo5O997Kc0gtpgELRktsy7HDg2Pd6X9OR7WE","lore_tm_v1_eNxQfhOUCcV4XX3eOFk1KwTwuOUklJwhgO8PE39IW6Y","lore_tm_v1_OeWa1jKUqTGzODPbkGIHXi1qsbc60OqFl3gCTQqNioE","lore_tm_v1_fKwTbfVss1O98Yy7BXSDkcJmgmAUMaXbnMOZuKPyzqo","lore_tm_v1_QFcnuxPgO0657U4ddIMj5R2B2hULnQ0foSQvCOyCVKs","lore_tm_v1_d0miLVie2uISLBc_jbMLui7dX7rmofDrSNdtJtliD4I","lore_tm_v1_mH0xqc3bxEzZ3Af9XDks5T54MQaEks3Rf2KFnP6N3uw"]
Date: Sep 3, 2026
src/commands/workspace_cmds/list.ts (9 lines): imports getWorkspaceNames from ../../config and formatJson from ../../utils/strings; exports command ['list'], description 'List defined release workspaces as a JSON array', and handler() that prints formatJson(getWorkspaceNames())./home/byk/Code/getsentry/craft-workspace-action-propagation/src/config.ts failed because expected context surrounding const workspace = workspaces[workspaceName]; was not found.src/config.ts workspace-resolution implementation: WORKSPACES_MIN_VERSION = '2.29.0'; _activeWorkspaceName is selected via setActiveWorkspace(name) and read via getActiveWorkspace(); changing selection invalidates _configCache and _globalGitHubConfigCache. resolveWorkspaceConfig(base, workspaceName) validates own workspace keys using Object.hasOwn, errors with available names/no-workspaces messaging, strips top-level workspaces, shallowly overrides release-unit fields, shallow-merges github, retains merged github only if both owner and repo exist, and strips incomplete github to preserve git-remote fallback.in_progress, high priority; 2. Replace unpublished JSON title syntax with full-suffix workspace resolution in Publish — pending, high priority; 3. Address Publish workflow/parser documentation review feedback — pending, high priority; 4. Run focused/full verification and fresh adversarial review — pending, high priority; 5. Commit, push, and monitor linked PRs — pending, high priority; 6. Document workspace migration — pending, low priority.src/__tests__/config.test.ts imports and baseline configuration tests. Test imports include setActiveWorkspace, getActiveWorkspace, getVersioningPolicy, getWorkspaceNames, and WORKSPACES_MIN_VERSION from ../config; baseline tests cover minimal GitHub config, targets, changelog object/string, CalVer versioning, invalid incomplete GitHub config, invalid minVersion, and invalid changelog policy.src/__tests__/config.test.ts: WS_CONFIG uses minVersion: ${WORKSPACES_MIN_VERSION}, base GitHub getsentry/toolkit, base changelog: CHANGELOG.md, and workspaces cli (releaseBranchPrefix: release/cli, GitHub target tagPrefix: "cli@") and mcp (releaseBranchPrefix: release/mcp, CalVer, GitHub target tagPrefix: "mcp@"). Tests verify backward compatibility without workspaces; selected workspace overrides/inheritance and stripped workspaces; required selection if workspaces exist; raw discovery returns ['cli', 'mcp']; workspace gate rejects minVersion: 2.14.0; unknown and prototype-named selections (constructor, toString, __proto__) reject; selection without definitions rejects; build metadata ${WORKSPACES_MIN_VERSION}+linux is accepted; and cache re-resolution after setActiveWorkspace.src/config.ts: getConfiguration(clearCache = false) reads/parses .craft.yml, calls checkMinimalConfigVersion(parsed), then caches applyWorkspaceSelection(parsed); loadConfigurationFromString() follows the same sequence. getWorkspaceNames() reads and validates raw config without applying selection, calls checkMinimalConfigVersion, returns Object.keys(parsed.workspaces || {}), and calls checkWorkspacesMinVersion(parsed) when names exist.package.json: package @sentry/craft version 2.31.0-dev.0; glob dependency is ^11.0.0; scripts include test: vitest run, typecheck: tsc --noEmit, lint: eslint --cache --cache-strategy content, and build: node build.mjs; Volta pins Node 24.18.0 and pnpm 10.27.0.src/config.ts: _configPathCache declaration at line 53 and reads/writes around lines 250–262; _configCache use in getConfiguration() around lines 333–334; and clearCache/_globalGitHubConfigCache handling around lines 494–508.src/schemas/project_config.ts: shared releaseUnitFields include github, targets, preReleaseCommand, postReleaseCommand, releaseBranchPrefix, changelog, changelogPolicy, requireNames, statusProvider, artifactProvider, versioning, and noMerge; WorkspaceSchema permits a partial GitHub config but rejects github.projectPath; WorkspaceNameSchema rejects __proto__, . and ..; CraftProjectConfigSchema defines workspaces: z.record(WorkspaceNameSchema, WorkspaceSchema).optional() and rejects top-level github.projectPath when any workspaces are defined.src/config.ts failed because expected context around const workspace = workspaces[workspaceName]; was not found.ses_f9869b749ffeyMljC907JW4Px7 started and is running for the delegated Publish worktree changes; instruction was not to poll, duplicate its files/topics, or ask it for status.