wechat-claude-sessions 1.3.0 โ†’ 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.en.md CHANGED
@@ -77,9 +77,10 @@ Send these from WeChat to control routing:
77
77
  | Command | Description |
78
78
  |---------|-------------|
79
79
  | `/sessions` or `/ls` | List active Claude Code sessions (`๐Ÿ‘€` = monitoring, actively reading messages; `๐Ÿ“Œ bound` = your messages go here; `๐Ÿ“ฅ default` = plain messages go here). Two lines per entry: `๐Ÿ“Œ 5. fintary:main (fintary-69) ๐Ÿ‘€` and `dir: fintary/data-sync-field-mapping ยท active 3h ago`. The leading glyph is ๐Ÿ“Œ (bound) or ๐Ÿ“ฅ (default receiver) on the one row plain messages go to, and โ—/โ—‹ (active in the last 2 min or not) elsewhere, so "where do my messages land" reads from the left column; same-named sessions carry the Claude Code cross-session name in parentheses; the directory is where Claude currently is (a worktree as `repo/worktree`). Idle sessions follow under `Idle (N):`. Two legend lines under the list: what the receiver glyph means, and how to `/s` (the example uses a number that is actually listed). Ends with a labelled version paragraph, `๐Ÿ“ฆ Running version: wechat-claude @ v1.2.0`; a dev build shows its full version (e.g. `v1.2.0-dev.session-naming.12.2f0809f`) so test builds can be told apart. When npm has a newer `latest`, an upgrade notice follows (npm is asked at most every 6 hours; the last answer is reused if it can't be reached, and a failed attempt is not retried for 30 minutes) |
80
- | `/s <number> <message>` | Send message to session by its number. Numbers are stable for a session's lifetime โ€” they never shift when other sessions open or close (retired numbers aren't reused; numbering resets once all sessions are gone) |
80
+ | `/s <number> <message>`<br>`/<number> <message>` | Send message to session by its number (`/3 hi` is short for `/s 3 hi`; the shorthand is digits-only, so a mistyped command is never delivered as if the typo were a session name). Numbers are stable for a session's lifetime โ€” they never shift when other sessions open or close (retired numbers aren't reused; numbering resets once all sessions are gone) |
81
81
  | `/use <number\|name\|pid>` | Bind your chat to one session: every plain message goes straight to it (survives daemon restarts). `/use off` unbinds; `/use` shows the current binding. Closing the bound session clears the binding automatically |
82
82
  | `/s <name> <message>` | Send message to session by name (fuzzy match; if ambiguous, prefers the monitored / most recently active one) |
83
+ | *(quote a reply, then type)* | **Quote** a session's reply in WeChat and write your answer: the message goes to the session that wrote the quoted reply โ€” no `/s`, and your binding is left alone (see [Quoted replies](#quoted-replies)) |
83
84
  | `/s <pid> <message>` | Send message to session by pid (duplicate names are listed as `name#pid`) |
84
85
  | `/run [--safe] [dir] <task>` | Start a new Claude session in tmux to run a task. The launched session is instructed to send its result back to WeChat. Runs unattended by default (`--dangerously-skip-permissions`); pass `--safe` for `--permission-mode acceptEdits`, where bash commands wait for confirmation at the computer. The first unattended run accepts skip-permissions mode in `~/.claude.json` on your behalf โ€” a detached session cannot answer Claude Code's one-time dialog โ€” and says so in its reply; see [SECURITY.md](SECURITY.md) |
85
86
  | `/runs` | List running `/run` task sessions |
@@ -207,6 +208,7 @@ with `SendMessage`, tells you on WeChat which session it went to and how to
207
208
  โ”œโ”€โ”€ session.json # ilink bot token (persisted login)
208
209
  โ”œโ”€โ”€ config.json # optional settings (e.g. repoDirs for /run)
209
210
  โ”œโ”€โ”€ bindings.json # /use bindings (WeChat user -> session)
211
+ โ”œโ”€โ”€ outbox.json # recent replies per session (how a quoted reply finds its session; 24h; written via temp file + rename, so a reader never sees a partial file)
210
212
  โ”œโ”€โ”€ session-numbers.json # stable session number registry
211
213
  โ”œโ”€โ”€ media/ # downloaded incoming images (7-day retention)
212
214
  โ”œโ”€โ”€ context_tokens.json # shared context tokens (daemon โ†” MCP server)
@@ -270,6 +272,8 @@ server's pid.
270
272
  2. Incoming messages are parsed and routed:
271
273
  - Commands like `/sessions`, `/run`, `/close`, `/use` are handled by the daemon
272
274
  - `/s <target> <msg>` routes to a specific session's inbox
275
+ - A message quoting a session's reply goes to that session (see
276
+ [Quoted replies](#quoted-replies))
273
277
  - A plain message goes to your bound session (`/use`), else the most
274
278
  recently active session that is `๐Ÿ‘€ monitoring`
275
279
  3. When a message is routed, the daemon starts a "typing" indicator on WeChat
@@ -290,11 +294,75 @@ how to answer it directly:
290
294
  โ€”โ€” from naming (#4) ยท reply directly: /s 4 <message>
291
295
  ```
292
296
 
293
- The number is the stable one from `/ls`, fixed for the session's lifetime. When
297
+ The number is the stable one from `/ls`, fixed for the session's lifetime. It
298
+ doubles as the fallback for [quoted replies](#quoted-replies): a quote that kept
299
+ the footer names its session outright. When
294
300
  several sessions answer into the same chat you no longer have to `/ls` and guess
295
301
  who said what. To turn it off, add `"replyFooter": false` to
296
302
  `~/.claude/wechat/config.json`.
297
303
 
304
+ ## Quoted replies
305
+
306
+ With several sessions talking into one WeChat chat, `/s <number>` is precise but
307
+ wordy. The quick way is WeChat's own **quote**: long-press (or right-click) a
308
+ session's reply โ†’ Quote โ†’ type your answer. That message is delivered to the
309
+ session that wrote the quoted reply.
310
+
311
+ - It overrides both your binding (`/use`) and default routing, but **only for
312
+ that one message** โ€” quoting is "just this one, to you", not a rebinding
313
+ - The receiving session is shown a one-line excerpt of what you quoted, so a
314
+ reply like "make it blue" arrives with the context it needs
315
+ - Quoting a command's output (an `/ls` listing, say) routes nowhere special; the
316
+ usual rules apply
317
+ - Image replies can be quoted too (the send's message ids are recorded with it);
318
+ the excerpt shows your caption, or `[image]` when there was none
319
+ - Quoting *and* `/s <number>` together is fine: the explicit target wins, and the
320
+ quoted message still comes along as context
321
+ - If the session that wrote the quoted message is gone, WeChat tells you so and
322
+ the message is routed normally
323
+
324
+ **How it is recognised**: WeChat's quote is a `ref_msg` carrying the quoted
325
+ message's **id and timestamp โ€” and no text at all**. The send API does hand back
326
+ the id of each message we send, so whenever a session replies the MCP server
327
+ records that id along with the text in `outbox.json` (session id, name, text,
328
+ message ids โ€” kept 24 hours, 200 entries at most), and an incoming quote is
329
+ looked up by id.
330
+
331
+ (That id is 19 digits, past 2^53, so `JSON.parse` rounds its last digits away โ€”
332
+ it is read out of the raw response text with a regex instead. Once parsed it
333
+ cannot be recovered.)
334
+
335
+ Each record also keeps Claude Code's own name for the session. A session id is a
336
+ pid, and `/mcp` hands out a new one, but it is still the session you were
337
+ talking to โ€” that name follows it across the reconnect. The WeChat routing name
338
+ is deliberately *not* used for this: it is derived from repo and branch, so two
339
+ sessions in one checkout share it and an exited session's name passes to the
340
+ next one opened there โ€” following it would answer a stranger. When the identity
341
+ doesn't check out, the quote is reported as belonging to a session that's gone.
342
+
343
+ Match order: the quoted message's id, then the quoted text (some clients put the
344
+ quote in the message text; a truncated one matches on its prefix), then the
345
+ [reply footer](#reply-footer) inside that text, and finally a send whose time is
346
+ within 15 seconds of when the quoted message was created. So it still works with
347
+ the footer turned off (`"replyFooter": false`), or for a reply sent by a version
348
+ that recorded no id.
349
+
350
+ The footer is trusted for the **name** it carries, not its `#number`: retired
351
+ numbers are never reused, but the counter restarts at 1 once every session is
352
+ gone, so a day-old `#3` can lead to a session that never sent that message. When
353
+ the name doesn't check out, the quote is reported as belonging to a session
354
+ that's gone rather than guessed at. The timestamp is likewise a last resort,
355
+ used only when the reply recorded no id at all โ€” so quoting your own message
356
+ can't hand the reply to whichever session happened to be talking at the time.
357
+
358
+ Since WeChat sends no quoted text, the "you quoted this" excerpt handed to the
359
+ session is reconstructed from the text kept in `outbox.json`.
360
+
361
+ If a quote doesn't route where you expect, run the daemon with
362
+ `WECHAT_DEBUG_RAW=1`: every incoming message is dumped raw to
363
+ `~/.claude/wechat/raw.log`, so you can see what your WeChat client actually
364
+ sent.
365
+
298
366
  ## Language
299
367
 
300
368
  Bot replies default to Chinese (the WeChat audience). To switch to English, set
package/README.md CHANGED
@@ -70,9 +70,10 @@ wechat-claude daemon # ๅ‰ๅฐ่ฟ่กŒ / ไบค็ป™ไฝ ่‡ชๅทฑ็š„่ฟ›็จ‹็ฎก็†
70
70
  | ๅ‘ฝไปค | ่ฏดๆ˜Ž |
71
71
  |------|------|
72
72
  | `/sessions` ๆˆ– `/ls` | ๅˆ—ๅ‡บๆดป่ทƒ็š„ Claude Code session๏ผˆ`๐Ÿ‘€` = ็›‘ๆŽงไธญ๏ผŒๆญฃๅœจๅฎžๆ—ถ่ฏปๅ–ๆถˆๆฏ๏ผ›`๐Ÿ“Œ ๅทฒ็ป‘ๅฎš` = ไฝ ็š„ๆถˆๆฏ้ƒฝๅ‘ๅˆฐ่ฟ™้‡Œ๏ผ›`๐Ÿ“ฅ ้ป˜่ฎคๆŽฅๆ”ถ` = ไธๅธฆๅ‰็ผ€็š„ๆถˆๆฏๅ‘ๅˆฐ่ฟ™้‡Œ๏ผ‰ใ€‚ๆฏๆกไธค่กŒ๏ผš`๐Ÿ“Œ 5. fintary:main (fintary-69) ๐Ÿ‘€` ๅ’Œ `็›ฎๅฝ•: fintary/data-sync-field-mapping ยท 3 ๅฐๆ—ถๅ‰ๆดป่ทƒ`ใ€‚่กŒ้ฆ–ๆ˜ฏ ๐Ÿ“Œ๏ผˆๅทฒ็ป‘ๅฎš๏ผ‰ๆˆ– ๐Ÿ“ฅ๏ผˆ้ป˜่ฎคๆŽฅๆ”ถ๏ผ‰๏ผŒๅ…ถไฝ™่กŒๆ˜ฏ โ—/โ—‹๏ผˆ2 ๅˆ†้’Ÿๅ†…ๆ˜ฏๅฆๆœ‰ๅŠจ้™๏ผ‰๏ผŒๆ‰€ไปฅ"ๆถˆๆฏๅ‘ๅˆฐๅ“ช"ๅœจๅทฆ่พนไธ€ๅˆ—ๅฐฑ่ƒฝ็œ‹ๅˆฐ๏ผ›ๅŒๅ session ๅœจๅๅญ—ๅŽๆ‹ฌๅท้‡ŒๅŠ  Claude Code ่ทจไผš่ฏๅ๏ผ›็›ฎๅฝ•ๆ˜ฏ Claude ๅฝ“ๅ‰ๆ‰€ๅœจ็›ฎๅฝ•๏ผˆworktree ๆ˜พ็คบไธบ `ไป“ๅบ“/worktreeๅ`๏ผ‰ใ€‚็ฉบ้—ฒ็š„ๅฆ่ตท `็ฉบ้—ฒ (N):` ไธ€ๆฎตใ€‚ๅˆ—่กจไธ‹ไธค่กŒๅ›พไพ‹๏ผšๆŽฅๆ”ถๆ ‡่ฎฐ็š„ๅซไน‰๏ผŒไปฅๅŠ `/s` ็”จๆณ•๏ผˆ็คบไพ‹็”จๅˆ—่กจ้‡Œ็œŸๅฎžๅญ˜ๅœจ็š„็ผ–ๅท๏ผ‰ใ€‚ๆœซๅฐพไธ€ๆฎตๆ˜ฏๅฝ“ๅ‰็‰ˆๆœฌๆ ‡็ญพ๏ผš`๐Ÿ“ฆ ๅฝ“ๅ‰็‰ˆๆœฌ๏ผšwechat-claude @ v1.2.0`๏ผŒ้ข„ๅ‘ๅธƒๆž„ๅปบๆ˜พ็คบๅฎŒๆ•ด็‰ˆๆœฌๅท๏ผˆๅฆ‚ `v1.2.0-dev.session-naming.12.2f0809f`๏ผ‰๏ผŒๅฅฝๅŒบๅˆ†ๆ˜ฏๅ“ชไธชๆต‹่ฏ•ๆž„ๅปบใ€‚ๅฆ‚ๆžœ npm ไธŠๆœ‰ๆ›ดๆ–ฐ็š„ `latest`๏ผŒๅ†้™„ไธ€ๆฎตๅ‡็บงๆ็คบ๏ผˆๆœ€ๅคšๆฏ 6 ๅฐๆ—ถๆŸฅไธ€ๆฌก npm๏ผŒๆŸฅไธๅˆฐๅฐฑๆฒฟ็”จไธŠๆฌก็ป“ๆžœ๏ผŒๅคฑ่ดฅๅŽ 30 ๅˆ†้’Ÿๅ†…ไธๅ†้‡่ฏ•๏ผ‰ |
73
- | `/s <็ผ–ๅท> <ๆถˆๆฏ>` | ๆŒ‰็ผ–ๅทๅ‘ๆถˆๆฏ็ป™ๆŸไธช sessionใ€‚็ผ–ๅทๅœจ session ็”Ÿๅ‘ฝๅ‘จๆœŸๅ†…ๅ›บๅฎšไธๅ˜ โ€”โ€” ๅ…ถไป– session ๅผ€ๅฏๆˆ–ๅ…ณ้—ญ้ƒฝไธไผš่ฎฉๅฎƒ็งปไฝ๏ผˆ้€€ๅฝน็š„็ผ–ๅทไธไผš่ขซๅค็”จ๏ผ›ๆ‰€ๆœ‰ session ้ƒฝๆถˆๅคฑๅŽ็ผ–ๅท้‡ๆ–ฐ่ฎกๆ•ฐ๏ผ‰ |
73
+ | `/s <็ผ–ๅท> <ๆถˆๆฏ>`<br>`/<็ผ–ๅท> <ๆถˆๆฏ>` | ๆŒ‰็ผ–ๅทๅ‘ๆถˆๆฏ็ป™ๆŸไธช session๏ผˆ`/3 ไฝ ๅฅฝ` ๆ˜ฏ `/s 3 ไฝ ๅฅฝ` ็š„็ฎ€ๅ†™๏ผ›็ฎ€ๅ†™ๅช่ฎค็บฏๆ•ฐๅญ—๏ผŒๆ‰€ไปฅๆ‰“้”™็š„ๅ‘ฝไปคไธไผš่ขซๅฝ“ๆˆ session ๅๆŠ•้€’ๅ‡บๅŽป๏ผ‰ใ€‚็ผ–ๅทๅœจ session ็”Ÿๅ‘ฝๅ‘จๆœŸๅ†…ๅ›บๅฎšไธๅ˜ โ€”โ€” ๅ…ถไป– session ๅผ€ๅฏๆˆ–ๅ…ณ้—ญ้ƒฝไธไผš่ฎฉๅฎƒ็งปไฝ๏ผˆ้€€ๅฝน็š„็ผ–ๅทไธไผš่ขซๅค็”จ๏ผ›ๆ‰€ๆœ‰ session ้ƒฝๆถˆๅคฑๅŽ็ผ–ๅท้‡ๆ–ฐ่ฎกๆ•ฐ๏ผ‰ |
74
74
  | `/use <็ผ–ๅท\|ๅๅญ—\|pid>` | ๆŠŠไฝ ็š„่Šๅคฉ็ป‘ๅฎšๅˆฐๆŸไธช session๏ผšไน‹ๅŽๆฏๆกไธๅธฆๅ‰็ผ€็š„ๆถˆๆฏ้ƒฝ็›ดๆŽฅๅ‘็ป™ๅฎƒ๏ผˆdaemon ้‡ๅฏๅŽไพ็„ถๆœ‰ๆ•ˆ๏ผ‰ใ€‚`/use off` ่งฃ็ป‘๏ผ›`/use` ๆŸฅ็œ‹ๅฝ“ๅ‰็ป‘ๅฎšใ€‚่ขซ็ป‘ๅฎš็š„ session ๅ…ณ้—ญๆ—ถไผš่‡ชๅŠจ่งฃ็ป‘ |
75
75
  | `/s <ๅๅญ—> <ๆถˆๆฏ>` | ๆŒ‰ๅๅญ—ๅ‘ๆถˆๆฏ๏ผˆๆจก็ณŠๅŒน้…๏ผ›ๆœ‰ๆญงไน‰ๆ—ถไผ˜ๅ…ˆ้€‰ๆญฃๅœจ็›‘ๆŽง็š„ / ๆœ€่ฟ‘ๆดป่ทƒ็š„๏ผ‰ |
76
+ | *๏ผˆๅผ•็”จๆŸๆกๅ›žๅคๅ†ๆ‰“ๅญ—๏ผ‰* | ๅœจๅพฎไฟก้‡Œ**ๅผ•็”จ**ๆŸไธช session ็š„ๅ›žๅค็„ถๅŽ็›ดๆŽฅๅ†™ไฝ ่ฆ่ฏด็š„่ฏ๏ผŒ่ฟ™ๆกๆถˆๆฏๅฐฑไผšๅ‘็ป™ๅ†™้‚ฃๆกๅ›žๅค็š„ session โ€”โ€” ไธ็”จ `/s`๏ผŒไนŸไธ็”จๆ”น็ป‘ๅฎš๏ผˆ่ง[ๅผ•็”จๅ›žๅค](#ๅผ•็”จๅ›žๅค)๏ผ‰ |
76
77
  | `/s <pid> <ๆถˆๆฏ>` | ๆŒ‰ pid ๅ‘ๆถˆๆฏ๏ผˆๅŒๅ็š„ไผšไปฅ `ๅๅญ—#pid` ๅฝขๅผๅˆ—ๅ‡บ๏ผ‰ |
77
78
  | `/run [--safe] [็›ฎๅฝ•] <ไปปๅŠก>` | ๅœจ tmux ้‡Œ่ตทไธ€ไธชๆ–ฐ็š„ Claude session ๆ‰ง่กŒไปปๅŠกใ€‚่ขซๅฏๅŠจ็š„ session ไผš่ขซ่ฆๆฑ‚ๆŠŠ็ป“ๆžœๅ‘ๅ›žๅพฎไฟกใ€‚้ป˜่ฎคๆ— ไบบๅ€ผๅฎˆ่ฟ่กŒ๏ผˆ`--dangerously-skip-permissions`๏ผ‰๏ผ›ๅŠ  `--safe` ๅˆ™็”จ `--permission-mode acceptEdits`๏ผŒๆญคๆ—ถ bash ๅ‘ฝไปคไผšๅœจ็”ต่„‘็ซฏ็ญ‰ๅพ…็กฎ่ฎคใ€‚็ฌฌไธ€ๆฌกๆ— ไบบๅ€ผๅฎˆ่ฟ่กŒๆ—ถ๏ผŒไผšๆ›ฟไฝ ๅœจ `~/.claude.json` ้‡ŒๆŽฅๅ—ๅ…็กฎ่ฎคๆจกๅผ โ€”โ€” detached ็š„ session ๆ— ๆณ•ๅ›ž็ญ” Claude Code ็š„ไธ€ๆฌกๆ€งๅฏน่ฏๆก† โ€”โ€” ๅนถๅœจๅ›žๅค้‡Œ่ฏดๆ˜Ž๏ผ›่ฏฆ่ง [SECURITY.md](SECURITY.md) |
78
79
  | `/runs` | ๅˆ—ๅ‡บ่ฟ่กŒไธญ็š„ `/run` ไปปๅŠก session |
@@ -176,6 +177,7 @@ session ็”จ `SendMessage` ๆ‰พๅฎƒๆ—ถ่ฆ็”จ็š„๏ผˆ่ง `ListAgents`๏ผ‰ใ€‚`wechat_sta
176
177
  โ”œโ”€โ”€ session.json # ilink ๆœบๅ™จไบบ token๏ผˆๆŒไน…ๅŒ–็™ปๅฝ•๏ผ‰
177
178
  โ”œโ”€โ”€ config.json # ๅฏ้€‰้…็ฝฎ๏ผˆไพ‹ๅฆ‚ /run ็”จ็š„ repoDirs๏ผ‰
178
179
  โ”œโ”€โ”€ bindings.json # /use ็ป‘ๅฎšๅ…ณ็ณป๏ผˆๅพฎไฟก็”จๆˆท -> session๏ผ‰
180
+ โ”œโ”€โ”€ outbox.json # ๅ„ session ๆœ€่ฟ‘ๅ‘ๅ‡บ็š„ๅ›žๅค๏ผˆๅผ•็”จๅ›žๅค้ ๅฎƒๅฎšไฝ session๏ผŒ็•™ 24 ๅฐๆ—ถ๏ผ›ๅ†™ๅ…ฅ่ตฐไธดๆ—ถๆ–‡ไปถ+rename๏ผŒ่ฏป็š„ไบบไธไผš่ฏปๅˆฐๅ†™ๅˆฐไธ€ๅŠ็š„ๅ†…ๅฎน๏ผ‰
179
181
  โ”œโ”€โ”€ session-numbers.json # ็จณๅฎš session ็ผ–ๅทๆณจๅ†Œ่กจ
180
182
  โ”œโ”€โ”€ media/ # ไธ‹่ฝฝ็š„ๅ›พ็‰‡๏ผˆไฟ็•™ 7 ๅคฉ๏ผ‰
181
183
  โ”œโ”€โ”€ context_tokens.json # ๅ…ฑไบซไธŠไธ‹ๆ–‡ token๏ผˆdaemon โ†” MCP server๏ผ‰
@@ -237,6 +239,7 @@ wechat-claude daemon restart
237
239
  2. ๆ”ถๅˆฐ็š„ๆถˆๆฏ่ขซ่งฃๆžๅนถ่ทฏ็”ฑ๏ผš
238
240
  - `/sessions`ใ€`/run`ใ€`/close`ใ€`/use` ่ฟ™็ฑปๅ‘ฝไปค็”ฑ daemon ่‡ชๅทฑๅค„็†
239
241
  - `/s <็›ฎๆ ‡> <ๆถˆๆฏ>` ่ทฏ็”ฑๅˆฐๆŒ‡ๅฎš session ็š„ inbox
242
+ - ๅผ•็”จๆŸไธช session ๅ›žๅค็š„ๆถˆๆฏ๏ผŒๅ‘็ป™ๅ†™้‚ฃๆกๅ›žๅค็š„ session๏ผˆ่ง[ๅผ•็”จๅ›žๅค](#ๅผ•็”จๅ›žๅค)๏ผ‰
240
243
  - ไธๅธฆๅ‰็ผ€็š„ๆถˆๆฏๅ‘็ป™ไฝ ็ป‘ๅฎš็š„ session๏ผˆ`/use`๏ผ‰๏ผŒๅฆๅˆ™ๅ‘็ป™ๆœ€่ฟ‘ๆดป่ทƒไธ”ๅค„ไบŽ `๐Ÿ‘€ ็›‘ๆŽงไธญ`
241
244
  ็š„้‚ฃไธช
242
245
  3. ๆถˆๆฏ่ขซ่ทฏ็”ฑๆ—ถ๏ผŒdaemon ไผšๅœจๅพฎไฟกไธŠๆ‰“ๅผ€"ๆญฃๅœจ่พ“ๅ…ฅ"ๆŒ‡็คบ
@@ -255,10 +258,53 @@ session ๅ‘ๅˆฐๅพฎไฟก็š„ๆฏๆกๅ›žๅค๏ผˆ`wechat_send_text`๏ผŒไปฅๅŠ `wechat_send_i
255
258
  โ€”โ€” ๆฅ่‡ช naming๏ผˆ#4๏ผ‰ยท ็›ดๆŽฅๅ›žๅค: /s 4 <ๆถˆๆฏ>
256
259
  ```
257
260
 
258
- ็ผ–ๅทๅฐฑๆ˜ฏ `/ls` ้‡Œ็š„็จณๅฎš็ผ–ๅท๏ผŒๆ•ดไธช session ็”Ÿๅ‘ฝๅ‘จๆœŸๅ†…ไธๅ˜ใ€‚ๅคšไธช session ๅพ€ๅŒไธ€ไธช่Šๅคฉ้‡Œ
261
+ ็ผ–ๅทๅฐฑๆ˜ฏ `/ls` ้‡Œ็š„็จณๅฎš็ผ–ๅท๏ผŒๆ•ดไธช session ็”Ÿๅ‘ฝๅ‘จๆœŸๅ†…ไธๅ˜ใ€‚ๅฎƒๅŒๆ—ถๆ˜ฏ[ๅผ•็”จๅ›žๅค](#ๅผ•็”จๅ›žๅค)
262
+ ็š„ๅ…œๅบ•็บฟ็ดข๏ผšๅผ•็”จ้‡Œๅธฆ็€ๅฐพๆณจ๏ผŒdaemon ๅฐฑไธ€ๅฎš่ฎคๅพ—ๅ‡บๆ˜ฏ่ฐ่ฏด็š„ใ€‚ๅคšไธช session ๅพ€ๅŒไธ€ไธช่Šๅคฉ้‡Œ
259
263
  ๅ›žๅคๆ—ถ๏ผŒไธ็”จๅ…ˆ `/ls` ๅ†็Œœๆ˜ฏ่ฐ่ฏด็š„ใ€‚ไธๆƒณ่ฆ็š„่ฏๅœจ `~/.claude/wechat/config.json` ้‡ŒๅŠ 
260
264
  `"replyFooter": false`ใ€‚
261
265
 
266
+ ## ๅผ•็”จๅ›žๅค
267
+
268
+ ๅคšไธช session ๅœจๅŒไธ€ไธชๅพฎไฟก่Šๅคฉ้‡Œ่ฏด่ฏๆ—ถ๏ผŒ`/s <็ผ–ๅท>` ๆ˜ฏๅ‡†็กฎไฝ†ๅ•ฐๅ—ฆ็š„ๅŠžๆณ•ใ€‚ๆ›ดๅฟซ็š„ๅŠžๆณ•ๆ˜ฏ็”จๅพฎไฟก
269
+ ่‡ชๅธฆ็š„**ๅผ•็”จ**๏ผš้•ฟๆŒ‰๏ผˆๆˆ–ๅณ้”ฎ๏ผ‰ๆŸไธช session ็š„ๅ›žๅค โ†’ ๅผ•็”จ โ†’ ๅ†™ไธ‹ไฝ ่ฆ่ฏด็š„่ฏๅ‘ๅ‡บๅŽปใ€‚่ฟ™ๆกๆถˆๆฏ
270
+ ๅฐฑ็›ดๆŽฅๆŠ•้€’็ป™ๅ†™้‚ฃๆกๅ›žๅค็š„ sessionใ€‚
271
+
272
+ - ็ป‘ๅฎš๏ผˆ`/use`๏ผ‰ๅ’Œ้ป˜่ฎค่ทฏ็”ฑ้ƒฝไผš่ขซ่ฟ™ไธ€ๆก่ฎฉ่ทฏ๏ผŒไฝ†**ๅช่ฎฉ่ฟ™ไธ€ๆก** โ€”โ€” ๅผ•็”จๆ˜ฏ"ๅฐฑ่ฟ™ไธ€ๆกๅ‘็ป™ๅฎƒ"๏ผŒ
273
+ ไธไผšๆ”นๅ˜ไฝ ็š„็ป‘ๅฎš
274
+ - ๆ”ถๅˆฐ็š„ session ไผš็œ‹ๅˆฐไฝ ๅผ•็”จไบ†ๅฎƒ็š„ๅ“ชๅฅ่ฏ๏ผˆไธ€่กŒๆ‘˜่ฆ๏ผ‰๏ผŒๆ‰€ไปฅ"่ฟ™ไธชๆ”นๆˆ่“่‰ฒ"่ฟ™็ง่ฏไนŸๆœ‰ไธŠไธ‹ๆ–‡
275
+ - ๅผ•็”จไธ€ๆกๅ‘ฝไปค็š„่พ“ๅ‡บ๏ผˆๆฏ”ๅฆ‚ `/ls` ็š„ๅˆ—่กจ๏ผ‰ไธไผš่ทฏ็”ฑๅˆฐไปปไฝ•ๅœฐๆ–น๏ผŒๆŒ‰ๅŽŸๆฅ็š„่ง„ๅˆ™่ตฐ
276
+ - ๅ›พ็‰‡ๅ›žๅคไนŸ่ƒฝๅผ•็”จ๏ผˆๅ‘ๅ›พๆ—ถ็š„ๆถˆๆฏ id ไธ€ๅนถ่ฎฐไธ‹๏ผ‰๏ผŒๅผ•็”จๆ‘˜่ฆๆ˜พ็คบไธบ `[ๅ›พ็‰‡]` ๆˆ–ไฝ ๅ†™็š„่ฏดๆ˜Žๆ–‡ๅญ—
277
+ - ๅผ•็”จ + `/s <็ผ–ๅท>` ๅŒๆ—ถ็”จไนŸๅฏไปฅ๏ผš็›ฎๆ ‡ๅฌไฝ ็š„๏ผŒๅผ•็”จ็š„้‚ฃๅฅไป็„ถไผšไฝœไธบไธŠไธ‹ๆ–‡ๅธฆ็ป™ๅฎƒ
278
+ - ๅฆ‚ๆžœๅ†™้‚ฃๆกๅ›žๅค็š„ session ๅทฒ็ป้€€ๅ‡บไบ†๏ผŒๅพฎไฟก้‡Œไผš็›ดๆŽฅๅ‘Š่ฏ‰ไฝ ๏ผŒๅนถๆŒ‰้ป˜่ฎค่ทฏ็”ฑๆŠ•้€’
279
+
280
+ **ๆ˜ฏๆ€Žไนˆ่ฎคๅ‡บๆฅ็š„**๏ผšๅพฎไฟกๅ‘่ฟ‡ๆฅ็š„ๅผ•็”จๅชๆœ‰ไธ€ไธช `ref_msg`๏ผŒ้‡Œ้ขๆ˜ฏ่ขซๅผ•็”จๆถˆๆฏ็š„ **id ๅ’Œๆ—ถ้—ด**๏ผŒ
281
+ **ๆฒกๆœ‰ๅŽŸๆ–‡**ใ€‚่€Œๅ‘ๆถˆๆฏ็š„ๆŽฅๅฃไผšๆŠŠๆ–ฐๆถˆๆฏ็š„ id ่ฟ”ๅ›ž็ป™ๆˆ‘ไปฌ โ€”โ€” ไบŽๆ˜ฏ session ๆฏๆฌกๅ›žๅคๅพฎไฟกๆ—ถ๏ผŒ
282
+ MCP server ๅฐฑๆŠŠ่ฟ™ไธช id ่ฟžๅŒๅ‘ๅ‡บๅŽป็š„ๅ†…ๅฎน่ฎฐ่ฟ› `outbox.json`๏ผˆsession idใ€ๅๅญ—ใ€ๅŽŸๆ–‡ใ€ๆถˆๆฏ
283
+ id๏ผŒ็•™ 24 ๅฐๆ—ถใ€ๆœ€ๅคš 200 ๆก๏ผ‰๏ผŒๅผ•็”จ่ฟ›ๆฅๆ—ถๆŒ‰ id ๅๆŸฅๆ˜ฏ่ฐ่ฏด็š„ใ€‚
284
+
285
+ ๏ผˆ่ฟ™ไธช id ๆ˜ฏ 19 ไฝๆ•ฐๅญ—ใ€่ถ…่ฟ‡ 2^53๏ผŒ`JSON.parse` ไผšๆŠŠๆœซๅฐพๅ‡ ไฝๆŠนๆˆ 0๏ผŒๆ‰€ไปฅๅฎƒๆ˜ฏไปŽๅ“ๅบ”็š„ๅŽŸๅง‹
286
+ ๆ–‡ๆœฌ้‡Œๆญฃๅˆ™ๅ–ๅ‡บๆฅ็š„ โ€”โ€” ่งฃๆž่ฟ‡ไธ€้ๅฐฑๅ†ไนŸๆ•‘ไธๅ›žๆฅไบ†ใ€‚๏ผ‰
287
+
288
+ ่ฎฐๅฝ•้‡Œ่ฟ˜ๆœ‰ Claude Code ็ป™่ฟ™ไธช session ่ตท็š„ๅๅญ—ใ€‚session id ๅฐฑๆ˜ฏ pid๏ผŒ`/mcp` ้‡่ฟžไผšๆขไธ€ไธช๏ผŒ
289
+ ไฝ†้‚ฃ่ฟ˜ๆ˜ฏไฝ ๅˆšๆ‰ๅœจ่ฏด่ฏ็š„ๅŒไธ€ไธช session โ€”โ€” ่ฎค่ฟ™ไธชๅๅญ—ๅฐฑ่ƒฝ่ทŸ่ฟ‡ๅŽปใ€‚**ไธ่ฎคๅพฎไฟก่ทฏ็”ฑๅ**๏ผš่ทฏ็”ฑๅๆ˜ฏ
290
+ ๆŒ‰"ไป“ๅบ“:ๅˆ†ๆ”ฏ"่‡ชๅŠจๅ–็š„๏ผŒๅŒไธ€ไธชไป“ๅบ“้‡Œ็š„ไธคไธช session ไผš้‡ๅ๏ผŒ้€€ๅ‡บๅŽ่ฟ™ไธชๅๅญ—ไนŸไผš่ฝๅˆฐไธ‹ไธ€ไธชๅœจ้‚ฃ้‡Œ
291
+ ๆ‰“ๅผ€็š„ session ่บซไธŠ๏ผŒ่ทŸ่ฟ‡ๅŽปๅฐฑๆ˜ฏ็ญ”้”™ไบ†ไบบใ€‚่ฎคไธๅ‡บๆฅๅฐฑ็›ด่ฏด"้‚ฃไธช session ๅทฒ็ป้€€ๅ‡บไบ†"ใ€‚
292
+
293
+ ๅŒน้…้กบๅบ๏ผš่ขซๅผ•็”จๆถˆๆฏ็š„ id โ†’ ่ขซๅผ•็”จ็š„ๅŽŸๆ–‡๏ผˆๆœ‰็š„ๅฎขๆˆท็ซฏไผšๆŠŠๅผ•็”จๅกž่ฟ›ๆ–‡ๅญ—้‡Œ๏ผŒๆˆชๆ–ญ็š„ๆŒ‰ๅ‰็ผ€ๅŒน้…๏ผ‰
294
+ โ†’ ่ขซๅผ•็”จๅ†…ๅฎน้‡Œ็š„[ๅ›žๅคๅฐพๆณจ](#ๅ›žๅคๅฐพๆณจ) โ†’ ๅ‘้€ๆ—ถ้—ดไธŽ่ขซๅผ•็”จๆถˆๆฏๅˆ›ๅปบๆ—ถ้—ด็›ธๅทฎ 15 ็ง’ๅ†…็š„้‚ฃๆกใ€‚
295
+ ๆ‰€ไปฅๅฐพๆณจๅ…ณๆމ๏ผˆ`"replyFooter": false`๏ผ‰ใ€ๆˆ–่€…ๆŸๆกๅ›žๅคๆ˜ฏๆ—ง็‰ˆๆœฌๅ‘็š„ๆฒก่ฎฐไธ‹ id๏ผŒ้ƒฝ่ฟ˜ๆœ‰ๅ…œๅบ•ใ€‚
296
+
297
+ ๅฐพๆณจ่ฎค็š„ๆ˜ฏ้‡Œ้ข็š„**ๅๅญ—**๏ผŒไธๆ˜ฏ `#็ผ–ๅท`๏ผš็ผ–ๅท่™ฝ็„ถไธไผš้‡ๅคไฝฟ็”จ๏ผŒไฝ†ๆ‰€ๆœ‰ session ้ƒฝ้€€ๅ‡บๅŽ
298
+ ่ฎกๆ•ฐไผšไปŽ 1 ้‡ๆ–ฐๅผ€ๅง‹๏ผŒๆ‰€ไปฅ้š”ๅคฉ็š„ `#3` ๅฏ่ƒฝๆŒ‡ๅ‘ไธ€ไธช่ทŸ้‚ฃๆกๆถˆๆฏๆ— ๅ…ณ็š„ๆ–ฐ sessionใ€‚ๅๅญ—ๅฏนไธไธŠๅฐฑ
299
+ ๆŒ‰"้‚ฃไธช session ๅทฒ็ป้€€ๅ‡บ"ๅค„็†๏ผŒไธ็Œœใ€‚ๆ—ถ้—ดๅ…œๅบ•ๅŒ็†๏ผŒๅชๅœจ่ฟ™ๆกๅ›žๅคๆ นๆœฌๆฒก่ฎฐไธ‹ id ๆ—ถๆ‰็”จ โ€”โ€”
300
+ ไฝ ๅผ•็”จ่‡ชๅทฑๅ‘็š„ๆถˆๆฏๆ—ถ๏ผŒไธไผš่ขซๅกž็ป™ๅฝ“ๆ—ถๅˆšๅฅฝๅœจ่ฏด่ฏ็š„้‚ฃไธช sessionใ€‚
301
+
302
+ ๅ› ไธบๅพฎไฟกไธๅธฆๅŽŸๆ–‡๏ผŒๆŠ•้€’็ป™ session ็š„้‚ฃๅฅ"ไฝ ๅผ•็”จ็š„ๆ˜ฏ่ฟ™ๆก"ๆ‘˜่ฆ๏ผŒๆ˜ฏ็”จ `outbox.json` ้‡Œ่ฎฐ็€็š„
303
+ ๅŽŸๆ–‡่ฟ˜ๅŽŸๅ‡บๆฅ็š„ใ€‚
304
+
305
+ ๅฆ‚ๆžœๅผ•็”จๆฒกๆœ‰ๆŒ‰้ข„ๆœŸ่ทฏ็”ฑ๏ผŒๆŠŠ daemon ็”จ `WECHAT_DEBUG_RAW=1` ่ท‘่ตทๆฅ๏ผŒๆฏๆกๆ”ถๅˆฐ็š„ๅŽŸๅง‹ๆถˆๆฏไผš
306
+ ๅ†™่ฟ› `~/.claude/wechat/raw.log`๏ผŒๅฏไปฅ็œ‹ๅˆฐไฝ ็š„ๅพฎไฟกๅฎขๆˆท็ซฏๅˆฐๅบ•ๅ‘ไบ†ไป€ไนˆใ€‚
307
+
262
308
  ## ่ฏญ่จ€
263
309
 
264
310
  ๆœบๅ™จไบบๅ›žๅค้ป˜่ฎค็”จไธญๆ–‡๏ผˆ้ขๅ‘ๅพฎไฟก็”จๆˆท๏ผ‰ใ€‚่ฆๅˆ‡ๆขๆˆ่‹ฑๆ–‡๏ผŒๅœจ
package/dist/daemon.js CHANGED
@@ -10,10 +10,13 @@ import { nudgeSession } from "./nudge.js";
10
10
  import { lastReplyAt, pruneReplies } from "./replies.js";
11
11
  import { looksStalled } from "./transcripts.js";
12
12
  import { probeUsageLimit, readUsageState, resetHint, shouldProbe, writeUsageState, } from "./usage.js";
13
- import { CONFIG_FILE, CURSOR_FILE, DAEMON_PID_FILE, EXPIRED_FLAG_FILE, INBOX_DIR, MEDIA_DIR, SESSIONS_DIR, TYPING_DIR, WECHAT_DIR, ensureDirs as ensureWechatDirs, isProcessAlive, } from "./paths.js";
13
+ import { CONFIG_FILE, CURSOR_FILE, DAEMON_PID_FILE, EXPIRED_FLAG_FILE, INBOX_DIR, MEDIA_DIR, RAW_LOG_FILE, SESSIONS_DIR, TYPING_DIR, WECHAT_DIR, ensureDirs as ensureWechatDirs, isProcessAlive, } from "./paths.js";
14
14
  import { assignSessionNumbers } from "./session-numbers.js";
15
15
  import { findSession, getDefaultTarget, listSessions, matchSessions, cwdLabel, sessionLabel, sortedSessions, } from "./sessions.js";
16
16
  import { peekInbox, writeToInbox } from "./inbox.js";
17
+ import { isBareRouteCommand, parseRouteCommand } from "./routing.js";
18
+ import { listOutbound } from "./outbox.js";
19
+ import { extractQuote, quoteExcerpt, resolveQuoteTarget, } from "./quote.js";
17
20
  import { CLAUDE_CONFIG_FILE, ensureBypassAccepted } from "./claude-config.js";
18
21
  import { formatAgo, getLang, marker, t } from "./i18n.js";
19
22
  import { checkForUpdate } from "./version.js";
@@ -69,6 +72,16 @@ async function enrichImages(client, pending) {
69
72
  }
70
73
  }
71
74
  }
75
+ // Append the untouched message to raw.log when WECHAT_DEBUG_RAW=1, before
76
+ // anything has interpreted it.
77
+ function logRaw(msg) {
78
+ if (process.env.WECHAT_DEBUG_RAW !== "1")
79
+ return;
80
+ try {
81
+ fs.appendFileSync(RAW_LOG_FILE, `${JSON.stringify(msg)}\n`, { mode: 0o600 });
82
+ }
83
+ catch { }
84
+ }
72
85
  function getParentPid(pid) {
73
86
  const r = spawnSync("ps", ["-o", "ppid=", "-p", String(pid)], {
74
87
  stdio: ["ignore", "pipe", "ignore"],
@@ -647,6 +660,27 @@ function routeMessage(client, msg) {
647
660
  log(`Reply failed: ${err}`);
648
661
  });
649
662
  };
663
+ // Resolved once, before any dispatch: plain routing wants the session the
664
+ // quote points at, and every path that delivers wants the quoted text, so
665
+ // the receiving session knows which of its own messages is being answered.
666
+ const quoteTarget = msg.quote
667
+ ? resolveQuoteTarget(msg.quote, {
668
+ records: listOutbound(msg.fromUserId),
669
+ live: listSessions(),
670
+ find: (selector) => findSession(selector),
671
+ })
672
+ : undefined;
673
+ // WeChat's quote carries no text at all, so what the quoted message said
674
+ // comes from the outbox record it matched. Only the other source โ€” a client
675
+ // that put the quote in the message text โ€” has a "nickname:" prefix on it,
676
+ // and that distinction is what quoteExcerpt's flag is for.
677
+ const recovered = quoteTarget?.quotedText;
678
+ const excerpt = recovered !== undefined
679
+ ? quoteExcerpt(recovered)
680
+ : quoteExcerpt(msg.quote?.quotedText ?? "", true);
681
+ // Nothing to excerpt (an image, or a quote we could not place) means nothing
682
+ // to add.
683
+ const withQuote = (body) => excerpt === "" ? body : m.quotedContext(excerpt, body);
650
684
  if (text === "/usage" || text === "/limit" || text === "/็”จ้‡") {
651
685
  sendReply(m.usageChecking);
652
686
  void (async () => {
@@ -890,21 +924,21 @@ function routeMessage(client, msg) {
890
924
  ].filter(Boolean));
891
925
  return;
892
926
  }
893
- const bareRoute = text.match(/^\/s(?:\s+(\S+))?\s*$/);
894
- if (bareRoute) {
927
+ if (isBareRouteCommand(text)) {
895
928
  sendReply(m.sListUsage);
896
929
  return;
897
930
  }
898
- const routeMatch = text.match(/^\/s\s+(\S+)\s+([\s\S]+)$/);
931
+ const routeMatch = parseRouteCommand(text);
899
932
  if (routeMatch) {
900
- const selector = routeMatch[1];
901
- const message = routeMatch[2];
933
+ const { selector, message } = routeMatch;
902
934
  const target = findSession(selector);
903
935
  if (!target) {
904
936
  sendReply(m.notFound(selector));
905
937
  return;
906
938
  }
907
- const routed = { ...msg, text: message };
939
+ // A quote alongside an explicit target is still context the session needs:
940
+ // the user can see the quote in their own chat.
941
+ const routed = { ...msg, text: withQuote(message) };
908
942
  writeToInbox(target.id, routed);
909
943
  trackDelivery(routed, target.id, target.name);
910
944
  if (!isMonitoring(target.id)) {
@@ -917,9 +951,22 @@ function routeMessage(client, msg) {
917
951
  return;
918
952
  }
919
953
  const sessions = listSessions();
954
+ // A quoted reply says which session it is for: the one that wrote the quoted
955
+ // message. That beats both the binding and the default target โ€” quoting is
956
+ // the user pointing at a session, and it is a one-off, so the binding is
957
+ // left alone.
958
+ let quoted;
959
+ if (quoteTarget?.kind === "session") {
960
+ quoted = quoteTarget.session;
961
+ }
962
+ else if (quoteTarget?.kind === "gone") {
963
+ // Only worth saying where the quote was the routing decision; with an
964
+ // explicit "/s <n>" the user already said where this goes.
965
+ sendReply(m.quoteSessionGone(quoteTarget.name));
966
+ }
920
967
  // A bound session wins; otherwise prefer sessions that are actively
921
968
  // monitoring their inbox and, among those, the most recently active one.
922
- const boundId = getBinding(msg.fromUserId);
969
+ const boundId = quoted ? undefined : getBinding(msg.fromUserId);
923
970
  let target = boundId
924
971
  ? sessions.find((s) => s.id === boundId)
925
972
  : undefined;
@@ -927,20 +974,27 @@ function routeMessage(client, msg) {
927
974
  clearBinding(msg.fromUserId);
928
975
  sendReply(m.bindingCleared);
929
976
  }
930
- target = target ?? getDefaultTarget(sessions);
977
+ target = quoted ?? target ?? getDefaultTarget(sessions);
931
978
  if (!target) {
932
979
  sendReply(m.noSessionsDeliver);
933
980
  return;
934
981
  }
935
- writeToInbox(target.id, msg);
936
- trackDelivery(msg, target.id, target.name);
982
+ const delivered = { ...msg, text: withQuote(msg.text) };
983
+ writeToInbox(target.id, delivered);
984
+ trackDelivery(delivered, target.id, target.name);
937
985
  if (!isMonitoring(target.id)) {
938
- sendReply(m.deliveredNoneMonitored(target.name));
986
+ // A quote picked this session out, so the honest warning is about that one
987
+ // session, not about nobody monitoring anything.
988
+ sendReply(quoted
989
+ ? m.deliveredUnmonitored(target.name)
990
+ : m.deliveredNoneMonitored(target.name));
939
991
  }
940
992
  noteUsageLimit(client, msg.fromUserId);
941
993
  markTyping(msg.fromUserId);
942
994
  client.startTypingKeepAlive(msg.fromUserId);
943
- log(`Routed to ${target.name} (${target.id})`);
995
+ log(quoted
996
+ ? `Routed by quote to ${target.name} (${target.id})`
997
+ : `Routed to ${target.name} (${target.id})`);
944
998
  }
945
999
  function log(msg) {
946
1000
  const time = new Date().toLocaleString("zh-CN");
@@ -1012,19 +1066,35 @@ async function main() {
1012
1066
  clearedExpiredFlag = true;
1013
1067
  }
1014
1068
  for (const msg of rawMsgs) {
1069
+ logRaw(msg);
1015
1070
  if (msg.message_type !== 1 || msg.message_state !== 2)
1016
1071
  continue;
1017
1072
  client.trackContextToken(msg.from_user_id, msg.context_token);
1018
1073
  const text = extractText(msg, getLang());
1019
1074
  if (!text)
1020
1075
  continue;
1076
+ // A quoted reply carries the quoted message inside its text; the
1077
+ // session should be handed what the user typed, not the bubble around
1078
+ // it, and the quote itself decides where that goes (see routeMessage).
1079
+ const quote = extractQuote(msg, text);
1021
1080
  const pending = {
1022
1081
  id: msg.message_id,
1023
1082
  fromUserId: msg.from_user_id,
1024
- text,
1083
+ text: quote?.body ?? text,
1025
1084
  contextToken: msg.context_token,
1026
1085
  timestamp: msg.create_time_ms,
1027
1086
  rawItems: msg.item_list,
1087
+ quote: quote
1088
+ ? {
1089
+ quotedText: quote.quotedText,
1090
+ quotedMessageId: quote.quotedMessageId,
1091
+ // Dropping this would strand the timestamp fallback: it is
1092
+ // the only evidence left for a reply sent before ids were
1093
+ // recorded.
1094
+ quotedAt: quote.quotedAt,
1095
+ fromText: quote.fromText,
1096
+ }
1097
+ : undefined,
1028
1098
  };
1029
1099
  await enrichImages(client, pending);
1030
1100
  log(`Message: ${pending.text.slice(0, 60)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function withFileLock<T>(file: string, fn: () => T): T;
@@ -0,0 +1,47 @@
1
+ import fs from "node:fs";
2
+ // A lock nobody released within this is a crashed holder's, and may be stolen.
3
+ const LOCK_TIMEOUT_MS = 5000;
4
+ // Long enough to outlast that: a budget shorter than the stale threshold can
5
+ // never reach the steal, so every contender would give up and write unlocked โ€”
6
+ // exactly the concurrent read-modify-write the lock exists to prevent.
7
+ const LOCK_BUDGET_MS = LOCK_TIMEOUT_MS * 2;
8
+ const SPIN_MS = 20;
9
+ // Serialize access to a small JSON file across processes with an atomic mkdir
10
+ // lock, so a reader-modify-writer in one process can't interleave with another
11
+ // (which would lose or duplicate entries). Critical sections must stay tiny โ€”
12
+ // one file read plus one write.
13
+ //
14
+ // A lock nobody released within LOCK_TIMEOUT_MS is stolen: the holder is a
15
+ // crashed process, and waiting on it forever would wedge every writer.
16
+ export function withFileLock(file, fn) {
17
+ const lock = `${file}.lock`;
18
+ const deadline = Date.now() + LOCK_BUDGET_MS;
19
+ while (Date.now() < deadline) {
20
+ try {
21
+ fs.mkdirSync(lock);
22
+ }
23
+ catch {
24
+ try {
25
+ if (Date.now() - fs.statSync(lock).mtimeMs > LOCK_TIMEOUT_MS) {
26
+ fs.rmdirSync(lock);
27
+ }
28
+ }
29
+ catch { }
30
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, SPIN_MS);
31
+ continue;
32
+ }
33
+ try {
34
+ return fn();
35
+ }
36
+ finally {
37
+ try {
38
+ fs.rmdirSync(lock);
39
+ }
40
+ catch { }
41
+ }
42
+ }
43
+ // Couldn't acquire within the budget โ€” proceed unlocked rather than drop the
44
+ // write entirely.
45
+ return fn();
46
+ }
47
+ //# sourceMappingURL=file-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../src/file-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,+EAA+E;AAC/E,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,6EAA6E;AAC7E,+EAA+E;AAC/E,uEAAuE;AACvE,MAAM,cAAc,GAAG,eAAe,GAAG,CAAC,CAAC;AAC3C,MAAM,OAAO,GAAG,EAAE,CAAC;AAEnB,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAC9E,gCAAgC;AAChC,EAAE;AACF,2EAA2E;AAC3E,uEAAuE;AACvE,MAAM,UAAU,YAAY,CAAI,IAAY,EAAE,EAAW;IACvD,MAAM,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;IAC7C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,eAAe,EAAE,CAAC;oBAC7D,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YACtE,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC;IACD,6EAA6E;IAC7E,kBAAkB;IAClB,OAAO,EAAE,EAAE,CAAC;AACd,CAAC"}