* build(compat): serve CLI falls back dist/ -> app/ for upgrade safety
Backward-compat hardening: the npm CLI prefers the new dist/ standalone but falls
back to the legacy app/ location, so an upgrade over a partially-replaced install
(or a package built before the app/->dist/ rename) still boots. Deployed runtimes
(VPS app/, Docker /app, Electron resources/app) are unchanged by design.
* docs(deploy): stop pm2 before rsync --delete to avoid transient chunk error
rsync --delete removing chunk files under a live server produced the transient [Shutdown] Cannot find module ./chunks/NNNNN.js. Stop the process first, then start with a clean module graph.
* test(cli): cover serve APP_DIR dist/->app/ backward-compat fallback