Dashboard › cli › Distillation
6d4f0fec-60f8-429c-95d8-adb16b5d21eb["lore_tm_v1_sH7mwXVWgX5tnv1XORxsr1J3jce5BD5hrykfFzcJNTY","lore_tm_v1_8bEOZCMp8_e6cS9oG1a6M0WIZ-YxNQ9D_D0Gr_r_x3I","lore_tm_v1_LLcy-0n6OURHJpuFp6VtHoqP_ZdvJZdqMq6VfkQ5VAI","lore_tm_v1_Y-hWrYsQGfn3Ya1CtKl8hYFUceSlLkWPyV0lbtOu8BA","lore_tm_v1_SfpWhC4oVJTaTfZbpcBvwos5a6Ri-Dkn8gBiUpFXAG8","lore_tm_v1_LYhZndR1kc022deqlLcDmi5WD4yQUz6UJ-RK7hpzcow","lore_tm_v1_PstCYAzs10fwglKhBwGpz1YZTuoqyDdI1Sa79OqAyQY","lore_tm_v1_VIayK4dbOW_oTCo9j0oKUfH4D1Xl3Zvm7YJl8hPJBVo","lore_tm_v1_EBheyDpMX93RaNgOWae9zwgiXhjRZL2OZzwNXPGsw8w","lore_tm_v1_46T1aCTnJ6UiB6iDU6uc-ghLJeomqx9yESchivsh95w","lore_tm_v1_aesLBJm7b_5ePArnIDZ7WjRd_oL5WlPzyym0fZEI7wU","lore_tm_v1_062VQSzJ8sgDbENQrhx_Xm1p2jzgDbT0T-feShQwX5w","lore_tm_v1_EtVL5WVQfW3O97HB-Iyd6T1idgn9Z2pDkumsCpY6o_Q","lore_tm_v1__Zlp7dLffbeZn7nMqGeO23oqLDssC1cBa-akCjFBJyw","lore_tm_v1_eQYPj5tM_R4bX5Ily5KJw4YV4E3MUzLc-HIwZ-nOCew","lore_tm_v1_YpzuxvHqhm2NWDGILDjgjh7fi0Th7r8uVdlFK8q9Wog","lore_tm_v1_O3PahALJ7zjhUNfvpXIDxtjmKz0dOSfKe2rohhEOg9Y","lore_tm_v1_Ll11rOjrceUlWrGLiH0cxUMSvEIcTgS4mkBwEB7iBj4","lore_tm_v1_6p20oa1aUN0bLrtvwBPPG7rXA5EjgE7bE6xjXKNr97s"]
pnpm tsx script/check-fragments.ts -- --strict in /home/byk/Code/getsentry/cli-pr-1558/packages/cli failed with exit code 1 because ../../apps/cli-docs/src/fragments/commands/proguard.md lacked subcommand coverage for upload; validator hint was to add a heading or code example such as sentry proguard upload..env.local not found. Continuing without it. twice.packages/cli/test/lib/command.test.ts defines createTestContext() with separate collected stdout/stderr arrays; both process.stdout and context-level stdout use the same writer because buildCommandβs return-based output handler writes through context-level stdout.packages/cli/test/lib/command.test.ts tests prompt availability from parsed flag meanings rather than ambiguous aliases: init -y β false, init -n β false, init --yes=false β true, data -n 10 β true, and data -y 2 β true; the test restores setInteractivePromptsAllowed(true) in finally.packages/cli/src/app.ts defines escapesToOuterMiddleware() to rethrow OutputError, AuthError with reason not_authenticated or expired, and ApiError with HTTP status 401 or 403.packages/cli/src/app.ts custom argument-error formatting handles: bare route groups through detectBareRouteGroup(); unexpected positional arguments through detectPluralAliasMisuse(); and known synonyms through getSynonymSuggestionFromArgv().defaultCommand, packages/cli/src/app.ts uses getCommandSuggestion(routeContext, input) and renders a Tip:; ANSI output explicitly resets Stricliβs bold-red formatting before applying the yellow warning color.packages/cli/src/app.ts handles runtime errors by rethrowing outer-middleware errors, returning synonym guidance for recognized user mistakes without Sentry capture, otherwise calling reportCliError(exc); rendered WizardError returns an empty string to avoid duplicate output, other CliError instances use Error: ${exc.format()}, ordinary Error instances show stack/message, and unknown values use stringifyUnknown(exc).packages/cli/src/app.ts is built with name sentry, CLI_VERSION, scanner case style allow-kebab-for-camel, allowArgumentEscapeSequence: true, global flags from buildTopLevelFlags(), exit-code resolver getExitCode, JSON help via renderJsonHelp(prefix, unprocessedInputs), and localization through customText.src/bin.ts -- agent-conversation list --help incorrectly treated --help as the organization and made an API request to /organizations/--help/agents/conversations/, resulting in 404 Not Found and exit code 30; placing the argument-escape marker -- before the command caused all later tokens to be interpreted as arguments.src/bin.ts agent-conversation list --help successfully rendered help for sentry agent-conversation list [<org>], with organization auto-detection when omitted and alias sentry agent-conversation.agent-conversation list examples were: sentry agent-conversation list for recent conversations, sentry agent-conversation list my-org for explicit organization, sentry agent-conversation list --limit 50 --period 24h, sentry agent-conversation list -q "has:errors", and sentry agent-conversation list my-org -c next.agent-conversation list flags were: -n/--limit range 1β1000 with default 25; -q/--query; -t/--period supporting "7d", "2026-08-01..2026-09-01", and ">=2026-08-01" with default 7d; -f/--fresh default false; -c/--cursor accepting next, prev, first, or a raw cursor; --json default false; --fields; -h/--help; and -- to treat subsequent inputs as arguments.agent-conversation list advertised 18 selectable JSON fields in this order: 1. conversationId, 2. title, 3. flow, 4. errors, 5. llmCalls, 6. toolCalls, 7. totalTokens, 8. totalCost, 9. startTimestamp, 10. endTimestamp, 11. traceCount, 12. traceIds, 13. firstInput, 14. lastOutput, 15. user, 16. toolNames, 17. toolErrors; the help text lists 17 fields, with title and user marked optional and nullable where applicable.sentry agent-conversation view --help successfully rendered canonical usage sentry agent-conversation view [<org>/]<conversation-id> and alias sentry agent-conversation show; the org is optional and auto-detected, or can prefix the conversation ID as <org>/<conversation-id>.agent-conversation view examples were: sentry agent-conversation view conv-123, sentry agent-conversation view my-org/conv-123, and sentry agent-conversation view my-org/conv-123 --json.agent-conversation view flags were -f/--fresh default false, --json default false, --fields with dot-notation support, -h/--help, and --; its required positional placeholder was org/conversation-id.sentry help --json agent-conversation view returned structured metadata with path sentry agent-conversation view, brief View an agent conversation transcript, positional signature [<org>/]<conversation-id>, alias f β fresh, alias v β verbose, and the same 3 canonical examples exposed as {description, command}-derived strings.agent-conversation view included visible flags fresh, json, and fields, plus hidden global flags log-level, verbose, org, and project; fresh, verbose, and json were boolean with default false, while log-level was enum and org, project, and fields were parsed.fix/agent-conversation-reference-root-cause; tracked upstream origin/pr-1558 was gone, and 15 files were modified: apps/cli-docs/src/fragments/commands/agent-conversation.md, packages/cli/script/check-fragments.ts, packages/cli/script/generate-command-docs.ts, packages/cli/script/generate-skill-markdown.ts, packages/cli/script/generate-skill.ts, packages/cli/src/commands/agent-conversation/list.ts, packages/cli/src/commands/agent-conversation/view.ts, packages/cli/src/lib/command.ts, packages/cli/src/lib/introspect.ts, packages/cli/src/lib/list-command.ts, packages/cli/src/lib/mutate-command.ts, packages/cli/test/commands/agent-conversation/list.test.ts, packages/cli/test/lib/command.test.ts, packages/cli/test/lib/introspect.test.ts, and packages/cli/test/script/generate-skill-markdown.test.ts.packages/cli/src/lib/mutate-command.ts now imports and uses CommandDocumentation from ./command.js for buildDeleteCommand().docs, replacing its local { brief; fullDescription? } shape.--yes in buildDeleteCommand() unless the command already defines it.buildDeleteCommand() injects --force unless options.noForceFlag is true or force already exists, and injects --dry-run unless options.noDryRunFlag is true or dry-run already exists.buildDeleteCommand() injects aliases -y β --yes, -f β --force, and -n β --dry-run only when each alias key is free; -f and -n also honor the corresponding opt-out options.buildDeleteCommand() runs guardNonInteractive() before the original command function unless options.noNonInteractiveGuard is true; the guard receives yes, force, and dry-run, and the wrapped function delegates through originalFunc.call(this, flags, ...args).packages/cli/src/lib/command.ts exports CommandExample with required readonly description and complete readonly command, and extends native Stricli docs as CommandDocumentation with optional readonly examples.CommandDocumentation.customUsage, the first line is the canonical signature suffix and subsequent lines may document equivalent forms.CommandReturn, never on individual yields.CommandOutput<T> and may return { hint }; streaming yields render immediately; commands supporting --json must yield one aggregate value when callers require one parseable JSON document because individual chunks are pretty-printed rather than JSONL; early exits may return without yielding./home/byk/Code/getsentry/cli-pr-1558/packages/cli/patches/@stricli%2Fcore@1.2.8.patch.@stricli/core@1.2.8 patch adds matchTopLevelFlag(input, topLevelFlags), allowing declared boolean and value-taking global flags at any route depth and forwarding them to the leaf command through unprocessedInputs; --flag=value is recognized inline, while a separate value is tracked with expectTopLevelFlagValue.scanner.topLevelFlags is unset; the Sentry CLI derives its allow-list from GLOBAL_FLAGS, and check:patches is intended to fail if matchTopLevelFlag disappears.versionRequested in the route scanner so --version works at any route depth, replacing the former behavior that only recognized --version or -v as the first input; when requested and config.versionInfo exists, it writes the current version and returns ExitCode.Success.config.documentation.renderHelp({ prefix, unprocessedInputs, helpRequested }); a returned string is written as help and returns success, while undefined falls back to built-in formatHelp.withDefaults() was patched to preserve scanner.topLevelFlags and documentation.renderHelp during configuration normalization.-H as the alias for --helpAll/--help-all: scanner recognition of -H, help-table display of -H, usage generation of -H, and reservation of alias H were removed; alias h remains reserved.