chore(rebrand): replace mesh with vervain (VA-28) #24
Loading…
Reference in a new issue
No description provided.
Delete branch "chore/vervain-rebrand-va-28"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Closes VA-28. Sweeps every "mesh"-flavored identifier from the agent and replaces it with "vervain". 659 line references across 56 files, plus 5 crate directory renames and 2 on-disk artifact renames. The Rust-side rename is mechanical; the diff is large but reads as a single coordinated rebrand. Wire-protocol u32 codes and SHA-384 hash values are unchanged - only Rust types and field names are renamed - so the on-wire format is byte-compatible with VA-27 (last main HEAD).
What's renamed
use ...::import):meshagentbecomesvervain-agent;meshagent-configbecomesvervain-agent-config;meshagent-kvmbecomesvervain-agent-kvm;meshagent-mcpbecomesvervain-agent-mcp;meshagent-protocolbecomesvervain-agent-protocol. Self-update helper binary becomesvervain-agent-self-update-helper. ThemeshcoreCargo feature becomesvervain-core.compose.yml,justfile,.forgejo/workflows/build-package.yml(PACKAGE_NAME+ARTIFACT_NAME),oci-build/release.Dockerfile,.dockerignore,.gitignore,.idea/vervain-agent.iml. Forgejo published artifact moves tovervain-agent-x86_64-unknown-linux-gnu.MeshCommandbecomesAgentCommand(variants unchanged, integer wire codes preserved);MeshCore/MeshCoreInstance/MeshCoreSlotbecomeVervainCore*;MeshAgentcapability bit becomesVervainAgent;MeshTypebecomesGroupType;MeshIDbecomesGroupID;MeshNamebecomesGroupName;MeshServerbecomesServerURL;MeshNodeCertificatebecomesVervainAgentNodeCertificate;MeshPolicyGuidbecomesVervainAgentPolicyGuid(incl.exeMeshPolicyGuidbecomesexePolicyGuid). Field renames:mesh_idbecomesgroup_id,mesh_serverbecomesserver_url. Module rename:meshcorebecomesvervain_core. Env-var constants:MESHAGENT_VERSION/MESHAGENT_GIT_HASH/MESHAGENT_BUILD_DATEbecomeVERVAIN_AGENT_*(VERVAIN underscore-separated per resolution). Doc references to upstream C identifiers and file paths (meshcore/agentcore.c,meshcore.js::tunnel, etc.) are reworded to "upstreamagentcore.c" / "the upstream tunnel.js" so the mesh prefix is dropped without losing the provenance pointer..mshkey strings (line-oriented config parsed byvervain-agent-config):MeshServer=becomesServerURL=;MeshID=becomesGroupID=;MeshName=becomesGroupName=;MeshType=becomesGroupType=. The.mshextension itself + the--mshCLI flag + theMshConfigtype name stay (blocked on VA-29).run/meshagent.mshbecomesrun/vervain-agent.msh;run/meshagent.msh.templatebecomesrun/vervain-agent.msh.template. Data dir paths:meshagent.dbbecomesvervain-agent.db. Installed-system paths:/usr/local/sbin/meshagentbecomes/usr/local/sbin/vervain-agent;/etc/meshagent/becomes/etc/vervain-agent/;/var/lib/meshagentbecomes/var/lib/vervain-agent;~/.local/bin/meshagent,~/.config/meshagent/likewise. systemd unit Description= reads "Vervain Agent". No migration shim per resolution (no live deployments).crates/vervain-agent/src/rewritten._meshagent._tcp.local.becomes_vervain-agent._tcp.local.; self-signed cert CommonNameMeshNodeCertificatebecomesVervainAgentNodeCertificate. These will need paired updates invervain-serverwhen the server's LAN-discovery + cert-validation code lands.Resolutions to the issue's open questions (already locked in the VA-28 issue comment)
.mshreplacement extension: deferred to VA-29 (encrypted SQLite store keyed by filename hash, planning ticket).MeshCommandbecomesAgentCommand. Integer wire codes unchanged.mesh_idbecomesgroup_id(doc comment said "SHA-384 group id";agent_idwas already taken by the platform-code field onAuthInfo)./agent.ashx+/meshrelay.ashx: paired with VS-24 invervain-server. Agent-side dial updates land once VS-24 picks the new strings (see "Blocked" below).VERVAIN_AGENT_VERSION, notVERVAINAGENT_VERSION.Blocked (intentionally not in this PR)
/agent.ashxand/meshrelay.ashxstill appear inhost/tunnel.rs,dispatch.rs,net.rs, and a handful of integration tests. These are server-defined paths and need to land in lockstep with VS-24. Once VS-24 picks the new strings, a follow-up PR swaps them on the agent side. Grep formeshrelay.ashxto find the dial sites..mshextension itself +MshConfigtype name +--mshCLI flag): blocked on VA-29's encrypted-SQLite design. The .msh key string renames inside the format did land here (per resolution: "the in-memory field isgroup_idregardless of how it's persisted").Test plan
cargo build --workspace(clean).cargo test --workspace(full suite green).cargo clippy --workspace --all-targets -- --deny warnings(clean).cargo fmt --all --check(clean - required a follow-upcargo fmt --allafter the bulk sed; sed renames left a couple of import-order regressions that fmt normalized).just pre-commit(single docker build againstoci-build/check.Dockerfilecovering fmt + clippy + build + tests; same gate Forgejo CI runs).vervain-agentinvocation against a stub server. Not required since the rename is mechanical and the test suite drives the same code paths the runtime does.Operator notes
run/meshagent.db/,run/meshagent-host.db/) are now stale because the agent will create freshvervain-agent.db/paths on next run. They are not committed (the new.gitignorepatterns target the new names). Delete them at will:rm -rf run/meshagent*.db/.just devregeneratesrun/vervain-agent.mshfrom the renamed template; no operator action needed beyond a freshjust devinvocation./usr/local/sbin/meshagent,/etc/meshagent/, etc.) will not be cleaned up automatically. Per resolution this is acceptable since there are no live deployments.#VA-28 State Done