Repository navigation
Mebular v0.2.3
Identity-focused maintenance release. All six npm packages and the desktop app
ship as 0.2.3; no runtime protocol or data-format changes are included.
Changed
- Identity contract —
<storagePath>.identity.jsonis now the sole authority fordeviceId/deviceName. New configs write neither field, and all CLI, App, DSH and fleet read paths resolve the device identity from the identity file. - Transparent legacy recovery — a valid identity with legacy
config.deviceId/deviceNamevalues is backed up toconfig.json.identity-legacy.bak, the stale fields are removed atomically, and startup continues without user interaction. - Shared preflight —
init, provision create/restore/join, and runtime startup use the samehome-identitycontract. Invalid or inconsistent identity is reported asidentity_invalid/identity_store_occupiedinstead of an opaqueunreachable. - No new App/DSH UI — the common repair path is automatic; only an invalid identity fails closed.
Fixed
mebular initidentity handling — an existing identity wins; conflicting--device-idis rejected; a root identity with a missing or invalid user master key now fails withIDENTITY_TRUST_ROOT_MISSING/MASTER_KEY_INVALIDbefore touching config. Delegated identities do not require a root key.- No silent rekey — a missing identity over a non-empty store fails with
IDENTITY_STORE_OCCUPIED; an existing identity with a missing trust root fails closed and never generates a new master key. - Join safety —
provisionJoinIntoandfleet.joinWithTokenrefuse to issue a new identity over existing store data. - Fleet and status consistency — profile, fleet, admin and CLI status paths derive device identity from the identity file instead of legacy config fields.
Verified
- Full Jest — 210 suites / 2153 tests passed.
- Runtime coexistence — 13 scenarios / 153 checks passed.
- Real DSH E2E — minimum, latest and Node 22 minimum passed.
verify:console/verify:onboarding/verify:daemon/verify:configpassed.- Packaging dry-run — run 40649283781 passed: verify + 6 tarballs, macOS/Windows/Linux installers, and real DSH E2E minimum/latest/Node 22 minimum.