12182492eaf2c95ca01ddf5182bb09a4599564f5
Two hand-rolled XDG resolutions survived the settings refactor: claw's state_dir matched on XDG_STATE_HOME and HOME itself, and the ACP adapter's session cache matched on XDG_CACHE_HOME itself — same class as the global dir helpers this crate already buried. And the family rule they implement was nowhere written down: the claw has its own keychain namespace since the last refactor, yet its config, state, and cache live under rhema's, with nothing saying that is deliberate. Home carries the state and cache roots now, resolved with the config base in discover and stated as the family rule in its doc: the family's products share the XDG bases and nest below `rhema/` — claw at `rhema/claw.yaml` and `rhema/claw`, the ACP session cache at `rhema/acp-sessions`. A frontend from outside the family relocates the whole set instead: relocated derives the frontend's name from its config base's final component, dot stripped, and puts its state and cache under that name, so godcode's artifacts never land under `rhema/`. claw and the ACP adapter ask Home now; claw's NoStateHome error variant died with its last user, and the ACP store's embedder seam (AcpOptions::session_dir) was already there. SPEC records the decision beside the keychain one it mirrors: the namespace is per frontend, the nesting is per family.
Languages
Rust
74.9%
Kotlin
13.8%
Vue
7.1%
TypeScript
3%
Dockerfile
0.5%
Other
0.6%