vnodehelper internal error: report the exception's message, not just its class
Found while working Task 8035 (a new prod host's first node showed `internal: C…` under the node, truncated, and the real cause was unrecoverable from the console).
Itemized:
1. `apps/jaahd/vnodehelper/server.py` answers an unexpected exception as `internal: <ClassName>` only; carry a short, secret-safe message (e.g. the exception's first line, length-capped) so the console and the order sweep's log say what actually broke.
2. The node row's red fault text under the name is truncated with no way to read it in full (no tooltip/expand); make the whole reason readable (tooltip or wrap).
3. `tools/cp_psql.sh main` failed with "Connection refused" at the DB on both the tunnel and direct routes on 2026-10-19 ~18:20 ET; check the bastion → RDS path for prod.
Out of scope: the first-boot grace itself (Task 8035).
Done means: an unhandled helper exception's reason in `/api/hosts` carries its message (test in apps/jaahd); the fault text is fully readable at 1280px and 390px (screenshots); cp_psql main connects.
Outcome
vnodehelper's internal error now carries the exception's first line (capped at 200 chars, secrets masked), with tests. The fault text already wraps in full at 1280/390px; 8035's "C…" was the row hidden under the progress drawer (draft #8059). cp_psql main connects. Quick gate green; PR #6285 queued in the merge lane.
Artifacts
Activity
- Created
- Run
- Runner started
- Runner ended (done)