refactor(cli): rename default data-dir to ./amy and nest MLS state under marmot/

Two on-disk layout changes that only affect freshly-created data-dirs (no
migration shim since `amethyst-cli-data` was never tagged or released):

- Default `--data-dir` is now `./amy` instead of `./amethyst-cli-data` —
  shorter, matches the binary name, and still overridable via the flag or
  `$AMETHYST_CLI_DATA`.
- MLS-only files (`groups/` and `keypackages.bundle`) move under a new
  `marmot/` subdirectory so the top-level root stays tidy as more
  non-Marmot state lands (notes, profile caches, etc). Existing
  top-level files (`identity.json`, `relays.json`, `state.json`) are
  unchanged.

README tree diagram and DEVELOPMENT.md test table updated to match.
This commit is contained in:
Claude
2026-04-24 19:15:58 +00:00
parent 825e2fd911
commit 8cbe8c67fe
3 changed files with 16 additions and 14 deletions
+10 -9
View File
@@ -40,7 +40,7 @@ What every caller — user, script, agent, CI — can rely on:
- **Data-dir is the whole world.** All state (identity, relays, MLS
epochs, message archives, run cursors) lives under `--data-dir PATH`.
Delete to reset; copy to move; `AMETHYST_CLI_DATA` env var overrides
the default `./amethyst-cli-data`.
the default `./amy`.
The rationale behind each of these lives in
[DEVELOPMENT.md](./DEVELOPMENT.md). Breaking any of them is a breaking
@@ -152,7 +152,7 @@ itself crashed".
### Global flags
- `--data-dir PATH` — defaults to `./amethyst-cli-data` or
- `--data-dir PATH` — defaults to `./amy` or
`$AMETHYST_CLI_DATA`. Always an absolute path after resolution.
- `--help` / `-h` — usage summary.
@@ -189,13 +189,14 @@ events.
```
<data-dir>/
├── identity.json # nsec/npub/hex — the account
├── relays.json # nip65 / inbox / key_package buckets
├── state.json # sync cursors (giftWrapSince, groupSince)
── keypackages.bundle # MLS KeyPackage bundles (NostrSignerInternal)
└── groups/
── <gid>.mls # MLS group state per group
── <gid>.log # decrypted inner events (one JSON per line)
├── identity.json # nsec/npub/hex — the account
├── relays.json # nip65 / inbox / key_package buckets
├── state.json # sync cursors (giftWrapSince, groupSince)
── marmot/
├── keypackages.bundle # MLS KeyPackage bundles (NostrSignerInternal)
── groups/
── <gid>.mls # MLS group state per group
└── <gid>.log # decrypted inner events (one JSON per line)
```
All files are plain JSON or framed binary — human-inspectable, easy to