Dashboard › craft › Distillation
06bd0aff-8f19-4ed9-92a5-6bc62e8d1f8d["lore_tm_v1_nM6d5WZvkQ2VEidCN5l-9fbPPlRnIshWXckazCEczuQ"]
Date: Aug 24, 2026
src/config.ts currently defines WORKSPACES_MIN_VERSION = '2.27.0'; comments state this is the release shipping workspaces and that dev builds such as 2.27.0-dev.0 satisfy the gate through checkMinimalConfigVersion pre-release relaxation.src/config.ts holds active workspace state in let _activeWorkspaceName: string | undefined; setActiveWorkspace(name) assigns it and invalidates _configCache and _globalGitHubConfigCache, while getActiveWorkspace() returns it.resolveWorkspaceConfig(base, workspaceName) in src/config.ts errors with ConfigurationError for an unknown workspace, including either Available workspaces: ... or No workspaces are defined in the configuration.; it strips top-level workspaces, shallow-overrides each defined workspace field, shallow-merges github (owner, repo, projectPath), retains merged GitHub config only when both owner and repo exist, and otherwise deletes github to preserve git-remote detection fallback.isVersionGteMinVersion(minVersionRaw, requiredVersion) in src/config.ts parses both values with parseVersion() and returns versionGreaterOrEqualThan(configuredMinVersion, required); it returns false if minVersionRaw is absent or either version cannot be parsed.applyWorkspaceSelection(config) in src/config.ts treats config.workspaces as present only if it has at least 1 key. With no workspaces and no active selection it returns config unchanged; with --workspace/active selection but no workspaces it throws ConfigurationError; with workspaces but no selection it requires --workspace <name> or CRAFT_WORKSPACE and lists available workspaces; with both, it requires config.minVersion >= WORKSPACES_MIN_VERSION and returns resolveWorkspaceConfig(config, _activeWorkspaceName).