Dashboard › craft › Distillation
8e48eee4-6d34-4024-92dc-7a724000e020["lore_tm_v1_UTsaxCAQjTrgaoLiInrQCvDaChJh4dTacirp14yazSE","lore_tm_v1_xVKKWFRSM-tft_TTfbLVpXa54AImNxHu617w60C3wfQ","lore_tm_v1_COlFKqiksefhcRCi5lgSsLBoH2FV7B0Q2OsS32yrOWQ","lore_tm_v1_ma0bxx9TWAJ_wab_mIvWRk5BP-6dwjzmXlwwXZMCVUs","lore_tm_v1_CRrKXcuhRrG2B5oj1V0s_o8Fb3NSyxi-PDTQBy608n4"]
Date: Aug 24, 2026
/home/byk/Code/getsentry/craft is on branch byk/fix/commit-on-repo at b06435e4f20ff8cb0470de98ee113051978b3d63; tracked modification: .lore.md; untracked files: .craft-issue-842-plan.md and .opencode/.b06435e is fix(commit-on-git): Use proper username and pass for; recent history includes 0652969 meta: Bump new development version, release 2.27.1 at e0c36c1, fix(crates): Recognize more already-published error messages (#859) at d61cb8f, release 2.27.0 at 667b5f5, fix(crates): Ignore dev dependencies when ordering packages (#858) at d28b0e6, and PostCSS security-alert fix 9668a4b (postcss bumped to ^8.5.18).src/targets/vercel.ts, src/targets/__tests__/vercel.test.ts, and docs/src/content/docs/targets/vercel.md; .lore.md alone has 353 insertions and 42 deletions./home/byk/.local/share/opencode/worktree/55fa901aca64a01fa4b5c2abce1c85c1c27475e7/calm-circuit on feat/ci-ready-signal at 5d533c854ad481c31162c4e003cabe23ac5e900a; calm-squid on fix/postcss-security-alert at 347ade0345dc9f46bce480600ca2beef66100c8f; stellar-falcon on byk/fix/dependabot-alerts-865 at fc4c1d00d721eb76d9ccc46f841cb2b4b03ed665; swift-squid on fix/flaky-zip-test at 752a693b6ddc3d9b855ddb921e3f91d6e3a847b8; /home/byk/Code/getsentry/craft-vercel-prebuilt-output on fix/vercel-prebuilt-output at 3f701f5458f5dee92c730b9c7352d1e5b6ef2b56; /home/byk/Code/getsentry/craft-vercel-project-config on fix/vercel-project-config at 3cceffbf4d6e697c535ec11f83652bcb11800a06; /home/byk/Code/getsentry/craft-workspaces-schema on feat/workspaces-schema at c099bbf97c27330e69d2d329dac817bd3f95e0b0; and /tmp/opencode/pr865 on byk/pr865-fixes at 51cab289873990824bcfc9c17e7309c430ea2059, with a prunable gitdir pointing to a non-existent location.feat(config): top-level workspaces schema + --workspace selector, https://github.com/getsentry/craft/pull/848; base is master at e5a7f97ad03f76d5265e0ac7b5deb38cfef19206, head is feat/workspaces-schema at c099bbf97c27330e69d2d329dac817bd3f95e0b0, authored by Burak Yigit Kaya (BYK, byk@sentry.io).4e2d8f434b7a096349ab088d200371560689d5d3 adds top-level workspaces schema/resolver/selector groundwork: named workspaces are independently versioned release units; unspecified workspace fields inherit top-level configuration; workspace github is partial and can override only projectPath; selected-workspace resolution returns a merged config view so existing accessors become workspace-aware; global --workspace <name> and CRAFT_WORKSPACE selection occur before yargs parsing; unknown/absent selection and omitted selection when workspaces exist fail fast; workspaces require minVersion >= 2.27.0; and a dev build such as 2.27.0-dev.0 satisfies minVersion up to 2.27.0.workspaces from the npm targetβs existing workspaces: true, which performs npm package discovery within one target; stated follow-up work will thread selection through prepare/publish and the publish-issue action layer.42d17f0939a136010f23440e9b7210e7bdf03d6e addressed Bugbot findings: a workspace github override with only projectPath is adopted only when merged config has both owner and repo, otherwise it remains unset so getGlobalGitHubConfig() falls back to git-remote detection; extractWorkspaceSelection was moved to src/utils/helpers.ts, no longer consumes the next option after bare --workspace, and preserves CRAFT_WORKSPACE fallback; redundant post-parse workspace middleware was removed because it could clobber valid environment fallback. Commit reports adversarial-review verdict βsolid/mergeβ and built-binary end-to-end verification./home/byk/Code/getsentry/craft-workspaces-schema, branch feat/workspaces-schema is at c099bbf97c27330e69d2d329dac817bd3f95e0b0, based on merge-base e5a7f97ad03f76d5265e0ac7b5deb38cfef19206; uncommitted modifications are in src/__tests__/config.test.ts, src/config.ts, src/utils/__tests__/helpers.test.ts, and src/utils/helpers.ts.src/__tests__/config.test.ts (+198), src/commands/publish.ts (+16/-5), src/config.ts (+201/-29), src/index.ts (+22/-1), src/schemas/project_config.ts (+48/-6), src/utils/__tests__/helpers.test.ts (+71), and src/utils/helpers.ts (+41). The uncommitted review-fix diff adds 79 insertions and 25 deletions across src/__tests__/config.test.ts, src/config.ts, src/utils/__tests__/helpers.test.ts, and src/utils/helpers.ts.minVersion side.checkMinimalConfigVersion review fix in src/config.ts changes effectiveCurrentVersion from retaining stable versions unchanged to applying withoutBuildMetadata(currentVersion) for non-prerelease builds; comparison also applies withoutBuildMetadata(minVersion). For prerelease current versions, it removes pre and build fields before comparison. Comment example was updated from 2.27.0-dev.0 to 2.29.0-dev.0.findConfigFile() in src/config.ts searches upward from process.cwd() for .craft.yml (CONFIG_FILE_NAME), caches a path only when existsSync(probePath) and lstatSync(probePath).isFile() hold, limits ascent to MAX_DEPTH = 1024, and warns findConfigFile: Reached maximum allowed directory depth if exceeded. getConfigFilePath() throws ConfigurationError if none is found; getConfigFileDir() returns undefined if none is found.src/config.ts: use of workspaces throws ConfigurationError unless isVersionGteMinVersion(config.minVersion, WORKSPACES_MIN_VERSION) holds, with message requiring minVersion >= ${WORKSPACES_MIN_VERSION}.publish deriving --target choices from config.targets; getActiveWorkspace() returns _activeWorkspaceName or undefined; environment fallback is env.CRAFT_WORKSPACE || undefined.--workspace followed by an option such as --dry-run must never be mistaken for a workspace name.extractWorkspaceSelection semantics permit inline --workspace=-foo as a valid value but reject treating --workspace --foo as a workspace value.