3.3 KiB
3.3 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec | |
|---|---|---|---|---|---|---|---|
| 07-delete-cli-src | Delete apps/cli/src and drop CLI devDependencies | done | 3 |
|
plan.md | ../../specs/platform/requirements/go-dev-launcher.md |
Task 07: Delete apps/cli/src and drop CLI devDependencies
With make dev on the Go path, apps/cli/src/** has no consumer. Remove it and reduce
the package to what npm actually publishes.
Acceptance
apps/cli/src/,apps/cli/tsconfig.json, andapps/cli/vitest.config.tsare deleted. What remains ispackage.jsonandbin/{cli.js,native-shim.js,native-shim.test.mjs}.apps/cli/bin/native-shim.test.mjsruns on the Node built-in test runner (node:test+node:assert) instead of Vitest, with equivalent coverage;apps/cli/package.jsonhas nodevDependenciesand itstestscript isnode --test "bin/*.test.mjs"(implemented as such; a barenode --test bin/fails on this Node version, and barenode --testpicks up the file by pattern). Thedev,bundle, andprepublishOnlyscripts are removed or reduced to what still applies.name,version,bin,files,main,license,engines, andoptionalDependenciesinapps/cli/package.jsonare byte-identical to before, soscripts/release/publish-npm.sh:134,259and.github/workflows/release.yml:224,251,381keep working.make test-cli,make test, andmake test-windowspass;make typecheckpasses after being converted frompnpm -r exec tscto explicit--filterarguments (Makefile:650), sinceapps/clino longer has atsconfig.json.cd apps && pnpm install --frozen-lockfilesucceeds with a regeneratedapps/pnpm-lock.yaml, andpnpm run dead-codereports nothing new.
Verification
cd apps && pnpm install && pnpm --filter kandev test && pnpm run format:check && pnpm run dead-code
cd ..
make typecheck && make test-cli
Then confirm the published surface is unchanged:
cd apps/cli && npm pack --dry-run
The file list must be exactly bin/cli.js, bin/native-shim.js, package.json.
Files
- Deleted:
apps/cli/src/**(all 20 modules, their tests,service/,supervisor/),apps/cli/tsconfig.json,apps/cli/vitest.config.ts - Modified:
apps/cli/package.json,apps/cli/bin/native-shim.test.mjs,apps/pnpm-lock.yaml,Makefile(typecheck) - Check but likely unchanged:
apps/package.json(formatglobs still covercli),apps/pnpm-workspace.yaml(keepcliin the workspace),.github/workflows/frontend-tests.yml(theapps/cli/**path trigger stays valid)
Inputs
apps/cli/package.json— currentfiles/bin/optionalDependencies.apps/cli/bin/native-shim.test.mjs— the Vitest-based tests to port.scripts/release/publish-npm.shandscripts/release/publish-npm.test.mjs— what the release flow reads from this package.
Risks
- Deleting
tsconfig.jsonbreakspnpm -r exec tsc(Makefile:650) for the whole workspace, not justapps/cli. Convert that target in the same change or the typecheck job fails. esbuild,tar,tree-kill, andtsxdisappear from the lockfile. Re-run the full frontend test job locally, not just the CLI one, before pushing.- Do not remove
clifromapps/pnpm-workspace.yaml; prettier'sformatscript and the shim test both still expect it to be a workspace member.