Dashboard › cli › Distillation
bde39fd7-af63-4c14-bf33-0b9b21156791["lore_tm_v1_3_tiJMmCe0mpNMfYebgGzvvjV1bH-vbK9Dt_iQxmDf8","lore_tm_v1_2lizUOOdM0ePEJNtMtoTG_UxIRgBGwOLmE8ZNxyWPTM","lore_tm_v1_eZOoJDyqsd998k7KxXc7uBjvV5kDZv9mV3xxd8RHLlg","lore_tm_v1_CcJ1V-jX5b2YYN3dJjBocnSjzDC1G0EDOT2dR5yHouc","lore_tm_v1_B-h8sprjUvR2LQa5b3iOJ5hxjIOj4JBAGVnoPcGJ684","lore_tm_v1_i26Wk7eFwgMVoBqDWjpq867p-Z2jagNxXWgiYhtfgWk","lore_tm_v1_rIMFjDRb9ktu89i07IJRmKPkQ5Lpz8G4J0loL05MVJk","lore_tm_v1_1AN8pav42SuQy8XKl6nkM8N5pfItc3ToxQp-1Ph7o_E","lore_tm_v1_qbf4JELezuaaDKFQykXQJWyGFJAQsZg9wpgh4QB_Vho","lore_tm_v1_M7KCUzzGtbXmgDqlK7tKfQkp4-LEg2QCY1g8r2_j1oA","lore_tm_v1_VUJ_ebC1SbDk4svoA3nwabhkri11kZchmYq3gM4oNiw","lore_tm_v1_G7b8BbFNBScjo8r3f2ZLat-KxQBx97-xK4gCARJym2A","lore_tm_v1_CV91UhkimatU10VqwQU4M0dSfuDbaMhmnZ5Ma241Zhs"]
packages/cli/src/lib/error-reporting.ts:311-329 defines setGroupingTags(scope, error): for Error instances it sets cli_error.class, derives cli_error.kind via deriveErrorKind(error), and for ApiError sets cli_error.api_status plus normalized cli_error.api_endpoint.packages/cli/src/lib/error-reporting.ts:336-360 defines setCliErrorContext(scope, error): ApiError gets api_error context with status, endpoint, and detail; ContextError gets cli_error context with resource and command; ResolutionError gets resource, headline, and hint; SeerError gets reason and org_slug.reportCliError(error) at packages/cli/src/lib/error-reporting.ts:372-384 records and returns for errors classified by classifySilenced(error); otherwise it opens a fresh Sentry.withScope, calls setGroupingTags, calls setCliErrorContext, and invokes Sentry.captureException(error).enrichEventWithGroupingTags(event) at packages/cli/src/lib/error-reporting.ts:394-422 preserves events already tagged with cli_error.class, uses the last exception in event.exception.values as the outermost/thrown exception, sets cli_error.class from exc.type, and derives cli_error.kind from extractMessagePrefix(exc.value, 4) when a value exists.beforeSendTransaction and beforeSend in packages/cli/src/lib/telemetry.ts:652 and :658; related beforeSend references occur in packages/cli/src/lib/errors.ts:896 and packages/cli/src/lib/error-reporting.ts:73,389.packages/cli/src/lib/telemetry.ts:584-589 closes the previous Sentry client with Sentry.getClient()?.close(0) before reinitialization to remove internal timers and beforeExit handlers; the stated problem is leaked setInterval handles keeping the event loop alive in reinitialization scenarios such as tests.packages/cli/src/lib/telemetry.ts:591-687 uses makeCompressedTransport, zstd level 3 with automatic gzip fallback on Node versions before 22.15, transportOptions: { caCerts: getCustomCaCerts() }, tracesSampleRate: 1, sampleRate: 1, release CLI_VERSION, and trace targets from getSentryTracePropagationTargets().packages/cli/src/lib/telemetry.ts:603-635 filters LIBRARY_EXCLUDED_INTEGRATIONS in library mode or EXCLUDED_INTEGRATIONS otherwise, excludes NodeSystemError when util.getSystemErrorMap is unavailable, re-adds Sentry.nodeContextIntegration({ device: { cpu: false } }) outside library mode, and adds Sentry.nodeRuntimeMetricsIntegration({ collectionIntervalMs: 5000 }) outside library mode.enabled && !libraryMode, sets sendClientReports: false when libraryMode || !enabled, and documents that SDK log flushing and client reports otherwise register event-loop-retaining handlers/timers.beforeSendTransaction removes event.server_name; beforeSend removes server_name, drops EPIPE and EBADF events, normalizes relative exception/debug-image paths to absolute paths for Bun linked sourcemaps, and returns enrichEventWithGroupingTags(event).packages/cli/test/lib/error-reporting.test.ts cover cli_error.kind values including "Organization", "Cannot read properties of", "fetch failed", "trace_id", "Invalid trace ID", "400", "host_scope", "wizard", and "Failed to create project"; they also test stable grouping across variable project counts, distinct kinds for trace versus event errors, no kind when the exception value is missing, and preservation of an existing "Organization" kind.apps/cli-docs/src/fragments/commands/agent-conversation.md at 0/33, packages/cli/src/commands/agent-conversation/list.ts at 38/18, packages/cli/src/commands/agent-conversation/view.ts at 33/9, packages/cli/src/lib/command.ts at 58/15, packages/cli/src/lib/introspect.ts at 12/2, packages/cli/test/commands/agent-conversation/list.test.ts at 13/0, packages/cli/test/commands/agent-conversation/view.test.ts at 30/1, packages/cli/test/lib/command.test.ts at 28/0, packages/cli/test/lib/introspect.test.ts at 34/0, and packages/cli/test/script/generate-skill-markdown.test.ts at 45/0.packages/cli/test/lib/api/conversations.test.ts tests listConversations and getConversationSpans; the stated coverage includes request parameters, Link-header pagination, details-envelope span extraction, multi-page span retrieval, and truncated=true at the pagination limit versus truncated=false when all pages are fetched.listConversations tests verify GET /api/0/organizations/${ORG}/agents/conversations/, default per_page=10, custom limit: 50 as per_page=50, query=has:errors, statsPeriod=24h, start/end, cursor "1735689600000:0:0", project "my-project", omission of undefined optional parameters, and extraction of the next cursor from the Link header.listConversations(ORG, { limit: 200 }) caps requests at per_page=100 rather than 200, follows cursors across pages, and accumulates conversation IDs in order as ["c1", "c2"].abc\u001b\\[2Jdef, C1 CSI text abc\u009b2Jdef, and bidi override text abc\u202Edef; an embedded newline split the heading and left a paragraph containing escaped backticks around bash, echo pwn.\u001b\\[2J rendered as a real CSI clear-screen sequence in Agent Conversation: \u001b[2J, with hasCsi: true.conv\u001b\\[2Jpwn was No spans found for conversation conv\u001b\\[2Jpwn in the last 30 days. and reported hasCsi: false.hello\u001b[2Jforged, and the probe reported hasCsi: true; the rendered metadata showed org org, project p, start 1970-01-01T00:00:01.000Z, end 1970-01-01T00:00:02.000Z, 1 turn, 1 span, and 0 tokens.description/command-related text and identified agent-conversation examples in packages/cli/src/commands/agent-conversation/view.ts: "View full transcript (organization auto-detected)" with sentry agent-conversation view conv-123, and "Explicit organization" with sentry agent-conversation view my-org/conv-123.conv\u001bcreset remained with hasEsc: true; OSC 52 input conv\u001b]52;c;YQ==\u0007clip became conv\u001b\\]52;c;YQ==\u0007clip but still had hasEsc: true; C1 CSI input conv\u009b2Jc1 remained with hasC1: true; and bidi override input conv\u202Espoof remained with hasBidi: true.conv\u001b[2Jpwn, title t\u001b]52;c;YQ==\u0007, and first input x\u009b2Jy; output flags were hasEsc: true, hasC1: true, and hasBidi: false.