zsh and systemd: the first two modules of the operator's machine (hq to-be 38 WP5/WP6) #253

Closed
mesh-admin wants to merge 0 commits from feat/the-operators-machine-rebased into main
Contributor

#224 rebased on current main, with no other changes. It replaces #224, whose branch is weeks stale.

  • Both modules already ship their tools as a TypeScript bundle, not a container, so the registration gate (mesh-controller #256) accepts them.
  • mesh-controller module check modules/*/module.json: all 69 manifests pass (zsh: ok, 1 tool(s), systemd: ok, 1 tool(s)).
  • tsc -p against the current mesh-sdk (0.1.6): both pass.

Merging this only adds the modules to the catalogue. Nothing changes on a machine until the modules are assigned. WP5 assigns zsh to one server first.

#224 rebased on current main, with no other changes. It replaces #224, whose branch is weeks stale. - Both modules already ship their tools as a TypeScript **bundle**, not a container, so the registration gate (mesh-controller #256) accepts them. - `mesh-controller module check modules/*/module.json`: all 69 manifests pass (`zsh: ok, 1 tool(s)`, `systemd: ok, 1 tool(s)`). - `tsc -p` against the current mesh-sdk (0.1.6): both pass. Merging this only adds the modules to the catalogue. Nothing changes on a machine until the modules are assigned. WP5 assigns `zsh` to one server first.
mesh-admin added 2 commits 2026-10-04 00:33:43 +00:00
The first module of the operator's environment (novox/hq to-be 37 §1, ADR 0173,
0176). A package, the mesh's default configuration as a block inside the
account's ~/.zshrc so the operator's own lines around it survive every push
(ADR 0174 as the host's `into: block` realises it), a `user` shape that makes
zsh the account's login shell, the `login-shell` seat declared with its one
verb, and a tools bundle: `execute` under the seat's name, `zsh_config` under
the module's. No container, no process: the tools are served by the node tools
runtime (ADR 0175), which does not exist yet — the bundle builds and the
manifest registers ahead of it. `module check` passes; the tools type-check
against the SDK.

Two things the manifest cannot yet say, left for the controller: the `user`
shape applies wherever the module is assigned, not only where it holds the
seat; and the runtime learns the account from MESH_OPERATOR_ACCOUNT, which
nothing sets yet.
The holder of the seat the controller seeds under novox/hq ADR 0177. Eight
verbs under the seat's name — units, status, start, stop, restart, enable,
disable, journal — each taking an optional scope, "system" by default or
"user" for the operator account's own manager, reached as
`systemctl --user --machine=<account>@` when the runtime is not that account.
One tool of its own, systemd_failed, for every failed unit in both scopes.
A package, a claim and a bundle; no container, no process: served by the node
tools runtime (ADR 0175) once it exists. `module check` passes against a
controller that carries the seat; the tools type-check against the SDK.
Author
Contributor

Superseded by #255. #255 contains these commits plus the work of hq to-be 41: node-env, zsh reworked, powerlevel10k, the two plugins, and systemd finished.

Superseded by #255. #255 contains these commits plus the work of hq to-be 41: node-env, zsh reworked, powerlevel10k, the two plugins, and systemd finished.
mesh-admin closed this pull request 2026-10-04 08:33:14 +00:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#253