polygram 0.8.0-rc.7 → 0.8.0-rc.8

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://anthropic.com/claude-code/plugin.schema.json",
3
3
  "name": "polygram",
4
- "version": "0.8.0-rc.7",
4
+ "version": "0.8.0-rc.8",
5
5
  "description": "Telegram integration for Claude Code that preserves the OpenClaw per-chat session model. Migration target for OpenClaw users. Multi-bot, multi-chat, per-topic isolation; SQLite transcripts; inline-keyboard approvals. Bundles /polygram:status|logs|pair-code|approvals admin commands and a history skill.",
6
6
  "keywords": [
7
7
  "telegram",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "polygram",
3
- "version": "0.8.0-rc.7",
3
+ "version": "0.8.0-rc.8",
4
4
  "description": "Telegram daemon for Claude Code that preserves the OpenClaw per-chat session model. Migration path for OpenClaw users moving to Claude Code.",
5
5
  "main": "lib/ipc-client.js",
6
6
  "bin": {
package/polygram.js CHANGED
@@ -2412,9 +2412,15 @@ async function handleMessage(sessionKey, chatId, msg, bot) {
2412
2412
  // chatConfig.autosteer === false). CLI pm always falls through
2413
2413
  // to the queue-FIFO path (no steer primitive on stream-json).
2414
2414
  //
2415
- // The steered message gets a 🛞 reaction so the user knows it
2415
+ // The steered message gets a reaction so the user knows it
2416
2416
  // landed; no separate reply is generated (the in-flight turn's
2417
2417
  // response covers both messages, OpenClaw-style).
2418
+ //
2419
+ // Reaction emoji must be from Telegram's curated allowlist
2420
+ // (~60 standard emoji per core.telegram.org/bots/api#availablereactions).
2421
+ // 🛞 (steering wheel) is NOT on it — Telegram returns
2422
+ // 400: REACTION_INVALID. ✍ ("writing/noting") is on the list and
2423
+ // conveys "incorporating this".
2418
2424
  const chatAutosteer = chatConfig.autosteer != null
2419
2425
  ? chatConfig.autosteer
2420
2426
  : config.bot?.autosteer;
@@ -2432,7 +2438,7 @@ async function handleMessage(sessionKey, chatId, msg, bot) {
2432
2438
  tg(bot, 'setMessageReaction', {
2433
2439
  chat_id: chatId,
2434
2440
  message_id: msg.message_id,
2435
- reaction: [{ type: 'emoji', emoji: '🛞' }],
2441
+ reaction: [{ type: 'emoji', emoji: '' }],
2436
2442
  }, { source: 'autosteer-ack', botName: BOT_NAME }).catch((err) => {
2437
2443
  console.error(`[${label}] autosteer reaction: ${err.message}`);
2438
2444
  });
@@ -2441,7 +2447,13 @@ async function handleMessage(sessionKey, chatId, msg, bot) {
2441
2447
  text_len: prompt?.length ?? 0,
2442
2448
  });
2443
2449
  stopTyping();
2444
- reactor.stop();
2450
+ // 0.8.0-rc.8: clear() instead of stop() so the THINKING/QUEUED
2451
+ // 👀 reaction set by the reactor at QUEUED-state actually
2452
+ // disappears from the user's message. reactor.stop() only
2453
+ // cancels timers; the visible emoji persists indefinitely
2454
+ // without an explicit clear() — that's why production showed
2455
+ // 👀 stuck on every steered follow-up under rc.6/rc.7.
2456
+ await reactor.clear().catch(() => {});
2445
2457
  markReplied();
2446
2458
  return;
2447
2459
  }