src.nth.io/

summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2026-07-28 20:27:35 -0500
committerLuke Hoersten <[email protected]>2026-07-28 20:27:35 -0500
commit459a84eb6ac76dbb671e516956d2e883e2817600 (patch)
tree292a1b9559a7eb8a110d773514f9bcb8449c871c /README.md
parent3a535a57c1b5fa48d5495c31d308b42943f92583 (diff)
Drop TypeScript-implementation references from README
Diffstat (limited to 'README.md')
-rw-r--r--README.md21
1 files changed, 4 insertions, 17 deletions
diff --git a/README.md b/README.md
index 85492f4..150fb25 100644
--- a/README.md
+++ b/README.md
@@ -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