polygram 0.8.0-rc.23 → 0.8.0-rc.24

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.23",
4
+ "version": "0.8.0-rc.24",
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",
@@ -224,19 +224,21 @@ function createReactionManager({
224
224
  // (no point arming over QUEUED/STALL/TIMEOUT itself).
225
225
  armStallTimers();
226
226
 
227
- const elapsed = Date.now() - lastFlushTs;
228
- if (elapsed >= throttleMs) {
229
- if (pendingTimer) { clearTimeout(pendingTimer); pendingTimer = null; }
230
- return flush(stateName);
231
- }
232
- // Inside throttle window: schedule for the soonest safe flush.
233
- if (!pendingTimer) {
234
- pendingTimer = setTimeout(() => {
235
- pendingTimer = null;
236
- flush(currentState);
237
- }, throttleMs - elapsed);
238
- pendingTimer.unref?.();
239
- }
227
+ // 0.8.0-rc.24: drop the 800ms throttle. Pre-rc.24, when a tool-
228
+ // using turn fired QUEUED → THINKING → TOOL within a few ms,
229
+ // the throttle squashed THINKING (pendingTimer flushed
230
+ // currentState which was already overwritten to TOOL by the
231
+ // time the timer fired). Users saw 👀 → ❰long pause❱ → 🔥 →
232
+ // 🥱, missing the 🤔 transition entirely.
233
+ //
234
+ // Why the throttle is now redundant: rc.11 added applyChain
235
+ // which serializes every apply() call to Telegram in
236
+ // setState() invocation order. So three rapid setStates in
237
+ // 30ms produce three sequential network calls, each ~200-300ms
238
+ // round-trip. User sees 👀 → 🤔 → 🔥 progress, smoothly
239
+ // paced by network latency.
240
+ if (pendingTimer) { clearTimeout(pendingTimer); pendingTimer = null; }
241
+ return flush(stateName);
240
242
  };
241
243
 
242
244
  const clear = async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "polygram",
3
- "version": "0.8.0-rc.23",
3
+ "version": "0.8.0-rc.24",
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": {