• v1.5.3 67c948bbe2

    v1.5.3 Stable

    nntrivi2001 released this 2026-09-10 10:10:52 +00:00 | 237 commits to main since this release

    Fixed

    Every tmux-backed run was silently unpersisted, so a resumed session showed nothing.

    dashboard_runs.mode is NOT NULL, recordRun swallows insert errors by design, and pty-run.js passed mode: null — so the insert threw on every single run and nothing was recorded. In a live database the newest run row predated pty-run.js replacing run-spawner.js.

    publicRun reads cwd, model, prompt_preview, started_at and session_id off that row (the handle itself is recomputed from tmux on every read), which produced the two visible symptoms:

    • the runs modal showed a live row with no cwd, no model, no prompt and a start date of Jan 1 1970;
    • a resumed session kept its separate external badge, because the client dedupes an external session against the session ids carried by run rows and no run row ever carried one.

    Changes:

    • pty-run.js records mode: "interactive" — every run here is one interactive pane.
    • dashboard-runs.js still never fails a live run on a db error, but now warns instead of swallowing silently. That silence is what hid this for six weeks.
    • RunHistory renders a missing start time as - instead of dating the row to the epoch.

    Adopting a busy pane no longer reports work it did not do. A start/resume against a lane whose pane is already running an agent now returns 409 ERUNLIVE (from the lane start action and POST /api/run) when the request carried a prompt or a resumeSessionId — that argv cannot be typed over a live agent, so answering 200 claimed a resume that never spawned. A start that asks for nothing but a pane still adopts it silently.

    Verification

    • server/__tests__/pty-run.test.js +4 tests (row lands with cwd/model/prompt/lane/started_at and a non-null mode; a resumed run carries the session id; the two ERUNLIVE refusals; a bare start still adopts). Regression proven by flipping mode back to null — the suite fails.
    • npm run test:server 1707 passing · npm run test:client 488 passing.
    Downloads