You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v0.6.0 shipped with a broken CLI launch — px @alan-jowett/promptkit failed with:
error: too many arguments. Expected 0 arguments but got 3.
The root cause was shell: true in spawn() splitting the bootstrap prompt string into multiple arguments. This was fixed in v0.6.1 (PR #197), but no CI test caught it before release.
Proposal
Add a CI smoke test that verifies the CLI can launch without errors. This should run on every PR that touches cli/ files.
Minimum viable test
// Verify spawn args are constructed correctly (no shell splitting)const{ launchInteractive }=require('../lib/launch');// Mock spawn to capture the actual args passed// Assert: args array contains the full bootstrap prompt as a single element// Assert: spawn options do NOT include shell: true
Stretch goals
Dry-run mode: Add a --dry-run flag to the CLI that prints the spawn command + args without actually launching the LLM CLI. CI can verify the output.
Integration test: On a runner with copilot available, actually launch with --help or a no-op command to verify the spawn works end-to-end.
npm pack test: Run pm pack and verify the tarball contains all expected files (content/, lib/, bin/) before publishing.
Problem
v0.6.0 shipped with a broken CLI launch —
px @alan-jowett/promptkitfailed with:The root cause was
shell: trueinspawn()splitting the bootstrap prompt string into multiple arguments. This was fixed in v0.6.1 (PR #197), but no CI test caught it before release.Proposal
Add a CI smoke test that verifies the CLI can launch without errors. This should run on every PR that touches
cli/files.Minimum viable test
Stretch goals
--dry-runflag to the CLI that prints the spawn command + args without actually launching the LLM CLI. CI can verify the output.copilotavailable, actually launch with--helpor a no-op command to verify the spawn works end-to-end.pm packand verify the tarball contains all expected files (content/, lib/, bin/) before publishing.Context
pm install -g npm@lateststep in the publish workflow (PR Fix npm publish: remove broken self-upgrade step #196) and an npm OIDC trusted publishing issue that required manual publish.ode --test tests/*.test.js) coverslist,search, andshowcommands but not the launch path.Files involved
cli/lib/launch.js— spawn logiccli/bin/cli.js— CLI entry point.github/workflows/validate-manifest.yml— CI workflow (add test step here)