Skip to content

cli: packages/cli/dist/index.js invoked directly exits 0 with zero output, and dev's unknown-flag failure presents as a crashed boot (carved from #10087) #10111

Description

@os-zhuang

Carved by the triage seat (session session_012XVwvSDo9v5TFLgc8hFfLC) from #10087, whose RUNNER.md half stays in domain:devx. This card is the CLI half.

Measured (2026-08-20 at 4a7b3604c, run record #10085 environment notes)

  1. node packages/cli/dist/index.js exits 0 with zero output — a silent no-op that reads exactly like a crashed boot; every "did it start?" instinct (exit code, stderr) answers yes. The real entry point is packages/cli/bin/run.js. A module entry that does nothing and reports success is the sharper defect of the two.
  2. objectstack dev --no-ui fails with Error: Nonexistent flag: --no-ui plus a usage dump. Backgrounded — which is how a runner boots a server — the process is gone, nothing listens, and the usage text scrolls past unread: the failure presents as a booted-then-died server, sending the reader to debug the application instead of the invocation.

Scope

  • Make both failure modes loud and correctly attributed: the direct dist/index.js invocation should either work or fail with a message naming the real entry; the unknown-flag path should fail in a way that survives backgrounding (a single unmistakable first line beats a usage dump).
  • Not in scope: making dev accept --no-ui (or any flag-surface change) — that widens the public CLI surface and goes through the decision inbox as a Feature if wanted.
  • Re-measure first: the flag surface and entry-point behaviour may have moved since the stamp above; verify on current main before editing (premise_still_valid: false + no PR is a legitimate report).

Refs: #10087 (parent finding, RUNNER.md half) · #10085 (run record) · #9702 (the run that hit it).

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions