Skip to content

Migrate the web runner, mcpdo and TUI bundles from tsup to tsdown #2797

Closed

Description

@cliffhall

Follow-up to #1492, which recommended migrating and moved clients/cli to tsdown as the prototype.

Remaining builds

In the order recommended by docs/tsdown-migration.md:

  1. Web runner: clients/web/tsup.runner.config.ts. A single entry with no JSX: the CLI change applied to a different file.
  2. mcpdo: clients/mcpdo/tsup.config.ts. Two entries (mcp-bin, mcpdod), so shared chunks. Check how src/daemon/ensure.ts resolves mcpdod.js against Rolldown's chunk naming.
  3. TUI: clients/tui/tsup.config.ts. JSX goes to inputOptions.transform.jsx, and ink-form / ink-scroll-view go to deps.alwaysBundle. __tests__/tsupConfig.test.ts imports tsup's Options type and needs rewriting against tsdown's config type, keeping its React-externals assertions.

Per client

  • deps.neverBundle built from a const EXTERNALS = [...] expanded with subpath patterns. A bare string matches the exact specifier only, so subpaths are otherwise inlined silently.
  • fixedExtension: false and outputOptions.comments: { jsdoc: false }, as in clients/cli/tsdown.config.ts.
  • Drop tsup. Drop the esbuild override / allowScripts entries only once npm ls esbuild is empty in that install; web probably keeps them for Vite.
  • Update BUNDLED_CLIENTS in scripts/verify-bundle-externals.mjs, the external-list paths in AGENTS.md and scripts/sdk-watch.mjs, and the config name in the client's tsconfig include.

Acceptance

  • No tsup dependency remains in any client.
  • verify:bundle-externals, each client's test:coverage and local:gate pass.
  • Each bundle emits the same set of bare imports as before.

Activity

  1. added this to the v2.14.0 milestone on Oct 25, 2026
  2. added
    v2Issues and PRs for v2
    choreMaintenance: deps, build tooling, CI, cleanup — no user-facing behavior change
    on Oct 25, 2026
  3. modified the milestones: v2.14.0, v2.13.0 on Oct 25, 2026
  4. self-assigned this
    on Oct 25, 2026
  5. cliffhall commented on Oct 25, 2026

    @cliffhall
    MemberAuthor

    Shipped in #2807.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

choreMaintenance: deps, build tooling, CI, cleanup — no user-facing behavior changev2Issues and PRs for v2

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions