From bc0b55946101b9b2050cd451ff0181872d3cda6b Mon Sep 17 00:00:00 2001 From: Ira Abramov Date: Mon, 20 Apr 2026 12:27:10 +0300 Subject: [PATCH] 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. --- .claude/skills/add-signal-v2/SKILL.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.claude/skills/add-signal-v2/SKILL.md b/.claude/skills/add-signal-v2/SKILL.md index 1cfd5da..e6b8165 100644 --- a/.claude/skills/add-signal-v2/SKILL.md +++ b/.claude/skills/add-signal-v2/SKILL.md @@ -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