2026-10-13 - 2026-11-13
Overview
384 Pull requests merged by 2 users
Merged
#678 Bridge for G's take-in: an empty modules/mesh-build-go/buildstep package
Merged
#677 Milestone 47 G: mesh-catalog's part of the one release
Merged
#676 zfs: the module owns a node's ZFS and changes nothing unset; pacman declares its config before its package (issue 1979)
Merged
#674 zfs: the scheduled run names its minutes, so its timer starts (issue 1979)
Merged
#673 kernel: declare amd-ucode only (issue 1977, L10)
Merged
#672 kernel: microcode in every initramfs (issue 1977)
Merged
#671 systemd-resolved: the own resolver's file waits 3 s a try (issue 1748, ADR 0678)
Merged
#670 mesh-vault: secret_holders lists every record of the vault's store by name and fingerprint (issue 1409)
Merged
#669 node-uplink links answers each link's mac, master and parent (issue 1965)
Merged
#668 mesh-files: find writes the NUL itself, so a list or search through root runs at all (issue 1409)
Merged
#667 A step answer over the steps state's bound is kept without its taken versions, said, not lost
Merged
#666 The provisioner's retiring asks get a bounded id, and a refused one is said (issue 1966)
Merged
#665 node-files lists a place a secret is kept, entries without content, and stat says a missing path is missing (issue 1409)
Merged
#664 licences_switches answers switches carried from the old database with their licence and consumer (issue 1409)
Merged
#663 A check step that errors after its fetch merged still answers its fetch
Merged
#662 The licence manager is built of its parts, a manager and its tools, and the finished carry-over leaves (issue 1409)
Merged
#661 The licence manager counts room from the weekly window alone, so the switch finds a target (issue 1409)
Merged
#660 The licence manager declares its logs in the logs section, so they are issued and its carry-over can finish (issue 1409)
Merged
#659 The licence manager runs as its own account, so its own logs are issued to it and its carry-over can finish (issue 1409)
Merged
#658 systemd: serve kernel-log, the node's kernel log of this boot or an earlier one; journal refuses a boot (issue 1975)
Merged
#657 The licence manager keeps its data on the bus and switches licences by itself at 99% (issue 1409)
Merged
#656 Registry recovery: the bus module's list, show and orphans answer each binding (issue 1966)
Merged
#655 The Go fetch fails when its shut-off package load cannot run at all, naming the directory and go list's error (issue 1966)
Merged
#653 Fill gitea's pool keys in the provisioner client's gitea tests, which fail on main since 4becc7bd (issue 1966)
Merged
#654 The Go fetch takes zero-version requirements from the module graph and proves them with a shut-off load; mesh-build-image and -node name nodebuildgo (issue 1966)
Merged
#652 Play the config watch in the package seats' whole test, so the held callers list is proven (issue 1966)
Merged
#651 Review parts are asked one at a time: the node judges one at a time (issue 1966, quick fix)
Merged
#650 The condition keeper reads the node-engine's findings; claude-code's seat-list again answers the operator's sessions (issue 1966; group fix/1966-seat-list-unread)
Merged
#649 The build modules end a transport fault's run again, serve drop, and are held to the transport-fault classes (issue 1748; group fix/1748-transport-retry, merge last)
Merged
#648 The knowledge base's review knows its round: from round 3 only a wrong record asks changes, at round 5 the operator decides (issue 784)
Merged
#647 mesh-build-go reaches the forge's git when the public proxy is unreachable, and a network failure is no pin (issue 1966)
Merged
#646 Distribution and the forge hold their caller list from its config watch, not an ask per call (issue 1966; group with mesh-sdk)
Merged
#645 mesh-build-image names its copy wait's ownership mark nonce, so the state takes it and nats images are stored again (issue 1966)
Merged
#644 The bus module reads a consumer's counts and a stream's events, so a lost event can be traced
Merged
#643 The resolver module's tests hold its configuration's guards
Merged
#642 mesh-hand-acts answers bounded, newest first; mesh-healers seeds from a partial answer (issue 1966 S8, recovery)
Merged
#641 Sessions merge without a human approval: the hard rule keeps a branch and a pull request for every change
Merged
#640 mesh-build-go reads a compose ask's gzip-packed request (issue 1966, recovery; group with mesh-delivery)
Merged
#639 Gate record of mesh-catalog's forge-made merges (issue 1966, recovery)
Merged
#638 The provisioner keeps a provision while a module's newest composition is unread, and withdraws an ask once a key is needed again (issue 1966, recovery)
Merged
#637 distribution's program listens on 5100 and the registry container on 5001, so no mapping names the artifact store's port (issue 1966, recovery)
Merged
#636 The keeper's health reads the consumers it looks for (issue 1966, recovery)
Merged
#635 The bus keeper reads a bare stream's max-age-days "none" as kept for good (issue 1966, recovery)
Merged
#634 dnsmasq: the public upstream resolvers are settings, not fixed in the template
Merged
#633 Forge database pool caps are config values, and a changed value recreates the forge (issue 1966, recovery)
Merged
#632 Cap the forge's database pool at 40: the store's 100 connections are shared (issue 1966, recovery)
Merged
#631 Manifests name their packages by full module path (issue 1966, bootstrap recovery)
Merged
#630 The gate part reads no pull request description: no review-line wait before the Approve (ADR 0659)
Merged
#629 The gate asks the Approve at once while the check gates no merge, never waiting for a verdict (issue 1966)
Merged
#627 Take the Go package artifacts out of the delivery parts for now, so the running builder builds them (issue 1966)
Merged
#626 distribution's artifact-store alias names port 5100, where the store answers (issue 1966)
Merged
#625 distribution provides artifact-store again beside its new roles, for the running node-engines (issue 1966)
Merged
#612 Registry milestone: mesh-catalog (issue 1966)
Merged
#624 mesh-build-go's fetch downloads the module graph of each placed sibling Go module (issue 1921)
Merged
#622 mesh-build-go runs a checking program over a change's heads (issue 1921, B0)
Merged
#623 Progress reads only a design's head, so a long design never takes the progress view down (issue 1947)
Merged
#621 operator-channel.asks answers open asks within a bound when asked with no argument (issue 1974)
Merged
#620 knowledge-base get shows the findings of the pending version's reviews (issue 1970)
Merged
#619 mesh-build-go keeps a composer per the versions it was asked to build with (issue 1921)
Merged
#618 The Go build module takes a repository's own unpublished modules from its tree (issue 1921)
Merged
#617 The build modules build a folder module's packages at their paths and take a zero-version requirement from the ask (issue 1966)
Merged
#616 nfs-server: the look below a share runs beside the pass, so a long walk no longer fails its health (issue 1971)
Merged
#615 Gate reads the forge bridge's own messages and passes a group's end by; operator-channel.asks narrows its answer (issues 1585, 595; ADR 0633)
Merged
#613 mesh-build-go: a merge preview names a path and a path inside it (mesh-contracts' go), and a step's cause keeps the module Go could not find (issue 1966)
Merged
#611 mesh-knowledge: a closing is reviewed on its closing alone, a graduation on every became link it carries (issue 784)
Merged
#610 The knowledge base's close verb: a research effort graduates, is abandoned or parked as an idea, judged only on its closing (issue 784, ADR 0630)
Merged
#609 The knowledge base keeps the roadmap: a research effort can be an idea, and at most three are active (issue 1970, ADR 0629)
Merged
#608 A failed backup names its cause: nats's dump keeps the snapshot's exit status and the container's state, restic reports the tail of what a command printed (issue 1585)
Merged
#607 nats removes a push consumer; gitea, mesh-conditions, mesh-issues and messenger drop what named the removed controller (issue 1126)
Merged
#606 mesh-vault: read which modules of a machine the vault judges handed, and why, with own_handed (issue 1966)
Merged
#605 L3 final: core-credentials back, nats provides bus-state, artifact-store-tools calls the seat mesh-catalog, the old catalog module drops its claim (ADR 0614, ADR 0604, issue 774)
Merged
#604 L3 recovery: take core-credentials out of the bus's, the provisioner's and its client's manifests until the judge that knows it runs (issue 774, issue 1585)
Merged
#603 L3: a provider's have counts only from a build that offers the provision; the gate takes a merged message with no trees (ADR 0603 §5, issue 1367)
Merged
#602 The vault mints ledger accounts and keeps a machine's in node-tools' own secret ledgers (issue 1966, B1)
Merged
#601 cpu_top's process view cuts a rewritten title at its first space, so no argument reaches the answer
Merged
#600 disk-load's cpu_top names the processes inside one unit
Merged
#599 mesh-provisioner: never ask to retire access on an incomplete read
Merged
#598 sdk1: build modules, provisioner and checks follow ADR 0593
Merged
#597 mesh-build-go: a relative replace still resolves in the temporary modfile
Merged
#595 The vault makes the first credential of every new consumer, as the controller did (issue 1126)
Merged
#594 Modules without the controller: vault judges each sensitive caller, nox records its hand acts, provisioner binds ahead of the want (issue 1126 group B)
Merged
#593 nox works without the controller: each command calls the seat or tool that owns its job (issue 1126)
Merged
#592 Without the controller: the vault retires and rotates, the healers act, the artifact store is swept, config and conditions stand alone (issue 1126)
Merged
#591 The vault mints a joining node's token, account and certificate, and rotates a node's login over two; nox enrol open (issue 774)
Merged
#590 Modules stop depending on the controller before the lease write (issue 774)
Merged
#589 pacman's mirror list keeps a fallback tail; a failed check leads the merge ask's headline (ADR 0586, issues 1876, 1166)
Merged
#588 pacman keeps one mirror list for the mesh and reads each node's own packages; the provisioner composes once (ADR 0585, ADR 0565 §6, ADR 0570; issues 1876, 1953, 1954)
Merged
#587 Agree a toolchain by strict majority; a node on another version sits out (ADR 0584, issue 1578)
Merged
#586 Readers leave the controller: hand acts, packages, compare, provisioner on the watched reader (design 47 L5-L7)
Merged
#585 Catalog readers decode instead of judging; mesh-build-go builds against the asked package versions (ADR 0578, 0573 §2)
Merged
#584 disk-load watches the node-engine's data items instead of composing them, and each round says how far it got (ADR 0577)
Merged
#583 disk-load builds on the current mesh-sdk, so it accepts nats manifest again (issue 1952)
Merged
#582 The self-check judges D13 from watched state, findings are saved, and bus-upgrade-failed ends with the controller (issue 1952)
Merged
#581 The provisioner composes route contributions with the machine port (issue 774)
Merged
#580 Build mesh-build-go against the group mesh-sdk, so a manifest removing ASSIGNMENTS is accepted and the catalogue members of feat/072-moves build (issue 774)
Merged
#579 The vault the only issuer, placement read per node and module, hand acts copied once, routes only from the provisioner's plans (issue 774)
Merged
#578 The knowledge base retracts a wrong decision or clause on the operator's Approve, instead of adding a correcting record
Merged
#577 The gate takes away an ask once no delivery it covers can still merge by it (issue 774)
Merged
#576 The vault reads a machine's placement once per answer and says how long each answer took (issue 774)
Merged
#575 The provisioner says why a key stays asked when its provider reads no plans of the seat (issue 774)
Merged
#574 One rule for whether a plan hands its module, so no part reads a provisions-only plan as handed (issue 774)
Merged
#573 The vault answers a module's own secrets unless its plan hands it, not whenever a plan exists (issue 774)
Merged
#572 The provisioner follows the one rule for provisions, and the gate says a group's members when they change (issue 774)
Merged
#570 The provisioner client takes a plan with no templates as nothing to fill (issue 774)
Merged
#571 The provisioner reads a provider's outcome per offer, and modules subscribe before they wait, so gitea's credentials, routes and early events are not lost (issue 774)
Merged
#567 A catalogue check parses every manifest as the nodes do; mesh-provisioner holds a refused manifest alone (issue 774)
Merged
#566 Revert power's bar item attributes, which every node-engine refuses, so machines compose again (issue 774)
Merged
#565 The provisioner holds only a bad module, the vault keeps bus accounts by declaration, and silent faults from the release sweep speak up (issue 774)
Merged
#564 The provisioner client accepts credential form none through the mesh-sdk list (issue 774)
Merged
#563 Leave the engine's acts out of the bus tools' removals, so the bus's user list is composed again (issue 774)
Merged
#560 Design 47's last milestones: the keeper, self-check, healers, hand-acts, provisioner, vault, artifact sweep, disk readings, credential forms (issues 774, 1952, 1953, 1954, 1955)
Merged
#562 mesh-delivery-gate: an answer stands only for the ask it answers, so the approved release merges (issue 1730)
Merged
#561 Let the forge's sshd take a burst of connections from one build machine, so a check's parallel fetch is not dropped (issue 774)
Merged
#559 Pin the parse-only mesh-sdk in the build modules, so they build design 47's manifests (issue 774)
Merged
#558 mesh-config: read config declarations from each placed module's own manifests on the bus, never from the controller (issue 1953)
Merged
#557 Revert L3: its node-engine removed every held module on novox, the bus server among them (issue 774)
Merged
#556 L3: mesh-vault mints, retires and signs; nats makes its certificate; messenger asks each engine (issue 774, ADR 0561), rebased onto L2
Merged
#555 mesh-delivery-gate asks the operator's Approve on a verdict only: the one-hour fallback goes (issue 1733)
Merged
#554 The Go, Node and image build modules watch their settings file and say a capacity of 0 in their health
Merged
#553 mesh-build-go's compose integration test gives its module one slot (issue 1126)
Merged
#552 No repository names a node: placement files, particulars and per-node build defaults go (issue 1126, delivery 2 of 2)
Merged
#551 power: its loop and boot tests run on a fake clock, so a busy build node cannot fail them (issue 1126)
Merged
#550 dnsmasq starts at boot: its drop-in no longer orders after a target the package orders it before (issue 1126)
Merged
#549 gitea: set any field of a branch's protection or a repository's settings, saying whether each trunk stays protected (issue 1126, ADR 0566)
Merged
#547 power: every reboot, poweroff and halt is bounded at 10 minutes (group fix/shutdown-bound, issue 1126)
Merged
#546 mesh-build-image: a node that cannot build here now stays healthy and says not eligible, so it never holds the delivery (issue 1126)
Merged
#545 mesh-vault: own answers a node within its bound — assignments from a watched mirror, one read per module, one synced record per answer (issue 1126)
Merged
#543 The kernel module loads tun at boot and keeps the running kernel's modules across an upgrade; mesh-build-image takes no ask where it cannot build (group fix/ace-tun)
Merged
#541 knowledge-base.progress takes since: what changed in the last hour; issue-tracker.changes says each issue's moves from what to what
Merged
#540 Retire the spelling catalogue in the words check, and refuse a compiled program anywhere in the repository (group words/catalog)
Merged
#539 gitea announces from the forge's events, not a poll: an edited base and a close are announced at once, one pass at start (issue 1422)
Merged
#537 Gate seeds a never-merged repository's trunk head and follows a retargeted base; gitea announces a retarget and sets a default branch and a pull request's base (issue 1422; group fix/1422-trunk-unknown)
Merged
#535 mesh-vault takes what runs of a node's own secret through move-in, on the node's ask (issue 1126 C4, group fix/1126-seed-same)
Merged
#536 messenger: say what waits in its burst window, and stop reporting a state failure that has passed (issue 1507)
Merged
#533 claude-code: render a 660 s timeout for the mesh console, so mesh_wait is not cut at a minute (issue 1871)
Merged
#530 mesh-delivery-gate: ask the operator's Approve only once the check has a verdict (issue 1733) — wait for its check before approving this one
Merged
#529 Take the placement files out again: every node composing its own fails (issue 1126, revert of #528) — approve now
Merged
#528 Seed the placement files a third time (issue 1126) — Approve ONLY after the lead says all four nodes answer 'same'
Merged
#527 Take the placement files out again: since the seed no delivery reaches any node (issue 1126, revert of #525)
Merged
#525 Seed the placement files again from what each node runs now (issue 1126, ADR 0549 §4) — Approve only after every node answers 'same'
Merged
#524 gitea: gitea_team_rights reads a forge team's members and units and a user's effective rights, read-only (issue 1563)
Merged
#523 mesh-build-go, mesh-build-node: a missing bubblewrap fails the sandbox proofs on a build node instead of skipping them (issue 1309)
Merged
#522 mesh-issues: cover a merged fix from the delivery view's reached head, not only its once-said event (issue 1950)
Merged
#521 Take the placement files out again, so every node returns to the controller's compositions (recovery, issue 1126)
Merged
#520 Seed the placement files from what each node runs today, so placement lives in the catalogue (issue 1126, ADR 0549 §4)
Merged
#517 The issue tracker learns the merge of a fix it never heard, so an old resolved issue no longer reads 'nothing heard from the delivery' (issue 1950)
Merged
#519 The placement check and the delivery gate read the group's mesh-sdk, so replicated seats pass and placement pull messages are read (issue 1126)
Merged
#518 Every build module clears at start what a previous process left running, held by the catalogue's check (issue 1890)
Merged
#516 Every build module runs the failure contract's conformance kit, and the catalogue refuses one that does not (issue 1901)
Merged
#515 Delivery records are true at the source: the gate keeps no state after the merge, and the issue tracker reads delivered from the view (issue 1280)
Merged
#514 The merge Approve says the check's real state, and is asked again when it passes or fails (issue 1733)
Merged
#513 A reads-outside marker lists what its tests read, so its package's check is reused until one of those files changes (issue 1936)
Merged
#505 The catalogue's placement files: listed at a merge and checked (issue 1126)
Merged
#512 The image build context is the module's own directory, so a Dockerfile in a subdirectory builds (issue 1703)
Merged
#511 The build modules size their capacity by CPU share and keep build hours (issues 1890, 1806)
Merged
#510 mesh-issues: a milestone or commit link moves no issue and keeps no worker current (issue 1781)
Merged
#509 Forge rights read as the user sees them; write-only grant for mesh-tools; progress answers in minimal detail (issues 1945, 1947)
Merged
#508 The catalogue's check uses the shared binary refusal, commit by commit (issue 1577)
Merged
#507 The catalogue's check refuses a compiled program under modules/, and main tracks none (issue 1577)
Merged
#506 Milestones are records in the issue tracker, and progress reads them (issue 1781)
Merged
#504 knowledge-base.progress: how far a design, milestone, issue or record has come, in one call (issue 1947)
Merged
#503 The mesh writes the repositories it delivers, and asks no Approve for a merge it cannot carry out (issue 1945)
Merged
#502 Image builds run their RUN steps on pasta, and every build failure keeps its real error (issue 1703)
Merged
#501 An approved group merges whole or not at all, and two groups never interleave in one repository (issue 1275)
Merged
#500 Every forge account the mesh's parts use reads every repository (the operator, 2026-10-26)
Merged
#499 Build modules size their steps from the node's build share once it is given (issue 1806, change A)
Merged
#498 mesh-build-go says which packages it cannot test here, and mesh-build-node's tests need the Node toolchain (issue 890, ADR 0552)
Merged
#497 pacman: the round and the history tools say in plain words what they answer
Merged
#496 Build modules end the steps a previous process left running, and serve build_<lang>_step_end (issue 1890)
Merged
#495 gitea: the tools' forge account reads every repository (the operator, 2026-10-26)
Merged
#494 Vault: adopt the hashes of bus accounts it holds no value for, handed sealed by the bus node (issue 1945, ADR 0550 clause 4)
Merged
#493 Gate: merge turns, a merge waits for a running check of its repository, merges on a carried verdict with no second ask (ADR 0548, issue 568)
Merged
#492 mesh-build-go: count skipped tests per package, so the checker keeps no pass that skipped (issue 890)
Merged
#491 mesh-build-node tests: never install a toolchain from the registry in the integration level; skip as NOT RUN when none is installed (issue 890)
Merged
#490 Desk channel: keep what was shown in memory while the store does not answer, so a clearing replaces the urgent notification (issue 384)
Merged
#489 Knowledge base: withdraw a clause's 'changed by' mark once no accepted record changes it (issue 466)
Merged
#488 Build modules: run every package's tests of a level, with a fixture of two failing packages (issue 1921)
Merged
#487 Vault: name a hash record's secret in a field called of, so the runtime keeps it (issue 1945)
Merged
#486 Vault: read own secrets' generations, and hash each bus account it is handed for the grants part (issue 1945, ADR 0547 clause 9)
Merged
#485 Build modules' step and toolchain lists read only the newest keys they answer, in parallel (issue 1827)
Merged
#484 mesh-provisioner-client: a module that leaves or is placed again asks the vault afresh (issue 1945)
Merged
#483 Gate: a merge learnt seconds late moves the trunk; and a setting check-gates-merge so the merge check can stop gating (operator 2026-10-25 22:56)
Merged
#482 mesh-provisioner-client: retry a refused write on the node-engine's wake and ask the vault again at once (issue 924)
Merged
#480 Gate: hand every member of an approved group in pin order, settle pull requests closed on the forge, and say a stopped pass as a condition (issue 1275)
Merged
#481 Build modules' steps live two days and their pause has a state of its own, so the steps bucket no longer fills (2026-10-25)
Merged
#479 Let the build modules follow their capacity on the bus, so a node raised from capacity 0 starts pulling (issue 1887)
Merged
#478 nextcloud: the module makes its own mesh-admin account right on a 401 and backs off on a refusal, so its shares poll stops being refused every minute (issue 1253)
Merged
#477 mesh-build-go: a package that fails without an assertion carries its real cause, never "PASS" (issue 1901)
Merged
#476 The provisioner client fills every module again when the socket returns and when its node's own composition moves (issue 1944)
Merged
#475 R6: the gate keeps only the merge's states; walk, plan and step code and their verbs go (issue 1946)
Merged
#473 R4g finish: mesh-build-go's compose job, the reads-outside marker in the digest, merge-check.sh gone (issues 1295, 1621-1623, 1935)
Merged
#472 gitea's forge-account reads the forge's own host key file before scanning its sshd, so a forge restart no longer refuses every forge account (issue 1939)
Merged
#474 The gate keeps a merge it hears before it holds its seat and catches source.main up when it does, so a missed merge no longer leaves the checker on an old trunk (issue 1726)
Merged
#471 gitea's watcher answers its handshake without waiting for the forge, so a slow forge at a tool-runner restart no longer kills its tools and events (issue 1726)
Merged
#470 mesh-build-go: lint the unit level's directories as many at once as its tests, so a large repository's check ends within its bound (issue 1930)
Merged
#469 mesh-mail-reader: read messenger's sent_on as a list, so an unchanged set of mails is signalled once, not every 160 s (issue 1926)
Merged
#466 mesh-build-go: a failed test keeps its last lines and its cause, not its first fifteen (issue 1901, with mesh-delivery)
Merged
#468 gitea: the checker's owed results are taken at once and written in the background, so the runner keeps the watch and every mesh/check reaches the forge (issue 1726)
Merged
#467 The build modules pin mesh-sdk's list-form level digest, so a check of a repository with a package named token ends (issue 1930, with mesh-sdk and mesh-delivery)
Merged
#465 mesh-build-go: build_go_test takes packages as a typed list too, so checks run again (issue 1925)
Merged
#464 R4g+R5 (mesh-catalog): the build modules pull asks, scripts become tests, build-agent references go (design 47)
Merged
#463 The forge module changes no repository's branch protection unless keep-main-rules is true (issue 1903)
Merged
#461 Move the gate's source.main for a merge heard only from the forge, so the checker judges on the trunk that is (issue 888)
Merged
#460 Checks under 5 minutes (mesh-build-go): siblings only in the digests that read them, selected dirs in a pool, a mirror and verify once, and a change judged by its own build module (issues 1896, 890, 1898; ADR 0535, 0536)
Merged
#462 Betterbird leaves the catalogue: the operator removed it from both desktops (issue 806)
Merged
#458 The build modules refuse every step and report unhealthy under a 20 GiB free-space floor, release workspaces, and sweep after 2 h (issues 1839 and 1894, ADR 0532)
Merged
#459 Make the catalogue's tests pass in the build sandbox, and give the integration level the installed Node toolchain read-only (issue 1891, ADR 0533)
Merged
#457 R4e (mesh-catalog): build modules push and narrow, the gate stops judging, gitea writes mesh/check from the checker's owed state, and the census fixes
Merged
#456 Make buildah's runtime directory before every buildah run, so mesh-build-image's health does not fail for want of it (issue 1884)
Merged
#455 Fill a module again when a node-engine returns after any failed fill, not only a missing socket (issue 1873)
Merged
#454 Let a run read from a node's pacman log never hold back a new upgrade, so the mesh can upgrade nodes at all (issue 1841)
Merged
#453 Give /var/lib/systemd and /var/lib/postgres back to their packages and keep the two modules' own files under /var/lib/mesh (issue 1873, delivery A)
Merged
#452 Keep the pacman keeper's state in a directory of its own, not in the package database's /var/lib/pacman (issue 1841)
Merged
#450 Upgrade the nodes one at a time on the bus, with a package record, a kernel hold, an after-upgrade check, a rollback and a fallback kernel (upgrade safety, issues 1840 and 1841)
Merged
#451 Let restic's thinning wait up to ten minutes for a held repository lock instead of failing at once (issue 620)
Merged
#449 only-office: stop declaring the old lib directory (issue 1854)
Merged
#448 only-office: keep its working directories under a root-only box (issue 1843)
Merged
#447 Ask a check the build queue lost again, and take a recheck from proposed when no check of its head is held (issue 1274)
Merged
#446 nextcloud: keep onlyoffice's jwt off argv, and re-check a failed connection every tick (issues 1831, 1832)
Merged
#445 Fetch a Go pin only a pull request carries from its pull head, so a group member pinning its mesh-sdk head builds (issue 1148)
Merged
#444 Hold a delivery's problem messages until it settles, and say a refusal only when its fresh check did not cure it (ADR 0505)
Merged
#443 Let nginx through only-office's lib directory, so OnlyOffice serves converted documents instead of answering 403 (issue 1837)
Merged
#442 A tool verifies the bus's snapshot, so an upgrade or a restore is checked without a docker exec (issue 1842)
Merged
#441 Refuse a node name of the mesh in the pacman and kernel modules (issue 1838)
Merged
#440 Pin only-office's secure-link secret, so OnlyOffice's signed download links verify across restarts (issue 1837)
Merged
#434 The bus runs its upstream image with the mesh's programs mounted (issues 1640, 1641, 1642, ADR 0480 §1-§3, §5, §6; ADR 0497 §5; ADR 0506)
Merged
#438 Join nextcloud to only-office through a document-server provision, so OnlyOffice opens documents again (issue 1830)
Merged
#437 Hold a config value for the pull request that introduces its key (issue 1826, ADR 0502)
Merged
#436 Give mesh-build-image the registry's address as the seat's reach (issue 1703)
Merged
#435 Add the image build module: buildah and mesh-build-image, rootless, publishing only from the trunk (issues 1702, 1703, 1704, 1707)
Merged
#433 Register the build and delivery modules as issue owners (issue 1815)
Merged
#432 Hold the Approve ask until a review names the head (issue 1803, ADR 0496)
Merged
#431 Leave the go.mod fixtures under testdata out of the build module's tests and digests (issue 1810)
Merged
#430 Add disk_folders to disk-load: which folders fill a disk (issue 1804)
Merged
#429 Start the gitea bundle's binds without awaiting them, so its handshake is answered (issue 1793)
Merged
#428 Bind the gitea bundle's event consumers again until they hold, so verdicts reach the forge (issue 1793)
Merged
#427 Make docker_volumes_remove_anonymous answer on a machine with over a thousand volumes (issue 1796)
Merged
#426 A delivery whose walk was folded into a batch follows that batch's walk and ends delivered (issue 1786)
Merged
#425 Add a tool that removes leftover anonymous docker volumes (issue 1796)
Merged
#423 The checker runs beside today's check: build modules merge and place siblings; with automx, provisioner and gate fixes
Merged
#424 Ask a group member's own repo-check when the group is held for it (issue 1792)
Merged
#422 Make minio's link-key secrets 40 characters and keep every mc argument's secret out of its errors (issue 1766)
Merged
#416 xterm: every resource a config value, today's values as defaults (issue 1656)
Merged
#421 Name the wait in the Stop hook's suggested calls, route adopt's counter reset through fsys, and stop writing empty counter files
Merged
#420 A session's wait list and the plugin's Stop hook, so a written-down wait is never left unwatched (ADR 0489, ADR 0490)
Merged
#417 Files go through the store: object-store links, node-files upload/download, a document converter, and brother printing a key, a path on any machine or a web link (design 60 F3, ADR 0468)
Merged
#419 Fill a delivery made from its verdict from its pull request's announcement, and say what it waits for (issue 1726)
Merged
#418 Read automx's rows in a mode its image's sqlite3 knows (issue 1630)
Merged
#415 Capture automx's live answers as fixtures and add a read-only tool for its database rows, before R4d replaces it (issue 1630)
Merged
#414 Pin gitea, keycloak, mesh-provisioner-client, postgres and route-adapter to a mesh-sdk commit on main, so a fresh go mod download resolves them once the feature branch goes (issue 1663)
Merged
#413 Pin mesh-provisioner, mesh-vault and rofi to a mesh-sdk commit on main, so a fresh go mod download (mesh-build-go's fetch) resolves them (issue 1659)
Merged
#412 Add netcheck_request: one HTTP request and its whole answer, so a service's live answers can be captured, refusing loopback, unspecified and link-local addresses (issue 1643)
Merged
#411 Read manifests that name shares: mesh-build-go and mesh-build-node take mesh-sdk 465beb4 (issue 1657)
Merged
#408 Pack archive artifacts in mesh-build-go, a module's directory or a pinned file, and refuse any path that leads out of the module through a link (issue 1589, ADR 0478 §1)
Merged
#410 Let the build modules answer their own step results and toolchains, so a fetch's workspace and a build's digest can be read (issue 1562, build-module half)
Merged
#409 Make dev-tools, lab and the build modules need the go and nodejs modules instead of declaring the toolchain packages, step B of issue 1573 (ADR 0477 §4)
Merged
#407 Apply a patch in the forge tool itself when the forge's diffpatch answers 500, so a patch whose context holds a non-ASCII character is taken (issue 1604)
Merged
#406 Add the go and nodejs modules that own the toolchain packages on a node, step A of issue 1573 (ADR 0477 §4)
Merged
#403 Build with the node's installed Go and Node, never a pinned or downloaded toolchain, so builds match what the nodes run (issue 1572, ADR 0477)
Merged
#405 End a stranded stop whose modules no merge can carry, so its alert clears instead of asking the operator for ever (issue 1581)
Merged
#404 Upgrade every node's packages on a Saturday 04:00 timer and make its outcome the pacman module's health, so the nodes stay on the same versions (issue 1574, ADR 0477)
Merged
#402 Propose mesh-issues' owners: mesh-config takes the SDK that reads names with digits as names (issue 1439)
Merged
#401 Declare scanner.scan's apart argument, so several tickets on the glass can be filed apart (issue 1528)
Merged
#400 Build Go modules with Go's own release of the recipe's version, so the distribution's build no longer makes the guard refuse (issue 1560, ADR 0476)
Merged
#399 Polish the brother module so the scanner and printer just work: long feeder scans, several tickets, joined glass pages, one-call print, certificate health
Merged
#398 Fill a module's files one by one, so a known secret's file is not held back by a template that waits (issue 1553)
Merged
#397 Mail reading: mesh-mail-reader notes each new mail, tells mail that matters on Telegram, and the mail page shows and corrects it (design 59 milestone 2)
Merged
#396 Send the scan request on one line so the Brother honours it, and scan from the feeder, both sides, into one PDF (issue 1452)
Merged
#395 Mark the build modules moved, so a machine assigned them composes before the forge serves their entry (issue 1537)
Merged
#392 Close every eSCL scan job brother opens, and say a busy scanner as busy (issue 1531)
Merged
#394 File a scan of any size: answer its parts in 128 KiB under the state's 256 KiB value limit, and end only a too-large answer at once (issue 1535)
Merged
#393 Let printer.settings say each setting's current value: the checked radio, a checkbox's state, the selected option (issue 1530)
Merged
#391 Name the build test's fixture manifest module.json.fixture, so no reader takes it for a module of the catalogue (issue 1527)
Merged
#389 The Go and the Node build modules, ssh-client on the SDK's key keeper, and gitea's read-only builder accounts (design 47 R4c-3)
Merged
#390 Start brother's admin login where the printer serves its form, and never leave a session open or post the password off https (issue 1514)
Merged
#388 Offer an open ask no channel has sent again on the minute tick: a stopped messenger loses its outbox (issue 1507)
Merged
#387 Let brother's printer-certificate pin several fingerprints: the printer serves an ECDSA and an RSA certificate (issue 1503)
Merged
#386 Make the messenger's hourly cap a setting, messages-per-hour: 100 by default, 0 turns the pause off (issue 1476)
Merged
#385 Let brother's scan-folder take an absolute path: mesh-config matches a pattern against the whole value (issue 1472)
Merged
#384 The brother module: one module for the Brother printer, holding the scanner and printer seats, scans kept in its bucket and printing over the broker (issue 1453, ADR 0467, ADR 0468)
Merged
#383 A scan module: scan the glass over eSCL, crop the document, file it as a PDF and announce it (issue 1440, ADR 0464)
Merged
#382 mesh-issues stops listening to the removed module's transition, which every controller merge check now refuses (issue 1406)
Merged
#381 Remove today's delivery module now that the gate holds its seat (design 47 R3e, issue 1351, ADR 0454)
Merged
#380 The gate takes over today's mesh-delivery: mesh-delivery-gate holds the seat, asks and merges through the parts, and today's module leaves (design 47 R3e, issues 1346-1351)
Merged
#379 Let a commit copy files from another repository on the forge, so a large move reaches the forge from any machine (issue 1365)
Merged
#378 Read the grant file on keycloak's moved path, so a consumer not moved gets its client (issue 1332)
Merged
#377 The mail web client: mesh-mail-web, and mesh-mail's views for it (design 59 milestone 1)
Merged
#376 Say a group member refused only because main moved a warning for ten minutes, urgent after (issue 1275 AC6, ADR 0442)
Merged
#375 Merge a group whole or not at all, and say loudly when it cannot (issues 1275, 1276)
Merged
#374 Give the forge bridge a merge commit's trees in one call, and each open pull request's head branch (design 47 R3c, issue 1234)
Merged
#373 Answer each gmail mail once when no folder is named, keeping archived mail (issue 1248)
Merged
#372 mail_search answers the operator's questions: optional words, filters by sender, recipient, cc, date, words, attachment, flags, thread and correspondents, ordered and grouped (issues 1228-1232)
Merged
#371 mesh-mail sends an approved mail from its own sender process, and tells a failed send once (ADR 0436, ADR 0438; issues 1172, 1193-1199)
Merged
#370 Keep two values of each issue in the tracker's bucket, since the log holds them all (issue 1221)
Merged
#369 The router takes a module's condition on the operator channel's one subject (design 47 R3b: issues 1217, 1218)
Merged
#368 Ask a refused merge again when its checks turn green on the forge (issue 1144)
Merged
#366 Write a provisioner client's files only on a change over the bus, never on a timer (issue 1129, ADR 0430)
Merged
#367 Register the repository mesh-delivery as an owner, so its issues can be located in it (issue 1133)
Merged
#365 A repository the gitea module makes refuses an administrator's merge past its checks (issue 1141)
Merged
#364 gitea fills repositories.json through the provisioner client, so an approved repositories value lands at once (issue 1128)
Merged
#363 The gitea module makes the organisation's repositories from its config, protected before any team reaches them; no tool creates in the organisation (issue 1124, ADR 0428)
Merged
#362 gitea_create_repo creates a repository in an organisation, saying the forge's refusal (issue 1124)
Merged
#361 mesh-delivery waits for nothing: a check is asked at once and a standing verdict adopted (issue 1115)
Merged
#360 A pull request at the same head as one closed unmerged takes its delivery over (issue 1114)
Merged
#359 mesh-delivery hears a pull request closed unmerged from the forge's own event (issue 1107)
Merged
#358 A group member refused for its own pending repo-check is asked its own check, not the composed one (issue 1049)
Merged
#357 Readers of the assignments skip an ended or pending one (design 47 milestone 5, issue 1098)
Merged
#356 A group approved together merges in one pass and goes out in one delivery plan (design 47 milestone 3 fix: issues 1049, 1082, 1047, 1083, 1079)
Merged
#355 Let a proposed record be withdrawn (issue 1081)
Merged
#353 mesh-delivery holds a delivery whose backup failed and release asks again; restic records a backup that cannot start (issues 1067, 1068)
Merged
#354 Tools to read the knowledge base and the issue tracker in fewer, smaller calls (issues 1064, 1069, 1070, 1071)
Merged
#352 No ready mark: the Approve is asked once the checks pass, and a group merges in one pass on its one Approve (issues 1022, 978)
Merged
#351 Run the integration-tagged tests in the merge check, before any test carries the tag (issue 895)
Merged
#349 Every directory says how it treats files it does not know, and the catalogue checks it (issue 1024)
Merged
#350 build-agent and route-proxy leave for mesh-controller (issue 1019, ADR 0420)
Merged
#348 mesh-delivery announces each merge with the Approve it merged on (issue 1025, ADR 0420)
Merged
#347 ssh-client's sweep keeps what ssh reads itself and linked key folders, and fails loudly (issue 1020, ADR 0417)
Merged
#346 ssh-client keeps ~/.ssh to what it knows: sweep every other path into a kept folder (issue 1017, ADR 0415)
Merged
#345 mesh-delivery acts on events and keeps each pull request's key; the forge's announcements carry a message id (issues 975, 976, design 47 milestone 2)
Merged
#344 One forge user, nox-agent, for every machine's agents' SSH pushes, each machine's key titled by machine (issue 991, ADR 0410)
Merged
#343 Give the forge an ssh name of its own, so it no longer merges with the operator's entry for its machine (issue 955, ADR 0409)
Merged
#342 Keep gitea's forge-account provider running when a watch is refused, so a later grant is picked up (issue 955)
Merged
#341 Let gitea's forge-account provider read the assignments it learns its consumers from (issue 955)
Merged
#340 Feature agents-write-git, step 2: git over SSH with a key made on each machine (issue 955)
Merged
#339 Serve postgres's consumers the port its server is published on, not the container's 5432 (issue 957)
Merged
#338 Feature agents-write-git, step 1: agents write with their own accounts, main stays closed, a merge into main waits for the operator (issues 948, 954)
Merged
#337 Feature providers-after-switch-on, step 1: providers answer after the switch-on (issues 923, 928, 849, 945, 825)
Merged
#336 Ask the plans again when the moved path starts before its runtime answers (issue 943)
Merged
#335 Say once after a restart that nothing waits, so an old retirement condition clears (issue 937)
Merged
#334 Keep serving the consumers postgres's grant file gives on its moved path (issue 937)
Merged
#333 Hold an ask no channel can carry now and offer it when one can (issue 926, ADR 0397)
Merged
#332 mesh-files holds node-files: file work on a node with trash, owned paths and an act log, no shell needed (issue 900, ADR 0394)
Merged
#331 mesh-delivery: mark-ready writes label then comment in the order the forge counts; a label awaiting its comment is not cleared (issue 913, issue 873)
Merged
#330 Feature 57 (config and provisioning): release the catalogue
Merged
#329 A delivering group says success on mesh/delivery-group, so its later members can merge (issue 902)
Merged
#328 Feature 57 (config and provisioning): the catalogue's modules into the release branch
Merged
#327 Put a group's composed check out of date when a member is rechecked (issue 867, ADR 0323 §6)
Merged
#326 mesh-mail: a send ask the operator channel can carry (issue 868)
Merged
#325 Group siblings: mesh-delivery names member heads; the forge re-pends and refuses on a sibling's move (issue 867, ADR 0382)
Merged
#324 mesh-mail-notifier asks its own machine's node-notifier (issue 865)
Merged
#323 The clipboard service waits for an older daemon's lock, and the history sees the daemon (hq issues 860, 862)
Merged
#322 mesh-mail-notifier: the watcher runs in its runtime, not a process that exits at once (issue 859)
Merged
#320 The clipboard keeps its history running and keeps it to itself (hq issues 743, 750)
Merged
#319 gitea_commit takes a large patch from a hash-checked spool file (issue 852)
Merged
#321 The kernel module's transparent-huge-pages defaults to madvise (hq issue 856, ADR 0381)
Merged
#318 An active research effort takes new versions, reviewed as proposals (hq issue 844)
Merged
#317 Mail seats: mesh-mail declares them, mesh-mail-notifier shows new mail, messenger tells (issues 800, 797)
Merged
#316 Mail and bus hardening: mesh-mail sends on Approve, desk prompt says what for, duplicate PR delivery, cpu_top (issues 790, 789, 783, 741, 811)
Merged
#315 mesh-mail: byte-bounded fetch, accounts only to granted callers, grants error kept, secret only stat'ed (hq issue 733)
Merged
#300 mesh-mail: the operator's mail accounts, watched and said on the bus — stage 1, own server read-only (hq ADR 0359)
Merged
#313 Read branch protection as the forge's administrator, so builds register again (issue 772, ADR 0375)
Merged
#311 Make the forge's tools act as an account of their own, not the administrator
Merged
#312 Give a rollout the word of a stopped delivery that waits for it (hq issue 753)
Merged
#310 Add the kernel module: transparent huge pages set per machine (hq issue 746, ADR 0369)
Merged
#309 Make the forge's webhook a system one, and say whether its events are heard (hq issue 729)
Merged
#308 Cover a failed or stopped delivery once a later finished walk contains it (hq issue 747)
Merged
#307 Let an agent's session run the TypeScript check outside the toolchain image (issue 742)
Merged
#306 Clear a forge token name held twice, and mint one process at a time (hq issue 740)
Merged
#304 Say every forge event on the bus through a signed system webhook (hq issue 729)
Merged
#301 Build build-agent and route-proxy without a build ID (hq issue 721)
Merged
#303 Merge a pull request marked ready at its head once its checks pass (issue 722)
Merged
#298 mesh-catalog: hear the build seat that builds now (hq issue 712)
Merged
#286 57/V1: mesh-vault in Go, holding secrets sealed and answering get sealed to the asker (issue 674)
Merged
#297 Give the build agent a judge cache of its own (issue 704, ADR 0358)
Merged
#299 An answered ask keeps its question whole, its answer below it (issue 714)
Merged
#296 mailu: declare its unhealthy urgent (hq ADR 0355 §5, issue 691)
Merged
#295 mailu: ban clients that try to log in on port 25 (hq issue 708)
Merged
#294 mailu: judge the smtp container by whether mail flows (hq issue 690)
Merged
#285 mailu: judge the front by SMTP and its certificate, not only its web health (hq issue 688)
Merged
#284 mailu: move the resolver to Mailu 2024.06.63, which follows the root key change (hq issue 687)
Merged
#291 57/K2: The list of predefined keys, and a merge check refusing a key removed while a module names it (issue 661)
Merged
#289 Five postgres consumers say which provision their check exercises (hq issue 145, to-be 48 Phase E)
Merged
#290 57/F2b: influxdb serves its org and bucket from its settings (issue 696)
Merged
#288 lab: name the base image's age, refuse a stale one, and rebuild it (issue 698)
Merged
#287 lab: a run whose suite proved nothing reads as failed, with its skips (issue 693)
Merged
#283 build-agent: declare busy, so a replaced agent finishes the check it runs (issue 594, hq ADR 0335)
Merged
#282 mesh-delivery: a closed pull request's check builds go, and a walk says what each build did (ADR 0350, issue 649)
Merged
#280 gitea serves the registry's public root; the lab trusts a tarball only there or at the forge's own origin (issue 624, ADR 0346)
Merged
#278 An ask reads at a glance on the phone: a headline, a summary and its points, the rest in a note (issues 383 and 639)
Merged
#281 Revert #277: no showmissed lock in betterbird's policy (issue 640)
Merged
#279 claude-code: the memory watch only notes a change, so it starts on a node with hundreds of files (issue 367)
Merged
#277 betterbird: a passed meeting's reminder does not come back at every Owl reload (issue 640)
Merged
#275 lab: name the package registry by the address it names itself by, so npm 12 installs locked @novox packages (issue 624)
Merged
#276 claude-code: a session's memory follows the operator to every node (issue 367, ADR 0343)