microsandbox-rb 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c9a11efe93577fa841e3825418b7ea2bdd27cadd404d64f750ef060fa255d4bc
4
- data.tar.gz: 9ccca9426b0ddefed890528408775068244959e69400497c904ffb2d408c27a5
3
+ metadata.gz: 69a06d8d3c54bdd0339a3149904ac906377ddcc3aa295725548ceac20001b1ae
4
+ data.tar.gz: ca7b9c5ed1ca3d35bec0b2229db7f1f229b58964f89c48e386e187d8d7bb0dd4
5
5
  SHA512:
6
- metadata.gz: 6cc9f1524466a9e910ee21aabcefbf62a8abfa79625d1bdd7a7a37fc634db018a8d8efa277613691d69b153fed22d1d5fcaf493ecbaac629b1b1a866e861461e
7
- data.tar.gz: c36aa8379159eead35e062c4f282a34deb3957dbf93a34ed48d395ef9e52c96a7f3343a145f24f3418fe25a5a8e1dfc64d23b8514845d80090a14161739e43c3
6
+ metadata.gz: 4d11c9b6a98de5c66b4d0fda89d7b8efe3610d68408e96664707f150cb358bb3ca9e6550acf684e12e9989cf70211a79a45b7dc5603f4d6b0861be41c4528690
7
+ data.tar.gz: dfe032911a9207ba074a47bc9065c0e78f45537b4b3fd9d8059f9e08def6211c35e6a5fcfd93ebc26fe9f7dda818924d298274c7d99d91ee00cfc63b61c44865
data/CHANGELOG.md CHANGED
@@ -6,6 +6,36 @@ All notable changes to this gem are documented here. The format is based on
6
6
  microsandbox runtime it embeds; each release notes the upstream runtime tag it
7
7
  wraps, and the README's Versioning section keeps the full gem→runtime map.
8
8
 
9
+ ## [0.9.2] - 2026-07-08
10
+
11
+ Adopts upstream runtime **`v0.6.2` → `v0.6.3`**. No Ruby API change; the
12
+ native glue moves to the explicit-backend variants of a few SDK calls that
13
+ went "ambient config" upstream (#1091).
14
+
15
+ ### Fixed
16
+
17
+ - **DNS no longer advertises unreachable address families to the guest**
18
+ (upstream #1083): on hosts without a working IPv6 route the sandbox is
19
+ IPv4-only, but the DNS forwarder previously still returned real AAAA
20
+ records, so v6-preferring resolvers inside the guest (gRPC/c-ares
21
+ foremost) tried IPv6 first and failed with unreachable-network errors.
22
+ AAAA queries in a v4-only sandbox (and A queries in a v6-only one) now
23
+ synthesize an empty NOERROR answer, steering guests to the usable family.
24
+ Also normalizes IPv4-mapped IPv6 addresses for policy/rebind/resolved-
25
+ hostname checks.
26
+
27
+ ### Changed
28
+
29
+ - **Embedded runtime is now `v0.6.3`** (`Microsandbox::RUNTIME_VERSION` /
30
+ `Microsandbox.runtime_version`). Also inherited: upstream TLS interception
31
+ scopes upstream-certificate verification per destination (#1073).
32
+ - Native glue adapted to the upstream v0.6.3 SDK surface (#1091 restored
33
+ "ambient local config" as the public shape): `Image.get/list/inspect/
34
+ remove/prune` and `all_sandbox_metrics` now call the explicit
35
+ `*_local(backend, …)` variants, and the resolved-`msb`-path probe uses the
36
+ `LocalConfig#resolve_msb_path` method form. Behavior is identical — the
37
+ gem already held an explicit local backend at every call site.
38
+
9
39
  ## [0.9.1] - 2026-07-03
10
40
 
11
41
  Adopts upstream runtime **`v0.6.1` → `v0.6.2`**. The upstream SDK crate's public
data/Cargo.lock CHANGED
@@ -122,7 +122,7 @@ version = "1.1.5"
122
122
  source = "registry+https://github.com/rust-lang/crates.io-index"
123
123
  checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
124
124
  dependencies = [
125
- "windows-sys 0.60.2",
125
+ "windows-sys 0.61.2",
126
126
  ]
127
127
 
128
128
  [[package]]
@@ -133,7 +133,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
133
133
  dependencies = [
134
134
  "anstyle",
135
135
  "once_cell_polyfill",
136
- "windows-sys 0.60.2",
136
+ "windows-sys 0.61.2",
137
137
  ]
138
138
 
139
139
  [[package]]
@@ -1418,7 +1418,7 @@ dependencies = [
1418
1418
  "libc",
1419
1419
  "option-ext",
1420
1420
  "redox_users",
1421
- "windows-sys 0.59.0",
1421
+ "windows-sys 0.61.2",
1422
1422
  ]
1423
1423
 
1424
1424
  [[package]]
@@ -1616,7 +1616,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1616
1616
  checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
1617
1617
  dependencies = [
1618
1618
  "libc",
1619
- "windows-sys 0.52.0",
1619
+ "windows-sys 0.61.2",
1620
1620
  ]
1621
1621
 
1622
1622
  [[package]]
@@ -2975,8 +2975,8 @@ dependencies = [
2975
2975
 
2976
2976
  [[package]]
2977
2977
  name = "microsandbox"
2978
- version = "0.6.2"
2979
- source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.2#e9043c89d3432a548908bb145581be4fa1e2e3d9"
2978
+ version = "0.6.3"
2979
+ source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.3#7121a8c3385252d9a9ec83677fea5a49a475cdb2"
2980
2980
  dependencies = [
2981
2981
  "anyhow",
2982
2982
  "astral-tokio-tar",
@@ -3029,8 +3029,8 @@ dependencies = [
3029
3029
 
3030
3030
  [[package]]
3031
3031
  name = "microsandbox-agent-client"
3032
- version = "0.6.2"
3033
- source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.2#e9043c89d3432a548908bb145581be4fa1e2e3d9"
3032
+ version = "0.6.3"
3033
+ source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.3#7121a8c3385252d9a9ec83677fea5a49a475cdb2"
3034
3034
  dependencies = [
3035
3035
  "ciborium",
3036
3036
  "microsandbox-protocol",
@@ -3042,8 +3042,8 @@ dependencies = [
3042
3042
 
3043
3043
  [[package]]
3044
3044
  name = "microsandbox-db"
3045
- version = "0.6.2"
3046
- source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.2#e9043c89d3432a548908bb145581be4fa1e2e3d9"
3045
+ version = "0.6.3"
3046
+ source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.3#7121a8c3385252d9a9ec83677fea5a49a475cdb2"
3047
3047
  dependencies = [
3048
3048
  "async-trait",
3049
3049
  "sea-orm",
@@ -3054,8 +3054,8 @@ dependencies = [
3054
3054
 
3055
3055
  [[package]]
3056
3056
  name = "microsandbox-filesystem"
3057
- version = "0.6.2"
3058
- source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.2#e9043c89d3432a548908bb145581be4fa1e2e3d9"
3057
+ version = "0.6.3"
3058
+ source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.3#7121a8c3385252d9a9ec83677fea5a49a475cdb2"
3059
3059
  dependencies = [
3060
3060
  "libc",
3061
3061
  "microsandbox-utils",
@@ -3067,8 +3067,8 @@ dependencies = [
3067
3067
 
3068
3068
  [[package]]
3069
3069
  name = "microsandbox-image"
3070
- version = "0.6.2"
3071
- source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.2#e9043c89d3432a548908bb145581be4fa1e2e3d9"
3070
+ version = "0.6.3"
3071
+ source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.3#7121a8c3385252d9a9ec83677fea5a49a475cdb2"
3072
3072
  dependencies = [
3073
3073
  "astral-tokio-tar",
3074
3074
  "async-compression",
@@ -3093,8 +3093,8 @@ dependencies = [
3093
3093
 
3094
3094
  [[package]]
3095
3095
  name = "microsandbox-metrics"
3096
- version = "0.6.2"
3097
- source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.2#e9043c89d3432a548908bb145581be4fa1e2e3d9"
3096
+ version = "0.6.3"
3097
+ source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.3#7121a8c3385252d9a9ec83677fea5a49a475cdb2"
3098
3098
  dependencies = [
3099
3099
  "chrono",
3100
3100
  "libc",
@@ -3105,8 +3105,8 @@ dependencies = [
3105
3105
 
3106
3106
  [[package]]
3107
3107
  name = "microsandbox-migration"
3108
- version = "0.6.2"
3109
- source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.2#e9043c89d3432a548908bb145581be4fa1e2e3d9"
3108
+ version = "0.6.3"
3109
+ source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.3#7121a8c3385252d9a9ec83677fea5a49a475cdb2"
3110
3110
  dependencies = [
3111
3111
  "sea-orm-migration",
3112
3112
  "serde_json",
@@ -3114,8 +3114,8 @@ dependencies = [
3114
3114
 
3115
3115
  [[package]]
3116
3116
  name = "microsandbox-network"
3117
- version = "0.6.2"
3118
- source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.2#e9043c89d3432a548908bb145581be4fa1e2e3d9"
3117
+ version = "0.6.3"
3118
+ source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.3#7121a8c3385252d9a9ec83677fea5a49a475cdb2"
3119
3119
  dependencies = [
3120
3120
  "base64",
3121
3121
  "bytes",
@@ -3156,8 +3156,8 @@ dependencies = [
3156
3156
 
3157
3157
  [[package]]
3158
3158
  name = "microsandbox-protocol"
3159
- version = "0.6.2"
3160
- source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.2#e9043c89d3432a548908bb145581be4fa1e2e3d9"
3159
+ version = "0.6.3"
3160
+ source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.3#7121a8c3385252d9a9ec83677fea5a49a475cdb2"
3161
3161
  dependencies = [
3162
3162
  "chrono",
3163
3163
  "ciborium",
@@ -3171,8 +3171,8 @@ dependencies = [
3171
3171
 
3172
3172
  [[package]]
3173
3173
  name = "microsandbox-runtime"
3174
- version = "0.6.2"
3175
- source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.2#e9043c89d3432a548908bb145581be4fa1e2e3d9"
3174
+ version = "0.6.3"
3175
+ source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.3#7121a8c3385252d9a9ec83677fea5a49a475cdb2"
3176
3176
  dependencies = [
3177
3177
  "bytes",
3178
3178
  "chrono",
@@ -3202,8 +3202,8 @@ dependencies = [
3202
3202
 
3203
3203
  [[package]]
3204
3204
  name = "microsandbox-types"
3205
- version = "0.6.2"
3206
- source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.2#e9043c89d3432a548908bb145581be4fa1e2e3d9"
3205
+ version = "0.6.3"
3206
+ source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.3#7121a8c3385252d9a9ec83677fea5a49a475cdb2"
3207
3207
  dependencies = [
3208
3208
  "chrono",
3209
3209
  "serde",
@@ -3214,8 +3214,8 @@ dependencies = [
3214
3214
 
3215
3215
  [[package]]
3216
3216
  name = "microsandbox-utils"
3217
- version = "0.6.2"
3218
- source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.2#e9043c89d3432a548908bb145581be4fa1e2e3d9"
3217
+ version = "0.6.3"
3218
+ source = "git+https://github.com/superradcompany/microsandbox?tag=v0.6.3#7121a8c3385252d9a9ec83677fea5a49a475cdb2"
3219
3219
  dependencies = [
3220
3220
  "dirs",
3221
3221
  "libc",
@@ -3227,7 +3227,7 @@ dependencies = [
3227
3227
 
3228
3228
  [[package]]
3229
3229
  name = "microsandbox_rb"
3230
- version = "0.9.1"
3230
+ version = "0.9.2"
3231
3231
  dependencies = [
3232
3232
  "chrono",
3233
3233
  "futures",
@@ -4761,7 +4761,7 @@ dependencies = [
4761
4761
  "errno",
4762
4762
  "libc",
4763
4763
  "linux-raw-sys",
4764
- "windows-sys 0.52.0",
4764
+ "windows-sys 0.61.2",
4765
4765
  ]
4766
4766
 
4767
4767
  [[package]]
@@ -4829,7 +4829,7 @@ dependencies = [
4829
4829
  "security-framework 3.7.0",
4830
4830
  "security-framework-sys",
4831
4831
  "webpki-root-certs",
4832
- "windows-sys 0.52.0",
4832
+ "windows-sys 0.61.2",
4833
4833
  ]
4834
4834
 
4835
4835
  [[package]]
@@ -4850,7 +4850,7 @@ dependencies = [
4850
4850
  "security-framework 3.7.0",
4851
4851
  "security-framework-sys",
4852
4852
  "webpki-root-certs",
4853
- "windows-sys 0.52.0",
4853
+ "windows-sys 0.61.2",
4854
4854
  ]
4855
4855
 
4856
4856
  [[package]]
@@ -5430,7 +5430,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
5430
5430
  checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51"
5431
5431
  dependencies = [
5432
5432
  "libc",
5433
- "windows-sys 0.60.2",
5433
+ "windows-sys 0.61.2",
5434
5434
  ]
5435
5435
 
5436
5436
  [[package]]
@@ -5870,7 +5870,7 @@ dependencies = [
5870
5870
  "getrandom 0.4.2",
5871
5871
  "once_cell",
5872
5872
  "rustix",
5873
- "windows-sys 0.52.0",
5873
+ "windows-sys 0.61.2",
5874
5874
  ]
5875
5875
 
5876
5876
  [[package]]
@@ -6230,7 +6230,7 @@ checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e"
6230
6230
  dependencies = [
6231
6231
  "memoffset",
6232
6232
  "tempfile",
6233
- "windows-sys 0.60.2",
6233
+ "windows-sys 0.61.2",
6234
6234
  ]
6235
6235
 
6236
6236
  [[package]]
@@ -6656,7 +6656,7 @@ version = "0.1.11"
6656
6656
  source = "registry+https://github.com/rust-lang/crates.io-index"
6657
6657
  checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
6658
6658
  dependencies = [
6659
- "windows-sys 0.48.0",
6659
+ "windows-sys 0.61.2",
6660
6660
  ]
6661
6661
 
6662
6662
  [[package]]
data/README.md CHANGED
@@ -393,8 +393,8 @@ change diverged the two numbers — the gem version is **not** a reliable indica
393
393
  of the embedded runtime version. To learn which runtime a build wraps, ask it:
394
394
 
395
395
  ```ruby
396
- Microsandbox::VERSION # => "0.9.0" (the gem's own version)
397
- Microsandbox.runtime_version # => "v0.6.2" (the embedded upstream runtime tag)
396
+ Microsandbox::VERSION # => "0.9.2" (the gem's own version)
397
+ Microsandbox.runtime_version # => "v0.6.3" (the embedded upstream runtime tag)
398
398
  ```
399
399
 
400
400
  | Gem version | Upstream runtime | Notes |
@@ -412,6 +412,7 @@ Microsandbox.runtime_version # => "v0.6.2" (the embedded upstream runtime tag
412
412
  | `0.8.2` | `v0.5.10` | gem-only: redact secrets from errors, typed snapshot errors, panic-free durations, fat-gem loader + `extconf` preflight fixes, threading/streaming docs |
413
413
  | `0.9.0` | `v0.6.1` | adopts upstream `v0.6.0`+`v0.6.1` (zombie-runtime wait fix, secret substitution through CONNECT proxies, stale-sandbox cleanup); upstream public API is additive — no Ruby surface change |
414
414
  | `0.9.1` | `v0.6.2` | adopts upstream `v0.6.2` (faster image loads/pulls via early cache gate + zlib-rs); upstream API unchanged — no Ruby surface change |
415
+ | `0.9.2` | `v0.6.3` | adopts upstream `v0.6.3` (v4-only sandboxes stop advertising AAAA DNS answers — fixes guest gRPC/c-ares preferring unreachable IPv6; scoped upstream TLS verification); glue moves to `*_local` SDK variants — no Ruby surface change |
415
416
 
416
417
  **Going forward** — the gem version moves on its own semver track and no longer
417
418
  mirrors the upstream tag:
@@ -6,8 +6,8 @@ name = "microsandbox_rb"
6
6
  description = "Ruby SDK native extension for microsandbox — secure, fast microVM-based sandboxing."
7
7
  # Must equal Microsandbox::VERSION (lib/microsandbox/version.rb) — Native.version
8
8
  # returns this via env!("CARGO_PKG_VERSION") and version_spec.rb asserts equality.
9
- # The core-crate dependency below stays pinned at its own tag (v0.6.2).
10
- version = "0.9.1"
9
+ # The core-crate dependency below stays pinned at its own tag (v0.6.3).
10
+ version = "0.9.2"
11
11
  authors = ["Super Rad Company <development@superrad.company>"]
12
12
  repository = "https://github.com/superradcompany/microsandbox"
13
13
  license = "Apache-2.0"
@@ -35,8 +35,8 @@ rb-sys = "0.9"
35
35
  # `.cargo/config.toml.example`). "ssh" matches the feature set the Python/Node
36
36
  # SDKs ship with; default features add "prebuilt" (provisions msb + libkrunfw at
37
37
  # build time), "net", and "keyring".
38
- microsandbox = { git = "https://github.com/superradcompany/microsandbox", tag = "v0.6.2", default-features = true, features = ["ssh"] }
39
- microsandbox-network = { git = "https://github.com/superradcompany/microsandbox", tag = "v0.6.2" }
38
+ microsandbox = { git = "https://github.com/superradcompany/microsandbox", tag = "v0.6.3", default-features = true, features = ["ssh"] }
39
+ microsandbox-network = { git = "https://github.com/superradcompany/microsandbox", tag = "v0.6.3" }
40
40
 
41
41
  # Async core bridged to Ruby's synchronous API via a blocking tokio runtime.
42
42
  tokio = { version = "1", features = ["rt-multi-thread", "sync", "time"] }
@@ -82,12 +82,12 @@ fn report_to_hash(report: ImagePruneReport) -> RHash {
82
82
  }
83
83
 
84
84
  fn get(reference: String) -> Result<RHash, Error> {
85
- let handle = with_local_backend(async |local| Image::get(local, &reference).await)?;
85
+ let handle = with_local_backend(async |local| Image::get_local(local, &reference).await)?;
86
86
  Ok(handle_to_hash(&handle))
87
87
  }
88
88
 
89
89
  fn list() -> Result<RArray, Error> {
90
- let handles = with_local_backend(async |local| Image::list(local).await)?;
90
+ let handles = with_local_backend(async |local| Image::list_local(local).await)?;
91
91
  let arr = ruby().ary_new();
92
92
  for h in handles.iter() {
93
93
  arr.push(handle_to_hash(h))?;
@@ -96,16 +96,16 @@ fn list() -> Result<RArray, Error> {
96
96
  }
97
97
 
98
98
  fn inspect(reference: String) -> Result<RHash, Error> {
99
- let detail = with_local_backend(async |local| Image::inspect(local, &reference).await)?;
99
+ let detail = with_local_backend(async |local| Image::inspect_local(local, &reference).await)?;
100
100
  Ok(detail_to_hash(detail))
101
101
  }
102
102
 
103
103
  fn remove(reference: String, force: bool) -> Result<(), Error> {
104
- with_local_backend(async |local| Image::remove(local, &reference, force).await)
104
+ with_local_backend(async |local| Image::remove_local(local, &reference, force).await)
105
105
  }
106
106
 
107
107
  fn prune() -> Result<RHash, Error> {
108
- let report = with_local_backend(async |local| Image::prune(local).await)?;
108
+ let report = with_local_backend(async |local| Image::prune_local(local).await)?;
109
109
  Ok(report_to_hash(report))
110
110
  }
111
111
 
@@ -34,7 +34,7 @@ fn version() -> String {
34
34
  /// helpers (Python/Node/Go).
35
35
  fn all_sandbox_metrics() -> Result<RHash, Error> {
36
36
  let map = backend::with_local_backend(async |local| {
37
- microsandbox::sandbox::all_sandbox_metrics(local).await
37
+ microsandbox::sandbox::all_sandbox_metrics_local(local).await
38
38
  })?;
39
39
  let hash = runtime::ruby().hash_new();
40
40
  for (name, metrics) in &map {
@@ -113,7 +113,7 @@ fn resolved_msb_path() -> Result<String, Error> {
113
113
  available_when: "with the local backend".into(),
114
114
  })
115
115
  })?;
116
- let path = microsandbox::config::resolve_msb_path(local.config()).map_err(error::to_ruby)?;
116
+ let path = local.config().resolve_msb_path().map_err(error::to_ruby)?;
117
117
  Ok(path.to_string_lossy().into_owned())
118
118
  }
119
119
 
@@ -8,12 +8,12 @@ module Microsandbox
8
8
  # Versioning section of the README for the full gem-to-runtime map. Must equal
9
9
  # the native ext's Cargo crate version (`Native.version`), enforced by
10
10
  # spec/unit/version_spec.rb.
11
- VERSION = "0.9.1"
11
+ VERSION = "0.9.2"
12
12
 
13
13
  # The upstream microsandbox runtime release this gem build embeds — the `tag`
14
14
  # pinned on the `microsandbox`/`microsandbox-network` git deps in
15
15
  # ext/microsandbox/Cargo.toml. Exposed at runtime as
16
16
  # {Microsandbox.runtime_version}. spec/unit/version_spec.rb asserts it stays in
17
17
  # sync with the Cargo tag so it can't silently drift out of date.
18
- RUNTIME_VERSION = "v0.6.2"
18
+ RUNTIME_VERSION = "v0.6.3"
19
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: microsandbox-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ya-luotao