Skip to content

v0.3.0

Choose a tag to compare

@jayhesselberth jayhesselberth released this 26 Aug 11:09
· 46 commits to main since this release

Changed

  • --install-claude now registers the hooks for you instead of printing a
    settings.json block and leaving the merge to you. The merge is done with
    jq and only with jq — rewriting the user's settings with string surgery
    in bash could silently disable every setting in the file. It is additive
    (appended to whatever .hooks already holds, other keys and their order
    untouched), idempotent (a hook already registered in settings.json or
    settings.local.json is skipped, matched by script name so a hand-edited
    path or a dropped bash prefix still counts, and a half-registered pair
    gets only its missing half), and it writes nothing when the result would be
    unchanged. The file it replaces is kept as settings.json.bak-STAMP, a
    symlinked settings.json is resolved first so a dotfiles repo gets its
    target edited rather than its link replaced, and one that does not parse is
    reported and left alone.

    Without jq on $PATH the block is printed to merge by hand exactly as
    before, with a note that installing one (pixi global install jq) lets
    sinteractive do it. jq stays an optional dependency.

Fixed

  • make nodes now installs the same set of files as make install-system,
    the Claude Code assets included; it had shipped only the script, man page
    and completion. The assets belong on the compute nodes because
    --install-claude resolves them relative to the running script: someone
    following the status-bar hint runs it from inside a session, which runs the
    node's /usr/local/bin copy, and with no <prefix>/share/sinteractive
    beside it that call failed. It worked only for people who had also
    installed into a shared $HOME.
  • make nodes renames the script into place instead of writing over it, for
    the reason tmux-push does: --attach SSHes into a node and runs the
    script there, so a copy can be executing while you install.
  • make nodes asks pdsh for the ssh rcmd module by name (-R ssh, override
    with PDSH_RCMD). pdsh defaults to rsh, so on a cluster with nothing on
    port 514 the target failed with connect: Connection refused for every
    node — and exporting PDSH_RCMD_TYPE=ssh did not help under sudo make,
    which resets the environment.

Added

  • make nodes-check reports the sinteractive version, whether the Claude
    Code assets are present, and the tmux version on every node in NODES.
    Read-only and unprivileged. Drift is otherwise invisible — sbatch spools
    the submitted copy of the script, so sessions keep working from whatever
    the submitting node has, and a stale compute node only shows up in
    --attach and --install-claude.

Full Changelog: v0.2.2...v0.3.0