Skip to content

Merge next to main#99

Closed
JReinhold wants to merge 32 commits intomainfrom
next
Closed

Merge next to main#99
JReinhold wants to merge 32 commits intomainfrom
next

Conversation

@JReinhold
Copy link
Copy Markdown
Contributor

We'll mainly be working on main from now on..

JReinhold and others added 30 commits October 30, 2025 14:39
* 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>
valentinpalkovic and others added 2 commits December 2, 2025 10:27
* add rationale to dedent.ts

* simplify claude logging

* simplify logging setup

* clean lock file

* add back system message types

* upgrade clack
@JReinhold JReinhold self-assigned this Dec 3, 2025
Copilot AI review requested due to automatic review settings December 3, 2025 14:03
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Dec 3, 2025

🦋 Changeset detected

Latest 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
Some errors occurred when validating the changesets config:
The package or glob expression "@storybook/mcp-eval*" is specified in the `ignore` option but it is not found in the project. You may have misspelled the package name or provided an invalid glob expression. Note that glob expressions must be defined according to https://www.npmjs.com/package/micromatch.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 source URL string to request object-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

Comment thread packages/mcp/src/utils/parse-react-docgen.ts
export const experimental_devServer: PresetProperty<
'experimental_devServer'
> = async (app, options) => {
// There is error handling here. The can make the whole storybook app crash with.
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected grammar in comment: 'There is error handling here' should be 'There is no error handling here'

Suggested change
// 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:

Copilot uses AI. Check for mistakes.
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
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected spelling in comment: 'We now req.method' should be 'We know req.method'

Suggested change
// 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

Copilot uses AI. Check for mistakes.
Comment thread packages/mcp/bin.ts
const format = args.values.format as OutputFormat;

transport.listen({
source: args.values.manifestPath,
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
source: args.values.manifestPath,

Copilot uses AI. Check for mistakes.
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.

7 participants