• v2.2.3+rs.1 769a1dd53a

    portal-tunnel-rs v2.2.3+rs.1
    All checks were successful
    Rust CI / Format, lint, and test (push) Successful in 57s
    Build and publish container image / Build linux/arm64 image (push) Successful in 3m48s
    Stable

    ada released this 2026-05-20 04:01:28 +00:00 | 19 commits to master since this release

    portal-tunnel-rs v2.2.3+rs.1

    Compatibility update for upstream portal v2.2.3.

    This release updates portal-tunnel-rs for the upstream portal v2.2.3 compatibility surface. There are no behavior, configuration, or protocol changes in this release. Protocol version remains 7.

    Compatibility

    • Upstream portal: v2.2.3
    • Protocol version: 7
    • Scope: relay-server compatibility update for the existing v2.2.x relay surface

    Changed

    • Updated relay-server compatibility metadata and fixtures for upstream portal v2.2.3.
    • Updated unsupported-feature documentation for the v2.2.3 compatibility surface.

    Upgrade notes

    • Breaking changes: none known
    • Configuration changes: none
    • Migration required: none
    • Existing deployments can upgrade by replacing the image tag and restarting the relay server.

    Artifacts

    Image:
    code.rly.best/gofix/portal-tunnel-rs:v2.2.3-rs.1
    
    Git tag:
    v2.2.3+rs.1
    
    Source revision:
    769a1dd53ae2b6806c0b6687fab10392ed826979
    
    Downloads
  • v2.2.2+rs.2 a96d959f33

    portal-tunnel-rs v2.2.2+rs.2
    All checks were successful
    Rust CI / Format, lint, and test (push) Successful in 53s
    Build and publish container image / Build linux/arm64 image (push) Successful in 3m13s
    Stable

    ada released this 2026-05-16 07:34:52 +00:00 | 20 commits to master since this release

    portal-tunnel-rs v2.2.2+rs.2

    Port patch on the v2.2.2 upstream target.

    Changed

    • Hardened relay HopMux outbound session handling under peer churn.
    • Finished outbound sessions are pruned before reuse/open, preventing stale peers from accumulating after disconnects.
    • Documented the development self-merge policy and the remaining multi-hop hardening scope.

    Compatibility

    • Upstream target: portal v2.2.2.
    • Protocol version: 7.
    • Interop window preserved: current documented v2.2.2 relay surface plus existing v2.1.8/v2.1.9 hop-route/multi-hop compatibility where documented.
    • Scope remains relay-server only; official upstream portal CLI remains the supported production client.

    Artifacts

    Validation

    • Dev gate:

      • Tagged dev deploy: v2.2.2+rs.2-dev.1
      • Dev image: code.rly.best/gofix/portal-tunnel-rs:v2.2.2-rs.2-dev.1
      • Deployed dev image reported release_version=v2.2.2+rs.2-dev.1 on /sdk/domain.
      • Official portal v2.2.2 direct HTTP smoke passed through rly.best.
      • Official portal v2.2.2 explicit multi-hop smoke passed with rly.best as the middle relay.
      • Production expose services were re-attached after the relay switch and public endpoints were verified.
    • Promotion:

      • Production image build succeeded and registry tag was verified.
      • Production relay reports protocol_version=7 and release_version=v2.2.2+rs.2.
      • https://rly.best/healthz and https://rly.best/sdk/domain passed.
      • Post-promotion direct and multi-hop official-client smokes passed.
      • Public production endpoints were re-attached and verified.

    Operational notes

    • Existing relay identity/certificate state was preserved across the dev and production container switches.
    • Previous relay containers were kept as timestamped rollback backups on the deployment host.
    • The object-storage endpoint returns HTTP 403 for unauthenticated root access; this was treated as a successful connectivity check rather than an app failure.
    Downloads
  • v2.2.1+rs.1 03af76ce18

    v2.2.1+rs.1
    All checks were successful
    Rust CI / Format, lint, and test (pull_request) Successful in 1m35s
    Build and publish container image / Build linux/arm64 image (push) Successful in 3m2s
    Stable

    gofix released this 2026-05-09 12:16:39 +00:00 | 24 commits to master since this release

    First Rust port build retargeted at upstream portal-tunnel v2.2.1. This remains scoped to the relay-server replacement surface.

    Highlights

    • Retarget relay compatibility to upstream v2.2.1, including the v2.2.1 ECH route hostname, hostname-hash, register challenge, and hop-route wire shapes.
    • Match the upstream v2.2.1 default two-minute lease TTL behavior while keeping renewal/unregister lifecycle compatibility.
    • Promote cold-start ECH DNS state so existing active records can be surfaced correctly after relay restart.
    • Keep compatibility with v2.1.8/v2.1.9 hop-route signatures for existing multi-hop interop paths.
    • Refresh official upstream client smoke scripts and API/JWT shape checks to use v2.2.1 assets by default.

    Container image

    docker pull code.rly.best/gofix/portal-tunnel-rs:v2.2.1-rs.1
    

    The git tag is v2.2.1+rs.1; the OCI image tag substitutes + with - because OCI tags do not allow +. Published images are linux/arm64 only.

    Compatibility

    Validated against the official upstream portal v2.2.1 client surface for relay basics, service discovery, HTTP SNI passthrough, lifecycle, JWT verification, raw TCP, UDP, selected API/discovery response shapes, and explicit multi-hop interop.

    Client CLI/SDK and other non-relay components remain out of scope. See docs/unsupported-features.md for the support matrix.

    Verification

    The release commit passed the repository Linux Docker CI path:

    scripts/dev-rust-ci.sh
    

    That runs cargo fmt --check, cargo test --locked, and cargo clippy --locked --all-targets -- -D warnings.

    Versioning

    Releases follow v<upstream>+rs.<n>: the leading version pins the upstream portal-tunnel release this build is compatible with, and rs.<n> is the Rust port build counter for that upstream version.

    Downloads
  • v2.2.0+rs.1 c2270c94b6

    v2.2.0+rs.1
    All checks were successful
    Rust CI / Format, lint, and test (push) Successful in 1m12s
    Build and publish container image / Build linux/arm64 image (push) Successful in 3m40s
    Stable

    gofix released this 2026-05-09 08:34:45 +00:00 | 25 commits to master since this release

    First Rust port build retargeted at upstream portal-tunnel v2.2.0. This remains scoped to the relay-server replacement surface.

    Highlights

    • Retarget relay compatibility to upstream v2.2.0, with v2.2 ECH route hostname/hash fields, ECH config-list handling, and hop-route entry access token responses (#64).
    • Sync ECH DNS records: create/update A and HTTPS records with ech=... for ECH-backed public hostnames across direct register, unregister, hop route register/delete, rollback, and expired-record cleanup (#65).
    • Add ACME renew hook (#63).
    • Harden relay public surfaces (#62).
    • Preserve v2.1.x interop via legacy /sdk/connect bearer fallback and legacy keyless signing for active pre-ECH public routes.

    Container image

    docker pull code.rly.best/gofix/portal-tunnel-rs:v2.2.0-rs.1
    

    The git tag is v2.2.0+rs.1; the OCI image tag substitutes + with - because OCI tags do not allow +. Published images are linux/arm64 only.

    Compatibility

    Validated against the official upstream portal v2.2.0 CLI on rly.best, including ECH route hostname generation and a live ECH HTTPS RR smoke (Go 1.26 TLS client returned ECHAccepted=true against an upstream-issued ECH hostname). Backward compatibility with the official portal v2.1.9 CLI was also verified.

    Client CLI/SDK and other non-relay components remain out of scope. See docs/unsupported-features.md for the support matrix.

    Versioning

    Releases follow v<upstream>+rs.<n>: the leading version pins the upstream portal-tunnel release this build is compatible with, and rs.<n> is the Rust port build counter for that upstream version.

    Downloads
  • v2.1.9+rs.1 670d338184

    v2.1.9+rs.1
    All checks were successful
    Rust CI / Format, lint, and test (push) Successful in 56s
    Build and publish container image / Build linux/arm64 image (push) Successful in 3m20s
    Stable

    gofix released this 2026-05-03 18:27:07 +00:00 | 30 commits to master since this release

    First stable Rust port build retargeted at upstream portal-tunnel v2.1.9. This remains scoped to the relay-server replacement surface.

    Container image

    docker pull code.rly.best/gofix/portal-tunnel-rs:v2.1.9-rs.1
    

    The git tag is v2.1.9+rs.1; the OCI image tag substitutes + with - because OCI tags do not allow +. Published images are linux/arm64 only.

    Compatibility

    Validated against the official upstream portal v2.1.9 client and upstream Go relay tag v2.1.9 for HTTP SNI passthrough, raw TCP, UDP datagrams, lease renew/unregister lifecycle, API/discovery shape, lease JWT verification, and live explicit 3-hop relay interop with rly.best as the middle hop.

    Client CLI/SDK and other non-relay components remain out of scope. See docs/unsupported-features.md for the support matrix.

    Versioning

    Releases follow v<upstream>+rs.<n>: the leading version pins the upstream portal-tunnel release this build is compatible with, and rs.<n> is the Rust port build counter for that upstream version.

    Downloads
  • v2.1.8+rs.1 bdc58a8305

    v2.1.8+rs.1
    All checks were successful
    Rust CI / Format, lint, and test (push) Successful in 3m26s
    Build and publish container image / Build linux/arm64 image (push) Successful in 5m20s
    Stable

    gofix released this 2026-05-03 17:40:59 +00:00 | 31 commits to master since this release

    First stable Rust port build, wire-compatible with upstream portal-tunnel v2.1.8. Suitable as a lightweight drop-in for the upstream relay-server.

    Container image

    docker pull code.rly.best/gofix/portal-tunnel-rs:v2.1.8-rs.1
    

    Multi-arch manifest (linux/amd64, linux/arm64). The OCI tag substitutes + with - because the OCI tag spec disallows +; the git tag is v2.1.8+rs.1.

    Compatibility

    Targets 1:1 protocol/API compatibility with upstream v2.1.8 for the relay-server surface — exercised by HTTP/TCP/UDP smokes, lifecycle, JWT, API-shape comparison, and 3-hop multi-hop interop using official upstream clients. Client CLI/SDK and other non-relay components are out of scope. See docs/unsupported-features.md for the support matrix.

    Versioning

    Releases follow the k3s convention v<upstream>+rs.<n>: the leading version pins the upstream portal-tunnel release this build is compatible with, and rs.<n> is the Rust port build counter for that upstream version. Future port-only patches reuse v2.1.8+rs.<n>; a new upstream target resets the counter (v2.1.9+rs.1).

    Downloads