Dashboard › cli › Distillation
b48a59fe-121a-4436-852f-59fea02e3b62["lore_tm_v1_KGaqH4UvZQq6FjFVwp-UEAWx7BojsoDCn0YiAmckr9U","lore_tm_v1_JkKBL6O1uAExbPbfdZoIHTlD3O5uaf0q20neeVmIb_Q","lore_tm_v1_t_udFuafXQKDSjQPG5Dkp5xVo1nES6KCMKgbBKBFkAE","lore_tm_v1_jtaxi1TJrPbyt8w065hoc5xLzVVE5Xhs8Jai6F5S-q4","lore_tm_v1_-Ant_vZ3VqM69mkcZIGTGtjLQMJKC_Fn8Km8qBEjhTc","lore_tm_v1_I2Og8eS-uqwmWZRRUPK-OHhEv22xhtNDx2GvUIBh-V4","lore_tm_v1_rBUn79l4frGbgveXc9gMh2n3AOXOblBf26pShQFVrUY","lore_tm_v1_5mG5dZXeKX5vIovCHED4LI1QDQCu7Ph1tESSlxYaF-Y","lore_tm_v1_hHqTGON1X4tzx6i0KXpLjq_o_DShAK7nVkK-tp8Kkgo","lore_tm_v1_VK_90yGkHc0A0XGxfo0LqWLECyirra3q1Bb4ldh8rds","lore_tm_v1_mve5cLhppdTGO6A_eF2B14AJvJTQFeVCTqweXRxWRSk","lore_tm_v1_R7RfR0xOj360dvlKrGU51kmJc1xC-hEGUv1M1248T_A","lore_tm_v1_8f17oP_ok4LO05B8BpgtZMOjCxSc4z_rFxd00TB-X9E","lore_tm_v1_NAUdJtgpJAPk0g0MfQ3jSKKvVNwC1Z8XoRPJT2G5gvk","lore_tm_v1_iy4t-VD-Y4lB6S33avBpqS9XD8KhXgPSk6f-p53o9BA","lore_tm_v1_hPVkJuWKWhdd0tV0N97MlN8hAN_TbL1w5wIuFXle3Tg","lore_tm_v1_XjRXdvfHu-BA8T0IJ7zwja-IxcB7gFgif-T9Lrtxqyw"]
fix/agent-conversation-reference-root-cause tracked origin/pr-1558, which was marked [gone]; working tree had 32 modified files totaling 331 insertions and 170 deletions.apps/cli-docs/src/fragments/commands/agent-conversation.md; packages/cli/plugins/sentry-cli/skills/sentry-cli/SKILL.md; references alert.md, cli.md, explore.md, feedback.md, init.md, issue.md, monitor.md, org.md, project.md, release.md, replay.md, repo.md, team.md, trace.md, trial.md; scripts 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; sources 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; tests packages/cli/test/commands/agent-conversation/list.test.ts, packages/cli/test/lib/command.test.ts, packages/cli/test/lib/introspect.property.test.ts, packages/cli/test/lib/introspect.test.ts, and packages/cli/test/script/generate-skill-markdown.test.ts.@stricli/core@1.2.8 implementation in /home/byk/Code/getsentry/cli-pr-1558/node_modules/.pnpm/@stricli+core@1.2.8_patch_hash=892258f886d48063b409e0ac6141260023c396d1ed4f915231701f6a34edffcc/node_modules/@stricli/core/dist/index.js: required positional parameters render as <name>, optional as [<name>], variadic as <name>...; tuple fallback placeholders are arg${i + 1}, array fallback is args; hidden flags are excluded from usage, and onlyRequiredInUsageLine also excludes optional/defaulted flags.apps/cli-docs/src/content/docs/commands/ via .gitignore:73, including apps/cli-docs/src/content/docs/commands/agent-conversation.md, and packages/cli/src/generated/ via packages/cli/.gitignore:38, including packages/cli/src/generated/skill-content.ts.apps/cli-docs/src/content/docs/commands/agent-conversation.md documented sentry agent-conversation list [<org>] and sentry agent-conversation view [<org>/]<conversation-id>; the view argument table showed <org/conversation-id> with description [<org>/]<conversation-id> - Org (optional) and conversation ID. List options were -n, --limit <limit> default "25" with range 1–1000, -q, --query <query>, -t, --period <period> default "7d", -f, --fresh, and -c, --cursor <cursor>. View exposed -f, --fresh; examples used conv-123, my-org/conv-123, and my-org/conv-123 --json.packages/cli/script/check-fragments.ts determines a route map’s default command by object-reference equality in findDefaultInRouteMap(), obtains it through getDefaultCommandName(), and validates undocumented subcommands for multi-command routes. Commands with examples are skipped; otherwise it derives the leaf subcommand, treats a leaf matching the default command specially, and emits a warning or a strict-mode error with the missing names and an example heading hint.packages/cli/script/generate-skill.ts loads command docs through the marked AST: collectCommandPaths() initializes paths from depth-3 ### `sentry ...` headings; associateCodeBlocks() associates bash blocks by heading context or matchExampleToCommand(); loadCommandExamples() supports generated reference headings and hand-written custom examples, including default-command fallback.packages/cli/script/generate-skill.ts route extraction skips hidden top-level entries, finds route-map default commands, loads documentation examples, and emits either grouped commands or a standalone sentry ${routeName} command. Route sorting uses ROUTE_ORDER, with unlisted routes assigned order 999.packages/cli/script/generate-skill.ts formats flags as an optional alias plus --name, appending <value> for non-variadic parsed/enum flags and <value>... for variadic flags; it includes the brief and stringified non-boolean default. getVisibleFlags() excludes hidden and globally injected flags. Full reference generation uses cmd.customUsage-derived positional signatures, visible flags, escaped JSON-field tables, and command examples; title acronyms api and cli become uppercase.getPositionalString() tuple invariant: it “always produces angle-bracket placeholders”; each tuple parameter must appear as <placeholder> when required or [<placeholder>] when optional, with fallback arg${index}.getPositionalString() array invariant: it “always includes ellipsis”.extractAllRoutes() invariant: it “never includes hidden entries”; the property test distinguishes names that occur only as hidden entries from names that also have a visible entry.packages/cli/script/generate-command-docs.ts escapes < and > in positional descriptions as < and >; argument-table syntax is <placeholder> or [<placeholder>], while command headings use cmd.positional directly. Generated options tables use only getVisibleFlags(cmd).v4.1.10; every run passed exactly 1 test file and 9 tests. Each run warned that test.poolOptions was removed in Vitest 4 and its former options are now top-level.customUsage command definitions at packages/cli/src/commands/agent-conversation/view.ts:63 (customUsage: [USAGE]) and packages/cli/src/commands/project/create.ts:609 (customUsage: ["[<org>/]<name>:<platform>..."]); packages/cli/src/lib/command.ts:107 documents that the first customUsage line is the canonical signature suffix, and packages/cli/src/lib/command.ts:464 selects docs.customUsage?.[0] as primaryUsage./.packages/cli/src/commands/agent-conversation/view.ts defines USAGE = "[<org>/]<conversation-id>" and USAGE_HINT = "sentry agent-conversation view [<org>/]<conversation-id>". parseConversationTarget() trims input; with no slash it returns the entire value as conversationId; with a slash it splits at the first slash into org and conversationId, throwing ContextError("Conversation ID", USAGE_HINT, []) if either segment is empty.viewCommand in packages/cli/src/commands/agent-conversation/view.ts uses docs.customUsage: [USAGE], but its Stricli tuple positional placeholder is "org/conversation-id" with brief "[<org>/]<conversation-id> - Org (optional) and conversation ID". It validates nonblank input, applies fresh, resolves the optional org using resolveOrg({ org: orgArg, cwd }), fetches via getConversationSpans(org, conversationId) inside withProgress(), builds a transcript with buildTranscriptResult(), copies truncated, and yields CommandOutput<TranscriptResult>.