Dashboard › cli › Distillation
789c4e6c-d21c-496d-bacf-f33eaa5a04cd["lore_tm_v1_xkmkElb9DLI-yqtECpdsW7HiQTlsxV9ee4pO2088GDA","lore_tm_v1_T_7O5e1m8_k3Sgla2HkNW6kSf6mdd5YRWQ7uqUL_VXU","lore_tm_v1_ThJmF-mNspKbBaZ6Zv8MgAIFoz9B-niAQ6FOx089cyQ","lore_tm_v1_moSVlo3q0UGCTlt7qaS1DDgA9PVDW4pcQKqCpmipdck","lore_tm_v1_XqQQlR5vghpuH9HDXl0oXSz5s5tKDggjW5c5nIzOQPU","lore_tm_v1_8H_9QQeCcxovd1f7kyCr0FH4CXYvK2S4wTMea5OFRmU","lore_tm_v1_TJOzyj-izYk5wqj2bue23_Tlfzuee53hm7MLI00BhyE","lore_tm_v1_T2s7yOmnGEr4muYh8C-MqmgDKWBFzAk91lW5bwRAUC8","lore_tm_v1_dk54gKXauFyLrguUC7fP-Sv6ZN-oRv8RZ50q97HigcU","lore_tm_v1_XZSGJJk-e6_KK6thGrrKRt2aqMqYfnk6QdL_xHPB3XQ","lore_tm_v1_lVS2HzKQtnH-JZxXJashf_JnnyJqFo4lTouZjg0djE8","lore_tm_v1_LI7LqNVc9RKU0Y76dGR1X-gXWhpJfGCPK1VKZMoAEyM","lore_tm_v1_fIiOmEDtM7l3Xfzd3_gX_5LuwSMXlbybhF_brQk4biI","lore_tm_v1_FiJHWnePkbMq8jULl-EzCBpkXDp1z4175MBM-imw3-s","lore_tm_v1_z8OKtPazQJfioUu92uZnZL1ns4L9qWhEeZKLX9Dm6WE","lore_tm_v1_CGAW3nVmBR9mj1_3SuDsf7VIeD_QFv2-odaEPKkkwhc","lore_tm_v1_x2ZVfEInbd12XsB6rG-zLTLQtPi83b7IZi0C80YTSWc","lore_tm_v1_VboRhm2F3Lyqvh5iHowHt4BUMSobomP-PDmzvcokB5U","lore_tm_v1_MJImgPX35rz6ONTRs4DZqTgP9MUEu1PswCTVQpyqzZ8","lore_tm_v1_cxqIBw17oQNcSA717I-wU6MOTup1Rwn97jGPgiycVCs","lore_tm_v1_fvcLTyV4e0Tha6fFU2u5vbckMKhuJ_kaVYdr_b4LyA4","lore_tm_v1_-L5lpZz21Ye-MUhNJ5CZBUdg9CPMdhW-h6c0OKHvJOo"]
Date: Sep 10, 2026
/home/byk/Code/getsentry/cli-pr-1558/packages/cli/test/lib/scanner-flags.integration.test.ts:230-301 additionally verifies: bash-hook -- --version leaves --version for the wrapped command and produces a case-insensitive "too many arguments" error rather than ${CLI_VERSION}\n; --help --json, command-level issue list --help --json, and order-insensitive --json issue list --help emit parseable structured JSON; --fields path narrows output to exactly ["path"]; bare issue list --help remains text containing USAGE; and unknown commands issue nope --help --json and nope --help --json return JSON with an error containing "nope"./home/byk/Code/getsentry/cli-pr-1558/packages/cli/src/commands/agent-conversation/index.ts defines conversationRoute with list and view routes, defaultCommand: "list", brief "List and view agent conversations", and documentation describing Sentry Explore conversation listing and transcript viewing./home/byk/Code/getsentry/cli-pr-1558/packages/cli/src/lib/errors.ts:797-802 maps a CliError to its own error.exitCode via getExitCode(error) and maps every other thrown value to exit code 1; /home/byk/Code/getsentry/cli-pr-1558/packages/cli/src/app.ts:410-439 passes this function as determineExitCode./home/byk/Code/getsentry/cli-pr-1558/packages/cli/src/app.ts:415-435 configures Stricli with caseStyle: "allow-kebab-for-camel", allowArgumentEscapeSequence: true, global topLevelFlags: buildTopLevelFlags(), and a patched documentation.renderHelp hook that delegates JSON help to renderJsonHelp(prefix, unprocessedInputs) while returning to built-in text help for non-JSON requests.":"; the space-separated form is invalid. Canonical examples include sentry project create web:javascript api:python-django worker:node and sentry project create my-new-app:javascript-nextjs, while invalid forms include sentry project create my-new-app javascript-nextjs and sentry project create my-org/my-new-app javascript-nextjs./home/byk/Code/getsentry/cli-pr-1558/packages/cli/test/script/generate-skill-markdown.test.ts requires extractCommandPathFromHeading() to map headings `sentry issue view <issue-id>`, `sentry project create [<org>/]<name>:<platform>...`, and `sentry auth status` to their command paths and to ignore the descriptive heading "Create a project".matchExampleToCommand() requirements in /home/byk/Code/getsentry/cli-pr-1558/packages/cli/test/script/generate-skill-markdown.test.ts: associate sentry project create web:javascript api:python-django with sentry project create; map bare sentry auth examples to default subcommand sentry auth login; and prefer the longer path sentry auth login over the shorter sentry auth status candidate.[<org>] and example # Explicit organization\nsentry agent-conversation list my-org; view positional syntax [<org>/]<conversation-id> and exactly 3 ordered examples: 1. auto-detected org via sentry agent-conversation view conv-123, 2. explicit org via sentry agent-conversation view my-org/conv-123, 3. JSON output via sentry agent-conversation view my-org/conv-123 --json.formatCommandExamples() must render the 3 agent-conversation view examples in one fenced bash block headed by "**Examples:**", preserving each description as a shell comment and blank lines between examples./home/byk/Code/getsentry/cli-pr-1558/packages/cli/plugins/sentry-cli/skills/sentry-cli/references/project.md must retain heading ### \sentry project create [<org>/]<name>:<platform>...`and must not contain the malformed example prefixsentry project create "My New App":`./home/byk/Code/getsentry/cli-pr-1558/packages/cli/script/generate-command-docs.ts:147-162 currently formats each positional table row as optional solely from p.optional, yielding [<placeholder>] when true and <placeholder> otherwise; /home/byk/Code/getsentry/cli-pr-1558/packages/cli/src/lib/introspect.ts:242-249 currently marks every kind: "array" positional as optional: true./home/byk/Code/getsentry/cli-pr-1558/packages/cli/src/lib/introspect.ts models positional definitions as either { kind: "tuple"; parameters: readonly PositionalParam[] } or { kind: "array"; parameter: PositionalParam }; getPositionalString() renders tuples with required/optional markers and arrays as <placeholder...>, while extractPositionals() turns arrays into one metadata row whose placeholder includes ....buildCommandInfo() in /home/byk/Code/getsentry/cli-pr-1558/packages/cli/src/lib/introspect.ts:286-310 prioritizes cmd.__primaryUsage over inferred positional syntax, extracts structured positionals and flags, uses cmd.__examples when present by formatting each as # description\ncommand, falls back to passed examples otherwise, and includes jsonFields only when schema extraction returns at least one field././home/byk/Code/getsentry/cli-pr-1558/packages/cli/src/commands/agent-conversation/view.ts uses canonical usage [<org>/]<conversation-id> and parses one positional target: no slash means an auto-detected organization plus the whole value as conversationId; exactly one slash means explicit org/conversationId; multiple slashes or empty segments raise validationError() with USAGE_HINT.sentry agent-conversation view throws new ContextError("Conversation ID", USAGE_HINT, []) for an omitted/blank target and new ContextError("Organization", USAGE_HINT) when resolveOrg({ org: orgArg, cwd }) cannot resolve an organization.sentry agent-conversation view applies --fresh, fetches spans through withProgress({ message: "Fetching conversation spans...", json: flags.json }, () => getConversationSpans(org, conversationId)), builds a TranscriptResult with buildTranscriptResult(conversationId, org, spans, title), copies truncated, and yields new CommandOutput<TranscriptResult>(result).sentry issue merge <issue...> in the heading but renders its arguments-table row as [<issue...>], despite the description "Issue IDs to merge (2 or more required)"; this exposes the required-variadic documentation regression caused by array positional metadata being treated as optional.sentry issue merge CLI-K9 CLI-15H CLI-15N, sentry issue merge CLI-K9 CLI-15H CLI-15N --into CLI-K9, sentry issue merge my-org/CLI-K9 my-org/CLI-15H --into my-org/CLI-K9, and lowercase alias form sentry issue merge cli-k9 cli-15h --into cli-k9./home/byk/Code/getsentry/cli-pr-1558/packages/cli/package.json identifies package sentry version 0.45.0-dev.0, requires Node >=20.0, uses development runtime Node >=22.15, and pins package manager pnpm@10.11.0; dependencies include @stricli/core 1.2.8 and @stricli/auto-complete ^1.2.8./home/byk/Code/getsentry/cli-pr-1558/packages/cli/package.json regenerate docs and SDK before typecheck, unit tests, changed tests, and E2E tests; test:unit runs vitest run test/lib test/commands test/types test/script --coverage, and test:e2e runs vitest run test/e2e./home/byk/Code/getsentry/cli-pr-1558/packages/cli/test/preload.ts isolates tests under TEST_TMP_DIR, removes stale test directories, sets SENTRY_CONFIG_DIR, clears production-facing SENTRY_DSN, SENTRY_AUTH_TOKEN, SENTRY_TOKEN, SENTRY_CLIENT_ID, SENTRY_URL, SENTRY_HOST, SENTRY_ORG, and SENTRY_PROJECT, then installs a fake unit-test SENTRY_AUTH_TOKEN; it disables telemetry and update checks with SENTRY_CLI_NO_TELEMETRY=1 and SENTRY_CLI_NO_UPDATE_CHECK=1./home/byk/Code/getsentry/cli-pr-1558/packages/cli/test/preload.ts blocks unexpected unit-test network calls by logging the URL and throwing Error("Unmocked fetch call to: ${url}"); the original fetch is retained as globalThis.__originalFetch.1.2.8 declarations in /home/byk/Code/getsentry/cli-pr-1558/packages/cli/node_modules/@stricli/core/dist/index.d.ts:1014-1060 distinguish RequiredPositionalParameter (optional?: false) from OptionalPositionalParameter (optional: true); PositionalParameterArray supports minimum?: number and maximum?: number; and BaseArgs is readonly unknown[].minimum—rather than assuming every { kind: "array" } positional is optional; the local simplified PositionalParams type in /home/byk/Code/getsentry/cli-pr-1558/packages/cli/src/lib/introspect.ts currently omits minimum and maximum.