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.
27 lines
677 B
TOML
27 lines
677 B
TOML
[package]
|
|
name = "cube-names"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
rust-version.workspace = true
|
|
description = "The name tier at the edge: name-addressed requests translated to coordinates for the CUBE OS daemon."
|
|
|
|
[[bin]]
|
|
name = "cube-names"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
cube-client = { workspace = true }
|
|
cube-command = { workspace = true }
|
|
cube-core = { workspace = true }
|
|
cube-header = { workspace = true }
|
|
cube-index = { workspace = true }
|
|
cube-store = { workspace = true }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
base64 = "0.22"
|
|
|
|
[dev-dependencies]
|
|
cube-daemon = { workspace = true }
|
|
tempfile = "3"
|