Take the catalogue's composition rules into the node-engine

ADR 0593 §7: the composer with its refusals leaves mesh-sdk, so mesh-sdk
carries no composition rule. The catalogue functions only the
node-engine's composition reaches (Resolve, Resolution's Compose,
Declaration, DataItems, LeftOut, Rules and the rest, the settings,
placeholder and template refusals, the rendering helpers) are copied
with their tests into internal/compose/resolution; a method of a
mesh-sdk shape becomes a function taking it first. The composition
calls its own copies, and the captured catalogue its tests read lives
here now, shared by mesh-compose's tests.

Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
This commit is contained in:
2026-11-02 19:15:55 +01:00
parent be0226b624
commit d68e241724
686 changed files with 35703 additions and 80 deletions
@@ -0,0 +1 @@
{"live-restore": true, "insecure-registries": ["${seat:mesh-artifact-store:reach}"], "log-driver": "json-file", "log-opts": {"max-size": "${config:log-max-size}", "max-file": "${config:log-max-file}"}}
@@ -0,0 +1,15 @@
# Generated by the mesh. Do not edit — module docker writes this file and replaces it at every push.
[Unit]
Description=Prune dangling images and unused build cache (the mesh's docker module)
# Never volumes, never a container, never an image a container uses: dangling
# images and build cache nothing refers to, unused for a week. What a person
# prunes beyond that is docker_prune's, by hand.
After=docker.service
ConditionPathExists=/run/docker.sock
[Service]
Type=oneshot
Nice=19
IOSchedulingClass=idle
ExecStart=/usr/bin/docker image prune --force --filter until=168h
ExecStart=/usr/bin/docker builder prune --force --filter until=168h
@@ -0,0 +1,11 @@
# Generated by the mesh. Do not edit — module docker writes this file and replaces it at every push.
[Unit]
Description=Weekly prune of dangling images and unused build cache (the mesh's docker module)
[Timer]
OnCalendar=weekly
RandomizedDelaySec=1h
Persistent=true
[Install]
WantedBy=timers.target
@@ -0,0 +1,5 @@
# The log rotation daemon.json takes, written by the mesh from this machine's settings log-max-size and
# log-max-file, and judged by the step log-rotation-check before daemon.json is written (novox/hq issue 452).
# Replaced on every push; change the settings, never this file.
size=${config:log-max-size}
files=${config:log-max-file}