diff options
| author | Luke Hoersten <[email protected]> | 2026-07-28 20:27:35 -0500 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2026-07-28 20:27:35 -0500 |
| commit | 459a84eb6ac76dbb671e516956d2e883e2817600 (patch) | |
| tree | 292a1b9559a7eb8a110d773514f9bcb8449c871c | |
| parent | 3a535a57c1b5fa48d5495c31d308b42943f92583 (diff) | |
Drop TypeScript-implementation references from README
| -rw-r--r-- | README.md | 21 |
1 files changed, 4 insertions, 17 deletions
@@ -29,7 +29,7 @@ There is no daemon: each invocation builds the Matter stack, connects, syncs, an ## Design -The same principles as the TypeScript implementation this replaces, plus the Rust-specific ones: +Guiding principles: - **One-shot CLI, not a daemon.** Being a secondary Matter controller is fabric membership, not a running process. Each invocation loads the persisted fabric identity, races the Matter transport and @@ -55,8 +55,7 @@ The same principles as the TypeScript implementation this replaces, plus the Rus - **Flat files, no database.** All state is plain files under `storagePath`: rs-matter's KV blobs (`matter/k_XXXX`, written atomically via temp+rename), `identity.json` (the root CA private key; mode 0600, written once and never touched by a sync), and `devices.json` (one record per - commissioned device: cached names plus latest sync results). The config is compatible with the - TypeScript implementation. + commissioned device: cached names plus latest sync results). - **Time is jiff end to end.** Timestamps are `jiff::Timestamp`; Matter-epoch microseconds exist only at the wire boundary. DST transitions come directly from the IANA tzdb transition table, never from offset probing. Time zones are IANA names, never fixed offsets. @@ -96,8 +95,8 @@ Exit codes: 0 success, 1 runtime failure (timer retries), 2 usage/config error. ## Configuration -`/etc/mattertimectl/config.json` by default; override with `--config <path>`. Same file format as -the TypeScript implementation (see `examples/config.example.json`): +`/etc/mattertimectl/config.json` by default; override with `--config <path>` (see +`examples/config.example.json`): ```json { @@ -172,18 +171,6 @@ Then `sudo systemctl enable --now mattertimectl.timer` (2 minutes after boot, ho storage directory). Back it up as carefully as any private key; anyone who reads it can impersonate this controller to your devices. It is never logged or included in any output. -## Migrating from the TypeScript implementation - -The config file carries over unchanged, but the **Matter fabric identity does -not**: matter.js and rs-matter persist fabrics in different formats, and the device is paired to a -key, not a storage path. Migration is one re-pairing: - -1. Run this implementation with its own fresh `storagePath` and commission the device as an - additional admin (Matter allows several; the fabric table has at least 5 slots). Both - implementations can sync side by side while validating. -2. Once satisfied, `decommission` with the **old** implementation so the device drops its fabric, - point `mattertimectl.service` at this binary, and delete the old storage directory. - ## Troubleshooting - **Sync refuses to run**: the host clock is not NTP-synchronized (`timedatectl status`). The tool |
