From b87d3ba8f47bb399deeb42cda7b367a181af6fef Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 18:43:22 +0000 Subject: [PATCH] chore(main): release 0.40.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 16 +++++++ Cargo.toml | 84 +++++++++++++++++------------------ 3 files changed, 59 insertions(+), 43 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 418b49e..6507815 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.39.0" + ".": "0.40.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 73f6d47..1cbf240 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,22 @@ Record breaking or significant changes here. All dates are UTC. +## [0.40.0](https://github.com/GeiserX/tailscale-rs/compare/v0.39.0...v0.40.0) (2026-06-15) + + +### Features + +* add engine surface for daemon — listen port, peer SSH host keys, re_stun ([#263](https://github.com/GeiserX/tailscale-rs/issues/263)) ([66f8626](https://github.com/GeiserX/tailscale-rs/commit/66f86268a9d578ed6a66fc8765405c6d48b461fb)) +* auto re-auth on node-key expiry instead of going permanently offline ([#260](https://github.com/GeiserX/tailscale-rs/issues/260)) ([fea03ab](https://github.com/GeiserX/tailscale-rs/commit/fea03ab0f6ef38a796ed5b7577bd398638c85606)) +* **control:** advertise and decode zstd-compressed map responses ([#257](https://github.com/GeiserX/tailscale-rs/issues/257)) ([cc51772](https://github.com/GeiserX/tailscale-rs/commit/cc517725d29daf8ce36b1ec62068ff2251c7e55e)) +* **hostinfo:** detect Container + Env to match Go hostinfo.New ([#255](https://github.com/GeiserX/tailscale-rs/issues/255)) ([26d5abc](https://github.com/GeiserX/tailscale-rs/commit/26d5abc3959a412b571d8185bb0b477eb5890487)) +* opt-in network monitor with auto-rebind on link change (slice a: core + supervisor) ([#261](https://github.com/GeiserX/tailscale-rs/issues/261)) ([14d885a](https://github.com/GeiserX/tailscale-rs/commit/14d885acc771aac331f2042f138ca6ad2a5f48fb)) + + +### Bug Fixes + +* poll for admin approval instead of dying when no auth URL ([#262](https://github.com/GeiserX/tailscale-rs/issues/262)) ([c3e27c7](https://github.com/GeiserX/tailscale-rs/commit/c3e27c7c06b7fc069a58746987d053ddec810468)) + ## [0.39.0](https://github.com/GeiserX/tailscale-rs/compare/v0.38.0...v0.39.0) (2026-06-15) diff --git a/Cargo.toml b/Cargo.toml index 45a0683..3d8733e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,7 +54,7 @@ members = [ edition = "2024" license = "BSD-3-Clause" publish = true -version = "0.39.0" +version = "0.40.0" repository = "https://github.com/GeiserX/tailscale-rs" # This disagrees with the README's stated MSRV. That's intentional: this field causes cargo to error @@ -140,49 +140,49 @@ zerocopy = { version = "0.8", features = ["derive"] } zeroize = { version = "1.8", default-features = false, features = ["derive"] } # local workspace deps -tailscale = { path = ".", package = "geiserx_tailscale", version = "0.39.0" } # x-release-please-version -ts_array256 = { path = "ts_array256", package = "geiserx_ts_array256", version = "0.39.0" } # x-release-please-version -ts_bart = { path = "ts_bart", package = "geiserx_ts_bart", version = "0.39.0" } # x-release-please-version -ts_bart_packetfilter = { path = "ts_bart_packetfilter", package = "geiserx_ts_bart_packetfilter", version = "0.39.0" } # x-release-please-version -ts_bitset = { path = "ts_bitset", package = "geiserx_ts_bitset", default-features = false, version = "0.39.0" } # x-release-please-version -ts_capabilityversion = { path = "ts_capabilityversion", package = "geiserx_ts_capabilityversion", version = "0.39.0" } # x-release-please-version +tailscale = { path = ".", package = "geiserx_tailscale", version = "0.40.0" } # x-release-please-version +ts_array256 = { path = "ts_array256", package = "geiserx_ts_array256", version = "0.40.0" } # x-release-please-version +ts_bart = { path = "ts_bart", package = "geiserx_ts_bart", version = "0.40.0" } # x-release-please-version +ts_bart_packetfilter = { path = "ts_bart_packetfilter", package = "geiserx_ts_bart_packetfilter", version = "0.40.0" } # x-release-please-version +ts_bitset = { path = "ts_bitset", package = "geiserx_ts_bitset", default-features = false, version = "0.40.0" } # x-release-please-version +ts_capabilityversion = { path = "ts_capabilityversion", package = "geiserx_ts_capabilityversion", version = "0.40.0" } # x-release-please-version ts_cli_util = { path = "ts_cli_util" } -ts_control = { path = "ts_control", package = "geiserx_ts_control", version = "0.39.0" } # x-release-please-version -ts_control_noise = { path = "ts_control_noise", package = "geiserx_ts_control_noise", version = "0.39.0" } # x-release-please-version -ts_control_serde = { path = "ts_control_serde", package = "geiserx_ts_control_serde", version = "0.39.0" } # x-release-please-version -ts_dataplane = { path = "ts_dataplane", package = "geiserx_ts_dataplane", version = "0.39.0" } # x-release-please-version -ts_derp = { path = "ts_derp", package = "geiserx_ts_derp", version = "0.39.0" } # x-release-please-version -ts_disco_protocol = { path = "ts_disco_protocol", package = "geiserx_ts_disco_protocol", version = "0.39.0" } # x-release-please-version -ts_dns_wire = { path = "ts_dns_wire", package = "geiserx_ts_dns_wire", version = "0.39.0" } # x-release-please-version -ts_dynbitset = { path = "ts_dynbitset", package = "geiserx_ts_dynbitset", version = "0.39.0" } # x-release-please-version -ts_forwarder = { path = "ts_forwarder", package = "geiserx_ts_forwarder", version = "0.39.0" } # x-release-please-version -ts_hexdump = { path = "ts_hexdump", package = "geiserx_ts_hexdump", version = "0.39.0" } # x-release-please-version -ts_host_net = { path = "ts_host_net", package = "geiserx_ts_host_net", version = "0.39.0" } # x-release-please-version -ts_keys = { path = "ts_keys", package = "geiserx_ts_keys", version = "0.39.0" } # x-release-please-version -ts_magicsock = { path = "ts_magicsock", package = "geiserx_ts_magicsock", version = "0.39.0" } # x-release-please-version -ts_metrics = { path = "ts_metrics", package = "geiserx_ts_metrics", version = "0.39.0" } # x-release-please-version -ts_netcheck = { path = "ts_netcheck", package = "geiserx_ts_netcheck", version = "0.39.0" } # x-release-please-version -ts_netmon = { path = "ts_netmon", package = "geiserx_ts_netmon", version = "0.39.0" } # x-release-please-version -ts_netstack_smoltcp = { path = "ts_netstack_smoltcp", package = "geiserx_ts_netstack_smoltcp", version = "0.39.0" } # x-release-please-version -ts_netstack_smoltcp_core = { path = "ts_netstack_smoltcp_core", package = "geiserx_ts_netstack_smoltcp_core", version = "0.39.0" } # x-release-please-version -ts_netstack_smoltcp_socket = { path = "ts_netstack_smoltcp_socket", package = "geiserx_ts_netstack_smoltcp_socket", version = "0.39.0" } # x-release-please-version -ts_nodecapability = { path = "ts_nodecapability", package = "geiserx_ts_nodecapability", version = "0.39.0" } # x-release-please-version -ts_overlay_router = { path = "ts_overlay_router", package = "geiserx_ts_overlay_router", version = "0.39.0" } # x-release-please-version -ts_packet = { path = "ts_packet", package = "geiserx_ts_packet", version = "0.39.0" } # x-release-please-version -ts_packetfilter = { path = "ts_packetfilter", package = "geiserx_ts_packetfilter", version = "0.39.0" } # x-release-please-version -ts_packetfilter_serde = { path = "ts_packetfilter_serde", package = "geiserx_ts_packetfilter_serde", version = "0.39.0" } # x-release-please-version -ts_packetfilter_state = { path = "ts_packetfilter_state", package = "geiserx_ts_packetfilter_state", version = "0.39.0" } # x-release-please-version -ts_peercapability = { path = "ts_peercapability", package = "geiserx_ts_peercapability", version = "0.39.0" } # x-release-please-version -ts_http_util = { path = "ts_http_util", package = "geiserx_ts_http_util", version = "0.39.0" } # x-release-please-version -ts_tka = { path = "ts_tka", package = "geiserx_ts_tka", version = "0.39.0" } # x-release-please-version -ts_tls_util = { path = "ts_tls_util", package = "geiserx_ts_tls_util", version = "0.39.0" } # x-release-please-version -ts_runtime = { path = "ts_runtime", package = "geiserx_ts_runtime", version = "0.39.0" } # x-release-please-version +ts_control = { path = "ts_control", package = "geiserx_ts_control", version = "0.40.0" } # x-release-please-version +ts_control_noise = { path = "ts_control_noise", package = "geiserx_ts_control_noise", version = "0.40.0" } # x-release-please-version +ts_control_serde = { path = "ts_control_serde", package = "geiserx_ts_control_serde", version = "0.40.0" } # x-release-please-version +ts_dataplane = { path = "ts_dataplane", package = "geiserx_ts_dataplane", version = "0.40.0" } # x-release-please-version +ts_derp = { path = "ts_derp", package = "geiserx_ts_derp", version = "0.40.0" } # x-release-please-version +ts_disco_protocol = { path = "ts_disco_protocol", package = "geiserx_ts_disco_protocol", version = "0.40.0" } # x-release-please-version +ts_dns_wire = { path = "ts_dns_wire", package = "geiserx_ts_dns_wire", version = "0.40.0" } # x-release-please-version +ts_dynbitset = { path = "ts_dynbitset", package = "geiserx_ts_dynbitset", version = "0.40.0" } # x-release-please-version +ts_forwarder = { path = "ts_forwarder", package = "geiserx_ts_forwarder", version = "0.40.0" } # x-release-please-version +ts_hexdump = { path = "ts_hexdump", package = "geiserx_ts_hexdump", version = "0.40.0" } # x-release-please-version +ts_host_net = { path = "ts_host_net", package = "geiserx_ts_host_net", version = "0.40.0" } # x-release-please-version +ts_keys = { path = "ts_keys", package = "geiserx_ts_keys", version = "0.40.0" } # x-release-please-version +ts_magicsock = { path = "ts_magicsock", package = "geiserx_ts_magicsock", version = "0.40.0" } # x-release-please-version +ts_metrics = { path = "ts_metrics", package = "geiserx_ts_metrics", version = "0.40.0" } # x-release-please-version +ts_netcheck = { path = "ts_netcheck", package = "geiserx_ts_netcheck", version = "0.40.0" } # x-release-please-version +ts_netmon = { path = "ts_netmon", package = "geiserx_ts_netmon", version = "0.40.0" } # x-release-please-version +ts_netstack_smoltcp = { path = "ts_netstack_smoltcp", package = "geiserx_ts_netstack_smoltcp", version = "0.40.0" } # x-release-please-version +ts_netstack_smoltcp_core = { path = "ts_netstack_smoltcp_core", package = "geiserx_ts_netstack_smoltcp_core", version = "0.40.0" } # x-release-please-version +ts_netstack_smoltcp_socket = { path = "ts_netstack_smoltcp_socket", package = "geiserx_ts_netstack_smoltcp_socket", version = "0.40.0" } # x-release-please-version +ts_nodecapability = { path = "ts_nodecapability", package = "geiserx_ts_nodecapability", version = "0.40.0" } # x-release-please-version +ts_overlay_router = { path = "ts_overlay_router", package = "geiserx_ts_overlay_router", version = "0.40.0" } # x-release-please-version +ts_packet = { path = "ts_packet", package = "geiserx_ts_packet", version = "0.40.0" } # x-release-please-version +ts_packetfilter = { path = "ts_packetfilter", package = "geiserx_ts_packetfilter", version = "0.40.0" } # x-release-please-version +ts_packetfilter_serde = { path = "ts_packetfilter_serde", package = "geiserx_ts_packetfilter_serde", version = "0.40.0" } # x-release-please-version +ts_packetfilter_state = { path = "ts_packetfilter_state", package = "geiserx_ts_packetfilter_state", version = "0.40.0" } # x-release-please-version +ts_peercapability = { path = "ts_peercapability", package = "geiserx_ts_peercapability", version = "0.40.0" } # x-release-please-version +ts_http_util = { path = "ts_http_util", package = "geiserx_ts_http_util", version = "0.40.0" } # x-release-please-version +ts_tka = { path = "ts_tka", package = "geiserx_ts_tka", version = "0.40.0" } # x-release-please-version +ts_tls_util = { path = "ts_tls_util", package = "geiserx_ts_tls_util", version = "0.40.0" } # x-release-please-version +ts_runtime = { path = "ts_runtime", package = "geiserx_ts_runtime", version = "0.40.0" } # x-release-please-version ts_test_util = { path = "ts_test_util" } -ts_time = { path = "ts_time", package = "geiserx_ts_time", version = "0.39.0" } # x-release-please-version -ts_transport = { path = "ts_transport", package = "geiserx_ts_transport", version = "0.39.0" } # x-release-please-version -ts_transport_tun = { path = "ts_transport_tun", package = "geiserx_ts_transport_tun", version = "0.39.0" } # x-release-please-version -ts_underlay_router = { path = "ts_underlay_router", package = "geiserx_ts_underlay_router", version = "0.39.0" } # x-release-please-version -ts_tunnel = { path = "ts_tunnel", package = "geiserx_ts_tunnel", version = "0.39.0" } # x-release-please-version +ts_time = { path = "ts_time", package = "geiserx_ts_time", version = "0.40.0" } # x-release-please-version +ts_transport = { path = "ts_transport", package = "geiserx_ts_transport", version = "0.40.0" } # x-release-please-version +ts_transport_tun = { path = "ts_transport_tun", package = "geiserx_ts_transport_tun", version = "0.40.0" } # x-release-please-version +ts_underlay_router = { path = "ts_underlay_router", package = "geiserx_ts_underlay_router", version = "0.40.0" } # x-release-please-version +ts_tunnel = { path = "ts_tunnel", package = "geiserx_ts_tunnel", version = "0.40.0" } # x-release-please-version [workspace.lints.rust] closure_returning_async_block = "warn"