Dashboard › craft › Distillation
ace2df6e-a496-4d0a-9b09-86524756182d["lore_tm_v1_5kf3PnfqmQ7PTZTopC20ztvXfOVeLJdzKsjYy38fEbo","lore_tm_v1__vAVZcxNluCxdmkXRzpFKcO1T0gSEg_Km9hIv-6o-Q8","lore_tm_v1_HSfU_BZ3m9RUGWRQtNLv6L27g8v5QM-tXZU3FOYURxQ","lore_tm_v1_REWwybeZKaZuRtm5JVlpVCKUiCL8EbsyatLq_QQLAKM","lore_tm_v1_altRnOQYS5Krda0OmeAIOyjpInmcIKyAZMN0MueJ8zM","lore_tm_v1_S9DWyMxKZIAlH8IvmYG2hfl7sJC4T9mJoi0FcKZzZjk","lore_tm_v1_jgREbJ9KOZjfAKStC6LdPS6HRs9LFAu7INWJ2DrRhck"]
Date: Aug 24, 2026
origin/master and relevant source/tests; explicitly instructed not to edit files.file:line citations, focused on configuration resolution, CLI parsing order/yargs interaction, SemVer edge cases, cache invalidation, backward compatibility, and release behavior; requested PASS/FAIL per major concern and a final MERGE/DO-NOT-MERGE verdict; instructed not to assume prior claims are correct./home/byk/Code/getsentry/craft; root includes package.json, pnpm-lock.yaml, src/, docs/, dist/, build.mjs, vitest.config.mts, AGENTS.md, .craft.yml, and node_modules/./home/byk/Code/getsentry/craft worktree is branch byk/fix/commit-on-repo at b06435e4f20ff8cb0470de98ee113051978b3d63, tracking origin/byk/fix/commit-on-repo; tracked modification .lore.md and untracked .craft-issue-842-plan.md and .opencode/.reviewDecision: REVIEW_REQUIRED; title: feat(config): top-level workspaces schema + --workspace selector; base master; head feat/workspaces-schema at c099bbf97c27330e69d2d329dac817bd3f95e0b0.4e2d8f434b7a096349ab088d200371560689d5d3 (feat(config): add top-level workspaces schema + --workspace selector), 42d17f0939a136010f23440e9b7210e7bdf03d6e (fix(config): address Bugbot findings on workspaces selector), and c099bbf97c27330e69d2d329dac817bd3f95e0b0 (merge of master into feat/workspaces-schema).master: 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).workspaces defines named independently-versioned release units; selected workspace inherits unspecified release-relevant top-level fields and overrides declared fields; workspace github may partially override top-level GitHub config; absent workspaces is intended to preserve prior behavior.--workspace <name> selector and CRAFT_WORKSPACE environment fallback are applied before yargs parsing because command builders, notably publish, derive option choices from resolved configuration before middleware; publish builder handles configuration-resolution failure during parse time.workspaces, and missing selection when workspaces are defined fail fast; workspace feature is gated by minVersion >= 2.27.0.execSync tar usage with node-tar for security in commit-repository handling.security/commit-repo-node-tar points to 8484cd8cc46c14b89c42ee8c52d76a9ae596c81b with commit message security(commit-repo): replace execSync tar with node-tar; branch is marked [gone]./home/byk/Code/getsentry/craft-workspaces-schema is on feat/workspaces-schema at c099bbf97c27330e69d2d329dac817bd3f95e0b0.feat/workspaces-schema worktree, uncommitted modifications exist in src/__tests__/config.test.ts, src/config.ts, src/utils/__tests__/helpers.test.ts, and src/utils/helpers.ts; committed PR diff is 597 insertions and 41 deletions, while uncommitted review fixes add 68 insertions and remove 24 lines across those 4 files.pnpm for package management; never use npm or yarn.v22.12.0; dependencies are installed with pnpm install --frozen-lockfile.minVersion side.src/config.ts implementation comment at line 400 states: βWe only relax the CURRENT side (never the configured minVersion side).βsrc/schemas/project_config.ts:180-197 defines releaseUnitFields shared by top-level configuration and a workspace: github, targets, preReleaseCommand, postReleaseCommand, releaseBranchPrefix, changelog, deprecated changelogPolicy, requireNames, statusProvider, artifactProvider, versioning, and noMerge; all are optional.src/schemas/project_config.ts:208-213 defines WorkspaceSchema by spreading releaseUnitFields but replacing github with GitHubGlobalConfigSchema.partial().optional(), allowing a workspace to override only projectPath, owner, or repo.src/schemas/project_config.ts:218-233 defines CraftProjectConfigSchema with the release-unit fields, optional minVersion matching /^\d+\.\d+\.\d+.*$/, and optional workspaces: z.record(z.string(), WorkspaceSchema).src/schemas/project_config.ts:225-230 documents that named workspaces must be selected using --workspace <name> or CRAFT_WORKSPACE when workspaces is present; selected values override top-level fields, while configurations without workspaces retain the legacy single implicit release unit behavior.src/schemas/project_config.ts:175-178 distinguishes the new release-unit workspace concept from an npm targetβs existing workspaces: true, which discovers and publishes npm packages within one target at the same version.