Skip to content

0.56.0

Released 2026-11-04.

  • Reload every pi session after the update (/reload). The first pi session that loads 0.56.0 restarts an older sb server.
  • A computer that is not an unattended device behaves as before.

A computer nobody sits at (a build box, a server) can now take work from other people’s computers over Straw Link. Its setup is in docs/unattended-device.md.

  • Policy file. /etc/straw-link/policy.json with unattended: true gives the device its teams and the trust of each sender. config.json’s link section is then ignored. A policy that fails the owner or write check, or whose teams are malformed, is refused, and no holder starts.
  • No boot pi session. The sb server is the link holder, run beside the Herdr server as two systemd user units.
  • Joining with join.txt. The device makes its device.id on first start; an admin pins an invite to that id and the infra drops it in link/join.txt (the device user’s own file, mode 600). The holder takes only an invite pinned to its id, joins with the project and share from the policy, and deletes a file that fails a check, so a planted invite cannot make the device an attended member or an admin. A join cut off by a restart resumes when the earlier attempt can be retried.
  • Towers for a controller. When a message from a sender at dispatch trust waits for a project with no tower, the device opens one: a workspace in the project, then the server-run tower. It never does this for a sender below dispatch, outside the project, or in a workspace the sender named.
  • Dialogs travel. A question waiting in any session on the device (select, confirm, ask_user_question, never a secret_drop) goes to its dispatch controllers, who answer it as a card on their own page or paired phone. The first valid answer wins; the other cards say it was answered elsewhere, and a controller that loses dispatch is told the question was withdrawn.
  • Unit status and notices. Every minute and on a change, each dispatch controller gets the device’s tower units in the team’s project: state, running monitors and last report, shown under the device (“no status lately” after three minutes). A notice comes once when a run crashes, times out, is quit or refused, when a question waits 30 minutes or is too large to forward, and when a tower fails to open.