A new Go module for the workstations' XDG conventions (hq ADR 0208, 0182, 0174, 0210). It claims no seat, needs no display and makes no contribution.
Owns
~/.config/user-dirs.dirs, whole, adopted from the operator's file. The desktop machine has three folders pointed at the home, so those three are settings: desktop-dir, publicshare-dir and videos-dir. They have no default; set the mesh's layer to $HOME/Desktop, $HOME/Public and $HOME/Videos, and the desktop machine's layer to $HOME/. One improvement: PROJECTS becomes ~/projects.
~/.config/user-dirs.conf with enabled=False. I measured xdg-user-dirs-update 0.20, which dex runs at every login. While it is enabled it reassigns a missing folder to the home, adds a line for each default the file lacks and rewrites the file. Once disabled it does nothing, even with --force.
~/.config/user-dirs.locale.
/etc/xdg/mimeapps.list: the machine's default applications. Applications read this list last, so the person's own ~/.config/mimeapps.list always wins, and the mesh never writes that file.
Packages: xdg-user-dirs and xdg-utils.
Why the mimeapps list is not a block in the person's file. I measured this against copies of the file. xdg-mime reads the first of two [Default Applications] groups and GLib reads the last, so the two answered differently. gio mime merged the groups and dropped the block's markers. xdg-mime default wrote the person's choice inside the mesh's block, where the next push would remove it.
Autostart is listed, not owned. Each entry belongs to its application's module.
Tools:xdg_user_dirs, xdg_default (with set, it runs xdg-mime default and writes the person's list), xdg_open_handlers, xdg_autostart (applies dex 0.10's own rules), xdg_check.
Testing: go vet and go test pass, using fakes and xdg-mime/gio output recorded on the laptop. mctl module check modules/* passes for all 105 manifests. I also ran the tools read-only against the laptop. The README covers the migration for each workstation.
Not merged, built or assigned.
A new Go module for the workstations' XDG conventions (hq ADR 0208, 0182, 0174, 0210). It claims no seat, needs no display and makes no contribution.
**Owns**
- `~/.config/user-dirs.dirs`, whole, adopted from the operator's file. The desktop machine has three folders pointed at the home, so those three are settings: `desktop-dir`, `publicshare-dir` and `videos-dir`. They have no default; set the mesh's layer to `$HOME/Desktop`, `$HOME/Public` and `$HOME/Videos`, and the desktop machine's layer to `$HOME/`. One improvement: PROJECTS becomes `~/projects`.
- `~/.config/user-dirs.conf` with `enabled=False`. I measured xdg-user-dirs-update 0.20, which dex runs at every login. While it is enabled it reassigns a missing folder to the home, adds a line for each default the file lacks and rewrites the file. Once disabled it does nothing, even with --force.
- `~/.config/user-dirs.locale`.
- `/etc/xdg/mimeapps.list`: the machine's default applications. Applications read this list last, so the person's own `~/.config/mimeapps.list` always wins, and the mesh never writes that file.
- Packages: `xdg-user-dirs` and `xdg-utils`.
**Why the mimeapps list is not a block in the person's file.** I measured this against copies of the file. xdg-mime reads the first of two `[Default Applications]` groups and GLib reads the last, so the two answered differently. `gio mime` merged the groups and dropped the block's markers. `xdg-mime default` wrote the person's choice inside the mesh's block, where the next push would remove it.
**Autostart** is listed, not owned. Each entry belongs to its application's module.
**Tools:** `xdg_user_dirs`, `xdg_default` (with `set`, it runs `xdg-mime default` and writes the person's list), `xdg_open_handlers`, `xdg_autostart` (applies dex 0.10's own rules), `xdg_check`.
**Testing:** go vet and go test pass, using fakes and xdg-mime/gio output recorded on the laptop. `mctl module check modules/*` passes for all 105 manifests. I also ran the tools read-only against the laptop. The README covers the migration for each workstation.
Not merged, built or assigned.
The workstations' XDG conventions had no owner: xdg-user-dirs-update rewrote
the folders file at every login, both machines' default-application lists
named an editor neither has, and the laptop kept two dead links of the
retired predecessor. The module adopts the operator's folders (three as
settings, as the machines differ), disables the update so it cannot undo the
mesh's file, and writes the machine's own mimeapps list, the last one read,
so the person's choices in their own list always win. Autostart is listed,
not owned: each entry is its application's module's.
Deliverynovox/mesh-catalog@37bb53ab9524 — held since 2026-10-06T23:05:28Z
Held for a person: merged without a passing check: only a person decides that it goes on — mesh-delivery.release with why lets it go on.
Delivery plan — builds xdg → g14, shanks; no bus step
tier 0: xdg
g14: receives xdg
shanks: receives xdg
Transitions
2026-10-06 23:05 (new) → proposed (announced): novox/mesh-catalog#50 merged; its head was not heard by this owner, so it is made from the forge's word
2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.
<!-- mesh-delivery:view -->
**Delivery** `novox/mesh-catalog@37bb53ab9524` — **held** since 2026-10-06T23:05:28Z
Held for a person: merged without a passing check: only a person decides that it goes on — `mesh-delivery.release` with why lets it go on.
**Delivery plan** — builds xdg → g14, shanks; no bus step
- tier 0: xdg
- g14: receives xdg
- shanks: receives xdg
**Transitions**
- 2026-10-06 23:05 (new) → proposed (announced): novox/mesh-catalog#50 merged; its head was not heard by this owner, so it is made from the forge's word
- 2026-10-06 23:05 proposed → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
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.
A new Go module for the workstations' XDG conventions (hq ADR 0208, 0182, 0174, 0210). It claims no seat, needs no display and makes no contribution.
Owns
~/.config/user-dirs.dirs, whole, adopted from the operator's file. The desktop machine has three folders pointed at the home, so those three are settings:desktop-dir,publicshare-dirandvideos-dir. They have no default; set the mesh's layer to$HOME/Desktop,$HOME/Publicand$HOME/Videos, and the desktop machine's layer to$HOME/. One improvement: PROJECTS becomes~/projects.~/.config/user-dirs.confwithenabled=False. I measured xdg-user-dirs-update 0.20, which dex runs at every login. While it is enabled it reassigns a missing folder to the home, adds a line for each default the file lacks and rewrites the file. Once disabled it does nothing, even with --force.~/.config/user-dirs.locale./etc/xdg/mimeapps.list: the machine's default applications. Applications read this list last, so the person's own~/.config/mimeapps.listalways wins, and the mesh never writes that file.xdg-user-dirsandxdg-utils.Why the mimeapps list is not a block in the person's file. I measured this against copies of the file. xdg-mime reads the first of two
[Default Applications]groups and GLib reads the last, so the two answered differently.gio mimemerged the groups and dropped the block's markers.xdg-mime defaultwrote the person's choice inside the mesh's block, where the next push would remove it.Autostart is listed, not owned. Each entry belongs to its application's module.
Tools:
xdg_user_dirs,xdg_default(withset, it runsxdg-mime defaultand writes the person's list),xdg_open_handlers,xdg_autostart(applies dex 0.10's own rules),xdg_check.Testing: go vet and go test pass, using fakes and xdg-mime/gio output recorded on the laptop.
mctl module check modules/*passes for all 105 manifests. I also ran the tools read-only against the laptop. The README covers the migration for each workstation.Not merged, built or assigned.
Delivery
novox/mesh-catalog@37bb53ab9524— held since 2026-10-06T23:05:28ZHeld for a person: merged without a passing check: only a person decides that it goes on —
mesh-delivery.releasewith why lets it go on.Delivery plan — builds xdg → g14, shanks; no bus step
Transitions
The commit's note under
refs/notes/mesh-plankeeps every transition:git log --notes=mesh-plan.