DashboardcraftSession 0oRfvuTfUX4Y

Session 0oRfvuTfUX4Y

Full ID: 0oRfvuTfUX4YBbPyZ
Messages: 26
Distillations: 7
Time range: 2026-08-24 16:27:33 — 2026-08-24 17:02:51

Conversation (26 messages)

Perform a rigorous read-only adversarial correctness review of the current worktree changes for PR #848 (workspaces schema/resolver/selector plus uncommitted review fixes). Do not edit files. Inspect git diff against origin/master and relevant source/tests. Focus on configuration resolution, CLI parsing order/yargs interaction, SemVer edge cases, cache invalidation, backwards compatibility, release behavior. Report findings only, ordered Critical/Major/Minor, with file:line citations. End with PASS/FAIL per major concern and MERGE/DO-NOT-MERGE. Do not assume prior claims are correct.

gateway · 2026-08-24 16:27:33
result
<path>/home/byk/Code/getsentry/craft</path>
<type>directory</type>
<entries>
.craft-issue-842-plan.md
.craft.yml
.dockerignore
.eslintcache
.git/
.github/
.gitignore
.lore.md
.nojekyll
.npmignore
.opencode/
.prettierignore
.prettierrc.yml
.tsbuildinfo
.vscode/
action.yml
AGENTS.md
blog-post-draft.md
build.mjs
CHANGELOG.md
CONTRIBUTING.md
dist/
Dockerfile
docs/
eslint.config.mjs
img/
LICENSE
node_modules/
package.json
pnpm-lock.yaml
README.md
src/
tsconfig.build.json
tsconfig.json
vitest.config.mts

(35 entries)
</entries>
gateway · 2026-08-24 16:29:15
result
 M .lore.md
?? .craft-issue-842-plan.md
?? .opencode/
byk/fix/commit-on-repo
b06435e (HEAD -> byk/fix/commit-on-repo, origin/byk/fix/commit-on-repo) fix(commit-on-git): Use proper username and pass for
0652969 meta: Bump new development version
4f1b8e4 Merge branch 'release/2.27.1'
e0c36c1 (tag: 2.27.1) release: 2.27.1
d61cb8f fix(crates): Recognize more already-published error messages (#859)
c35b90a meta: Bump new development version
11baa7f Merge branch 'release/2.27.0'
667b5f5 (tag: 2.27.0) release: 2.27.0
d28b0e6 fix(crates): Ignore dev dependencies when ordering packages (#858)
9668a4b fix: bump postcss to ^8.5.18 to resolve high-severity ...
gateway · 2026-08-24 16:30:35
result
worktree /home/byk/Code/getsentry/craft
HEAD b06435e4f20ff8cb0470de98ee113051978b3d63
branch refs/heads/byk/fix/commit-on-repo

worktree /home/byk/.local/share/opencode/worktree/55fa901aca64a01fa4b5c2abce1c85c1c27475e7/calm-circuit
HEAD 5d533c854ad481c31162c4e003cabe23ac5e900a
branch refs/heads/feat/ci-ready-signal

worktree /home/byk/.local/share/opencode/worktree/55fa901aca64a01fa4b5c2abce1c85c1c27475e7/calm-squid
HEAD 347ade0345dc9f46bce480600ca2beef66100c8f
branch refs/heads/fix/postcss-security-alert

worktree /home/byk/.local/share/opencode/worktree/55fa901aca64a01fa4b5c2abce1c85c1c27475e7/stellar-falcon
HEAD fc4c1d00d721eb76d9ccc46f841cb2b4b03ed665
branch refs/heads/byk/fix/dependabot-alerts-865

worktree /home/byk/.local/share/opencode/worktree/55fa901aca64a01fa4b5c2abce1c85c1c27475e7/swift-squid
HEAD 752a693b6ddc3d9b855ddb921e3f91d6e3a847b8
branch refs/heads/fix/flaky-zip-test

worktree /home/byk/Code/getsentry/craft-vercel-prebuilt-output
HEAD ...
gateway · 2026-08-24 16:32:28
result
## feat/workspaces-schema...origin/feat/workspaces-schema
 M src/__tests__/config.test.ts
 M src/config.ts
 M src/utils/__tests__/helpers.test.ts
 M src/utils/helpers.ts
c099bbf (HEAD -> feat/workspaces-schema, origin/feat/workspaces-schema) Merge branch 'master' into feat/workspaces-schema
42d17f0 (feat/workspaces-threading) fix(config): address Bugbot findings on workspaces selector
4e2d8f4 feat(config): add top-level workspaces schema + --workspace selector
M	src/__tests__/config.test.ts
M	src/commands/publish.ts
M	src/config.ts
M	src/index.ts
M	src/schemas/project_config.ts
M	src/utils/__tests__/helpers.test.ts
M	src/utils/helpers.ts
M	src/__tests__/config.test.ts
M	src/config.ts
M	src/utils/__tests__/helpers.test.ts
M	src/utils/helpers.ts
 src/__tests__/config.test.ts        | 198 +++++++++++++++++++++++++++++++
 src/commands/publish.ts             |  21 +++-
 src/config.ts                       | 230 +++++++++++++++++++++++++++++++-----
 src/index.ts                        |  23 ...
gateway · 2026-08-24 16:33:56
result
<path>/home/byk/Code/getsentry/craft-workspaces-schema/src/config.ts</path>
<type>file</type>
<content>
1: import { existsSync, lstatSync, readFileSync } from 'fs';
2: import path from 'path';
3: 
4: import { load } from 'js-yaml';
5: import GitUrlParse from 'git-url-parse';
6: import { createGitClient } from './utils/git';
7: import { ZodError } from 'zod';
8: 
9: import { logger } from './logger';
10: import {
11:   CraftProjectConfig,
12:   CraftProjectConfigSchema,
13:   GitHubGlobalConfig,
14:   ArtifactProviderName,
15:   StatusProviderName,
16:   TargetConfig,
17:   ChangelogPolicy,
18:   VersioningPolicy,
19:   Workspace,
20: } from './schemas/project_config';
21: import { ConfigurationError } from './utils/errors';
22: import { isCompiledGitHubAction } from './utils/detection';
23: import {
24:   getPackageVersion,
25:   parseVersion,
26:   versionGreaterOrEqualThan,
27:   SemVer,
28: } from './utils/version';
29: // Note: We import getTargetByName lazily in ...
gateway · 2026-08-24 16:36:02
result
<path>/home/byk/Code/getsentry/craft-workspaces-schema/src/schemas/project_config.ts</path>
<type>file</type>
<content>
1: import { z } from 'zod';
2: 
3: /**
4:  * DEPRECATED: Use changelog.policy instead. Different policies for changelog management
5:  */
6: export const enum ChangelogPolicy {
7:   Auto = 'auto',
8:   Simple = 'simple',
9:   None = 'none',
10: }
11: 
12: /**
13:  * Name of the status provider
14:  */
15: export const enum StatusProviderName {
16:   GitHub = 'github',
17: }
18: 
19: /**
20:  * Name of the artifact provider
21:  */
22: export const enum ArtifactProviderName {
23:   GCS = 'gcs',
24:   GitHub = 'github',
25:   None = 'none',
26: }
27: 
28: /**
29:  * Default versioning policy when no version argument is provided. ...
gateway · 2026-08-24 16:37:33
result
<path>/home/byk/Code/getsentry/craft-workspaces-schema/src/index.ts</path>
<type>file</type>
<content>
1: #!/usr/bin/env node
2: // Import Sentry instrumentation first, before any other code
3: import './instrument';
4: 
5: import isCI from 'is-ci';
6: import yargs from 'yargs';
7: 
8: import { logger, LogLevel } from './logger';
9: import {
10:   sanitizeDynamicLinkerEnv,
11:   warnIfCraftEnvFileExists,
12: } from './utils/env';
13: import {
14:   envToBool,
15:   setGlobals,
16:   extractWorkspaceSelection,
17: } from './utils/helpers';
18: import { getPackageVersion } from './utils/version';
19: import { withTracing } from './utils/tracing';
20: import { setActiveWorkspace } from './config';
21: 
22: // Commands
23: import * as prepare from './commands/prepare';
24: import * as publish from './commands/publish';
25: import * as targets from './commands/targets';
26: import * as config from './commands/config';
27: import * as artifacts from './commands/artifacts';
28: import * as ...
gateway · 2026-08-24 16:40:00
result
<path>/home/byk/Code/getsentry/craft-workspaces-schema/src/utils/helpers.ts</path>
<type>file</type>
<content>
1: import { appendFileSync, mkdirSync, writeFileSync } from 'fs';
2: import path from 'path';
3: import { parseArgs } from 'node:util';
4: 
5: import prompts from 'prompts';
6: import { logger, LogLevel, setLevel } from '../logger';
7: 
8: /**
9:  * Maximum size (in bytes) for step output values passed through GITHUB_OUTPUT.
10:  * Values exceeding this are truncated to avoid E2BIG errors when GitHub Actions
11:  * expands them into environment variables for subsequent steps.
12:  *
13:  * 64 KB is well under the ~2 MB ARG_MAX kernel limit and also under GitHub's
14:  * ~65 536-character issue body limit, so truncated changelogs still render. ...
gateway · 2026-08-24 16:40:36
result
<path>/home/byk/Code/getsentry/craft-workspaces-schema/src/commands/publish.ts</path>
<type>file</type>
<content>
1: import { Arguments, Argv, CommandBuilder } from 'yargs';
2: import chalk from 'chalk';
3: import { existsSync, mkdirSync, readFileSync } from 'fs';
4: 
5: import { safeFs } from '../utils/dryRun';
6: import { dirname, join } from 'path';
7: import * as shellQuote from 'shell-quote';
8: import stringLength from 'string-length';
9: 
10: import {
11:   getConfiguration,
12:   getStatusProviderFromConfig,
13:   getArtifactProviderFromConfig,
14:   DEFAULT_RELEASE_BRANCH_NAME,
15:   getGlobalGitHubConfig,
16:   expandWorkspaceTargets,
17:   getNoMergeConfig,
18: } from '../config';
19: import { formatTable, logger } from '../logger';
20: import { TargetConfig } from '../schemas/project_config';
21: import { getAllTargetNames, getTargetByName, SpecialTarget } from '../targets';
22: import { BaseTarget } from '../targets/base';
23: import {
24:   ConfigurationError,
25:   ...
gateway · 2026-08-24 16:41:46
result
<path>/home/byk/Code/getsentry/craft-workspaces-schema/src/__tests__/config.test.ts</path>
<type>file</type>
<content>
1: import { describe, test, expect, vi, afterEach } from 'vitest';
2: /**
3:  * Tests of our ability to read craft config files. (This is NOT general test
4:  * configuration).
5:  */
6: 
7: import {
8:   getGitTagPrefix,
9:   loadConfigurationFromString,
10:   validateConfiguration,
11:   setActiveWorkspace,
12:   getActiveWorkspace,
13:   getVersioningPolicy,
14:   WORKSPACES_MIN_VERSION,
15: } from '../config';
16: import { CraftProjectConfigSchema } from '../schemas/project_config';
17: import { logger } from '../logger';
18: 
19: describe('validateConfiguration', () => {
20:   test('parses minimal configuration', () => {
21:     const data = { github: { owner: 'getsentry', repo: 'craft' } };
22: 
23:     expect(validateConfiguration(data)).toEqual(data);
24:   });
25: 
26:   test('parses configuration with targets', () => {
27:     const data = {
28:       ...
gateway · 2026-08-24 16:41:57
result
<path>/home/byk/Code/getsentry/craft-workspaces-schema/src/utils/__tests__/helpers.test.ts</path>
<type>file</type>
<content>
1: import { existsSync, mkdirSync, readFileSync, rmSync } from 'fs';
2: import path from 'path';
3: import { tmpdir } from 'os';
4: 
5: import { afterEach, beforeEach, describe, expect, test } from 'vitest';
6: 
7: import {
8:   disableChangelogMentions,
9:   envToBool,
10:   extractWorkspaceSelection,
11:   MAX_STEP_OUTPUT_BYTES,
12:   setGitHubActionsOutput,
13:   truncateForOutput,
14:   writeGitHubActionsFile,
15: } from '../helpers';
16: 
17: describe('envToBool', () =>
18:   test.each([
19:     [undefined, false],
20:     [null, false],
21:     [false, false],
22:     ['undefined', false],
23:     ['null', false],
24:     ['', false],
25:     ['0', false],
26:     ['no', false],
27:     [true, true],
28:     ['true', true],
29:     [1, true],
30:     ['1', true],
31:     ['yes', true],
32:     ['dogs are great!', true],
33:   ])('From %j we should get ...
gateway · 2026-08-24 16:44:03
result
<path>/home/byk/Code/getsentry/craft-workspaces-schema/src/utils/version.ts</path>
<type>file</type>
<content>
1: import { getGitTagPrefix } from '../config';
2: 
3: /**
4:  * Regular expression for matching semver versions.
5:  *
6:  * Modified to match version components
7:  * Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
8:  * @see https://github.com/sindresorhus/semver-regex
9:  */
10: const semverRegex = () =>
11:   /\bv?(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:-?([\da-z-]+(?:\.[\da-z-]+)*))?(?:\+([\da-z-]+(?:\.[\da-z-]+)*))?\b/gi;
12: 
13: /**
14:  * Extracts a version number from the given text.
15:  *
16:  * In case the version contains a leading "v", it is stripped from the result.
17:  * All semantic versions are supported. See {@link http://semver.org/} for
18:  * more information. ...
gateway · 2026-08-24 16:45:17
result
...output truncated...

Full output saved to: /home/byk/.local/share/opencode/tool-output/tool_034a9918b001f9I87vjYOe70vD

           'are defined in the configuration file.',
       );
     }
     return config;
   }
 
   // Workspaces are defined: require an explicit selection (no implicit first).
   if (!_activeWorkspaceName) {
     const available = Object.keys(config.workspaces || {}).join(', ');
     throw new ConfigurationError(
       'This configuration defines workspaces; select one with ' +
         `--workspace <name> (or the CRAFT_WORKSPACE env var). ` +
         `Available workspaces: ${available}.`,
     );
   }
 
   // Gate the feature behind minVersion, mirroring auto-versioning.
   if (!isVersionGteMinVersion(config.minVersion, WORKSPACES_MIN_VERSION)) {
     throw new ConfigurationError(
       `Using "workspaces" requires minVersion >= ${WORKSPACES_MIN_VERSION} ` +
         'in the configuration file.',
     );
   }
 
   return resolveWorkspaceConfig(config, ...
gateway · 2026-08-24 16:46:33
result
<path>/home/byk/Code/getsentry/craft-workspaces-schema/package.json</path>
<type>file</type>
<content>
1: {
2:   "name": "@sentry/craft",
3:   "version": "2.29.0-dev.0",
4:   "description": "The universal sentry workflow CLI",
5:   "main": "dist/craft",
6:   "repository": "https://github.com/getsentry/craft",
7:   "author": "Sentry",
8:   "license": "MIT",
9:   "bin": {
10:     "craft": "dist/craft",
11:     "sentry-craft": "dist/craft"
12:   },
13:   "devDependencies": {
14:     "@aws-sdk/client-lambda": "^3.984.0",
15:     "@eslint/js": "^9.17.0",
16:     "@google-cloud/storage": "^7.14.0",
17:     "@octokit/plugin-retry": "^7.1.2",
18:     "@octokit/request-error": "^7.0.0",
19:     "@octokit/rest": "^21.0.2",
20:     "@sentry/esbuild-plugin": "^2.23.0",
21:     "@sentry/node": "^10.27.0",
22:     "@types/async": "^3.0.1",
23:     "@types/aws4": "^1.5.1",
24:     "@types/cli-table": "^0.3.0",
25:     "@types/git-url-parse": "^9.0.0",
26:     "@types/is-ci": "^2.0.0",
27:     ...
gateway · 2026-08-24 16:47:46
result
Found 23 matches
/home/byk/Code/getsentry/craft-workspaces-schema/src/config.ts:
  Line 106:  * - `github` is shallow-merged (owner/repo/projectPath) so a workspace can

  Line 107:  *   override just `projectPath` while inheriting owner/repo.

  Line 139:       // (e.g. just projectPath) while inheriting owner/repo from the base.

  Line 148:       // sets projectPath without a base github relies on git detection for


/home/byk/Code/getsentry/craft-workspaces-schema/src/targets/pypi.ts:
  Line 65:     const pyprojectPath = join(rootDir, 'pyproject.toml');

  Line 66:     if (!existsSync(pyprojectPath)) {

  Line 70:     const content = readFileSync(pyprojectPath, 'utf-8');

  Line 87:       return PypiTarget.bumpDirectToml(pyprojectPath, content, newVersion);

  Line 139:     pyprojectPath: string,

  Line 161:     logger.debug(`Updating version in ${pyprojectPath} to ${newVersion}`);

  Line 162:     writeFileSync(pyprojectPath, ...
gateway · 2026-08-24 16:49:03
result
Found 19 matches
/home/byk/Code/getsentry/craft-workspaces-schema/src/targets/github.ts:
  Line 113:     const configChangelog = getConfiguration().changelog;

  Line 722:     const config = getConfiguration();


/home/byk/Code/getsentry/craft-workspaces-schema/src/config.ts:
  Line 331: export function getConfiguration(clearCache = false): CraftProjectConfig {

  Line 431:   const config = getConfiguration();

  Line 454:   const config = getConfiguration();

  Line 486:   let repoGitHubConfig = getConfiguration(clearCache).github || null;

  Line 528:   const targets = getConfiguration().targets || [];

  Line 555:   const projectConfig = getConfiguration();

  Line 590:   const config = getConfiguration();

  Line 639:   const config = getConfiguration();

  Line 706:   const config = getConfiguration();


/home/byk/Code/getsentry/craft-workspaces-schema/src/commands/targets.ts:
  Line 10:   let definedTargets = getConfiguration().targets || ...
gateway · 2026-08-24 16:50:46
result
<path>/home/byk/Code/getsentry/craft-workspaces-schema/src/commands/targets.ts</path>
<type>file</type>
<content>
1: import { getConfiguration, expandWorkspaceTargets } from '../config';
2: import { formatJson } from '../utils/strings';
3: import { getAllTargetNames } from '../targets';
4: import { BaseTarget } from '../targets/base';
5: 
6: export const command = ['targets'];
7: export const description = 'List defined targets as JSON array';
8: 
9: export async function handler(): Promise<any> {
10:   let definedTargets = getConfiguration().targets || [];
11: 
12:   // Expand workspace targets (e.g., npm workspaces)
13:   definedTargets = await expandWorkspaceTargets(definedTargets);
14: 
15:   const possibleTargetNames = new Set(getAllTargetNames());
16:   const allowedTargetNames = definedTargets
17:     .filter(target => target.name && possibleTargetNames.has(target.name))
18:     .map(BaseTarget.getId);
19: 
20:   console.log(formatJson(allowedTargetNames));
21: }

(End of file ...
gateway · 2026-08-24 16:51:59
result
<path>/home/byk/Code/getsentry/craft-workspaces-schema/src/commands/prepare.ts</path>
<type>file</type>
<content>
650:     // Trim trailing blank lines
651:     while (endIdx > startIdx + 1 && lines[endIdx - 1].trim() === '') {
652:       endIdx--;
653:     }
654: 
655:     return `#L${startIdx + 1}-L${endIdx}`;
656:   } catch {
657:     return '';
658:   }
659: }
660: 
661: /**
662:  * Switches to the default branch of the repo
663:  *
664:  * @param git Local git client
665:  * @param defaultBranch Default branch of the remote repository
666:  */
667: async function switchToDefaultBranch(
668:   git: SimpleGit,
669:   defaultBranch: string,
670: ): Promise<void> {
671:   const repoStatus = await git.status();
672:   if (repoStatus.current === defaultBranch) {
673:     return;
674:   }
675:   logger.info(`Switching back to the default branch (${defaultBranch})...`);
676:   await git.checkout(defaultBranch);
677: }
678: 
679: interface ResolveVersionOptions {
680:   /** The raw ...
gateway · 2026-08-24 16:53:12
result
["publish","--workspace","--dry-run","1"] {"values":{"workspace":"--dry-run"},"positionals":["publish","1"],"tokens":[{"kind":"positional","index":0,"value":"publish"},{"kind":"option","name":"workspace","rawName":"--workspace","index":1,"value":"--dry-run","inlineValue":false},{"kind":"positional","index":3,"value":"1"}]}
["publish","--workspace"] {"values":{"workspace":true},"positionals":["publish"],"tokens":[{"kind":"positional","index":0,"value":"publish"},{"kind":"option","name":"workspace","rawName":"--workspace","index":1}]}
["--workspace="] {"values":{"workspace":""},"positionals":[],"tokens":[{"kind":"option","name":"workspace","rawName":"--workspace","index":0,"value":"","inlineValue":true}]}
["--workspace","cli","--workspace=mcp"] ...
gateway · 2026-08-24 16:54:14
result
toString false function true
constructor false function true
hasOwnProperty false function true
__proto__ false object true
gateway · 2026-08-24 16:55:11
result
["publish","1.0.0","--","--workspace","cli"] [{"kind":"positional","index":0,"value":"publish"},{"kind":"positional","index":1,"value":"1.0.0"},{"kind":"option-terminator","index":2},{"kind":"positional","index":3,"value":"--workspace"},{"kind":"positional","index":4,"value":"cli"}]
["publish","1.0.0","--workspace","cli","--","--workspace","mcp"] [{"kind":"positional","index":0,"value":"publish"},{"kind":"positional","index":1,"value":"1.0.0"},{"kind":"option","name":"workspace","rawName":"--workspace","index":2,"value":"cli","inlineValue":false},{"kind":"option-terminator","index":4},{"kind":"positional","index":5,"value":"--workspace"},{"kind":"positional","index":6,"value":"mcp"}]
["publish","1.0.0","--workspace","cli","--workspace","--dry-run"] ...
gateway · 2026-08-24 16:56:13
result
<path>/home/byk/Code/getsentry/craft-workspaces-schema/src/commands/config.ts</path>
<type>file</type>
<content>
1: import { getConfiguration, getGlobalGitHubConfig } from '../config';
2: import { formatJson } from '../utils/strings';
3: 
4: export const command = ['config'];
5: export const description =
6:   'Print the parsed, processed, and validated Craft config for the current project in pretty-JSON.';
7: 
8: export async function handler(): Promise<void> {
9:   const github = await getGlobalGitHubConfig();
10:   const config = {
11:     ...getConfiguration(),
12:     github,
13:   };
14:   console.log(formatJson(config));
15: }

(End of file - total 15 lines)
</content>
gateway · 2026-08-24 16:58:07
result
[{"url":"https://api.github.com/repos/getsentry/craft/pulls/comments/3629713433","pull_request_review_id":4753734295,"id":3629713433,"node_id":"PRRC_kwDOCDHbwM7YWQgZ","diff_hunk":"@@ -55,6 +57,164 @@ let _configPathCache: string;\n  */\n let _configCache: CraftProjectConfig;\n \n+/**\n+ * The minimum craft version required to use the top-level `workspaces` config.\n+ *\n+ * This is the release the workspaces feature ships in. A dev build of that\n+ * release (e.g. `2.27.0-dev.0`) satisfies it via the pre-release relaxation in\n+ * `checkMinimalConfigVersion`.\n+ */\n+export const WORKSPACES_MIN_VERSION = '2.27.0';\n+\n+/**\n+ * The name of the currently-selected workspace, or undefined for the default\n+ * (single implicit release unit). Set once via `setActiveWorkspace` from the\n+ * `--workspace` CLI option / `CRAFT_WORKSPACE` env before any config access.\n+ */\n+let _activeWorkspaceName: string | undefined;\n+\n+/**\n+ * Selects the active workspace for subsequent configuration ...
gateway · 2026-08-24 16:59:28
result
<path>/home/byk/Code/getsentry/craft-workspaces-schema/src/utils/releaseCommandEnv.ts</path>
<type>file</type>
<content>
1: /**
2:  * Allowlist-based environment construction for user-defined release
3:  * commands (`preReleaseCommand` / `postReleaseCommand` from `.craft.yml`).
4:  *
5:  * `.craft.yml` is attacker-influenceable via untrusted PRs: a malicious
6:  * contributor can set `preReleaseCommand` to any shell command, and if we
7:  * forward the full `process.env` to the subprocess, they gain access to
8:  * every secret in the CI environment (GitHub tokens, npm tokens, GPG
9:  * keys, etc.) and can exfiltrate them.
10:  *
11:  * The mitigation is to forward only a small, explicit allowlist of
12:  * environment variables to the subprocess. Scripts that need additional
13:  * variables should be updated to read them from a secrets file, or to
14:  * use the `CRAFT_` prefix (which yargs surfaces as explicit CLI options). ...
gateway · 2026-08-24 17:00:35
result
Found 5 matches
/home/byk/Code/getsentry/craft-workspaces-schema/src/utils/releaseCommandEnv.ts:
  Line 92: export function buildReleaseCommandEnv(


/home/byk/Code/getsentry/craft-workspaces-schema/src/commands/publish.ts:
  Line 49: import { buildReleaseCommandEnv } from '../utils/releaseCommandEnv';

  Line 562:     env: buildReleaseCommandEnv({ CRAFT_RELEASED_VERSION: newVersion }),


/home/byk/Code/getsentry/craft-workspaces-schema/src/commands/prepare.ts:
  Line 64: import { buildReleaseCommandEnv } from '../utils/releaseCommandEnv';

  Line 421:     env: buildReleaseCommandEnv({
gateway · 2026-08-24 17:02:51

Distillations (7)

Gen 0 2026-08-24 17:00:16 · 800 tokens

Date: Aug 24, 2026 * 🟡 (16:54) Tool comparison of CLI parsing for `workspace`: custom token parser treats `["publish","--workspace","--dry-run","1"]` as `workspace: "--dry-run"` with `"1"` positional, whereas `yargs-parser` yields `workspace: ""`, `"dry-run": "1"`, `dryRun: "1"`. For `["publish","--workspace"]`, custom parser yields `workspace: true`; `yargs-parser` yields `workspace: ""`. For `…

Gen 0 2026-08-24 16:57:12 · 1000 tokens

Date: Aug 24, 2026 * 🟡 (16:53) Inspected `/home/byk/Code/getsentry/craft-workspaces-schema/src/commands/prepare.ts:667-785`. `switchToDefaultBranch(git, defaultBranch)` checks `git.status().current`, returns if already on `defaultBranch`, otherwise logs and runs `git.checkout(defaultBranch)`. * 🟡 (16:53) `resolveVersion(git, options)` gets configuration via `getConfiguration()` and resolves `op…

Gen 0 2026-08-24 16:56:15 · 1541 tokens

Date: Aug 24, 2026 * 🔴 (16:46) User stated that prerelease-version relaxation applies only to the current Craft version side, never the configured `minVersion` side. * 🔴 (16:46) User stated that a following CLI flag (for example, in `--workspace --dry-run`) must never be mistaken for a workspace name. * 🟡 (16:46) Inspected a truncated diff/output for workspace configuration support. `getConfig…

Gen 0 2026-08-24 16:50:31 · 885 tokens

Date: Aug 24, 2026 * 🟡 (16:45) Inspected `/home/byk/Code/getsentry/craft-workspaces-schema/src/utils/version.ts` (170 lines). * 🟡 (16:45) `src/utils/version.ts:10-11` defines `semverRegex()` as `/\bv?(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:-?([\da-z-]+(?:\.[\da-z-]+)*))?(?:\+([\da-z-]+(?:\.[\da-z-]+)*))?\b/gi`, matching optional leading `v`, numeric major/minor/patch components with…

Gen 0 2026-08-24 16:47:45 · 1073 tokens

Date: Aug 24, 2026 * 🔴 (16:40) User stated that a following option such as `--workspace --dry-run` must never be mistaken for a workspace name. * 🟡 (16:40) Inspected `/home/byk/Code/getsentry/craft-workspaces-schema/src/utils/helpers.ts` (238 lines). * 🟡 (16:40) `src/utils/helpers.ts:16` exports `MAX_STEP_OUTPUT_BYTES = 64 * 1024` (64 KB), selected to remain under the approximately 2 MB `ARG_M…

Gen 0 2026-08-24 16:43:00 · 503 tokens

Date: Aug 24, 2026 * 🟡 (16:40) Inspected `/home/byk/Code/getsentry/craft-workspaces-schema/src/index.ts` (137 lines). CLI imports `extractWorkspaceSelection` from `./utils/helpers` and `setActiveWorkspace` from `./config`. * 🟡 (16:40) `src/index.ts:66-75` defines `fixGlobalBooleanFlags(argv: string[]): string[]`, which appends `'1'` immediately after standalone arguments whose `arg.slice(2)` is…

Gen 0 2026-08-24 16:42:05 · 1598 tokens

Date: Aug 24, 2026 * 🔴 [requested-review] (16:27) User requested a rigorous read-only adversarial correctness review of current worktree changes for PR #848, compared against `origin/master` and relevant source/tests; explicitly instructed not to edit files. * 🔴 [requested-review] (16:27) User requested findings only, ordered Critical/Major/Minor with `file:line` citations, focused on configura…