Issue 1979, ADR 0679 (v23), design 42 milestone zfs-owns-zfs §6-§31 and the main file's The zfs module; lead answers A-1..A-46 (hq 03-DESIGN/01-to-be/42-milestones/zfs-owns-zfs-lead-answers.md). Delivery group feature/1979-zfs-owns-zfs with mesh-sdk, mesh-tools, mesh-host and mesh-delivery.
Z0 2b699d40: pacman's config file before its package (A-26).
modules/zfs: packages, pool renamed from scrub-pool, every new value not managed until set; the config file ${config-json}; zfs.conf, ZED folder, units; the apply (properties, cache and log devices by stable name, ARC, /etc/hostid with zgenhostid guarded by the pool's label and read back); the scheduled run (scrub, trim, ZFS snapshots recorded in the ledger snapshots); hand acts; the follower (findings in the state list's findings, A-46); tools; health; leaving; the call-site test of ADR 0679 §7/§19; a user and process zfs-keeper holding the module's one process bus account, reached by the root processes over a root-only socket (A-37); the tools say every event onto the events stream with mesh/stream.publish (A-42); capabilities stream-publish, bus-state-calls, ledger-calls (A-44).
mesh-conditions: the keeper reads zfs's findings (aa0a472b).
The first check (03f2ebff6ed0) failed in four kinds, fixed here: the findings keeper (aa0a472b, 0041b69d), the keeper tests' temporary directory (8ae4fabf, d1a15ced), the vendor hosts of the package's ZED script as names on purpose (064ebc9b), and a blocking date-bound test in mesh-hand-acts that failed on the trunk too (afa825f9; the kind noted on issue 1878).
88 unit tests, no integration test (§31). The manifest validator at mesh-delivery ad7e5809 accepts zfs, mesh-conditions and pacman.
Before the new version is placed on the home server, the lead moves the pool's name from the assignment to mesh-config (A-1).
Reviewed-by: mesh-code-reviewer of fix-1977@ace at 0041b69d17
Issue 1979, ADR 0679 (v23), design 42 milestone zfs-owns-zfs §6-§31 and the main file's *The zfs module*; lead answers A-1..A-46 (hq 03-DESIGN/01-to-be/42-milestones/zfs-owns-zfs-lead-answers.md). Delivery group feature/1979-zfs-owns-zfs with mesh-sdk, mesh-tools, mesh-host and mesh-delivery.
- Z0 2b699d40: pacman's config file before its package (A-26).
- modules/zfs: packages, `pool` renamed from `scrub-pool`, every new value not managed until set; the config file `${config-json}`; zfs.conf, ZED folder, units; the apply (properties, cache and log devices by stable name, ARC, /etc/hostid with zgenhostid guarded by the pool's label and read back); the scheduled run (scrub, trim, ZFS snapshots recorded in the ledger `snapshots`); hand acts; the follower (findings in the state list's `findings`, A-46); tools; health; leaving; the call-site test of ADR 0679 §7/§19; a user and process `zfs-keeper` holding the module's one process bus account, reached by the root processes over a root-only socket (A-37); the tools say every event onto the events stream with `mesh/stream.publish` (A-42); capabilities `stream-publish`, `bus-state-calls`, `ledger-calls` (A-44).
- mesh-conditions: the keeper reads zfs's findings (aa0a472b).
- The first check (03f2ebff6ed0) failed in four kinds, fixed here: the findings keeper (aa0a472b, 0041b69d), the keeper tests' temporary directory (8ae4fabf, d1a15ced), the vendor hosts of the package's ZED script as names on purpose (064ebc9b), and a blocking date-bound test in mesh-hand-acts that failed on the trunk too (afa825f9; the kind noted on issue 1878).
- 88 unit tests, no integration test (§31). The manifest validator at mesh-delivery ad7e5809 accepts zfs, mesh-conditions and pacman.
Before the new version is placed on the home server, the lead moves the pool's name from the assignment to mesh-config (A-1).
Reviewed-by: mesh-code-reviewer of fix-1977@ace at 0041b69d173611afb395e7c0f6891b8d89ffe64f
A value of another form is refused before anything is written or run; absent and empty are not managed.
Builds: design 42 zfs-owns-zfs §9, §11, A-15, A-23
A trim schedule of weekly or monthly with no trim-day or trim-time is one refused value naming it; a keep count of 0 is that kind's none: the existing scheduled ZFS snapshots are kept and a warning names them.
Builds: design 42 zfs-owns-zfs §20, §21, §22, A-33, A-35
zfs_config also says what the module says before it leaves a node (Z17): the next load of the kernel module uses ZFS's defaults, the three units and /etc/hostid stay.
Builds: design 42 zfs-owns-zfs §28, §30, §10, A-31, A-35
The manifest declares zfs-utils and zfs-dkms, renames scrub-pool to pool, and declares every new value not managed until set; its config file is ${config-json}, the options file, ZED's folder, rc, functions, handlers and drop-in each under their condition, the three ZFS units, the apply (run-once, restarted by its config file) and the run before the distribution's scrub and trim timers. One commit: the three subtasks change the one file module.json.
Builds: design 42 zfs-owns-zfs §6, §7, §8, §9, §11, §12, §13, §14, §15, §18, §20, A-1, A-2, A-3, A-7, A-14, A-15, A-16, A-23
Renamed TestTheBundleRunsOnlyTheFormsOfADR0679: each root form is held to its whole argument list, no verb the decision never allows, zgenhostid only with the parsed hostid, a device only as cache or log.
Builds: design 42 zfs-owns-zfs §19
The three root processes declare no bus and reach the keeper's socket; the module invokes the service manager's start. The judge refuses the keeper's bus emits and state until the validator accepts what the module asks for in requires (A-38).
Builds: design 42 zfs-owns-zfs §25, §26, §27, §28, A-6, A-19, A-36, A-37, A-38
A failed keeper call in a root process (hand acts, forget, Paused, every call) now adds one warning that the bus is
taken as down, instead of being dropped silently. RunKeeper closes the connection acct.Dial opens when the keeper
stops; the message id's comment says it is nanotime-pid.
Builds: design 42 zfs-owns-zfs A-37
The tools say every event of §25 (snapshot.taken.person, scrub.requested and the others) with mesh/stream.publish on the
stream events, never stdio.Emit; the hand acts' 30 s wait reads the mark (stream.fill) before the act starts, then
stream.read from the next sequence, for at most HandWait.
Builds: design 42 zfs-owns-zfs §25, §24, lead answers A-42, A-12
mesh/delivery-group group feature/1979-zfs-owns-zfs rejected: composed together: the checker's verdict at the members' heads (03f2ebff6ed0): unit: mesh-conditi…
mesh/check failed (9): unit: mesh-conditions/cmd/mesh-conditions.TestEveryControllerKindHasItsHome: the rea…; and 8 more | d15502f3650d on 117f933dacf0
Deliverynovox/mesh-catalog@0041b69d1736 — merged since 2026-11-13T08:01:05Z
Source — source.main moved to novox/mesh-catalog@32f1566cc8. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.
composed together: pass — the checker's verdict at the members' heads (13bf070ecb87)
Transitions
2026-11-13 02:31 (new) → proposed (announced): novox/mesh-catalog#676's head announced
2026-11-13 02:31 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
2026-11-13 08:01 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-catalog@0041b69d1736` — **merged** since 2026-11-13T08:01:05Z
**Source** — source.main moved to novox/mesh-catalog@32f1566cc879. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves.
**Group** `feature/1979-zfs-owns-zfs`: novox/mesh-catalog@0041b69d1736, novox/mesh-delivery@ad7e58091801, novox/mesh-host@96a869063977, novox/mesh-sdk@2895a21e69cd, novox/mesh-tools@df2162e381f5
- composed together: pass — the checker's verdict at the members' heads (13bf070ecb87)
**Transitions**
- 2026-11-13 02:31 (new) → proposed (announced): novox/mesh-catalog#676's head announced
- 2026-11-13 02:31 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
- 2026-11-13 08:01 ready → merged (merged): on the trunk its modules follow: merged there
The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
The group's check failed TestEveryControllerKindHasItsHome: the reader zfs's findings are not read by the keeper.
Builds: design 42 zfs-owns-zfs §27, A-32
The group's check failed TestOnlyRootOpensTheKeepersSocketAndANeedlessKeeperIsTheBusDown and TestAKeeperThatDoesNotAnswerIsWarnedOnce: stat /var/tmp: no such file or directory.
Builds: design 42 zfs-owns-zfs §18, A-37
The group's check failed TestRulesBus/NoCatalogueManifestNamesAnInstallation: 11 values name an installation (the vendor sites in the package's zed-functions.sh, resources[13]).
Builds: design 42 zfs-owns-zfs §14, A-2
Issue 1979, blocking: a date-bound test. The warrant dated 2026-10-29 fell out of the listing's 14 days on 2026-11-13, failing every mesh-catalog check.
Builds: design 42 zfs-owns-zfs (the group's check)
In the test's temporary directory, or /tmp when the socket path would pass 100 characters, so a long TMPDIR cannot fail the bind.
Builds: design 42 zfs-owns-zfs §18, A-37
mesh/check being carried to 0041b69d1736 on 32f1566cc879 | from 117f933dacf0, mesh-delivery 7221a1e5cd7f, mesh-host 0193949efe9f, mesh-sdk e42b9491c93…
The validator refused zfs and mesh-conditions: mesh-conditions reads zfs.findings, which zfs had moved to bus state in requires, where the new form has no readers (ADR 0596 section 2). The keeper process's bus.state keeps naming findings. The manifest test holds it.
Builds: design 42 zfs-owns-zfs A-46 (A-32, 26, 27)
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Issue 1979, ADR 0679 (v23), design 42 milestone zfs-owns-zfs §6-§31 and the main file's The zfs module; lead answers A-1..A-46 (hq 03-DESIGN/01-to-be/42-milestones/zfs-owns-zfs-lead-answers.md). Delivery group feature/1979-zfs-owns-zfs with mesh-sdk, mesh-tools, mesh-host and mesh-delivery.
2b699d40: pacman's config file before its package (A-26).poolrenamed fromscrub-pool, every new value not managed until set; the config file${config-json}; zfs.conf, ZED folder, units; the apply (properties, cache and log devices by stable name, ARC, /etc/hostid with zgenhostid guarded by the pool's label and read back); the scheduled run (scrub, trim, ZFS snapshots recorded in the ledgersnapshots); hand acts; the follower (findings in the state list'sfindings, A-46); tools; health; leaving; the call-site test of ADR 0679 §7/§19; a user and processzfs-keeperholding the module's one process bus account, reached by the root processes over a root-only socket (A-37); the tools say every event onto the events stream withmesh/stream.publish(A-42); capabilitiesstream-publish,bus-state-calls,ledger-calls(A-44).aa0a472b).aa0a472b,0041b69d), the keeper tests' temporary directory (8ae4fabf,d1a15ced), the vendor hosts of the package's ZED script as names on purpose (064ebc9b), and a blocking date-bound test in mesh-hand-acts that failed on the trunk too (afa825f9; the kind noted on issue 1878).Before the new version is placed on the home server, the lead moves the pool's name from the assignment to mesh-config (A-1).
Reviewed-by: mesh-code-reviewer of fix-1977@ace at
0041b69d17The manifest declares zfs-utils and zfs-dkms, renames scrub-pool to pool, and declares every new value not managed until set; its config file is ${config-json}, the options file, ZED's folder, rc, functions, handlers and drop-in each under their condition, the three ZFS units, the apply (run-once, restarted by its config file) and the run before the distribution's scrub and trim timers. One commit: the three subtasks change the one file module.json. Builds: design 42 zfs-owns-zfs §6, §7, §8, §9, §11, §12, §13, §14, §15, §18, §20, A-1, A-2, A-3, A-7, A-14, A-15, A-16, A-23Delivery
novox/mesh-catalog@0041b69d1736— merged since 2026-11-13T08:01:05ZSource — source.main moved to novox/mesh-catalog@32f1566cc8. Whether it reached the machines is
mesh-delivery-view's, derived fromsource.main, the wants and the haves.Group
feature/1979-zfs-owns-zfs: novox/mesh-catalog@0041b69d17, novox/mesh-delivery@ad7e580918, novox/mesh-host@96a8690639, novox/mesh-sdk@2895a21e69, novox/mesh-tools@df2162e381Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition of this change up to its merge:git log --notes=mesh-plan.mesh-delivery: the operator's Approve of this pull request's merge into main is ended: a head it covers moved on: the heads it covers are no longer the group's heads. Nothing is merged on it. The operator is asked again once the checks pass at the new head.