The daemon no longer interprets names, so something must — outside the process
that holds the store, because that was the divergence: §5 puts the language in
the daemon, index.html says the coordinate layer is not layered on top and has
no translation step inside the OS.
- cube-names: accepts the name-addressed protocol the machine's services already
speak, maps it with cube_core::Coord::named, and runs the resulting command
against cubed through cube-client. Stateless, decides nothing, and deliberately
outside §5's crate set: it is the edge, not the substrate. `guard` is refused by
name rather than half-carried — policy is a decision, not a translation.
- cube-command: `cell put|get|del` — the byte plane, which writes no header.
Without it a remote store could not be a faithful `Store`: `put` writes a
payload *and* its header, so every header-tier write through a socket acquired
a header of its own, and a record's kind/visibility was overwritten on the next
write. Now `DaemonStore` maps to the cell verbs and behaves exactly like a
local store, and the header tier on top of it works.
- cube-client: `cell_put/cell_get/cell_delete`; a record of zero bytes reads back
as a record, not as absence (the verb's words carry that distinction, and a
filesystem above this needs it).
- cube-cli/control plane: the in-repo Python tools default to the name tier.
- Live cutover performed: translator unit installed, CUBED_SOCKET set for the five
name-addressed units, cubed restarted on the language, store checkpointed, guest
path (TCP :9231 → bridge → translator → daemon) verified end to end, watchdog
probe taught both spellings so it can never restart a healthy daemon over a
protocol change. Details, including the pre-existing knowledge-api 203/EXEC
breakage, in CUTOVER-language-protocol.md.
- deploy/: cubed-names.service, verify-name-tier.sh (the whole path on /tmp
sockets, writing nothing to the live store).
156 tests green, no clippy warnings; pinned image verifies (8,399,506 bytes
expected and actual); cube-core still builds for thumbv7em-none-eabihf.