Repository navigation
Releases: gominimal/minimal
Release list
minimal 0.8.0-dev.134.g5378e56c
0.8.0
132 commit(s) since v0.7.0.
Features
- mlog: opt-in OpenTelemetry export, switches and a local spool (2/7, spec 25) (#1994) (f4c13e4)
- min, minimald: one trace per request across the CLI and the daemon (3/7, spec 25) (#1995) (98dbe05)
- minvmd: export the VM host daemon's spans and carry telemetry into the guest (4/7, spec 25) (#1996) (8af4e1d)
- diag:
min bugcarries the telemetry spool and redacts telemetry settings (5/7, spec 25) (#1997) (1af0a88) - otel: guest telemetry rides the VM channel (#2039) (f5bb38c)
- packaging: ship minzoned in a signed macOS app bundle with the app icon (#2188) (4a87666)
- stdlib: type the patch ledger by kind, and check revision against it (#1277) (aa13deb)
- scripts: report non-Rust dependency pins and bump the pkgs locked_commit (#1875) (482c744)
- bep: add the bep crate with the GitHub module and the sealed envelope (#2346) (c2f0b78)
- bep: hold the proxy keys in the host keychain and publish their identity (#2363) (f8431d0)
- bep: append one hash-chained audit record per proxy decision (#2361) (b8b4f22)
- min: refuse GitHub grants at activation that the box or the host cannot honour (#2365) (767c59f)
- bep: issue leaf certificates under a name-constrained root and a signing CA (#2438) (788b6ec)
- bep: decide redemption as a pure function over host key, attribution and bounds (#2359) (554eff3)
- min: sign in to GitHub under the published App, kept in the host keychain (#2364) (5919d28)
- bep: refuse off-set authorities, off-port and expired values (#2448) (03466f7)
- min: add min box spec with root fingerprint, upstream set, steering and full marker (#2443) (0c33a45)
- bep: parse request heads strictly and forward a canonical head and body (#2362) (35529c8)
- min: read one box's audit trail with min box audit (#2457) (334e184)
- bep: refuse undeclared egress and host mismatches, admit only when every check passes (#2450) (4fcfa9c)
- bep: verify store handles against the client's registered key and the current rule (#2467) (248b259)
- bep: accept only box connections and terminate TLS for the module hosts over HTTP/1.1 (#2475) (cff2d9e)
- bep: validate the upstream, pass unsealed requests through, and stream replies (#2481) (cc56e3b)
- bep: wire the redemption decision and each box's declared egress into bep serve (#2486) (47223e0)
Fixes
- minimal: say DNS, min.internal and box IPs plainly in finalize-install --show (#2166) (f90cf02)
- minvmd: reword the DNS-service refusals and minzoned release output in plain language (#2169) (0fb46a8)
- minvmd: reword refusal messages in plain language (#2171) (7dc57e6)
- cli,tui: reword cleanup and status warnings in plain language (#2175) (12a1152)
- minimald: reword network refusals and errors in plain language (#2173) (0ed86a6)
- minimald: reword attach refusals and port-request failures in plain language (#2172) (710abda)
- sessions: reword the credentialed-upstream policy row and ingress errors (#2180) (f3001e5)
- minimal: say the finalize-install egress item plainly (#2179) (1f6bc55)
- minimal: reword the min ls header rows and list warnings in plain language (#2182) (9db0c46)
- minimal: reword the box-name rows, the names line and session start messages in plain language (#2183) (080797e)
- minimal: skip the port-prompt subscription for a box with no host row (#2187) (4e168f6)
- switch: raise the outbound tcp connect bound so a burst of connections stops timing out (#2184) (265081b)
- minimald: elect one holder for a shared ingress port by creation order (#2185) (6f32545)
- minimal: accept a sticky root-owned directory and check before changing the host (#2195) (acda93b)
- minvmd: bind a waiting declared forward when the row holding its listener is withdrawn (#2186) (bfd0f99)
- minimal: give each local-range alias a /32 mask (#2196) (6c235fe)
- minimal: stop claiming a box name opens in any browser (#2211) (51f71f0)
- promote: find the draft release by listing and publish it under its tag (c5073b0)
- minimald: name the hand-over bind message in the actor's span (6e650e2)
- minimald: spawn the forward-ported tasks through the traced helpers (b567cf6)
- minvmd: say connection in the singular when the cap is one (5630f87)
- otel: the nineteen review follow-ups deferred from the telemetry stack (#2202) (#2207) (6c6c39a)
- cargo: remove the committed buf registry token (#2204) (813e4e5)
- minimald: hold an OS-picked port in the answerer relocation test (#2237) (e57b5ed)
- scripts: drop the nfpm pin that the 0.7.0 merge-back removed (#2243) (11b0b44)
- mctx: keep inline-table settings when adding deps (#2244) (9c985f0)
- minimal: hold the answerer channel socket owner-only (#2297) (746770d)
- minimal: remove the range aliases and resolver dir on macOS undo (#2246) (4e16307)
- minimal: compile the spin demo only in debug builds (#2301) (336c9b5)
- minimald: bound wedged transport writes with an inactivity deadline (#2303) (02f3af9)
- minimald: record dynamic-listen ports in the shared-port election (#2305) (3759c74)
- minimald: reuse the compose-time graph names in the finalize package check (#2304) (b45039a)
- minimal: spell network modes as host_ip, own_ip and none in min dash (#2310) (b18a418)
- minimald: log the box name plainly in shared-port hand-over lines (#2308) (1d13b17)
- minimald: name a pending hold in the expose refusal (#2317) (d825e46)
- minimal-client: skip entries vanishing during the workspace upload walk (#2316) (48a6259)
- minimal: flush the macOS system resolver cache in the finalize-install scripts (#2306) (9ea9433)
- common: write file cache downloads atomically via temp file and rename (#2242) (40420c9)
- minimal: ask only running VMs' daemons to release the hook port (#2245) (23e908f)
- mctx: keep task args from running as shell code (#2296) (cfcff04)
- net: keep restored own-ip boxes' rows and ingress across a VM restart (#2298) (10d34a5)
- net: refuse out-of-zone names at a guest deny-subtree DNS listener (#2300) (2c2f8cc)
- minimald: leave HEAD alone when a push targets another branch (#2319) (0a297d0)
- minimald: keep a timed-out hook's captured output (#2318) (3cfae65)
- minimal: report an already-destroyed session instead of failing (#2315) (c5b6dcd)
- minimald: handle --help at every level of the in-session min helper (#2312) (76cc0a7)
- minvmd: reap a stale gvproxy before drawing the node proxy port (#2313) (7675e02)
- send the lease ARP as the relay's first frame (#2333) (1bec117)
- minimal: name the held port in finalize-install's names item (#2309) (daa934d)
- installer,dash: stop the daemon across uninstall and reinstall (#2342) (2e67f8a)
- minimal: name the min stop race in plain language (#2314) (abbdb31)
- common: disallow tar Entry::unpack via clippy to prevent a hardlink cwd escape (#2336) (40b542d)
- e2e: aim the escape-union cross arms at public halves (#2350) (28ab14c)
- deps: bump rustls-webpki and webpki-root-certs past the emSign advisories (#2466) (c0ac8c5)
- minvmd: keep a dormant creation's loopback address claimed (#2348) (3c9275a)
- installer: stop a daemon left on an older build after the swaps, asking before ending sessions (#2338) (e6cbd46)
- minimald: tell an exec why a session destroy ended it (#2351) (e815aad)
Other changes
- declare 0.8.0 as the next release (#2168) (28a38b3)
- switch: gate bep_host socket tests under miri (#2165) (1e32c2b)
- deny: ignore RUSTSEC-2024-0449 (unsafe-libyaml via nickel-lang-core's serde_yaml) (#2194) (71f35e0)
- rename the sandbox2 crate to sandbox and add the box naming rule (#2106) (21b369b)
- otel: spec 25 — review round: stories, opt-out, host-env scope, vsock guest path, trust model (#1988) (a214f31)
- harden three flaky probes ahead of the telemetry series (#1993) (aacba86)
- otel: requirement tests for mlog, min, minimald and minvmd; Kani lanes (#1989) (b6386b9)
- macos: take the unit job's crate list from the justfile scope (#2200) (1e2d93a)
- deps: rustls 0.23.46 (RUSTSEC-2026-0346, -0347, -0348, -0349) (#2206) (598e6d8)
- minimal: fold minimal-tui into the dash module (#2104) (a3f2fa9)
- minimal: reword activate network and egress flag help (#2170) (93e440a)
- release: drop distro packages from the 0.7.0 release (#2214) (ce79c45)
- cli-min: qualify the own_ip deny-all default by the box's egress declaration (2ce67fd)
- e2e: expect the bundle's program in the range proof when the step installs the bundle (00eb544)
- rename the sessions crate to boxes (#2201) (6fb3c55)
- reference: document min net expose in sandbox-operations (#2216) (5955f3f)
- minimald: rename the session modules for what they hold (#2228) (c22640e)
- rename the session types for the box they model (#2229) (bfe0c5a)
- release: merge a diverged release tag back into main (804680c)
- release: fetch the tag and list unmatched fixes before a merge-back (e448eb2)
- release: force the tag fetch so a stale local tag is replaced (4cf5524)
- vale: accept the spec-hash and supply-chain terms (#2018) (647e902)
- telemetry: say DO_NOT_TRACK needs a non-empty value, and link spec 25 by URL (#2209) (cb46bda)
- reference: correct the --dynamic-ingress row for VM-backed hosts (#2217) (21744cc)
- e2e: hold daemon 2's busy default port across its start (#2311) (e2443c1)
- specs: let min secret set write the store rule, with fixed-token presets (#2247) (bb01558)
- spec-lint: read the linter from foundry's spec plugin (#2240) (#2241) (51c1348)
- specs: add an Anthropic API-key preset and set NODE_USE_ENV_PROXY under proxy_env (#2328) (c485dae)
-...
minimal 0.7.1
minimal 0.8.0-dev.123.g248b259c
0.8.0
121 commit(s) since v0.7.0.
Features
- mlog: opt-in OpenTelemetry export, switches and a local spool (2/7, spec 25) (#1994) (f4c13e4)
- min, minimald: one trace per request across the CLI and the daemon (3/7, spec 25) (#1995) (98dbe05)
- minvmd: export the VM host daemon's spans and carry telemetry into the guest (4/7, spec 25) (#1996) (8af4e1d)
- diag:
min bugcarries the telemetry spool and redacts telemetry settings (5/7, spec 25) (#1997) (1af0a88) - otel: guest telemetry rides the VM channel (#2039) (f5bb38c)
- packaging: ship minzoned in a signed macOS app bundle with the app icon (#2188) (4a87666)
- stdlib: type the patch ledger by kind, and check revision against it (#1277) (aa13deb)
- scripts: report non-Rust dependency pins and bump the pkgs locked_commit (#1875) (482c744)
- bep: add the bep crate with the GitHub module and the sealed envelope (#2346) (c2f0b78)
- bep: hold the proxy keys in the host keychain and publish their identity (#2363) (f8431d0)
- bep: append one hash-chained audit record per proxy decision (#2361) (b8b4f22)
- min: refuse GitHub grants at activation that the box or the host cannot honour (#2365) (767c59f)
- bep: issue leaf certificates under a name-constrained root and a signing CA (#2438) (788b6ec)
- bep: decide redemption as a pure function over host key, attribution and bounds (#2359) (554eff3)
- min: sign in to GitHub under the published App, kept in the host keychain (#2364) (5919d28)
- bep: refuse off-set authorities, off-port and expired values (#2448) (03466f7)
- min: add min box spec with root fingerprint, upstream set, steering and full marker (#2443) (0c33a45)
- bep: parse request heads strictly and forward a canonical head and body (#2362) (35529c8)
- min: read one box's audit trail with min box audit (#2457) (334e184)
- bep: refuse undeclared egress and host mismatches, admit only when every check passes (#2450) (4fcfa9c)
- bep: verify store handles against the client's registered key and the current rule (#2467) (248b259)
Fixes
- minimal: say DNS, min.internal and box IPs plainly in finalize-install --show (#2166) (f90cf02)
- minvmd: reword the DNS-service refusals and minzoned release output in plain language (#2169) (0fb46a8)
- minvmd: reword refusal messages in plain language (#2171) (7dc57e6)
- cli,tui: reword cleanup and status warnings in plain language (#2175) (12a1152)
- minimald: reword network refusals and errors in plain language (#2173) (0ed86a6)
- minimald: reword attach refusals and port-request failures in plain language (#2172) (710abda)
- sessions: reword the credentialed-upstream policy row and ingress errors (#2180) (f3001e5)
- minimal: say the finalize-install egress item plainly (#2179) (1f6bc55)
- minimal: reword the min ls header rows and list warnings in plain language (#2182) (9db0c46)
- minimal: reword the box-name rows, the names line and session start messages in plain language (#2183) (080797e)
- minimal: skip the port-prompt subscription for a box with no host row (#2187) (4e168f6)
- switch: raise the outbound tcp connect bound so a burst of connections stops timing out (#2184) (265081b)
- minimald: elect one holder for a shared ingress port by creation order (#2185) (6f32545)
- minimal: accept a sticky root-owned directory and check before changing the host (#2195) (acda93b)
- minvmd: bind a waiting declared forward when the row holding its listener is withdrawn (#2186) (bfd0f99)
- minimal: give each local-range alias a /32 mask (#2196) (6c235fe)
- minimal: stop claiming a box name opens in any browser (#2211) (51f71f0)
- promote: find the draft release by listing and publish it under its tag (c5073b0)
- minimald: name the hand-over bind message in the actor's span (6e650e2)
- minimald: spawn the forward-ported tasks through the traced helpers (b567cf6)
- minvmd: say connection in the singular when the cap is one (5630f87)
- otel: the nineteen review follow-ups deferred from the telemetry stack (#2202) (#2207) (6c6c39a)
- cargo: remove the committed buf registry token (#2204) (813e4e5)
- minimald: hold an OS-picked port in the answerer relocation test (#2237) (e57b5ed)
- scripts: drop the nfpm pin that the 0.7.0 merge-back removed (#2243) (11b0b44)
- mctx: keep inline-table settings when adding deps (#2244) (9c985f0)
- minimal: hold the answerer channel socket owner-only (#2297) (746770d)
- minimal: remove the range aliases and resolver dir on macOS undo (#2246) (4e16307)
- minimal: compile the spin demo only in debug builds (#2301) (336c9b5)
- minimald: bound wedged transport writes with an inactivity deadline (#2303) (02f3af9)
- minimald: record dynamic-listen ports in the shared-port election (#2305) (3759c74)
- minimald: reuse the compose-time graph names in the finalize package check (#2304) (b45039a)
- minimal: spell network modes as host_ip, own_ip and none in min dash (#2310) (b18a418)
- minimald: log the box name plainly in shared-port hand-over lines (#2308) (1d13b17)
- minimald: name a pending hold in the expose refusal (#2317) (d825e46)
- minimal-client: skip entries vanishing during the workspace upload walk (#2316) (48a6259)
- minimal: flush the macOS system resolver cache in the finalize-install scripts (#2306) (9ea9433)
- common: write file cache downloads atomically via temp file and rename (#2242) (40420c9)
- minimal: ask only running VMs' daemons to release the hook port (#2245) (23e908f)
- mctx: keep task args from running as shell code (#2296) (cfcff04)
- net: keep restored own-ip boxes' rows and ingress across a VM restart (#2298) (10d34a5)
- net: refuse out-of-zone names at a guest deny-subtree DNS listener (#2300) (2c2f8cc)
- minimald: leave HEAD alone when a push targets another branch (#2319) (0a297d0)
- minimald: keep a timed-out hook's captured output (#2318) (3cfae65)
- minimal: report an already-destroyed session instead of failing (#2315) (c5b6dcd)
- minimald: handle --help at every level of the in-session min helper (#2312) (76cc0a7)
- minvmd: reap a stale gvproxy before drawing the node proxy port (#2313) (7675e02)
- send the lease ARP as the relay's first frame (#2333) (1bec117)
- minimal: name the held port in finalize-install's names item (#2309) (daa934d)
- installer,dash: stop the daemon across uninstall and reinstall (#2342) (2e67f8a)
- minimal: name the min stop race in plain language (#2314) (abbdb31)
- common: disallow tar Entry::unpack via clippy to prevent a hardlink cwd escape (#2336) (40b542d)
- e2e: aim the escape-union cross arms at public halves (#2350) (28ab14c)
- deps: bump rustls-webpki and webpki-root-certs past the emSign advisories (#2466) (c0ac8c5)
- minvmd: keep a dormant creation's loopback address claimed (#2348) (3c9275a)
Other changes
- declare 0.8.0 as the next release (#2168) (28a38b3)
- switch: gate bep_host socket tests under miri (#2165) (1e32c2b)
- deny: ignore RUSTSEC-2024-0449 (unsafe-libyaml via nickel-lang-core's serde_yaml) (#2194) (71f35e0)
- rename the sandbox2 crate to sandbox and add the box naming rule (#2106) (21b369b)
- otel: spec 25 — review round: stories, opt-out, host-env scope, vsock guest path, trust model (#1988) (a214f31)
- harden three flaky probes ahead of the telemetry series (#1993) (aacba86)
- otel: requirement tests for mlog, min, minimald and minvmd; Kani lanes (#1989) (b6386b9)
- macos: take the unit job's crate list from the justfile scope (#2200) (1e2d93a)
- deps: rustls 0.23.46 (RUSTSEC-2026-0346, -0347, -0348, -0349) (#2206) (598e6d8)
- minimal: fold minimal-tui into the dash module (#2104) (a3f2fa9)
- minimal: reword activate network and egress flag help (#2170) (93e440a)
- release: drop distro packages from the 0.7.0 release (#2214) (ce79c45)
- cli-min: qualify the own_ip deny-all default by the box's egress declaration (2ce67fd)
- e2e: expect the bundle's program in the range proof when the step installs the bundle (00eb544)
- rename the sessions crate to boxes (#2201) (6fb3c55)
- reference: document min net expose in sandbox-operations (#2216) (5955f3f)
- minimald: rename the session modules for what they hold (#2228) (c22640e)
- rename the session types for the box they model (#2229) (bfe0c5a)
- release: merge a diverged release tag back into main (804680c)
- release: fetch the tag and list unmatched fixes before a merge-back (e448eb2)
- release: force the tag fetch so a stale local tag is replaced (4cf5524)
- vale: accept the spec-hash and supply-chain terms (#2018) (647e902)
- telemetry: say DO_NOT_TRACK needs a non-empty value, and link spec 25 by URL (#2209) (cb46bda)
- reference: correct the --dynamic-ingress row for VM-backed hosts (#2217) (21744cc)
- e2e: hold daemon 2's busy default port across its start (#2311) (e2443c1)
- specs: let min secret set write the store rule, with fixed-token presets (#2247) (bb01558)
- spec-lint: read the linter from foundry's spec plugin (#2240) (#2241) (51c1348)
- specs: add an Anthropic API-key preset and set NODE_USE_ENV_PROXY under proxy_env (#2328) (c485dae)
- spikes: measure whether clients send a sealed handle unmodified (#2327) (dedbf2c)
- minvmd: move canonical_box_name into box_registry (#2344) (d67d78e)
- deps: bump the github-actions group across 1 directory with 5 updates (#2353) (559a1d8)
- orchestrator: move DeliverableRef into a leaf ids module (#2340) (75a4646)
- minvmd: move the drop limiter core into its own module (#2349) (8d4e7c5)
- minimal-client: move AskWatch into ask_dialog to break an import cycle (#2341) (21adc79)
- *...
minimal 0.8.0-dev.105.g03466f74
0.8.0
103 commit(s) since v0.7.0.
Features
- mlog: opt-in OpenTelemetry export, switches and a local spool (2/7, spec 25) (#1994) (f4c13e4)
- min, minimald: one trace per request across the CLI and the daemon (3/7, spec 25) (#1995) (98dbe05)
- minvmd: export the VM host daemon's spans and carry telemetry into the guest (4/7, spec 25) (#1996) (8af4e1d)
- diag:
min bugcarries the telemetry spool and redacts telemetry settings (5/7, spec 25) (#1997) (1af0a88) - otel: guest telemetry rides the VM channel (#2039) (f5bb38c)
- packaging: ship minzoned in a signed macOS app bundle with the app icon (#2188) (4a87666)
- stdlib: type the patch ledger by kind, and check revision against it (#1277) (aa13deb)
- scripts: report non-Rust dependency pins and bump the pkgs locked_commit (#1875) (482c744)
- bep: add the bep crate with the GitHub module and the sealed envelope (#2346) (c2f0b78)
- bep: hold the proxy keys in the host keychain and publish their identity (#2363) (f8431d0)
- bep: append one hash-chained audit record per proxy decision (#2361) (b8b4f22)
- min: refuse GitHub grants at activation that the box or the host cannot honour (#2365) (767c59f)
- bep: issue leaf certificates under a name-constrained root and a signing CA (#2438) (788b6ec)
- bep: decide redemption as a pure function over host key, attribution and bounds (#2359) (554eff3)
- min: sign in to GitHub under the published App, kept in the host keychain (#2364) (5919d28)
- bep: refuse off-set authorities, off-port and expired values (#2448) (03466f7)
Fixes
- minimal: say DNS, min.internal and box IPs plainly in finalize-install --show (#2166) (f90cf02)
- minvmd: reword the DNS-service refusals and minzoned release output in plain language (#2169) (0fb46a8)
- minvmd: reword refusal messages in plain language (#2171) (7dc57e6)
- cli,tui: reword cleanup and status warnings in plain language (#2175) (12a1152)
- minimald: reword network refusals and errors in plain language (#2173) (0ed86a6)
- minimald: reword attach refusals and port-request failures in plain language (#2172) (710abda)
- sessions: reword the credentialed-upstream policy row and ingress errors (#2180) (f3001e5)
- minimal: say the finalize-install egress item plainly (#2179) (1f6bc55)
- minimal: reword the min ls header rows and list warnings in plain language (#2182) (9db0c46)
- minimal: reword the box-name rows, the names line and session start messages in plain language (#2183) (080797e)
- minimal: skip the port-prompt subscription for a box with no host row (#2187) (4e168f6)
- switch: raise the outbound tcp connect bound so a burst of connections stops timing out (#2184) (265081b)
- minimald: elect one holder for a shared ingress port by creation order (#2185) (6f32545)
- minimal: accept a sticky root-owned directory and check before changing the host (#2195) (acda93b)
- minvmd: bind a waiting declared forward when the row holding its listener is withdrawn (#2186) (bfd0f99)
- minimal: give each local-range alias a /32 mask (#2196) (6c235fe)
- minimal: stop claiming a box name opens in any browser (#2211) (51f71f0)
- promote: find the draft release by listing and publish it under its tag (c5073b0)
- minimald: name the hand-over bind message in the actor's span (6e650e2)
- minimald: spawn the forward-ported tasks through the traced helpers (b567cf6)
- minvmd: say connection in the singular when the cap is one (5630f87)
- otel: the nineteen review follow-ups deferred from the telemetry stack (#2202) (#2207) (6c6c39a)
- cargo: remove the committed buf registry token (#2204) (813e4e5)
- minimald: hold an OS-picked port in the answerer relocation test (#2237) (e57b5ed)
- scripts: drop the nfpm pin that the 0.7.0 merge-back removed (#2243) (11b0b44)
- mctx: keep inline-table settings when adding deps (#2244) (9c985f0)
- minimal: hold the answerer channel socket owner-only (#2297) (746770d)
- minimal: remove the range aliases and resolver dir on macOS undo (#2246) (4e16307)
- minimal: compile the spin demo only in debug builds (#2301) (336c9b5)
- minimald: bound wedged transport writes with an inactivity deadline (#2303) (02f3af9)
- minimald: record dynamic-listen ports in the shared-port election (#2305) (3759c74)
- minimald: reuse the compose-time graph names in the finalize package check (#2304) (b45039a)
- minimal: spell network modes as host_ip, own_ip and none in min dash (#2310) (b18a418)
- minimald: log the box name plainly in shared-port hand-over lines (#2308) (1d13b17)
- minimald: name a pending hold in the expose refusal (#2317) (d825e46)
- minimal-client: skip entries vanishing during the workspace upload walk (#2316) (48a6259)
- minimal: flush the macOS system resolver cache in the finalize-install scripts (#2306) (9ea9433)
- common: write file cache downloads atomically via temp file and rename (#2242) (40420c9)
- minimal: ask only running VMs' daemons to release the hook port (#2245) (23e908f)
- mctx: keep task args from running as shell code (#2296) (cfcff04)
- net: keep restored own-ip boxes' rows and ingress across a VM restart (#2298) (10d34a5)
- net: refuse out-of-zone names at a guest deny-subtree DNS listener (#2300) (2c2f8cc)
- minimald: leave HEAD alone when a push targets another branch (#2319) (0a297d0)
- minimald: keep a timed-out hook's captured output (#2318) (3cfae65)
- minimal: report an already-destroyed session instead of failing (#2315) (c5b6dcd)
- minimald: handle --help at every level of the in-session min helper (#2312) (76cc0a7)
- minvmd: reap a stale gvproxy before drawing the node proxy port (#2313) (7675e02)
- send the lease ARP as the relay's first frame (#2333) (1bec117)
- minimal: name the held port in finalize-install's names item (#2309) (daa934d)
- installer,dash: stop the daemon across uninstall and reinstall (#2342) (2e67f8a)
- minimal: name the min stop race in plain language (#2314) (abbdb31)
Other changes
- declare 0.8.0 as the next release (#2168) (28a38b3)
- switch: gate bep_host socket tests under miri (#2165) (1e32c2b)
- deny: ignore RUSTSEC-2024-0449 (unsafe-libyaml via nickel-lang-core's serde_yaml) (#2194) (71f35e0)
- rename the sandbox2 crate to sandbox and add the box naming rule (#2106) (21b369b)
- otel: spec 25 — review round: stories, opt-out, host-env scope, vsock guest path, trust model (#1988) (a214f31)
- harden three flaky probes ahead of the telemetry series (#1993) (aacba86)
- otel: requirement tests for mlog, min, minimald and minvmd; Kani lanes (#1989) (b6386b9)
- macos: take the unit job's crate list from the justfile scope (#2200) (1e2d93a)
- deps: rustls 0.23.46 (RUSTSEC-2026-0346, -0347, -0348, -0349) (#2206) (598e6d8)
- minimal: fold minimal-tui into the dash module (#2104) (a3f2fa9)
- minimal: reword activate network and egress flag help (#2170) (93e440a)
- release: drop distro packages from the 0.7.0 release (#2214) (ce79c45)
- cli-min: qualify the own_ip deny-all default by the box's egress declaration (2ce67fd)
- e2e: expect the bundle's program in the range proof when the step installs the bundle (00eb544)
- rename the sessions crate to boxes (#2201) (6fb3c55)
- reference: document min net expose in sandbox-operations (#2216) (5955f3f)
- minimald: rename the session modules for what they hold (#2228) (c22640e)
- rename the session types for the box they model (#2229) (bfe0c5a)
- release: merge a diverged release tag back into main (804680c)
- release: fetch the tag and list unmatched fixes before a merge-back (e448eb2)
- release: force the tag fetch so a stale local tag is replaced (4cf5524)
- vale: accept the spec-hash and supply-chain terms (#2018) (647e902)
- telemetry: say DO_NOT_TRACK needs a non-empty value, and link spec 25 by URL (#2209) (cb46bda)
- reference: correct the --dynamic-ingress row for VM-backed hosts (#2217) (21744cc)
- e2e: hold daemon 2's busy default port across its start (#2311) (e2443c1)
- specs: let min secret set write the store rule, with fixed-token presets (#2247) (bb01558)
- spec-lint: read the linter from foundry's spec plugin (#2240) (#2241) (51c1348)
- specs: add an Anthropic API-key preset and set NODE_USE_ENV_PROXY under proxy_env (#2328) (c485dae)
- spikes: measure whether clients send a sealed handle unmodified (#2327) (dedbf2c)
- minvmd: move canonical_box_name into box_registry (#2344) (d67d78e)
- deps: bump the github-actions group across 1 directory with 5 updates (#2353) (559a1d8)
- orchestrator: move DeliverableRef into a leaf ids module (#2340) (75a4646)
- minvmd: move the drop limiter core into its own module (#2349) (8d4e7c5)
- minimal-client: move AskWatch into ask_dialog to break an import cycle (#2341) (21adc79)
- op: move materialize events into their own module (#2343) (0c146d9)
- agents: add the rules for user-facing text (#2190) (15500cd)
minimal 0.8.0-dev.90.gd67d78ee
0.8.0
88 commit(s) since v0.7.0.
Features
- mlog: opt-in OpenTelemetry export, switches and a local spool (2/7, spec 25) (#1994) (f4c13e4)
- min, minimald: one trace per request across the CLI and the daemon (3/7, spec 25) (#1995) (98dbe05)
- minvmd: export the VM host daemon's spans and carry telemetry into the guest (4/7, spec 25) (#1996) (8af4e1d)
- diag:
min bugcarries the telemetry spool and redacts telemetry settings (5/7, spec 25) (#1997) (1af0a88) - otel: guest telemetry rides the VM channel (#2039) (f5bb38c)
- packaging: ship minzoned in a signed macOS app bundle with the app icon (#2188) (4a87666)
- stdlib: type the patch ledger by kind, and check revision against it (#1277) (aa13deb)
- scripts: report non-Rust dependency pins and bump the pkgs locked_commit (#1875) (482c744)
Fixes
- minimal: say DNS, min.internal and box IPs plainly in finalize-install --show (#2166) (f90cf02)
- minvmd: reword the DNS-service refusals and minzoned release output in plain language (#2169) (0fb46a8)
- minvmd: reword refusal messages in plain language (#2171) (7dc57e6)
- cli,tui: reword cleanup and status warnings in plain language (#2175) (12a1152)
- minimald: reword network refusals and errors in plain language (#2173) (0ed86a6)
- minimald: reword attach refusals and port-request failures in plain language (#2172) (710abda)
- sessions: reword the credentialed-upstream policy row and ingress errors (#2180) (f3001e5)
- minimal: say the finalize-install egress item plainly (#2179) (1f6bc55)
- minimal: reword the min ls header rows and list warnings in plain language (#2182) (9db0c46)
- minimal: reword the box-name rows, the names line and session start messages in plain language (#2183) (080797e)
- minimal: skip the port-prompt subscription for a box with no host row (#2187) (4e168f6)
- switch: raise the outbound tcp connect bound so a burst of connections stops timing out (#2184) (265081b)
- minimald: elect one holder for a shared ingress port by creation order (#2185) (6f32545)
- minimal: accept a sticky root-owned directory and check before changing the host (#2195) (acda93b)
- minvmd: bind a waiting declared forward when the row holding its listener is withdrawn (#2186) (bfd0f99)
- minimal: give each local-range alias a /32 mask (#2196) (6c235fe)
- minimal: stop claiming a box name opens in any browser (#2211) (51f71f0)
- promote: find the draft release by listing and publish it under its tag (c5073b0)
- minimald: name the hand-over bind message in the actor's span (6e650e2)
- minimald: spawn the forward-ported tasks through the traced helpers (b567cf6)
- minvmd: say connection in the singular when the cap is one (5630f87)
- otel: the nineteen review follow-ups deferred from the telemetry stack (#2202) (#2207) (6c6c39a)
- cargo: remove the committed buf registry token (#2204) (813e4e5)
- minimald: hold an OS-picked port in the answerer relocation test (#2237) (e57b5ed)
- scripts: drop the nfpm pin that the 0.7.0 merge-back removed (#2243) (11b0b44)
- mctx: keep inline-table settings when adding deps (#2244) (9c985f0)
- minimal: hold the answerer channel socket owner-only (#2297) (746770d)
- minimal: remove the range aliases and resolver dir on macOS undo (#2246) (4e16307)
- minimal: compile the spin demo only in debug builds (#2301) (336c9b5)
- minimald: bound wedged transport writes with an inactivity deadline (#2303) (02f3af9)
- minimald: record dynamic-listen ports in the shared-port election (#2305) (3759c74)
- minimald: reuse the compose-time graph names in the finalize package check (#2304) (b45039a)
- minimal: spell network modes as host_ip, own_ip and none in min dash (#2310) (b18a418)
- minimald: log the box name plainly in shared-port hand-over lines (#2308) (1d13b17)
- minimald: name a pending hold in the expose refusal (#2317) (d825e46)
- minimal-client: skip entries vanishing during the workspace upload walk (#2316) (48a6259)
- minimal: flush the macOS system resolver cache in the finalize-install scripts (#2306) (9ea9433)
- common: write file cache downloads atomically via temp file and rename (#2242) (40420c9)
- minimal: ask only running VMs' daemons to release the hook port (#2245) (23e908f)
- mctx: keep task args from running as shell code (#2296) (cfcff04)
- net: keep restored own-ip boxes' rows and ingress across a VM restart (#2298) (10d34a5)
- net: refuse out-of-zone names at a guest deny-subtree DNS listener (#2300) (2c2f8cc)
- minimald: leave HEAD alone when a push targets another branch (#2319) (0a297d0)
- minimald: keep a timed-out hook's captured output (#2318) (3cfae65)
- minimal: report an already-destroyed session instead of failing (#2315) (c5b6dcd)
- minimald: handle --help at every level of the in-session min helper (#2312) (76cc0a7)
- minvmd: reap a stale gvproxy before drawing the node proxy port (#2313) (7675e02)
- send the lease ARP as the relay's first frame (#2333) (1bec117)
- minimal: name the held port in finalize-install's names item (#2309) (daa934d)
- installer,dash: stop the daemon across uninstall and reinstall (#2342) (2e67f8a)
Other changes
- declare 0.8.0 as the next release (#2168) (28a38b3)
- switch: gate bep_host socket tests under miri (#2165) (1e32c2b)
- deny: ignore RUSTSEC-2024-0449 (unsafe-libyaml via nickel-lang-core's serde_yaml) (#2194) (71f35e0)
- rename the sandbox2 crate to sandbox and add the box naming rule (#2106) (21b369b)
- otel: spec 25 — review round: stories, opt-out, host-env scope, vsock guest path, trust model (#1988) (a214f31)
- harden three flaky probes ahead of the telemetry series (#1993) (aacba86)
- otel: requirement tests for mlog, min, minimald and minvmd; Kani lanes (#1989) (b6386b9)
- macos: take the unit job's crate list from the justfile scope (#2200) (1e2d93a)
- deps: rustls 0.23.46 (RUSTSEC-2026-0346, -0347, -0348, -0349) (#2206) (598e6d8)
- minimal: fold minimal-tui into the dash module (#2104) (a3f2fa9)
- minimal: reword activate network and egress flag help (#2170) (93e440a)
- release: drop distro packages from the 0.7.0 release (#2214) (ce79c45)
- cli-min: qualify the own_ip deny-all default by the box's egress declaration (2ce67fd)
- e2e: expect the bundle's program in the range proof when the step installs the bundle (00eb544)
- rename the sessions crate to boxes (#2201) (6fb3c55)
- reference: document min net expose in sandbox-operations (#2216) (5955f3f)
- minimald: rename the session modules for what they hold (#2228) (c22640e)
- rename the session types for the box they model (#2229) (bfe0c5a)
- release: merge a diverged release tag back into main (804680c)
- release: fetch the tag and list unmatched fixes before a merge-back (e448eb2)
- release: force the tag fetch so a stale local tag is replaced (4cf5524)
- vale: accept the spec-hash and supply-chain terms (#2018) (647e902)
- telemetry: say DO_NOT_TRACK needs a non-empty value, and link spec 25 by URL (#2209) (cb46bda)
- reference: correct the --dynamic-ingress row for VM-backed hosts (#2217) (21744cc)
- e2e: hold daemon 2's busy default port across its start (#2311) (e2443c1)
- specs: let min secret set write the store rule, with fixed-token presets (#2247) (bb01558)
- spec-lint: read the linter from foundry's spec plugin (#2240) (#2241) (51c1348)
- specs: add an Anthropic API-key preset and set NODE_USE_ENV_PROXY under proxy_env (#2328) (c485dae)
- spikes: measure whether clients send a sealed handle unmodified (#2327) (dedbf2c)
- minvmd: move canonical_box_name into box_registry (#2344) (d67d78e)
minimal 0.8.0-dev.68.g1d13b179
0.8.0
66 commit(s) since v0.7.0.
Features
- mlog: opt-in OpenTelemetry export, switches and a local spool (2/7, spec 25) (#1994) (f4c13e4)
- min, minimald: one trace per request across the CLI and the daemon (3/7, spec 25) (#1995) (98dbe05)
- minvmd: export the VM host daemon's spans and carry telemetry into the guest (4/7, spec 25) (#1996) (8af4e1d)
- diag:
min bugcarries the telemetry spool and redacts telemetry settings (5/7, spec 25) (#1997) (1af0a88) - otel: guest telemetry rides the VM channel (#2039) (f5bb38c)
- packaging: ship minzoned in a signed macOS app bundle with the app icon (#2188) (4a87666)
- stdlib: type the patch ledger by kind, and check revision against it (#1277) (aa13deb)
- scripts: report non-Rust dependency pins and bump the pkgs locked_commit (#1875) (482c744)
Fixes
- minimal: say DNS, min.internal and box IPs plainly in finalize-install --show (#2166) (f90cf02)
- minvmd: reword the DNS-service refusals and minzoned release output in plain language (#2169) (0fb46a8)
- minvmd: reword refusal messages in plain language (#2171) (7dc57e6)
- cli,tui: reword cleanup and status warnings in plain language (#2175) (12a1152)
- minimald: reword network refusals and errors in plain language (#2173) (0ed86a6)
- minimald: reword attach refusals and port-request failures in plain language (#2172) (710abda)
- sessions: reword the credentialed-upstream policy row and ingress errors (#2180) (f3001e5)
- minimal: say the finalize-install egress item plainly (#2179) (1f6bc55)
- minimal: reword the min ls header rows and list warnings in plain language (#2182) (9db0c46)
- minimal: reword the box-name rows, the names line and session start messages in plain language (#2183) (080797e)
- minimal: skip the port-prompt subscription for a box with no host row (#2187) (4e168f6)
- switch: raise the outbound tcp connect bound so a burst of connections stops timing out (#2184) (265081b)
- minimald: elect one holder for a shared ingress port by creation order (#2185) (6f32545)
- minimal: accept a sticky root-owned directory and check before changing the host (#2195) (acda93b)
- minvmd: bind a waiting declared forward when the row holding its listener is withdrawn (#2186) (bfd0f99)
- minimal: give each local-range alias a /32 mask (#2196) (6c235fe)
- minimal: stop claiming a box name opens in any browser (#2211) (51f71f0)
- promote: find the draft release by listing and publish it under its tag (c5073b0)
- minimald: name the hand-over bind message in the actor's span (6e650e2)
- minimald: spawn the forward-ported tasks through the traced helpers (b567cf6)
- minvmd: say connection in the singular when the cap is one (5630f87)
- otel: the nineteen review follow-ups deferred from the telemetry stack (#2202) (#2207) (6c6c39a)
- cargo: remove the committed buf registry token (#2204) (813e4e5)
- minimald: hold an OS-picked port in the answerer relocation test (#2237) (e57b5ed)
- scripts: drop the nfpm pin that the 0.7.0 merge-back removed (#2243) (11b0b44)
- mctx: keep inline-table settings when adding deps (#2244) (9c985f0)
- minimal: hold the answerer channel socket owner-only (#2297) (746770d)
- minimal: remove the range aliases and resolver dir on macOS undo (#2246) (4e16307)
- minimal: compile the spin demo only in debug builds (#2301) (336c9b5)
- minimald: bound wedged transport writes with an inactivity deadline (#2303) (02f3af9)
- minimald: record dynamic-listen ports in the shared-port election (#2305) (3759c74)
- minimald: reuse the compose-time graph names in the finalize package check (#2304) (b45039a)
- minimal: spell network modes as host_ip, own_ip and none in min dash (#2310) (b18a418)
- minimald: log the box name plainly in shared-port hand-over lines (#2308) (1d13b17)
Other changes
- declare 0.8.0 as the next release (#2168) (28a38b3)
- switch: gate bep_host socket tests under miri (#2165) (1e32c2b)
- deny: ignore RUSTSEC-2024-0449 (unsafe-libyaml via nickel-lang-core's serde_yaml) (#2194) (71f35e0)
- rename the sandbox2 crate to sandbox and add the box naming rule (#2106) (21b369b)
- otel: spec 25 — review round: stories, opt-out, host-env scope, vsock guest path, trust model (#1988) (a214f31)
- harden three flaky probes ahead of the telemetry series (#1993) (aacba86)
- otel: requirement tests for mlog, min, minimald and minvmd; Kani lanes (#1989) (b6386b9)
- macos: take the unit job's crate list from the justfile scope (#2200) (1e2d93a)
- deps: rustls 0.23.46 (RUSTSEC-2026-0346, -0347, -0348, -0349) (#2206) (598e6d8)
- minimal: fold minimal-tui into the dash module (#2104) (a3f2fa9)
- minimal: reword activate network and egress flag help (#2170) (93e440a)
- release: drop distro packages from the 0.7.0 release (#2214) (ce79c45)
- cli-min: qualify the own_ip deny-all default by the box's egress declaration (2ce67fd)
- e2e: expect the bundle's program in the range proof when the step installs the bundle (00eb544)
- rename the sessions crate to boxes (#2201) (6fb3c55)
- reference: document min net expose in sandbox-operations (#2216) (5955f3f)
- minimald: rename the session modules for what they hold (#2228) (c22640e)
- rename the session types for the box they model (#2229) (bfe0c5a)
- release: merge a diverged release tag back into main (804680c)
- release: fetch the tag and list unmatched fixes before a merge-back (e448eb2)
- release: force the tag fetch so a stale local tag is replaced (4cf5524)
- vale: accept the spec-hash and supply-chain terms (#2018) (647e902)
- telemetry: say DO_NOT_TRACK needs a non-empty value, and link spec 25 by URL (#2209) (cb46bda)
- reference: correct the --dynamic-ingress row for VM-backed hosts (#2217) (21744cc)
minimal 0.7.0
Minimal 0.7.0
0.7.0 is the networking release. A session can now have its own address, a name
you can open in a browser, rules for what it may reach, and ports it publishes
while it runs. Around that, setup that needs root moved into one reviewable
command, a machine can run more than one VM, and bug reports can be uploaded
straight from the CLI.
What's new
Choose how a session is connected
min session activate --network <none|host_ip|own_ip> picks the session's
network.
host_ipshares your machine's network. It is the default, and it is how
sessions behaved before.own_ipgives the session its own IP address. This is the mode that supports
published ports and per-session rules.nonegives the session no network at all.
Decide what a session can reach
You can now say which destinations a session is allowed to reach, and Minimal
enforces it.
min session activate --network own_ip --allow-dns-hosts github.com
--allow-dns-hosts <host>allows a hostname. The session reaches that host by
name and nothing else.--allow-subnets <cidr>allows an address range.--deny-subnets <cidr>
carves a range back out.--allow-protocols <tcp|udp|icmp>limits the protocols.--deny-all-egressstates plainly that the session reaches nothing outside
itself.
An own_ip session with no rules reaches no external address. Activation says so
in one line and shows the flag that opens it up. A host_ip session with no rules
keeps full access, as before.
A task run follows the network and the rules of its session.
min session policy <session> shows the rules a session ended up with, and
min dash shows them in the detail pane.
Reach a session by name
Every session gets a name: <name>.min.internal.
- On a fresh install it works through a local HTTP proxy. Activation prints the
proxy address. - After
min finalize-install, the name also resolves in every program on
your machine. A browser still opens it through the proxy. - Sessions can reach each other by name, subject to both sessions' rules.
- From inside a session,
host.min.internalis your machine.
Publish ports, up front or while you work
--ingress <external>:<internal>publishes a port when the session starts.--dynamic-ingress <allow|ask|deny>decides what happens when something in
the session asks for a port later.allowpublishes it,askprompts you in
the attached terminal, anddenyrefuses.--dynamic-range <lo-hi>bounds
the portsallowwill publish.- Inside the session,
min net expose <port>asks for a port. A server that
starts listening inside the allowed range is published without a command,
and withdrawn when it stops. min net forward <session> <local>:<port>puts a session port on
localhost:<local>. It works in every network mode and needs nothing
installed in the session.
min session policy lists the ports a session published at runtime. Every
decision to publish or refuse is recorded.
One command for the setup that needs root
The installer never asks for root. Anything that does need it is collected
into min finalize-install, which runs it in one sudo call.
min finalize-install --showlists what this machine is still missing and
runs nothing.min finalize-install --show --scriptprints the exact script so you can
read it first.min finalize-install --undoremoves everything it installed.
The installer offers to run it when your machine needs it. If you skip it,
Minimal keeps working, and session names open through the proxy.
More than one VM
--vm <name>runs a named VM with its own state beside the default one.
Sessions in different VMs are still addressed by name.- VM-backed sessions on Linux (
--provider local-minvmd, available since
0.5.1) get the same networking as macOS: names, rules and published ports,
enforced outside the VM.
Send a bug report from the CLI
min bug --uploadcollects a diagnostic bundle and uploads it. It prints a
report link you can share and a command that deletes the bundle.min diag upload <path>uploads a bundle collected earlier.min diag delete <id> <token>removes an uploaded bundle. The upload prints
this command with the id and token filled in. Bundles expire on their own
after 7 days.- No account or token is needed to upload. Credentials are scrubbed from the
logs that go into a bundle.
Sessions that are harder to lose
- A session keeps running when your terminal or connection goes away, and
a lostexecends only its own command. min session attach,execandpolicyaccept a unique prefix of a
session id as well as a name.- When the daemon ends your attach, you get a one-line reason and exit code
254, not a silent disconnect. min stop --forcecan stop a VM that has stopped responding.- Running a command that does not exist in the session exits 127 with
command not found. - Activation fails up front, with the reason, when a package cannot be
resolved or the machine cannot create the sandbox.
Everyday polish
min addkeeps the comments and layout of yourminimal.toml, suggests
close matches for a misspelled package, and shows download progress.min addoffers to create aminimal.tomlwhen the project has none.- The installer takes
--version <version>to install a specific release. - Uninstall advice now covers the whole install.
- Errors, warnings and refusals across
min,min ls,min dashand
activation were rewritten in plain language. Each one states the situation
or names the next command to run. - Session start prints fewer lines.
Breaking changes
These affect anyone upgrading from 0.6.0.
[harness]inminimal.tomlno longer loads. Rename the table to
[stack]. The error names the file to edit.min ssh-forwardis removed. Use
min net forward <session> <local>:<port>.- The daemon's HTTPS reverse proxy and client certificates are removed.
min loginno longer issues a certificate. Reach a session by its
<session>.min.internalname or withmin net forward. - Session names must be valid hostnames. Letters, digits and hyphens
only. Names are case-insensitive, soWebandwebare the same session.
host,local,localhostandminimaldare reserved, and a name shaped
like a session id is refused. Rename older sessions that do not fit with
min session rename.
Good to know
- An
own_ipsession with no egress flags reaches nothing outside itself. Add
--allow-dns-hostsor--allow-subnets, or--allow-subnets 0.0.0.0/0for
everything. - An egress rule that names only hostnames reaches those hosts and no address
directly. - Sessions have no IPv6 path yet.
- Egress rules are enforced on
own_ipsessions. Ahost_ipsession enforces
only--deny-all-egress. On macOS and on a Linux VM host this works out of
the box. On a native Linux host it needsmin finalize-install; until then
the session starts with a note that its rules are not enforced. Where
deny-all is enforced, ahost_ipsession with a narrower rule is refused.
Use--network own_ipwhen the rules matter. - The older
--networkspellingsno-net,host-netandown-ipstill
work.
Known issues
- On macOS and on a Linux VM host,
min session execcan hang when you pipe
a large input into a command that also writes a lot of output. 1 to 5 MB
throughcatworks. 10 MB hangs in about half of runs.min task runwith
piped input can stall after a few hundred KB. The hang takes the session's
connection with it, and the client gives up after about 75 seconds. A fix
is in review for the next release.
Fixed
- A stalled client can no longer stall the daemon or other sessions.
- A burst of
min session execcalls fails fast instead of hanging. min task runno longer hangs on an open stdin pipe, and it honours the
task's arguments and working directory.- Hard links survive the project upload.
- Disk space is returned to the host as sessions free it, and Minimal warns when
the host is too full to back the VM's disk. - The VM shuts down cleanly when it is stopped, and a leftover network
helper from an earlier run is cleaned up at the next start. - Session rename updates the name inside the running session.
- Piping
minoutput into a command that exits early no longer prints an
error.
minimal 0.8.0-dev.390.g6c6c39ae
0.8.0
390 commit(s) since v0.6.0.
Breaking changes
-
mfile: warn on the deprecated harness table and refuse a task with two actions (#1938) (a19539d)
BREAKING CHANGE: minimal.toml files that spell the stack table
[harness]no longer load a stack; the table must be renamed to
[stack]. -
sessions,minvmd: put the own-ip deny-all egress default in force (#2116) (ea1b015)
-
diag: upload bundles without a token and add min diag delete (#2136) (951b248)
BREAKING CHANGE:
--tokenis removed frommin bug,min diag collect
andmin diag upload; passing it is now a parse error. TheStatus:line
is no longer printed after an upload. -
minimal: replace min net setup with min finalize-install (#2142) (f35b6ef)
BREAKING CHANGE:
min net setupis removed with no alias; run
min finalize-install(--show --scriptreplaces--print). -
minimal,sandbox2: ship the classifier step from min finalize-install (#2144) (a711830)
BREAKING CHANGE:
min net setupis removed with no alias; run
min finalize-install(--show --scriptreplaces--print). -
minimal,minimald: one host line at start, classifier advisory only on declared egress (#2145) (83f7a40)
BREAKING CHANGE:
min net setupis removed with no alias; run
min finalize-install(--show --scriptreplaces--print). -
installer: offer min finalize-install when the host needs it (#2143) (a6357c2)
BREAKING CHANGE:
min net setupis removed with no alias; run
min finalize-install(--show --scriptreplaces--print). -
mfile: refuse a minimal.toml that still spells the stack table [harness] (#2162) (bb8fa22)
BREAKING CHANGE: a minimal.toml that still spells the stack table
[harness]fails to load; the table must be renamed to[stack].
Features
- minvmd: warn within a minute when the switch datapath is lost (#1679) (86fd641)
- minimald-rpc,minimald,minimal: end a task run's box daemon-side (#1680) (29a7f5d)
- installer: install a staged version with --version (#1716) (c5091f0)
- stdlib: bootstrap_rung attr class (#1752) (c4887be)
- diag: min diag upload hands a bundle to the portal that diagnoses it (#1722) (4f46d58)
- minimald: bind declared ports before the name and refuse unpublished ports instantly (#1798) (658187e)
- switch: deliver each accepted box connection to the proxy with the box's identity (#1810) (ff03e62)
- minimal: make host DNS setup opt-in with a reviewable min net setup script and --undo (#2082) (29872d9)
- packaging: add the macOS app icon built from the minimal mark (#2125) (d626cc6)
- sessions: give an absent egress destination list no reach once layers merge (#2153) (35e626a)
- mlog: opt-in OpenTelemetry export, switches and a local spool (2/7, spec 25) (#1994) (f4c13e4)
- min, minimald: one trace per request across the CLI and the daemon (3/7, spec 25) (#1995) (98dbe05)
- minvmd: export the VM host daemon's spans and carry telemetry into the guest (4/7, spec 25) (#1996) (8af4e1d)
- diag:
min bugcarries the telemetry spool and redacts telemetry settings (5/7, spec 25) (#1997) (1af0a88) - otel: guest telemetry rides the VM channel (#2039) (f5bb38c)
- packaging: ship minzoned in a signed macOS app bundle with the app icon (#2188) (4a87666)
Fixes
- Probe session git info on the host, not in the daemon (#1430) (21f4074)
- min: offer min init scaffold when add has no minimal.toml (#1538) (d8665fd)
- check: treat libresolv as a glibc stub lib (#1561) (85c9b4a)
- show a download meter when adding packages in a sandbox (#1583) (63a4b99)
- deps: bump yanked chacha20 0.10.1 -> 0.10.2 (#1589) (dd63965)
- deps: pin bitmaps 3.1.0 to clear RUSTSEC-2025-0167 (unsound) (#1588) (bab81cf)
- release: a breaking change under any type bumps the minor (#1544) (9a26da1)
- release: pin every GitHub Release tag to the built commit (#1706) (fd4c076)
- release: leave unstable alone on versioned builds (#1712) (87c7362)
- lint: scope the strict clippy gate to the branch's own lines, and take it out of just fix (#1749) (7f60810)
- sandbox2,minimald: fork every container on a thread that never retires (#1748) (ccfb654)
- minimald: close the client channel when shedding a stalled binding (#1747) (dd38a84)
- minimald: trim the state volume on every tick and at quiesce (#1744) (6727d04)
- minimald: add new ListenArgs fields to the test_cli initializer (#1757) (cb9d115)
- minvmd: detect leaked __krun-vmm in classify_detach_poll (#1732) (e0e322c)
- minvmd: raise RLIMIT_NOFILE in the VMM child before boot (#1740) (285c846)
- mip: warn on AppArmor-restricted user namespaces before builds (#1734) (e1528b7)
- minimald: distinguish attach timeout from closed, detach on stop timeout (#1733) (3d20a68)
- minimal,minimald: record the data volume's allocated size in diagnostic bundles (#1743) (1a37a15)
- minimal: stop task run hanging on a held-open stdin pipe (#1741) (9d42580)
- mctx: attribute missing read-only patch source errors (#1739) (486e595)
- cap and exclude plain-directory patch sources (#1736) (f70c637)
- test(e2e): exercise env_vars inherit across the VM boundary (#1543) (766b647)
- minimald: add git-upload-pack handler to the exec dispatcher (#1735) (d0cd927)
- minimald: make rename-to-self an error (#1593) (6ede29d)
- minvmd: reap VMM child when MarkRunning fails (#1841) (9125f6a)
- minimald: republish MINIMAL_SESSION_NAME on session rename (#1827) (ceabe65)
- sandbox2: admit the 32-bit compat ABI under the socket seal instead of killing it (#1836) (5166f3c)
- minimald: key gvproxy state dir by daemon instance id (#1832) (ad9844a)
- minimal: raise nested bundle verification budget floor from 64 MiB to 256 MiB (#1829) (5a9baf7)
- minimald,sandbox2: bound the proxy upstream dial and write box /etc/hosts atomically (#1828) (da1b4ef)
- minimal: pass declared task args through to evaluation (#1770) (95830eb)
- minvmd,minimal: key a named VM's known_hosts entry on the alias ssh connects with (#1843) (e1cc07b)
- sessions: make session-name uniqueness case-insensitive (#1848) (900f457)
- minimald: persist stable daemon identity for switch octet derivation (#1859) (1c17d2c)
- minvmd: add peer-credential check and provider-directory verification to minvmd control socket (#1853) (aba6823)
- sandbox2: strip IPv6 /etc/hosts entries when the kernel has no IPv6 stack (#1830) (44d9ec1)
- minimald,diagnostics: scrub credentials from logged exec argv and bundled log tails (#1851) (022f151)
- minimald: close the ext4 journal before trimming at quiesce (#1831) (05b0a82)
- minimald: stop the hostname proxy reusing one box's upstream for later keep-alive requests (#1861) (1de96cd)
- minvmd: detect VMM parent pid on macOS via proc_pidinfo (#1835) (961631d)
- sandbox2: truncate long box names to fit AF_UNIX sun_path limit (#1862) (0d8f2fb)
- minimald: publish runtime exposures for self-allocated native boxes (#1884) (61d106d)
- e2e: hold the default proxy port for the second daemon when beat A's holder is gone (#1876) (d78716e)
- sessions: reserve host, local and localhost as session names (#1893) (0a4bdb6)
- proxy: rewrite absolute-form request targets to origin-form (#1833) (1faed29)
- sandbox2: point the classifier install hint at the raw installer script (#1834) (1881911)
- minimald: kill silent child when SSH client disconnects (#1863) (763c4fd)
- minimald: trim the state volume on its own cadence (#1880) (bcd55b1)
- sessions: reject duplicate host ports and box port 0 in ingress mappings (#1882) (6fbe113)
- sandbox2: admit inet and netlink in the none-box seal and bring lo up (#1883) (ab870b9)
- min: warn when --sync none drops the project's minimal.toml (#1887) (a773519)
- sandbox2: default session LANG to a locale the rootfs ships (#1888) (932a9da)
- minimal: exit quietly when version output hits a closed pipe (#1894) (96d860d)
- sandbox2: expand $PATH in a composed PATH (#1889) (63bf72d)
- minimald: fail session activation when the project graph cannot resolve (#1890) (c695b39)
- mctx: preserve comments and layout when min add appends packages (#1900) (b37986f)
- sandbox2: give every box its own IPC namespace (#1857) (940c762)
- session: name the missing session in
min session hooks(#1899) (588fbde) - sandbox2,minimald: cap each box's pty count and raise the guest pty limit (#1892) (6be1a8c)
- minimald: don't drop stdin bytes when client-loss sender is gone (#1941) (547d464)
- sessions: anchor project patch sources at project root (#1904) (b1bec3b)
- minimald: run daemon tasks in the session working-directory layout (#1910) (55ae592)
- op: report all missing patched-build deps and answer --help (#1915) (fc17d58)
- minimald: exit 127 with command not found when an exec'd program is missing (#1929) (99fe552)
- minimal: retry a refused daemon socket connect in the ssh proxy command (#1919) (27cf68b)
- minimal: render client warnings as plain messages (#1921) (546a27b)
- sessions: validate egress DNS hosts and flag host-bit CIDRs (#1926) (bf98daf)
- sessions: reject session names that are not DNS labels (#1944) (63830ee)
- minvmd: default-deny the host alias and notice it before the egress verdict (#1953) (807a703)
- mctx: suggest close package names on not-found (#1945) (b7868a2)
- minimald: follow the bound port in the transient-publish test (#1965) (76e522c)
- minimal: guard oversized exec commands before ssh (#1964) (0e7d4ab)
- e2e: provision gvproxy on the native Linux lane (#1963) (d6da92d)
- minimal-client: keep hard links as links in the workspace upload (#1928) (89f04fc)
- minimal: announce the bound port when net forward ge...
minimal 0.8.0-dev.359.gf5bb38c2
0.8.0
359 commit(s) since v0.6.0.
Breaking changes
-
mfile: warn on the deprecated harness table and refuse a task with two actions (#1938) (a19539d)
BREAKING CHANGE: minimal.toml files that spell the stack table
[harness]no longer load a stack; the table must be renamed to
[stack]. -
sessions,minvmd: put the own-ip deny-all egress default in force (#2116) (ea1b015)
-
diag: upload bundles without a token and add min diag delete (#2136) (951b248)
BREAKING CHANGE:
--tokenis removed frommin bug,min diag collect
andmin diag upload; passing it is now a parse error. TheStatus:line
is no longer printed after an upload. -
minimal: replace min net setup with min finalize-install (#2142) (f35b6ef)
BREAKING CHANGE:
min net setupis removed with no alias; run
min finalize-install(--show --scriptreplaces--print). -
minimal,sandbox2: ship the classifier step from min finalize-install (#2144) (a711830)
BREAKING CHANGE:
min net setupis removed with no alias; run
min finalize-install(--show --scriptreplaces--print). -
minimal,minimald: one host line at start, classifier advisory only on declared egress (#2145) (83f7a40)
BREAKING CHANGE:
min net setupis removed with no alias; run
min finalize-install(--show --scriptreplaces--print). -
installer: offer min finalize-install when the host needs it (#2143) (a6357c2)
BREAKING CHANGE:
min net setupis removed with no alias; run
min finalize-install(--show --scriptreplaces--print). -
mfile: refuse a minimal.toml that still spells the stack table [harness] (#2162) (bb8fa22)
BREAKING CHANGE: a minimal.toml that still spells the stack table
[harness]fails to load; the table must be renamed to[stack].
Features
- minvmd: warn within a minute when the switch datapath is lost (#1679) (86fd641)
- minimald-rpc,minimald,minimal: end a task run's box daemon-side (#1680) (29a7f5d)
- installer: install a staged version with --version (#1716) (c5091f0)
- stdlib: bootstrap_rung attr class (#1752) (c4887be)
- diag: min diag upload hands a bundle to the portal that diagnoses it (#1722) (4f46d58)
- minimald: bind declared ports before the name and refuse unpublished ports instantly (#1798) (658187e)
- switch: deliver each accepted box connection to the proxy with the box's identity (#1810) (ff03e62)
- minimal: make host DNS setup opt-in with a reviewable min net setup script and --undo (#2082) (29872d9)
- packaging: add the macOS app icon built from the minimal mark (#2125) (d626cc6)
- sessions: give an absent egress destination list no reach once layers merge (#2153) (35e626a)
- mlog: opt-in OpenTelemetry export, switches and a local spool (2/7, spec 25) (#1994) (f4c13e4)
- min, minimald: one trace per request across the CLI and the daemon (3/7, spec 25) (#1995) (98dbe05)
- minvmd: export the VM host daemon's spans and carry telemetry into the guest (4/7, spec 25) (#1996) (8af4e1d)
- diag:
min bugcarries the telemetry spool and redacts telemetry settings (5/7, spec 25) (#1997) (1af0a88) - otel: guest telemetry rides the VM channel (#2039) (f5bb38c)
Fixes
- Probe session git info on the host, not in the daemon (#1430) (21f4074)
- min: offer min init scaffold when add has no minimal.toml (#1538) (d8665fd)
- check: treat libresolv as a glibc stub lib (#1561) (85c9b4a)
- show a download meter when adding packages in a sandbox (#1583) (63a4b99)
- deps: bump yanked chacha20 0.10.1 -> 0.10.2 (#1589) (dd63965)
- deps: pin bitmaps 3.1.0 to clear RUSTSEC-2025-0167 (unsound) (#1588) (bab81cf)
- release: a breaking change under any type bumps the minor (#1544) (9a26da1)
- release: pin every GitHub Release tag to the built commit (#1706) (fd4c076)
- release: leave unstable alone on versioned builds (#1712) (87c7362)
- lint: scope the strict clippy gate to the branch's own lines, and take it out of just fix (#1749) (7f60810)
- sandbox2,minimald: fork every container on a thread that never retires (#1748) (ccfb654)
- minimald: close the client channel when shedding a stalled binding (#1747) (dd38a84)
- minimald: trim the state volume on every tick and at quiesce (#1744) (6727d04)
- minimald: add new ListenArgs fields to the test_cli initializer (#1757) (cb9d115)
- minvmd: detect leaked __krun-vmm in classify_detach_poll (#1732) (e0e322c)
- minvmd: raise RLIMIT_NOFILE in the VMM child before boot (#1740) (285c846)
- mip: warn on AppArmor-restricted user namespaces before builds (#1734) (e1528b7)
- minimald: distinguish attach timeout from closed, detach on stop timeout (#1733) (3d20a68)
- minimal,minimald: record the data volume's allocated size in diagnostic bundles (#1743) (1a37a15)
- minimal: stop task run hanging on a held-open stdin pipe (#1741) (9d42580)
- mctx: attribute missing read-only patch source errors (#1739) (486e595)
- cap and exclude plain-directory patch sources (#1736) (f70c637)
- test(e2e): exercise env_vars inherit across the VM boundary (#1543) (766b647)
- minimald: add git-upload-pack handler to the exec dispatcher (#1735) (d0cd927)
- minimald: make rename-to-self an error (#1593) (6ede29d)
- minvmd: reap VMM child when MarkRunning fails (#1841) (9125f6a)
- minimald: republish MINIMAL_SESSION_NAME on session rename (#1827) (ceabe65)
- sandbox2: admit the 32-bit compat ABI under the socket seal instead of killing it (#1836) (5166f3c)
- minimald: key gvproxy state dir by daemon instance id (#1832) (ad9844a)
- minimal: raise nested bundle verification budget floor from 64 MiB to 256 MiB (#1829) (5a9baf7)
- minimald,sandbox2: bound the proxy upstream dial and write box /etc/hosts atomically (#1828) (da1b4ef)
- minimal: pass declared task args through to evaluation (#1770) (95830eb)
- minvmd,minimal: key a named VM's known_hosts entry on the alias ssh connects with (#1843) (e1cc07b)
- sessions: make session-name uniqueness case-insensitive (#1848) (900f457)
- minimald: persist stable daemon identity for switch octet derivation (#1859) (1c17d2c)
- minvmd: add peer-credential check and provider-directory verification to minvmd control socket (#1853) (aba6823)
- sandbox2: strip IPv6 /etc/hosts entries when the kernel has no IPv6 stack (#1830) (44d9ec1)
- minimald,diagnostics: scrub credentials from logged exec argv and bundled log tails (#1851) (022f151)
- minimald: close the ext4 journal before trimming at quiesce (#1831) (05b0a82)
- minimald: stop the hostname proxy reusing one box's upstream for later keep-alive requests (#1861) (1de96cd)
- minvmd: detect VMM parent pid on macOS via proc_pidinfo (#1835) (961631d)
- sandbox2: truncate long box names to fit AF_UNIX sun_path limit (#1862) (0d8f2fb)
- minimald: publish runtime exposures for self-allocated native boxes (#1884) (61d106d)
- e2e: hold the default proxy port for the second daemon when beat A's holder is gone (#1876) (d78716e)
- sessions: reserve host, local and localhost as session names (#1893) (0a4bdb6)
- proxy: rewrite absolute-form request targets to origin-form (#1833) (1faed29)
- sandbox2: point the classifier install hint at the raw installer script (#1834) (1881911)
- minimald: kill silent child when SSH client disconnects (#1863) (763c4fd)
- minimald: trim the state volume on its own cadence (#1880) (bcd55b1)
- sessions: reject duplicate host ports and box port 0 in ingress mappings (#1882) (6fbe113)
- sandbox2: admit inet and netlink in the none-box seal and bring lo up (#1883) (ab870b9)
- min: warn when --sync none drops the project's minimal.toml (#1887) (a773519)
- sandbox2: default session LANG to a locale the rootfs ships (#1888) (932a9da)
- minimal: exit quietly when version output hits a closed pipe (#1894) (96d860d)
- sandbox2: expand $PATH in a composed PATH (#1889) (63bf72d)
- minimald: fail session activation when the project graph cannot resolve (#1890) (c695b39)
- mctx: preserve comments and layout when min add appends packages (#1900) (b37986f)
- sandbox2: give every box its own IPC namespace (#1857) (940c762)
- session: name the missing session in
min session hooks(#1899) (588fbde) - sandbox2,minimald: cap each box's pty count and raise the guest pty limit (#1892) (6be1a8c)
- minimald: don't drop stdin bytes when client-loss sender is gone (#1941) (547d464)
- sessions: anchor project patch sources at project root (#1904) (b1bec3b)
- minimald: run daemon tasks in the session working-directory layout (#1910) (55ae592)
- op: report all missing patched-build deps and answer --help (#1915) (fc17d58)
- minimald: exit 127 with command not found when an exec'd program is missing (#1929) (99fe552)
- minimal: retry a refused daemon socket connect in the ssh proxy command (#1919) (27cf68b)
- minimal: render client warnings as plain messages (#1921) (546a27b)
- sessions: validate egress DNS hosts and flag host-bit CIDRs (#1926) (bf98daf)
- sessions: reject session names that are not DNS labels (#1944) (63830ee)
- minvmd: default-deny the host alias and notice it before the egress verdict (#1953) (807a703)
- mctx: suggest close package names on not-found (#1945) (b7868a2)
- minimald: follow the bound port in the transient-publish test (#1965) (76e522c)
- minimal: guard oversized exec commands before ssh (#1964) (0e7d4ab)
- e2e: provision gvproxy on the native Linux lane (#1963) (d6da92d)
- minimal-client: keep hard links as links in the workspace upload (#1928) (89f04fc)
- minimal: announce the bound port when net forward gets local port 0 (#1920) (118ae3f)
- min: relay exec stdout to detect broken pipe and kill ss...
minimal 0.8.0-dev.362.ga3f2fa97
0.8.0
362 commit(s) since v0.6.0.
Breaking changes
-
mfile: warn on the deprecated harness table and refuse a task with two actions (#1938) (a19539d)
BREAKING CHANGE: minimal.toml files that spell the stack table
[harness]no longer load a stack; the table must be renamed to
[stack]. -
sessions,minvmd: put the own-ip deny-all egress default in force (#2116) (ea1b015)
-
diag: upload bundles without a token and add min diag delete (#2136) (951b248)
BREAKING CHANGE:
--tokenis removed frommin bug,min diag collect
andmin diag upload; passing it is now a parse error. TheStatus:line
is no longer printed after an upload. -
minimal: replace min net setup with min finalize-install (#2142) (f35b6ef)
BREAKING CHANGE:
min net setupis removed with no alias; run
min finalize-install(--show --scriptreplaces--print). -
minimal,sandbox2: ship the classifier step from min finalize-install (#2144) (a711830)
BREAKING CHANGE:
min net setupis removed with no alias; run
min finalize-install(--show --scriptreplaces--print). -
minimal,minimald: one host line at start, classifier advisory only on declared egress (#2145) (83f7a40)
BREAKING CHANGE:
min net setupis removed with no alias; run
min finalize-install(--show --scriptreplaces--print). -
installer: offer min finalize-install when the host needs it (#2143) (a6357c2)
BREAKING CHANGE:
min net setupis removed with no alias; run
min finalize-install(--show --scriptreplaces--print). -
mfile: refuse a minimal.toml that still spells the stack table [harness] (#2162) (bb8fa22)
BREAKING CHANGE: a minimal.toml that still spells the stack table
[harness]fails to load; the table must be renamed to[stack].
Features
- minvmd: warn within a minute when the switch datapath is lost (#1679) (86fd641)
- minimald-rpc,minimald,minimal: end a task run's box daemon-side (#1680) (29a7f5d)
- installer: install a staged version with --version (#1716) (c5091f0)
- stdlib: bootstrap_rung attr class (#1752) (c4887be)
- diag: min diag upload hands a bundle to the portal that diagnoses it (#1722) (4f46d58)
- minimald: bind declared ports before the name and refuse unpublished ports instantly (#1798) (658187e)
- switch: deliver each accepted box connection to the proxy with the box's identity (#1810) (ff03e62)
- minimal: make host DNS setup opt-in with a reviewable min net setup script and --undo (#2082) (29872d9)
- packaging: add the macOS app icon built from the minimal mark (#2125) (d626cc6)
- sessions: give an absent egress destination list no reach once layers merge (#2153) (35e626a)
- mlog: opt-in OpenTelemetry export, switches and a local spool (2/7, spec 25) (#1994) (f4c13e4)
- min, minimald: one trace per request across the CLI and the daemon (3/7, spec 25) (#1995) (98dbe05)
- minvmd: export the VM host daemon's spans and carry telemetry into the guest (4/7, spec 25) (#1996) (8af4e1d)
- diag:
min bugcarries the telemetry spool and redacts telemetry settings (5/7, spec 25) (#1997) (1af0a88) - otel: guest telemetry rides the VM channel (#2039) (f5bb38c)
Fixes
- Probe session git info on the host, not in the daemon (#1430) (21f4074)
- min: offer min init scaffold when add has no minimal.toml (#1538) (d8665fd)
- check: treat libresolv as a glibc stub lib (#1561) (85c9b4a)
- show a download meter when adding packages in a sandbox (#1583) (63a4b99)
- deps: bump yanked chacha20 0.10.1 -> 0.10.2 (#1589) (dd63965)
- deps: pin bitmaps 3.1.0 to clear RUSTSEC-2025-0167 (unsound) (#1588) (bab81cf)
- release: a breaking change under any type bumps the minor (#1544) (9a26da1)
- release: pin every GitHub Release tag to the built commit (#1706) (fd4c076)
- release: leave unstable alone on versioned builds (#1712) (87c7362)
- lint: scope the strict clippy gate to the branch's own lines, and take it out of just fix (#1749) (7f60810)
- sandbox2,minimald: fork every container on a thread that never retires (#1748) (ccfb654)
- minimald: close the client channel when shedding a stalled binding (#1747) (dd38a84)
- minimald: trim the state volume on every tick and at quiesce (#1744) (6727d04)
- minimald: add new ListenArgs fields to the test_cli initializer (#1757) (cb9d115)
- minvmd: detect leaked __krun-vmm in classify_detach_poll (#1732) (e0e322c)
- minvmd: raise RLIMIT_NOFILE in the VMM child before boot (#1740) (285c846)
- mip: warn on AppArmor-restricted user namespaces before builds (#1734) (e1528b7)
- minimald: distinguish attach timeout from closed, detach on stop timeout (#1733) (3d20a68)
- minimal,minimald: record the data volume's allocated size in diagnostic bundles (#1743) (1a37a15)
- minimal: stop task run hanging on a held-open stdin pipe (#1741) (9d42580)
- mctx: attribute missing read-only patch source errors (#1739) (486e595)
- cap and exclude plain-directory patch sources (#1736) (f70c637)
- test(e2e): exercise env_vars inherit across the VM boundary (#1543) (766b647)
- minimald: add git-upload-pack handler to the exec dispatcher (#1735) (d0cd927)
- minimald: make rename-to-self an error (#1593) (6ede29d)
- minvmd: reap VMM child when MarkRunning fails (#1841) (9125f6a)
- minimald: republish MINIMAL_SESSION_NAME on session rename (#1827) (ceabe65)
- sandbox2: admit the 32-bit compat ABI under the socket seal instead of killing it (#1836) (5166f3c)
- minimald: key gvproxy state dir by daemon instance id (#1832) (ad9844a)
- minimal: raise nested bundle verification budget floor from 64 MiB to 256 MiB (#1829) (5a9baf7)
- minimald,sandbox2: bound the proxy upstream dial and write box /etc/hosts atomically (#1828) (da1b4ef)
- minimal: pass declared task args through to evaluation (#1770) (95830eb)
- minvmd,minimal: key a named VM's known_hosts entry on the alias ssh connects with (#1843) (e1cc07b)
- sessions: make session-name uniqueness case-insensitive (#1848) (900f457)
- minimald: persist stable daemon identity for switch octet derivation (#1859) (1c17d2c)
- minvmd: add peer-credential check and provider-directory verification to minvmd control socket (#1853) (aba6823)
- sandbox2: strip IPv6 /etc/hosts entries when the kernel has no IPv6 stack (#1830) (44d9ec1)
- minimald,diagnostics: scrub credentials from logged exec argv and bundled log tails (#1851) (022f151)
- minimald: close the ext4 journal before trimming at quiesce (#1831) (05b0a82)
- minimald: stop the hostname proxy reusing one box's upstream for later keep-alive requests (#1861) (1de96cd)
- minvmd: detect VMM parent pid on macOS via proc_pidinfo (#1835) (961631d)
- sandbox2: truncate long box names to fit AF_UNIX sun_path limit (#1862) (0d8f2fb)
- minimald: publish runtime exposures for self-allocated native boxes (#1884) (61d106d)
- e2e: hold the default proxy port for the second daemon when beat A's holder is gone (#1876) (d78716e)
- sessions: reserve host, local and localhost as session names (#1893) (0a4bdb6)
- proxy: rewrite absolute-form request targets to origin-form (#1833) (1faed29)
- sandbox2: point the classifier install hint at the raw installer script (#1834) (1881911)
- minimald: kill silent child when SSH client disconnects (#1863) (763c4fd)
- minimald: trim the state volume on its own cadence (#1880) (bcd55b1)
- sessions: reject duplicate host ports and box port 0 in ingress mappings (#1882) (6fbe113)
- sandbox2: admit inet and netlink in the none-box seal and bring lo up (#1883) (ab870b9)
- min: warn when --sync none drops the project's minimal.toml (#1887) (a773519)
- sandbox2: default session LANG to a locale the rootfs ships (#1888) (932a9da)
- minimal: exit quietly when version output hits a closed pipe (#1894) (96d860d)
- sandbox2: expand $PATH in a composed PATH (#1889) (63bf72d)
- minimald: fail session activation when the project graph cannot resolve (#1890) (c695b39)
- mctx: preserve comments and layout when min add appends packages (#1900) (b37986f)
- sandbox2: give every box its own IPC namespace (#1857) (940c762)
- session: name the missing session in
min session hooks(#1899) (588fbde) - sandbox2,minimald: cap each box's pty count and raise the guest pty limit (#1892) (6be1a8c)
- minimald: don't drop stdin bytes when client-loss sender is gone (#1941) (547d464)
- sessions: anchor project patch sources at project root (#1904) (b1bec3b)
- minimald: run daemon tasks in the session working-directory layout (#1910) (55ae592)
- op: report all missing patched-build deps and answer --help (#1915) (fc17d58)
- minimald: exit 127 with command not found when an exec'd program is missing (#1929) (99fe552)
- minimal: retry a refused daemon socket connect in the ssh proxy command (#1919) (27cf68b)
- minimal: render client warnings as plain messages (#1921) (546a27b)
- sessions: validate egress DNS hosts and flag host-bit CIDRs (#1926) (bf98daf)
- sessions: reject session names that are not DNS labels (#1944) (63830ee)
- minvmd: default-deny the host alias and notice it before the egress verdict (#1953) (807a703)
- mctx: suggest close package names on not-found (#1945) (b7868a2)
- minimald: follow the bound port in the transient-publish test (#1965) (76e522c)
- minimal: guard oversized exec commands before ssh (#1964) (0e7d4ab)
- e2e: provision gvproxy on the native Linux lane (#1963) (d6da92d)
- minimal-client: keep hard links as links in the workspace upload (#1928) (89f04fc)
- minimal: announce the bound port when net forward gets local port 0 (#1920) (118ae3f)
- min: relay exec stdout to detect broken pipe and kill ss...