Skip to content

chore: migrate toolchain to vite-plus#6

Merged
0xFANGO merged 16 commits intomainfrom
ralph/listenhub-cli--60
Apr 18, 2026
Merged

chore: migrate toolchain to vite-plus#6
0xFANGO merged 16 commits intomainfrom
ralph/listenhub-cli--60

Conversation

@0xFANGO
Copy link
Copy Markdown
Collaborator

@0xFANGO 0xFANGO commented Apr 18, 2026

Summary

  • Migrate build from tsc to vp pack (tsdown), outputting single-file bundle dist/cli.mjs
  • Replace xo (ESLint+Prettier) with vp lint (oxlint) + vp fmt (oxfmt)
  • Add vitest skeleton via vp test
  • Unify static checks under vp check (fmt + lint + type checks)
  • Downgrade TypeScript to 5.9.x for vite-plus peer compatibility
  • Add ready script as quality gate (vp check && vp test run)
  • Add vite.config.ts centralizing pack/lint config

Part of marswaveai/listenhub-ralph#60

Test plan

  • pnpm build produces dist/cli.mjs (46 KB)
  • node dist/cli.mjs --help prints all 10 commands
  • pnpm check passes (fmt + lint + type checks)
  • pnpm ready passes (check + test)
  • listenhub auth login + listenhub podcast list works end-to-end

Note

Medium Risk
Moderate risk because it replaces the build/lint/test toolchain and changes the published bin output path to a bundled dist/cli.mjs, which could affect packaging and runtime behavior if bundling/externalization differs from tsc output.

Overview
Migrates the CLI toolchain from tsc/xo to vite-plus: builds now use vp pack to produce a single bundled ESM artifact at dist/cli.mjs, with package.json bin/files updated accordingly and .gitignore switched from distribution/ to dist/.

Replaces lint/format/test workflows with vp lint (oxlint), vp fmt (oxfmt), and vp test (vitest), adds a ready quality-gate script (vp check && vp test run), downgrades TypeScript to ^5.9.3 for peer compatibility, and adds centralized config via vite.config.ts (plus a minimal vitest.config.ts). Documentation tables were reflowed and internal design/plan docs were added for the migration.

Reviewed by Cursor Bugbot for commit 5e7b1a4. Configure here.

0xFANGO added 11 commits April 18, 2026 18:29
Design for migrating CLI toolchain from tsc+xo to vite-plus,
aligning with SDK. Covers build, lint, format, test, and deps.

Part of marswaveai/listenhub-ralph#60
1. Keep typescript dep, downgrade to ^5.9.3 to match SDK and
   vite-plus-core peer range (^5.0.0). Remove pnpm override.
2. Correct vp check definition: aggregates fmt+lint+typecheck,
   not a standalone type checker.
3. Add vite.config.ts spec with pack entry, lint typeAware/typeCheck.
4. Acknowledge test semantics change, add `ready` script as quality gate.

Part of marswaveai/listenhub-ralph#60
11-task plan covering: vite.config.ts, dep migration, scripts,
tsconfig, xo removal, vitest skeleton, build verification,
format/lint pass, static checks, SDK upgrade, and PR creation.

Part of marswaveai/listenhub-ralph#60
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 5e7b1a4. Configure here.

Comment thread package.json Outdated
0xFANGO added 5 commits April 18, 2026 19:41
vitest 2.x only supports vite 5.x. vitest 4.x declares
peerDependencies vite: ^6.0.0 || ^7.0.0 || ^8.0.0.
Run vp check, test, pack, and smoke-test the built CLI on push
to main and on pull requests. Mirrors SDK CI pattern.
Add fmt block to vite.config.ts with singleQuote, useTabs,
bracketSpacing to match existing code style. vp fmt only reads
vite.config.ts, not .oxfmtrc.json.
@0xFANGO 0xFANGO merged commit a2cb689 into main Apr 18, 2026
1 check passed
@0xFANGO 0xFANGO deleted the ralph/listenhub-cli--60 branch April 18, 2026 12:13
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