Dashboard › cli › Distillation
addcd95b-03ba-401d-abb7-510c9a5231dd["lore_tm_v1_1JpCikO4bEJlN0WWf7qyw4xEFELEl-Q8MDVmxu5DhXQ","lore_tm_v1_AzoM9NDu7wBfL_QLbd0b5l2pNF508C66tquOhXe9-7A","lore_tm_v1_4Q7WqAaDfYU5WtU0B1_oeNRdtIjFcLoBzLhRH9-s8xg"]
sentry cli upgrade nightly (replacing the stable build channel); switching back would use sentry cli upgrade stable.packages/cli/plugins/sentry-cli/skills/sentry-cli/SKILL.md changed optional target syntax: sentry org view [<org>], sentry project list [<org/project>], and sentry project view [<org/project>], replacing forms that displayed those targets as required.packages/cli/plugins/sentry-cli/skills/sentry-cli/SKILL.md documents authentication commands sentry auth, sentry auth --token YOUR_SENTRY_API_TOKEN, sentry auth status, and sentry auth logout; its Auth command reference lists, in order: sentry auth login, sentry auth logout, sentry auth refresh, sentry auth status, sentry auth token, and sentry auth whoami.packages/cli/plugins/sentry-cli/skills/sentry-cli/references/explore.md, packages/cli/plugins/sentry-cli/skills/sentry-cli/references/monitor.md, and packages/cli/plugins/sentry-cli/skills/sentry-cli/references/team.md; their visible front matter uses version 0.45.0-dev.0.packages/cli/src/lib/arg-parsing.ts imports validateResourceId at line 11 and uses/discusses it at lines 705, 714, 740, 801, 1119, 1121, 1153, 1162, 1164, 1169, 1170, 1267, 1277, 1321, 1327, 1332, and 1340; packages/cli/src/lib/api/projects.ts:588 defines resolveOrgDisplayName; packages/cli/src/lib/org-list.ts:1048,1082 defines resolveOrgSlugMatch and resolveOrgInParsed; packages/cli/src/lib/input-validation.ts:124,149 defines rejectPreEncoded and validateResourceId; packages/cli/src/lib/region.ts:46,65,125 defines resolveOrgRegion, resolveOrgRegionUncached, and resolveOrgFromCache; packages/cli/src/lib/init/preflight.ts:527 defines resolveOrgSlug; and packages/cli/src/lib/init/org-prefetch.ts:50 defines resolveOrgPrefetched.packages/cli/src/lib/resolve-target.ts: resolveOrgFromDsn at line 264, resolveOrgAndProject at line 1298, resolveOrgProjectOrGuide at line 1653, resolveOrg at line 1673, resolveOrgsForListing at line 1877, resolveOrgProjectTarget at line 1951, resolveOrgProjectFromArg at line 2086, resolveOrgOptionalProjectTarget at line 2385, and resolveOrgOptionalProjectFromArg at line 2424.resolveOrgProjectOrGuide(options) in packages/cli/src/lib/resolve-target.ts:1653-1658 awaits resolveOrgAndProject(options) and returns that result, otherwise falls back to guideOrgProjectFailure(options).resolveOrg(options) in packages/cli/src/lib/resolve-target.ts:1673-1724 resolves an organization in this exact priority order: 1. positional/CLI org; 2. SENTRY_ORG / SENTRY_PROJECT via resolveFromEnvVars(); 3. .sentryclirc via loadSentryCliRc(cwd); 4. config default via getDefaultOrganization(); 5. DSN auto-detection via resolveOrgFromDsn(cwd). Successful paths call setOrgProjectContext([org], [])..sentryclirc path, resolveOrg() returns detectedFrom: \${CONFIG_FILENAME} (${rcConfig.sources.org})`. In the DSN path, it calls normalizeNumericOrg(result.org)becauseresolveOrgFromDsn()may return a bare numeric organization ID when the project cache is cold, while endpoints such as dashboards reject numeric IDs. The DSN branch has a grandfathered silentcatchassociated with#1531and returnsnull` on error.resolveProjectBySlug(projectSlug, usageHint, disambiguationExample?, originalSlug?) in packages/cli/src/lib/resolve-target.ts:1741-1804 returns { org, project, projectData: SentryProject }. originalSlug preserves raw input for clearer messages; when present, the function treats the input as a display name, skips slug-based API lookup and its N expected 404s, and instead loads organizations with listOrganizations() before calling triageProjectNotFound(projectSlug, orgs, originalSlug).resolveProjectBySlug(), a triageProjectNotFound() result of "org-match" throws ResolutionError explaining that '${projectSlug}' is an organization rather than a project, rewrites the usage hint with ${projectSlug}/<project>, and suggests exactly: List projects: sentry project list ${projectSlug}/ and Specify a project: ${projectSlug}/<project>."fuzzy-match" result, resolveProjectBySlug() verifies access with withAuthGuard(() => getProject(outcome.org, outcome.project)); success returns withTelemetryContext({ org: outcome.org, project: outcome.project, projectData: proj.value }). If verification fails, it throws ResolutionError with suggestion Similar project '${outcome.org}/${outcome.project}' was found but could not be accessed plus either No project with this ID was found — check the ID or use the project slug instead for all-digit input or Check that you have access to a project with this slug otherwise.