Repository navigation
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 ssh (#1881) (25cc73f)
- hide host sessions path for minvmd-backed dirs (#1933) (908b5a8)
- reuse native gvproxy switch in fresh-install and bn proofs (#1972) (d1614ba)
- minimald: display HookStatus as human-readable text in activation error (#1936) (10b883f)
- scripts: resolve a numeric --user without a passwd lookup (#1981) (8b1f59a)
- minimald: log a requested session teardown at info (#1931) (2a7f6d2)
- minimald: report a failed on_destroy hook to the destroying client (#1985) (7878df4)
- mfile: bind repo-wide params into task command interpolation (#1980) (234d9bf)
- minimal: honour inherit_cwd for min task run (#1978) (12c0992)
- minimald: end daemon-terminated attaches and execs with a non-zero status and a notice (#1977) (4564a65)
- minimald: raise guest inotify limits and restrict the kernel log at boot (#1940) (8c47366)
- minimald: refuse ambiguous request heads at the hostname proxy (#1976) (173f033)
- fix(e2e): run listen-published-port case on VM lanes (#1984) (e003143)
- minimald: keep a box usable when its ingress port collides at a shared address (#1937) (399b728)
- minimal,sessions: resolve sessions by unique id prefix and refuse uuid-shaped names (#1986) (057ce0c)
- minimald: reap orphaned zombies when running as pid 1 (#1934) (14d8dc1)
- minimald: refuse at activate a session package that does not resolve (#1935) (e7533f5)
- sandbox2: give each placement probe its own leaf so concurrent spawns stop failing (#1855) (b2646a3)
- minimal-client: bound the exec ssh handshake so a burst of execs fails instead of hanging (#2016) (6bec34b)
- minvmd: warn when host free space cannot back the data volume (#2017) (2367ec6)
- minimald: answer NODATA for non-A queries on box-zone names (#2019) (6a9b6f4)
- minimald: run the SSH handshake off the accept loop so one slow client cannot stall the daemon (#2021) (fb09fd5)
- minimal: render plain console warnings as warning/error lines (#2022) (0c7017a)
- minvmd: carry the egress deny-all opt-out to the guest daemon (#2023) (a68323d)
- minimald: answer NODATA, not NXDOMAIN, for a stopped shared-address box (#2020) (9608dc0)
- scripts: stop the box-registration ctrl-c leg racing activation, and alert on a failed nightly (#2025) (7574ba5)
- minvmd: unbind a box's declared forwards when the box ends (#2005) (7872896)
- minimal-client: take down an ask dialog the host dismissed (#2004) (a415c8d)
- minimald: list and audit dynamic-range listen publications (#2007) (cce5408)
- minimald: route vm host-address box dns through the node's dns layer (#2012) (80f93a9)
- minvmd: drop a deny-all box's dns queries outside the zone host-side (#2014) (e44ae89)
- minimal: normalize egress subnet flags to masked networks (#2031) (1112c09)
- sessions: resolve session names case-insensitively (#2032) (bb990dd)
- minimald: refuse a deny-all box's names outside the zone at its relay (#2013) (4bc76cb)
- minimald: admit allow-exposed and ask-yes ports at the box's relay gate (#2028) (584cb47)
- minimald: never panic in the Stop arm and prove a stopped shared-address box resumes (#2040) (5772bf4)
- minimal: route plain-mode console warnings to stderr (#2042) (281aca0)
- minimald: bound the decision audit log and fail closed on an unrecordable allow (#2027) (ff85a01)
- minvmd: hold box-end resets until the switch answers a probe (#2050) (c1072c9)
- decode: apply array element contracts in AttrValue::from_term_at (#2047) (a558026)
- minimal: quit quietly when the proxy peer closes early (#2051) (bebfbf2)
- minimal: refuse --ingress on a box that is not own_ip (#2045) (63928fd)
- minvmd: honor the egress deny-all opt-out for undeclared host rows (#2043) (ea2a379)
- sessions: reserve the node name minimald as a session name (#2049) (2830055)
- minimald: compile switch opening from the proxy's bound port (#2053) (8a5f5cc)
- minimald: report a skipped package check at activate (#2052) (6a9e55e)
- sessions: consolidate duplicate admits_nothing predicates onto EgressPolicy (#2048) (1293f25)
- minimal: register the Ctrl-C listener once outside the net forward accept loop (#2046) (a105b54)
- minimal: set the session advisory apart with a blank line (#2058) (d3cfb93)
- op: fall back to the remote cache for patched-build dependencies (#2054) (5e84271)
- minimald: reconcile static-ingress refusal message with CLI (#2061) (cf67272)
- minimald: pin audit test timestamps to nanoseconds so rotation bounds hold (#2063) (f6963ee)
- minimald: kill a session exec's whole process group on client loss (#2062) (67502e1)
- mip: name --no-fetch when remote cache setup fails (#2066) (f6f110a)
- minimald: name the network mode in the session created log line (#2057) (0f824b3)
- minvmd: serve each control connection on its own thread (#2044) (da8d8bb)
- minimal: render ambiguous id-prefix candidates distinctly (#2069) (22fca99)
- minimald: publish the box's address before launching its activate hooks (#2072) (cd0d88d)
- minvmd: withdraw box host-table rows when the switch closes first (#2076) (cd5b410)
- minvmd: record no reply flow sourced from the egress proxy's address (#2073) (222920f)
- minimald: keep hook host that holds a host-side row on terminal attach (#2078) (d8f0750)
- checkouts: serialize concurrent git cache access (#2077) (5687dff)
- minvmd: drop proxy opening TCP packets toward published ports (#2079) (e05b294)
- minimald: register restored active sessions' hostnames at daemon start (#1932) (cbca8fb)
- minimald: refuse rowless re-mint after a registered box's host loop ends (#2080) (9357b48)
- minimal: log swallowed proxy broken pipes at debug level (#2088) (f22e3bf)
- minimald: shorten the unenforceable egress refusal to rule and remedy (#2092) (d5ba09c)
- minimald: name the box's switch address as switch_addr in the relay's flow log lines (#2089) (ba530c8)
- minimald: no box opening may compile before the egress proxy serves (#2083) (4f1cc51)
- minimald: report yielded shared-address ports at activate and in the policy view (#2085) (5789c35)
- minvmd: reap a stale gvproxy at startup (#2086) (5fbf373)
- minvmd: clamp the test registry's loopback run to the range's interior (#2097) (177daeb)
- minvmd: key box rows by canonical name (#2087) (b2be6f0)
- minimald: stop the loopback publish test flaking on strays (#2099) (2b543b8)
- sandbox2: narrow the netlink family seal to NETLINK_ROUTE (#2095) (c664f78)
- sessions: one source for the zone's node-row labels (#2094) (5d91168)
- minimal: name replacements and mode words in 0.7.0 sweep errors and docs (#2084) (335cd41)
- tui: render the effective egress policy in the detail pane (#2098) (45d9130)
- minvmd: answer held host_ip box names NODATA in the zone (#2101) (95f0e4c)
- minimald,switch: reuse released switch addresses under an epoch and a quarantine (#1867) (97e9474)
- minimald: fail a listen-publish closed when its audit cannot be written (#2096) (9295cbc)
- rpc: carry the proxy-down cause beside the answerer state (#2100) (4cc11fa)
- checkouts: validate cached clones against the stored remote url (#2102) (02aa908)
- session: show the credentialed upstream lane in session policy (#2093) (4d5159d)
- minvmd: bump libkrun to v1.19.6 and refuse a vsock stream whose host socket fails (#2105) (5ec4385)
- minimald,sandbox2: hold a hook-launched shell until its first attach (#2122) (212f0d9)
- minimal: point the shared-address port collision warning at a different external port (#2138) (d962bed)
- minimald: name the way forward in min net expose refusals (#2140) (c0a051e)
- minimald: report a wedged mint attach as busy, not exited (#2121) (1a3e420)
- minimal-tui: upload composition patches on dashboard creates (#2124) (3f5974d)
- minimald: keep exec output relays live while a stdin write is blocked (#2148) (f80d920)
- minimal: drop rpc names from daemon refusals and flag a half-open name allowlist (#2139) (d93714a)
- minimald,minimal: refuse activation before session creation when user namespaces are unavailable (#2141) (df8d01c)
- minimal: stop a wedged VM from the host when min stop --force cannot reach the guest (#2156) (802988e)
- installer: make the uninstall advice undo the whole install (#2160) (f90c261)
- minvmd: serve late channel hellos and close the stale-gvproxy reap test race (#2154) (0be5770)
- minimald: name the userns restriction in session attach spawn errors (#2119) (09e3fdf)
- minvmd: keep the egress relay draining both legs under a stalled peer (#2158) (f7af4eb)
- minimald: refuse attach while a workspace upload streams (#2157) (357ed42)
- minvmd: stop the VM gracefully on SIGTERM or a SIGINT sent to the supervisor (#2155) (b91d859)
- minvmd: keep host_ip box name holds across a VM host daemon restart (#2149) (e4b452f)
- mfile: name the offending file when refusing the harness key (#2163) (4732e71)
- sandbox2: keep the classifier's listener placement from failing on a racing fd scan (#2164) (5cd498c)
Other changes
- verify: the agent runtime's gate runs clippy and the touched crates (#1570) (25d38aa)
- deny: ignore RUSTSEC-2026-0292 until nickel pins imbl-sized-chunks 0.2 (#1576) (4368d63)
- deps: bump the cargo group with 4 updates (#1574) (4bd4aee)
- deps: bump taiki-e/install-action in the github-actions group (#1573) (8241963)
- specs: move the native deny-all resolver rule under NET-079 (#1566) (47f70da)
- specs: bind box identity, scoped revocation and the proxy leg in BEP and NET (#1578) (24dd6f2)
- agent-verify: scope clippy to the touched crates (#1674) (6356668)
- check: cover MissingRuntimeDeps::check interpreter and dep-cache paths (#1677) (294765a)
- hygiene: disable zizmor self-repository audit and pin zizmor (#1590) (9fd37f3)
- nightly: notify on hygiene failures and surface the stress step (#1591) (802317a)
- minimald: add proptest and a first request-head property test (#1678) (14eaac2)
- T4 — Stop min login minting certificates and remove min ssh-forward from the client (#1673) (2608bdb)
- T1 — Route two-label box names through the proxy, own-address boxes on the VM host included, and log every refusal (#1685) (054c6e1)
- T7 — Show --network and --ingress with the new spellings and hint at the old ones (#1676) (fc3b441)
- T26 — Retry the hostname listener and clear its warning without a restart (#1681) (b684267)
- T2 — Resolve host.min.internal from every box and route the old literal host address with a notice (#1683) (ca598af)
- agents: list every workflow in the CI lane map (#1431) (18b4784)
- T23 — Prove a box outlives its client and a lost exec takes only its own command (#1689) (3f78b05)
- T12 — Answer the box zone from a loopback answerer (#1694) (4e0abc5)
- T17 — Accept the four egress fields on own-address and host-address boxes and show the effective rules (#1690) (df86cce)
- T5 — Remove the HTTPS reverse proxy and client certificates from the daemon and serve direct-tcpip in every build (#1698) (f1c9b10)
- T52 — Add the dynamic_ingress setting to the box's ingress policy (#1699) (e36343f)
- T8 — Seal a none box, vsock included, and keep attach working (#1692) (db96615)
- return errors instead of panicking on untrusted input (#1560) (ae6d033)
- minimald: unify the session process test doubles (#1558) (51ecd14)
- T3 — Names through the shipped proxy, end to end (#1704) (6f57509)
- T59 — Create a named VM with its own state, socket and daemon, leaving the default VM's paths unchanged (#1702) (22ad605)
- T51 — Forward a box port to the laptop over the session (#1705) (93dad7e)
- T27 — Configure or auto-select the proxy port and route two daemons' names at once (#1701) (fecbfd4)
- promote: make AUR and Homebrew publishing opt-in on stable promotions (#1695) (e5b0b89)
- release: lead the pipeline doc with the stable release runbook (#1696) (d208e3c)
- T18 — Decide every frame with one pure verdict and enforce own-address egress at the relay (#1700) (1cdf5aa)
- run the five required lanes on release branches (#1715) (a62f11e)
- make the session outbound request its own e2e case (#1720) (1c40f33)
- T6 — Retired surfaces gone, end to end (#1717) (25bfabe)
- T29 — Hostnames recover, and two daemons share a machine, end to end (#1721) (973f507)
- add Vale prose linting for markdown (#1352) (2e44d1b)
- lint: enable fifteen clean clippy lints and add a diff-scoped gate (#1724) (2b004df)
- T40 — Reject relay frames whose source is not the box's lease (#1738) (3c17671)
- T34 — Refuse proxied requests exactly as direct connections, and close HTTP/2 at the proxy (#1737) (7051b70)
- T9 — Publish an own-address box on host loopback from a fresh install, with the installer checking the switch binary (#1723) (f9945c0)
- add proxy_refuses_like_direct to the session e2e (#1746) (a909897)
- T11 — Choose a network posture on a stock install, end to end (#1745) (000dade)
- T30 — Pin allowed names to the addresses they resolved to, refuse denied ranges, and answer AAAA, HTTPS and SVCB empty (#1730) (82ef7e3)
- T19 — Default own-address boxes to deny-all, with the announcement, the opt-out, and task runs under the same rules (#1727) (25436fe)
- [worker:coverage] test minimal::diag::cmd_bug bundle collection (#1684) (699c0f0)
- [worker:coverage] test minimald async_main CLI/path helpers (#1682) (8c8573a)
- [worker:coverage] test cmd_task_run env-resolution failures (#1594) (4359c6b)
- T39 — Run every box without CAP_NET_RAW (#1742) (ea29f32)
- deps: bump the cargo group with 8 updates (#1751) (eb4f8a9)
- deps: bump taiki-e/install-action in the github-actions group (#1750) (0ab6010)
- declare 0.7.0 as the next release (#1758) (3828ef8)
- loadouts: document directory loadout layout in --loadout row (#1754) (333eea1)
- readme: restore the muscle-memory sentence in the Loadouts section (#1731) (da927cc)
- gate workflow changes on actionlint and zizmor (#1592) (427b13b)
- T13 — Advise the resolver command at session start and probe the reserved range (#1725) (eb81dd7)
- T67 — Move the reserved local range to the design's 127.0.64.0/24 (#1761) (5e2b46e)
- installer: assert linux amd64 and arm64 ship the VM stack (#1763) (192b328)
- T57 — Activate a VM box on a fresh Linux install with KVM (#1767) (ac683bd)
- T20 — Own-address egress is declared and enforced, end to end (#1769) (f401403)
- T31 — Resolve and reach sibling boxes by name under both boxes' rules (#1766) (15a81cc)
- T36 — Apply per-box source-addressed rules outside the VM from a host-side box table (#1764) (f7f5a17)
- T64 — Seal every box against the socket families its namespace does not confine (#1780) (5310904)
- T38 — Boot the guest with IPv6 disabled (#1783) (9f53b98)
- T58 — Linux stock install runs VM boxes, end to end (#1774) (e6f5af5)
- T37 — Enumerate the node-plane baseline set on the host and show it beside the rules (#1785) (ecb61f5)
- T41 — Bound a root-in-VM spoofer to the resident union (#1792) (eb471e4)
- T68 — Take the userspace network stack dependency (#1795) (b2330bb)
- T66 — Register a box on the host and hand it its addresses (#1789) (4f8959b)
- T47 — Place each host-address box in its own classifier leaf and keep it there (#1768) (291024e)
- T14 — Give each box its own loopback address and answer its name from finalize to destroy (#1765) (e8984e9)
- trigger the required lanes on merge_group (#1759) (74c052e)
- T43 — Own the proxy's switch address from a host-side stack peer of the switch (#1801) (ee56dc9)
- T63 — Gate the switch's publish verbs on the host and hand the node its ports (#1788) (535a27f)
- specs: bind the host-side box table, the switch publish gate and the vsock seal in NET (#1707) (4de8ed5)
- T15 — Report native DNS as the live surface while the proxy keeps serving (#1802) (8fcbb22)
- add a commit-msg hook that mirrors commitlint locally (#1804) (15996e3)
- T60 — Address boxes across two VMs by name without a global flag (#1807) (e6702bb)
- T32 — Complete the toolchain under a hostname-only allowlist (#1771) (244a5b8)
- T74 — Decide a DNS box's destinations on the host from the answers its own queries received (#1811) (67cfaec)
- crate-map: list crates from cargo metadata and add descriptions (#1776) (b176b33)
- deps: take nickel-lang-core from crates.io (#1842) (79f3c7b)
- cut KVM lane cache and build time, free disk space in the background (#1844) (275a019)
- deps: bump pageant from 0.2.1 to 0.2.3 (#1781) (8c041ed)
- specs: pin the arch-linked specs to the commit they cite (#1760) (99f24c5)
- T16 — Names resolve natively in any browser, end to end (#1840) (6cdadfa)
- T48 — Classify host-address boxes apart from node-plane traffic and enforce their deny-all (#1805) (4216fa8)
- macos: run only the aggregator on merge-queue builds (#1866) (3d53ca5)
- minvmd: fetch the pinned gvproxy switch for the VM harnesses (#1815) (fd3fba8)
- T53 — Evaluate min net expose against dynamic_ingress and publish only under an allow (#1865) (784ee53)
- T44 — Give the proxy an attachment per box from outside the VM (#1871) (2b9b218)
- T78 — Register an own-address box with the VM host daemon whenever the CLI talks to one, macOS included (#1852) (3bf6b09)
- T76 — Reserve the local range on the macOS host by the advisory's privileged step (#1825) (f229d6b)
- T62 — Allow github.com and nothing else, end to end (#1838) (c4b2f5f)
- T85 — Hand a VM only a node port no other VM on the host already serves (#1903) (35065a9)
- T77 — Pass a box's replies on inbound flows its ingress admitted, on both gates (#1839) (83f09fb)
- T22 — Publish a permitted port when a process listens and withdraw it when it closes (#1856) (0cab30a)
- T49 — Keep the daemon's own package fetch working as node-plane traffic under a deny-all box (#1868) (1daeda3)
- bump the pkgs locked_commit to pkgs main (#1914) (c764e33)
- T65 — Answer the box zone from the VM host daemon on a VM-backed host (#1813) (08a4f36)
- T70 — Shape every egress refusal from one builder in the switch crate (#1858) (a4cad26)
- T54 — Prompt the attached human on ask, refuse when nobody is attached, and audit every decision (#1891) (3bd9a48)
- T45 — Reach the proxy only as a credentialed lane's infrastructure (#1885) (8f0d6cd)
- T86 — Let the switch's forwarder reach a box's published ports through the egress gate (#1905) (8df9463)
- T61 — Two named VMs on one machine, end to end (#1850) (d0d1f31)
- T25 — Ports publish themselves and the box outlives its client, end to end (#1912) (6ac7f18)
- T42 — Escape into the VM reaches only the declared union, end to end (#1923) (d1e1572)
- T73 — Surface the host's classifier verdict on the create response and in the CLI (#1877) (157b038)
- e2e: see each box by its own address at the proxy, end to end (#1930) (a18bb03)
- T80 — Publish runtime exposures at the registered address, refuse stopped boxes, and say when a port is not yet reachable (#1906) (a248caf)
- T81 — Make the attachment's box id the box's own UUIDv7 and refuse a zero id in the delivery header (#1939) (3488b87)
- T91 — Check that min-answerer links only system libraries (#1954) (f4b5854)
- T87 — Refuse a host-address declaration the classifier cannot enforce on a host that decides per box (#1955) (f6b1b18)
- T89 — Drop a source no box holds at the VM host's gate, whatever the egress default's phase (#1951) (b55e374)
- T83 — Give runtime publications one owner, so expose and listen-publish never contend for a port (#1956) (85fed63)
- T79 — Drop a box's flows to the switch's own addresses in the shared verdict (#1943) (d2a78b4)
- T93 — Give each VM a hostname-proxy port no other VM holds, and fail loudly when it cannot (#1957) (901d29f)
- T88 — Declare a deny-all egress box from the CLI and show declared and default egress by name (#1958) (cacb330)
- bump the pkgs locked_commit for conntrack marks and tzdata (#1962) (601f78f)
- T50 — Host-address boxes under deny-all, end to end (#1961) (ce00fef)
- T82 — Carry the box's dynamic ingress setting into session create and prove a runtime expose end to end (#1959) (9ffd919)
- T71 — Hold the box-zone answerer as a host service installed by the privileged step (#1924) (a7e5220)
- T84 — Record a box's runtime-admitted ports in the VM host daemon's table on the in-VM daemon's report, within the host-held grant (#1960) (5625988)
- T75 — Load the classifier's one ruleset inside the guest kernel so a VM host decides a host-address box's verdict per box (#1886) (01b42ae)
- T92 — Ship min-answerer in every release that ships min, link-clean and signed (#1971) (66bdb90)
- T95 — Own the attached terminal in the client and relay it to ssh through a local pty, with a hook that suspends the relay (#1973) (46e282e)
- T55 — Expose a port from inside the box, end to end, on the native lane (#1974) (f08dc5d)
- T90 — Make native minimald a client of the host's box-zone answerer (#1979) (27a7579)
- T94 — Bridge the in-VM daemon's port reports to the VM host daemon so an allow or a listen publishes on a VM-backed host (#1975) (03f2cf1)
- T96 — Ask the attached host client, not the guest, before a VM-backed box's ask publish is admitted (#1987) (e2eee85)
- T97 — Expose a port from inside a box on a VM-backed host, end to end, including the box's own named VM (#2006) (5ec89e9)
- deps: bump taiki-e/install-action (#1982) (1a6d1fa)
- deps: bump the cargo group across 1 directory with 4 updates (#2000) (96ffa1b)
- minvmd: raise the exec timeout and pre-launch boxes in the proxy test (#2029) (2aa1a7f)
- e2e: run own-ip cases on vm lanes when the host has no tun device (#2008) (1d1b81a)
- release: rename min-answerer to minzoned and ship it signed for every platform (#2002) (95dcab8)
- macos: run the PR e2e only after the KVM lane passes, and on any crate change (#1927) (2934458)
- specs: say none boxes keep the inet families their netns confines (#1922) (c28425a)
- correct sessions policy output description (#2055) (f436850)
- decode: pin array-of-record attr decoding (#2056) (02ddb1a)
- specs: add the local-first box spec (BOX) for inbox#731 (#1697) (143cce4)
- release: route the signing jobs to the Mac that holds the keychain (#2010) (7291ee6)
- specs: let a non-interactive start print a one-line resolver advisory (#2068) (78e99b2)
- specs: record runtime ports in the host table within the host-held grant (#1898) (d374070)
- e2e: document and prove a task's network follows its session (#2091) (ac8b8a4)
- e2e: assert the egress gate's terminate record on the held-connection revocation leg (#2090) (b43f375)
- specs: refuse unenforceable host-address egress and add --deny-all-egress (#1916) (39dc440)
- specs: settle box reach to the host alias and the node address (#1946) (99d1abd)
- specs: amend NET-122, NET-079, NET-078 and the activate surface for finalize-install (#2137) (88bfefc)
- nightly: grant checks: read to the reusable macos lane call (#2161) (d7a1470)
- 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)