v2.2.1 - Install 404 fix
If you installed Dispatch with npx and got a 404 instead of the board, this release is for you. The server booted, the API answered, terminal sessions worked, but the page itself never loaded. One line was responsible, and it only misbehaved on install paths that dev machines rarely have.
The bug
Express serves files through a library called send, and send has a dotfile policy: anything living under a dot-directory is treated as hidden and answered with a 404 by default. The subtle part is what "under" means. When you hand res.sendFile a bare absolute path, send inspects every directory segment of that path, all the way from the filesystem root. npx extracts packages under ~/.npm/_npx, and nvm keeps global installs under ~/.nvm, so on those installs the SPA fallback refused to serve its own index.html. The file was right there on disk with the correct permissions. send just declined on principle.
Dev checkouts and Homebrew globals have no dotted directory anywhere in their paths, which is how this shipped: every environment the app was exercised in was immune by accident.
The fix
The fallback now passes the filename relative to a root option instead of one absolute string. With a root set, send only applies the dotfile check to the relative part, which is the correct scope anyway: the install location is not the app's business, and files inside the web build that genuinely start with a dot still get protected. Static assets were never affected since express.static already resolves against a root.
Nothing else changed. No migration, no config edits, your board and sessions are untouched. If you were hitting the 404, npx @theyashgupta/dispatch@latest picks up 2.2.1, and dispatch update handles it on global installs.
Full changelog: v2.2.0...v2.2.1
Requires Node ≥ 22.22, tmux, ttyd, git, and the Claude Code CLI. Setup is in the README.