Skip to content

Releases: cablehead/pai-sho

Release v0.4.1

Choose a tag to compare

@github-actions github-actions released this 07 Aug 14:12

v0.4.1

Highlights

  • --socket-owner <user> and --socket-mode <octal> for the daemon. When the operator runs as root (which macOS needs, to create the utun), the control socket is root-owned and the CLI would need sudo. --socket-owner chowns the socket to the given user right after bind and before the accept loop, so there is no window where the socket is live but still root-owned, and no wrapper poll. --socket-mode sets its permission bits. The supervised Homebrew launch uses these so the CLI needs no sudo.
  • --name <name> gives a node its own name. On the node itself, <name>.pai-sho points back at the node's own services (the --host address, 127.0.0.1 by default), so it can reach them by the same name a peer would use. That keeps one origin for a service whether you hit it locally or from another machine, which is what CORS needs. Works on both backends (the TUN in-stack resolver and the loopback --resolver).
  • Moved the spin dependency off the yanked 0.10.0.

Raw commits

  • fix: self-name resolves to --host, not hardcoded loopback (2026-08-07)
  • feat: --socket-owner/--socket-mode and --name self-resolution (#9) (2026-08-07)
  • chore: update spin off the yanked 0.10.0 (2026-08-07)
  • chore: bump to v0.4.1-dev (2026-08-07)

Release v0.4.0

Choose a tag to compare

@github-actions github-actions released this 07 Aug 04:27

v0.4.0

Highlights

  • Peers now get their own address and name on a private network the daemon runs for you. A peer is projected automatically the first time it announces a granted port, so its ports come up under a name like vibenv-ndyg.pai-sho with no manual step, and two peers can serve the same port without colliding. New project, unproject, and surfaces commands pin an address, rename, or take a projection down. (#4)
  • Optional private TUN network with --tun: surfaces live on 10.99.1.x and a built-in resolver answers *.pai-sho in-stack on 10.99.0.53, so .pai-sho names resolve with nothing added to hosts. Without --tun, surfaces fall back to loopback addresses (127.0.1.x) and you serve the resolver with --resolver. (#4)
  • Updated to iroh 1.0. (#5)
  • Connections are accepted through iroh's Router now, with graceful shutdown that drains in-flight connections on stop instead of dropping them. Forwarded traffic is flushed after each chunk with TCP_NODELAY set. (#7)

Raw commits

  • chore: refresh crate description, add keywords and categories (2026-08-07)
  • docs: new tagline, rename example to vibenv-ndyg, fix grant wording (2026-08-07)
  • docs: rework README around the private TUN network model (2026-08-07)
  • docs: ports come up by name, not on localhost (2026-08-07)
  • docs: drop distracting aside in the example intro (2026-08-07)
  • docs: simpler wording, doesn't collide over never collides (2026-08-07)
  • docs: add pigeons inspiration and Discord link to README (2026-08-07)
  • refactor: accept via iroh's Router (plus copy_flush/nodelay) (#7) (2026-08-06)
  • chore: update iroh to 1.0 (#5) (2026-08-06)
  • feat: peer surfaces and an owned .pai-sho network (#4) (2026-08-06)
  • chore: bump to v0.3.1-dev (2026-08-04)
  • chore: sync crate description with README, fix release publish flow (2026-08-04)

Release v0.3.0

Choose a tag to compare

@github-actions github-actions released this 23 Jul 17:28

Highlights

  • Authorized mesh: Peers now have a stable identity, and access is granted through explicit directed grants plus phone-home rather than open exposure. This reworks the peer/daemon networking core around who is allowed to reach whom.
  • pin command -- host-attested enrollment: New subcommand for enrolling a peer via host attestation (ADR 0003), superseding the token half of ADR 0002.

Changelog

  • feat: authorized mesh -- stable identity, directed grants, phone-home
  • feat: pin command -- host-attested enrollment (ADR 0003)
  • docs: ADR 0003 host-attested enrollment (supersede token half of 0002)
  • docs: list pin in the command reference
  • docs: add pai sho illustration to README
  • docs: fix over-eager transparency in README illustration

Release v0.2.2

Choose a tag to compare

@github-actions github-actions released this 01 Apr 04:38

Highlights

  • Fix connection hangs: Stream processing (port announcements, tunnel requests) is now spawned into separate tasks instead of running inside the select loop. Previously, a slow uni stream read could block tunnel requests from being accepted.

Changelog

  • fix: spawn stream handlers out of select loop to avoid blocking
  • docs: rewrite README with origin story, comparisons, and updated tagline

Release v0.2.1

Choose a tag to compare

@github-actions github-actions released this 30 Mar 18:28

Changelog

  • feat: add --version flag

Release v0.2.0

Choose a tag to compare

@github-actions github-actions released this 30 Mar 17:51

Highlights

  • iroh 0.94 -> 0.97: Better network recovery after sleep/wake -- longer path idle timeouts (15s), faster relay health checks, improved NAT holepunching after network changes. Breaking: peers running v0.1.x cannot connect to v0.2.0.

Changelog

  • deps: upgrade iroh 0.94 -> 0.97
  • docs: rewrite README with use case and comparisons
  • docs: enforce ASCII-only across repo

Release v0.1.2

Choose a tag to compare

@github-actions github-actions released this 29 Mar 13:07

Highlights

  • Auto-reconnection: Peers now automatically reconnect when connections drop (e.g. laptop sleep/wake). Uses exponential backoff (1s to 60s). Incoming reconnections from the other side are detected immediately, skipping the backoff wait.

  • Unified connection handler: Both control messages (port announcements) and tunnel requests are now handled in a single connection loop, fixing a bug where inbound peers couldn't process tunnel requests after reconnection.

Changelog

  • feat: add peer auto-reconnection with exponential backoff
  • docs: add cargo and brew install options
  • fix: improve cargo token collection in release workflow
  • chore: add license and repository metadata

Release v0.1.1

Choose a tag to compare

@github-actions github-actions released this 18 Jan 19:49
  • docs: add homebrew and cargo publish to release flow
  • docs: add install section

Release v0.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Jan 05:48
  • ci: add cross-platform release workflow with dagger
  • docs: add a status note to readme
  • feat: add -a/--add and -e/--expose flags to daemon
  • refactor: remove key persistence, use ephemeral identity
  • docs: add README
  • refactor: use 127.0.0.1 for all bindings
  • fix: track incoming peers and send exposed ports on connect
  • refactor: auto-accept unknown peers, random IP assignment
  • feat: p2p TCP port forwarding over iroh