docs(add-signal-v2): document XDG attachment path behaviour and voice fix

signal-sdk launches signal-cli without --config, so attachments land at
~/.local/share/signal-cli/attachments/ (XDG default) rather than
data/signal/. Document this in the Channel Info section and add a
troubleshooting entry explaining the symptom (voice messages silently
skipped, no transcript), how to confirm (ps aux | grep signal-cli), and
the automatic fallback the adapter uses.
This commit is contained in:
Ira Abramov
2026-04-20 12:27:10 +03:00
parent 06918f35e0
commit bc0b559461
+14
View File
@@ -297,6 +297,11 @@ ls data/models/ggml-*.bin 2>/dev/null || echo "no model — download one"
as shown above.
- **config-lock**: signal-sdk holds an exclusive lock on `data/signal/` while
nanoclaw is running. Stop the service before running any `signal-cli` commands.
- **attachment storage**: signal-sdk launches signal-cli **without** a `--config`
flag, so signal-cli stores attachments at the XDG default
(`~/.local/share/signal-cli/attachments/`), not under `data/signal/`. The
adapter checks both locations. Verify with:
`ps aux | grep signal-cli` — if there is no `-c` argument, XDG default is in use.
---
@@ -327,6 +332,15 @@ GroupV2. The adapter must extract the group ID from
GroupV1/legacy). Check `src/channels/signal.ts` and confirm the groupId
extraction falls through to `groupV2.id`.
**Voice messages / attachments silently skipped, no transcript** — signal-sdk
launches signal-cli without a `--config` flag, so attachments land at the XDG
default (`~/.local/share/signal-cli/attachments/`) rather than under
`data/signal/`. Confirm with `ps aux | grep signal-cli` — if there is no `-c`
argument in the process line, the XDG default is in use. The adapter falls back
to that location automatically. If you still see no "Signal attachment saved"
log lines, add a debug log around the `if (!storedPath) continue` guard in
`src/channels/signal.ts` to inspect `att.storedFilename` and `att.id`.
**Java not found** — install Java 17+ (see Install step 1).
**QR code expired (Path B)** — QR codes expire in ~30 seconds. Re-run the