Skip to content

feat(tools): Add onboarding status updates - #1244

Merged
evanpurkhiser merged 1 commit into
mainfrom
evanpurkhiser/feat-tools-add-onboarding-status-updates
Aug 14, 2026
Merged

evanpurkhiser merged 1 commit into
mainfrom
evanpurkhiser/feat-tools-add-onboarding-status-updates

Conversation

@evanpurkhiser

@evanpurkhiser evanpurkhiser commented Aug 13, 2026 •

Copy link
Copy Markdown
Member

Add a catalog-only onboarding_status_update tool that reports explicit stage and run state to Sentry's agentic onboarding UI. The tool uses the existing region-aware API client with org:read, stays out of the default top-level tool context, and returns only whether subsequent progress updates should continue.

Stage failures remain retryable, while a failed or completed run is terminal. The optional projectSlugs and issueIds arrays are restricted to their owning stages and support incrementally reporting multiple validated projects or verification issues; Sentry accumulates and deduplicates those values across updates.

Calls are described as silent UI bookkeeping rather than analytics. The tool avoids echoing the run token, identifiers, or event notes, and generated definitions expose the same constrained request contract.

Depends on the agentic onboarding status API introduced in getsentry/sentry#121914 and its plural identifier response contract.

Comment thread packages/mcp-core/src/tools/catalog/index.ts
@evanpurkhiser
evanpurkhiser force-pushed the evanpurkhiser/feat-tools-add-onboarding-status-updates branch from 753004b to 0c10128 Compare August 13, 2026 14:15
Comment thread packages/mcp-core/src/server.test.ts Outdated
@evanpurkhiser
evanpurkhiser force-pushed the evanpurkhiser/feat-tools-add-onboarding-status-updates branch from 0c10128 to a002a23 Compare August 13, 2026 21:07
@evanpurkhiser
evanpurkhiser force-pushed the evanpurkhiser/feat-tools-add-onboarding-status-updates branch from a002a23 to 865c7a3 Compare August 14, 2026 00:02
@evanpurkhiser
evanpurkhiser marked this pull request as ready for review August 14, 2026 00:04
Comment thread packages/mcp-core/src/tools/catalog/onboarding-status-update.ts Outdated
Comment thread packages/mcp-core/src/server.test.ts Outdated
Comment thread packages/mcp-core/src/skillDefinitions.json
Expose a directly available onboarding_status_update tool that sends
explicit stage and run state to Sentry. Region-aware routing and org:read
authorization reuse the existing API client path.

The tool treats updates as silent UI bookkeeping, avoids echoing sensitive
context, and returns whether subsequent updates should continue. Generated
definitions document the shared contract.
@evanpurkhiser
evanpurkhiser force-pushed the evanpurkhiser/feat-tools-add-onboarding-status-updates branch from 865c7a3 to 1656ab8 Compare August 14, 2026 00:23
@evanpurkhiser

Copy link
Copy Markdown
Member Author

Alright looks good to go

@evanpurkhiser
evanpurkhiser merged commit 415aab6 into main Aug 14, 2026
19 of 21 checks passed
@evanpurkhiser
evanpurkhiser deleted the evanpurkhiser/feat-tools-add-onboarding-status-updates branch August 14, 2026 00:41
BYK added a commit that referenced this pull request Sep 23, 2026
## Summary

- check Toolkit before the legacy CLI repositories for stable, nightly,
delta, prefetch, and changelog requests
- fall back only on HTTP 404 and retain one selected source through the
complete upgrade operation
- mirror the ordered source contract in the shell installer and enforce
parity in CI

Closes #1244

## Validation

- `pnpm run lint`
- `pnpm run typecheck`
- `pnpm run check:deps`
- `pnpm run check:errors`
- `pnpm run check:patches`
- `pnpm run check:stale-refs`
- `pnpm run check:upgrade-sources`
- `shellcheck packages/cli/install`
- focused bridge matrix: 458 tests passed
- isolated rerun of the 10 full-suite failure files: 252 tests passed;
the full coverage run had unrelated temp-directory/SQLite contention and
one load timeout
BYK added a commit that referenced this pull request Sep 30, 2026
## Pre-shape the CLI repo into a pnpm-workspace monorepo

Part of the **sentry-cli + sentry-mcp → `getsentry/toolkit` merge**.
Closes #1238 · Master: #1248

This reshapes the repo into a pnpm workspace so it can be cleanly
`git subtree`-imported into the renamed `toolkit` repo (#1239), **while
keeping
this repo fully operational (CI, releases, nightlies) throughout the
transition** — which the dual-source CLI upgrade (#1244) depends on.

### Layout
- CLI package → `packages/cli/` (`src`, `test`, `script`, `patches`,
`plugins`, `install`, configs, `package.json`)
- `docs/` → `apps/cli-docs/`
- Root keeps GitHub/Craft-read files: `.github/`, `.craft.yml`,
`LICENSE`, `CHANGELOG`, `.gitignore`, `.nojekyll`
- New `pnpm-workspace.yaml` (`packages/*` + `apps/*`) and a thin
**delegating root `package.json`** that forwards scripts to the `sentry`
package and hoists the `pnpm` block
- New minimal root `README`; CLI README → `packages/cli/README.md`

### Internal path fixes
- Shared `script/paths.ts` (`DOCS_ROOT` etc.) for cross-package doc
paths
- Re-pointed `apps/cli-docs` public symlinks (`install`, skill files) to
`packages/cli/`
- `build.ts`/`bundle.ts` resolve the `@sentry/symbolic` WASM via module
resolution and invoke fossilize via `pnpm exec` (both hoist to the
workspace root)
- `biome.jsonc` + `packages/cli/.gitignore` so Biome finds an ignore
file
- `.gitignore` path-anchored entries updated for the nested layout

### Workflows / release (root-relative where GitHub/Craft require it)
- `ci.yml`, `docs-preview.yml`, `eval-skill-fork.yml`: paths-filter
globs, `node_modules` cache paths, patches `hashFiles` glob, artifact
paths (`packages/cli/dist-bin`, `apps/cli-docs/dist`), docs
`working-directory`, version reads, `npm pack` dir
- `.craft.yml` pre/post-release commands `cd packages/cli`

### `node-linker=isolated` (was `hoisted`)
Under the workspace, `hoisted` let an **unpatched** transitive
`@sentry/core@10.65.0` (via `@spotlightjs/spotlight` → `@sentry/node`)
win the
flat hoist over the **patched** direct `@sentry/core@10.63.0`, so the
CLI
bundled the unpatched copy (masked only by esbuild tree-shaking).
`isolated`
mode (pnpm default) keeps per-package variants so the patched copy is
used.
`check-patches.ts` now reads `patchedDependencies` from the workspace
root and
resolves the copy the CLI actually links via `require.resolve`.
The patch files themselves are unchanged (they apply cleanly);
`catalog:`-based dedup is deferred to #1240.

### Verification (local)
- ✅ `typecheck`, `lint`, all `check:*` scripts
- ✅ `build` (+ Linux binary smoke test, WASM asset loads, patched bundle
verified)
- ✅ `bundle` (npm library)
- ✅ full unit suite — **399 files, 8474 passed, 13 skipped**

CI on this PR is the authoritative check for the cross-platform binary
matrix
and release paths.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
BYK added a commit that referenced this pull request Sep 30, 2026
## Summary

- check Toolkit before the legacy CLI repositories for stable, nightly,
delta, prefetch, and changelog requests
- fall back only on HTTP 404 and retain one selected source through the
complete upgrade operation
- mirror the ordered source contract in the shell installer and enforce
parity in CI

Closes #1244

## Validation

- `pnpm run lint`
- `pnpm run typecheck`
- `pnpm run check:deps`
- `pnpm run check:errors`
- `pnpm run check:patches`
- `pnpm run check:stale-refs`
- `pnpm run check:upgrade-sources`
- `shellcheck packages/cli/install`
- focused bridge matrix: 458 tests passed
- isolated rerun of the 10 full-suite failure files: 252 tests passed;
the full coverage run had unrelated temp-directory/SQLite contention and
one load timeout
mr-danya pushed a commit to mr-danya/sentry-mcp that referenced this pull request Oct 6, 2026
…1254)

## Pre-shape the CLI repo into a pnpm-workspace monorepo

Part of the **sentry-cli + sentry-mcp → `getsentry/toolkit` merge**.
Closes getsentry#1238 · Master: getsentry#1248

This reshapes the repo into a pnpm workspace so it can be cleanly
`git subtree`-imported into the renamed `toolkit` repo (getsentry#1239), **while
keeping
this repo fully operational (CI, releases, nightlies) throughout the
transition** — which the dual-source CLI upgrade (getsentry#1244) depends on.

### Layout
- CLI package → `packages/cli/` (`src`, `test`, `script`, `patches`,
`plugins`, `install`, configs, `package.json`)
- `docs/` → `apps/cli-docs/`
- Root keeps GitHub/Craft-read files: `.github/`, `.craft.yml`,
`LICENSE`, `CHANGELOG`, `.gitignore`, `.nojekyll`
- New `pnpm-workspace.yaml` (`packages/*` + `apps/*`) and a thin
**delegating root `package.json`** that forwards scripts to the `sentry`
package and hoists the `pnpm` block
- New minimal root `README`; CLI README → `packages/cli/README.md`

### Internal path fixes
- Shared `script/paths.ts` (`DOCS_ROOT` etc.) for cross-package doc
paths
- Re-pointed `apps/cli-docs` public symlinks (`install`, skill files) to
`packages/cli/`
- `build.ts`/`bundle.ts` resolve the `@sentry/symbolic` WASM via module
resolution and invoke fossilize via `pnpm exec` (both hoist to the
workspace root)
- `biome.jsonc` + `packages/cli/.gitignore` so Biome finds an ignore
file
- `.gitignore` path-anchored entries updated for the nested layout

### Workflows / release (root-relative where GitHub/Craft require it)
- `ci.yml`, `docs-preview.yml`, `eval-skill-fork.yml`: paths-filter
globs, `node_modules` cache paths, patches `hashFiles` glob, artifact
paths (`packages/cli/dist-bin`, `apps/cli-docs/dist`), docs
`working-directory`, version reads, `npm pack` dir
- `.craft.yml` pre/post-release commands `cd packages/cli`

### `node-linker=isolated` (was `hoisted`)
Under the workspace, `hoisted` let an **unpatched** transitive
`@sentry/core@10.65.0` (via `@spotlightjs/spotlight` → `@sentry/node`)
win the
flat hoist over the **patched** direct `@sentry/core@10.63.0`, so the
CLI
bundled the unpatched copy (masked only by esbuild tree-shaking).
`isolated`
mode (pnpm default) keeps per-package variants so the patched copy is
used.
`check-patches.ts` now reads `patchedDependencies` from the workspace
root and
resolves the copy the CLI actually links via `require.resolve`.
The patch files themselves are unchanged (they apply cleanly);
`catalog:`-based dedup is deferred to getsentry#1240.

### Verification (local)
- ✅ `typecheck`, `lint`, all `check:*` scripts
- ✅ `build` (+ Linux binary smoke test, WASM asset loads, patched bundle
verified)
- ✅ `bundle` (npm library)
- ✅ full unit suite — **399 files, 8474 passed, 13 skipped**

CI on this PR is the authoritative check for the cross-platform binary
matrix
and release paths.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
mr-danya pushed a commit to mr-danya/sentry-mcp that referenced this pull request Oct 6, 2026
…1254)

## Pre-shape the CLI repo into a pnpm-workspace monorepo

Part of the **sentry-cli + sentry-mcp → `getsentry/toolkit` merge**.
Closes getsentry#1238 · Master: getsentry#1248

This reshapes the repo into a pnpm workspace so it can be cleanly
`git subtree`-imported into the renamed `toolkit` repo (getsentry#1239), **while
keeping
this repo fully operational (CI, releases, nightlies) throughout the
transition** — which the dual-source CLI upgrade (getsentry#1244) depends on.

### Layout
- CLI package → `packages/cli/` (`src`, `test`, `script`, `patches`,
`plugins`, `install`, configs, `package.json`)
- `docs/` → `apps/cli-docs/`
- Root keeps GitHub/Craft-read files: `.github/`, `.craft.yml`,
`LICENSE`, `CHANGELOG`, `.gitignore`, `.nojekyll`
- New `pnpm-workspace.yaml` (`packages/*` + `apps/*`) and a thin
**delegating root `package.json`** that forwards scripts to the `sentry`
package and hoists the `pnpm` block
- New minimal root `README`; CLI README → `packages/cli/README.md`

### Internal path fixes
- Shared `script/paths.ts` (`DOCS_ROOT` etc.) for cross-package doc
paths
- Re-pointed `apps/cli-docs` public symlinks (`install`, skill files) to
`packages/cli/`
- `build.ts`/`bundle.ts` resolve the `@sentry/symbolic` WASM via module
resolution and invoke fossilize via `pnpm exec` (both hoist to the
workspace root)
- `biome.jsonc` + `packages/cli/.gitignore` so Biome finds an ignore
file
- `.gitignore` path-anchored entries updated for the nested layout

### Workflows / release (root-relative where GitHub/Craft require it)
- `ci.yml`, `docs-preview.yml`, `eval-skill-fork.yml`: paths-filter
globs, `node_modules` cache paths, patches `hashFiles` glob, artifact
paths (`packages/cli/dist-bin`, `apps/cli-docs/dist`), docs
`working-directory`, version reads, `npm pack` dir
- `.craft.yml` pre/post-release commands `cd packages/cli`

### `node-linker=isolated` (was `hoisted`)
Under the workspace, `hoisted` let an **unpatched** transitive
`@sentry/core@10.65.0` (via `@spotlightjs/spotlight` → `@sentry/node`)
win the
flat hoist over the **patched** direct `@sentry/core@10.63.0`, so the
CLI
bundled the unpatched copy (masked only by esbuild tree-shaking).
`isolated`
mode (pnpm default) keeps per-package variants so the patched copy is
used.
`check-patches.ts` now reads `patchedDependencies` from the workspace
root and
resolves the copy the CLI actually links via `require.resolve`.
The patch files themselves are unchanged (they apply cleanly);
`catalog:`-based dedup is deferred to getsentry#1240.

### Verification (local)
- ✅ `typecheck`, `lint`, all `check:*` scripts
- ✅ `build` (+ Linux binary smoke test, WASM asset loads, patched bundle
verified)
- ✅ `bundle` (npm library)
- ✅ full unit suite — **399 files, 8474 passed, 13 skipped**

CI on this PR is the authoritative check for the cross-platform binary
matrix
and release paths.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
mr-danya pushed a commit to mr-danya/sentry-mcp that referenced this pull request Oct 6, 2026
## Summary

- check Toolkit before the legacy CLI repositories for stable, nightly,
delta, prefetch, and changelog requests
- fall back only on HTTP 404 and retain one selected source through the
complete upgrade operation
- mirror the ordered source contract in the shell installer and enforce
parity in CI

Closes getsentry#1244

## Validation

- `pnpm run lint`
- `pnpm run typecheck`
- `pnpm run check:deps`
- `pnpm run check:errors`
- `pnpm run check:patches`
- `pnpm run check:stale-refs`
- `pnpm run check:upgrade-sources`
- `shellcheck packages/cli/install`
- focused bridge matrix: 458 tests passed
- isolated rerun of the 10 full-suite failure files: 252 tests passed;
the full coverage run had unrelated temp-directory/SQLite contention and
one load timeout

This branch was previously deployed

1 inactive deployment
Actions — 1656ab8b Deployed Aug 14, 2026 by evanpurkhiser via eval #1085
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant