Conversation
* extract human-readable /mcp to maintainable html file * upgrade tsdown, remove json treeshaking workaround * add changeset
Co-authored-by: storybook-app-bot[bot] <175111413+storybook-app-bot[bot]@users.noreply.github.com>
* upgrade to storybook 10.1.0-alpha.2 * changesets
Co-authored-by: storybook-app-bot[bot] <175111413+storybook-app-bot[bot]@users.noreply.github.com>
* Initial plan * Rename "examples" to "stories" in component manifest format - Updated type definitions in types.ts files to rename Example to Story - Updated format-manifest.ts to use story terminology (story, story_name, story_description, story_code) - Updated all fixture JSON files to use "stories" instead of "examples" - Updated test files and descriptions to use "stories" terminology - Updated test snapshots to reflect the new XML output format - All tests passing, build and typecheck successful --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Jeppe Reinhold <jeppe@reinhold.is>
* add name to manifest errors * add fixtures with errors * add changeset * improve test reports in ci * update fixtures to use stories instead of examples * more example -> story renaming
* replace prettier with oxfmt * add oxlint for linting * update actions using npx actions-up * add publint * fix types * add check-everything script * add build-storybook to check all * split GH Workflows * explain lint disables
Co-authored-by: storybook-app-bot[bot] <175111413+storybook-app-bot[bot]@users.noreply.github.com>
* replace oxfmt with prettier * typo
… with the server (#71) Co-authored-by: Jeppe Reinhold <jeppe@reinhold.is>
* add initial eval setup * well, a lot happened here... * add clack * Add interactive prompts and styled output to eval CLI (#65) * Initial plan * Add interactive prompts and prettier output to eval CLI Co-authored-by: JReinhold <5678122+JReinhold@users.noreply.github.com> * Use tasks API for parallel evaluation steps Co-authored-by: JReinhold <5678122+JReinhold@users.noreply.github.com> * Apply oxfmt formatting to eval.ts --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JReinhold <5678122+JReinhold@users.noreply.github.com> * improve terminal experience * save environment * improve terminal experience * only allow one eval at a time * add support for custom context * format * add support for eval hooks, add log about how to rerun experiments * prompt to start storybook at the end of the evaluation * add message about getting into the experiment * improve experiment dir name * take screenshots of failed stories too * cleanup * improve reshaped stories, improve test+a11y summary, improve mcp server config arg * support --[no-]storybook flag * collect experiment description and branch name * save result summary to google sheets * improve plain prompt * prompt for google sheets upload * fix google sheets upload * support "Storybook MCP" context, which starts up the docs-only @storybook/mcp server with a given component manifest * Add basic Radix eval (#66) * Add Radix eval * Add Rsuite eval (#67) --------- Co-authored-by: Jeppe Reinhold <jeppe@reinhold.is> * format * fix typechecking * add reshaped component manifest * add conversation-viewer.html with approximate token count * cleanup * add documentation, fixups * format * fix stories not having imports anymore * fix plain and radix experiments * experiments will have unique package names * more eval test fixing * more story fixes * fix typecheck and lint summary * improve conversation viewer * simplify viewer content * simplify viewer content * result visualisations is via storybook * upload to chromatic * update google sheet row order * add Chromatic link to CLI log * add note about public results * remove description arg from evals * Evals: Add Radix UI website prompt (#74) --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: JReinhold <5678122+JReinhold@users.noreply.github.com> Co-authored-by: Michael Shilman <shilman@users.noreply.github.com>
* Start review * Fix * More comments * Fix config files and restructure * Resolve conflicts * Fix github actions * Fix coverage * Fix type error * Fix * Fix * Dedupe * Update packages/mcp/src/index.ts Co-authored-by: Jeppe Reinhold <jeppe@chromatic.com> * Update .github/workflows/check.yml Co-authored-by: Jeppe Reinhold <jeppe@chromatic.com> * Update .github/workflows/check.yml Co-authored-by: Jeppe Reinhold <jeppe@chromatic.com> * Improve get/post handling * Dedupe vite * lock file * test perf of check-everything in CI * rename * rename * Add turbo caching * check cache invalidation * refactor * refactor * refactor * refactor * Use node version file * description * refactor * rollback * use turbo for artifacts * install node * optimize * install offline for faster symlinking * optimize * Check ci * Only upload test results on failure * Check github reporter * Fix command * Fix test * Remove check everything * test corepack enable * test corepack enable * test corepack enable * fix * Check if this is faster * Check if this is faster * no cache * rollback * Change nothing * Fix prettier * Modify changeset for MCP server GET responses Updated the changeset to handle GET responses in the MCP server. * Prettier * use docker * debug * use node 24 * Try own caching * Prune it * Don't format pnpm lock * Fix * again * use composite * change * Revert "change" This reverts commit 8031a63. * Revert "use composite" This reverts commit 7f26a54. * Revert "again" This reverts commit 7fdccdf. * Revert "Fix" This reverts commit f4dd004. * Revert "Don't format pnpm lock" This reverts commit c11c4ec. * Revert "Prune it" This reverts commit 1009ad5. * Revert "Try own caching" This reverts commit 82eb804. * Revert "use node 24" This reverts commit c63f9ee. * Revert "debug" This reverts commit d647a91. * Revert "use docker" This reverts commit 766462e. * Address feedback * Initial plan * Update README and Copilot instructions for script changes Co-authored-by: JReinhold <5678122+JReinhold@users.noreply.github.com> * Address feedback * Make it loose * Watch storybook by default * Fix command * Fix * Add pnpm to ignore * Fix dev command * Cleanup * get CI green --------- Co-authored-by: Jeppe Reinhold <jeppe@chromatic.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JReinhold <5678122+JReinhold@users.noreply.github.com>
…t ID instead of multiple (#79) * cleanup * get-component-documentation only accepts a single component id
* cleanup * get-component-documentation only accepts a single component id * fix versions * use vitest cli instead of node for evals * prefix experiment scripts so they are not picked up by turborepo
* Initial plan * Add toolset property to all telemetry payloads in addon-mcp Co-authored-by: JReinhold <5678122+JReinhold@users.noreply.github.com> * add changeset --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JReinhold <5678122+JReinhold@users.noreply.github.com> Co-authored-by: Jeppe Reinhold <jeppe@reinhold.is> Co-authored-by: Jeppe Reinhold <jeppe@chromatic.com>
* remove source API and use the request instead * cleanup * add changesets * add path argument to manifestProvider * cleanup * update changeset * fix serve.ts * cleanup
* allow undefined requests when using custom manifestProvider * changeset * add tests for internal stdio transport * cleanup
* add e2e tests * improve e2e scripting * add tests for mcp index * add preset tests * add telemetry tests * simplify tool test mocks * simplify mcp-handler tests, improve disableTelemetry handling * add tests for manifest availability * exclude evals from coverage * cleanup * changeset * fix preset registering handlers instead of middlewares * update tests to match changes in base branch * cleanup * await sb process kill * globally mock storybook deps * clean lock file
* add e2e tests * improve e2e scripting * add tests for mcp index * add preset tests * add telemetry tests * simplify tool test mocks * simplify mcp-handler tests, improve disableTelemetry handling * add tests for manifest availability * exclude evals from coverage * cleanup * changeset * fix preset registering handlers instead of middlewares * update tests to match changes in base branch * cleanup * await sb process kill * refactor formatter, splitting into markdown and xml, configurable, defaulting to markdown * globally mock storybook deps * clean lock file * fix context arg * fix tests * fix types * "Examples" -> "Stories", simplify tests * simplify tests and types * simplify * use ts-like prop type docs format * add script to clean experiments * add changeset
* Update reshaped flight booking eval * format --------- Co-authored-by: Jeppe Reinhold <jeppe@reinhold.is> Co-authored-by: Jeppe Reinhold <jeppe@chromatic.com>
Co-authored-by: storybook-app-bot[bot] <175111413+storybook-app-bot[bot]@users.noreply.github.com>
…ment preparation (#90) * Initial plan * Add copilot-setup-steps.yml for GitHub Copilot environment setup Co-authored-by: JReinhold <5678122+JReinhold@users.noreply.github.com> * Use custom setup-node-and-install action in copilot-setup-steps.yml Co-authored-by: JReinhold <5678122+JReinhold@users.noreply.github.com> * Fix copilot-setup-steps.yml location and format as GitHub Actions workflow Co-authored-by: JReinhold <5678122+JReinhold@users.noreply.github.com> * Fix formatting and add critical formatting instructions to copilot-instructions.md Co-authored-by: JReinhold <5678122+JReinhold@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: JReinhold <5678122+JReinhold@users.noreply.github.com>
* add docs about experimentalComponentsManifest higher up in the readme * add messages to human-readable /mcp about enabled/disabled toolsets * add changeset * remove broken compact from pkg-pr-new * bring back format option doc
… preview.ts (#92) * change "expected" eval dir to hook based dirs, move meta-level eval configs to preview.ts * cleanup * Update eval/lib/run-hook.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* add rationale to dedent.ts * simplify claude logging * simplify logging setup * clean lock file * add back system message types * upgrade clack
🦋 Changeset detectedLatest commit: bb986b4 The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR 💥 An error occurred when fetching the changed packages and changesets in this PR |
There was a problem hiding this comment.
Pull request overview
This PR merges the next branch into main, consolidating recent development work. The changes primarily involve refactoring configuration files to use shared monorepo-level configurations, restructuring the MCP manifest system to use request-based context, and adding markdown output format support alongside the existing XML format.
Key Changes:
- Refactored configuration files (tsconfig, vitest, prettier) to use shared monorepo-level configurations
- Changed MCP server context from
sourceURL string torequestobject-based manifest loading - Added markdown output format as the new default, with XML as a legacy option
- Renamed "examples" to "stories" in manifest schema
- Enhanced telemetry collection with toolset information
Reviewed changes
Copilot reviewed 161 out of 176 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
packages/mcp/vitest.config.ts |
Updated to use shared vitest config via mergeConfig |
packages/mcp/types.ts |
Completely removed - types moved to new location |
packages/mcp/tsdown.config.ts |
Added explicit defineConfig wrapper |
packages/mcp/tsconfig.json |
Simplified to extend monorepo root tsconfig |
packages/mcp/src/utils/parse-react-docgen.ts |
Added type assertion for p.key |
packages/mcp/src/utils/manifest-formatter/xml.ts |
New XML formatter implementation extracted from format-manifest |
packages/mcp/src/utils/manifest-formatter/markdown.ts |
New markdown formatter for token-efficient output |
packages/mcp/src/utils/get-manifest.ts |
Refactored to use Request object instead of URL string |
packages/mcp/src/utils/format-manifest.ts |
Converted to format dispatcher using strategy pattern |
packages/mcp/src/types.ts |
Restructured with OutputFormat type and request-based context |
packages/mcp/src/tools/*.ts |
Updated to use request-based context and format parameter |
packages/mcp/src/index.ts |
Updated handler to pass request object in context |
packages/mcp/package.json |
Version bump to 0.1.0, updated dependencies |
packages/addon-mcp/**/* |
Similar configuration consolidation and format support |
| Root config files | Consolidated shared configurations for tsconfig, vitest, prettier |
| export const experimental_devServer: PresetProperty< | ||
| 'experimental_devServer' | ||
| > = async (app, options) => { | ||
| // There is error handling here. The can make the whole storybook app crash with. |
There was a problem hiding this comment.
Corrected grammar in comment: 'There is error handling here' should be 'There is no error handling here'
| // There is error handling here. The can make the whole storybook app crash with. | |
| // There is no error handling here. This can make the whole storybook app crash with: |
| return new Request(url, { | ||
| method: req.method, | ||
| headers: req.headers as HeadersInit, | ||
| // oxlint-disable-next-line no-invalid-fetch-options -- We now req.method is always 'POST', linter doesn't |
There was a problem hiding this comment.
Corrected spelling in comment: 'We now req.method' should be 'We know req.method'
| // oxlint-disable-next-line no-invalid-fetch-options -- We now req.method is always 'POST', linter doesn't | |
| // oxlint-disable-next-line no-invalid-fetch-options -- We know req.method is always 'POST', linter doesn't |
| const format = args.values.format as OutputFormat; | ||
|
|
||
| transport.listen({ | ||
| source: args.values.manifestPath, |
There was a problem hiding this comment.
The source property is being set in the context, but according to the updated StorybookContext type in src/types.ts, this property no longer exists. The context should use request and optionally manifestProvider, but source has been removed in this refactoring.
| source: args.values.manifestPath, |
We'll mainly be working on
mainfrom now on..