polygram 0.12.2 → 0.12.4
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/lib/process/cli-process.js +36 -11
- package/package.json +1 -1
|
@@ -763,19 +763,28 @@ class CliProcess extends Process {
|
|
|
763
763
|
'DROPPED — it gets re-sent to you or flagged as a lost message. When unsure,',
|
|
764
764
|
'include the id.',
|
|
765
765
|
'',
|
|
766
|
-
'### Staying responsive on a long task',
|
|
766
|
+
'### Staying responsive on a long task — show progress, never go silent',
|
|
767
767
|
'',
|
|
768
|
-
'The user
|
|
769
|
-
'
|
|
770
|
-
'
|
|
771
|
-
'with that `message_id` to update the SAME bubble as you make progress,',
|
|
772
|
-
'finishing with the result. One evolving message beats silence or a flood of',
|
|
773
|
-
'new ones.',
|
|
768
|
+
'The user sees NOTHING while you work — no inline text, no tool output reaches',
|
|
769
|
+
'them. A turn that runs long with no reply looks BROKEN (they see only silence)',
|
|
770
|
+
'and can hit the turn time-cap before you answer.',
|
|
774
771
|
'',
|
|
775
|
-
'
|
|
776
|
-
'
|
|
777
|
-
'
|
|
778
|
-
'
|
|
772
|
+
'So once you are clearly into multi-step work — you have run a couple of tool',
|
|
773
|
+
'calls without replying, or the request plainly needs research / several steps —',
|
|
774
|
+
'send a SHORT one-line status via `reply` (it returns a `message_id`), then use',
|
|
775
|
+
'`mcp__polygram-bridge__edit_message` on that SAME `message_id` to update the',
|
|
776
|
+
'bubble as you progress. `edit_message` is for INTERIM status ONLY.',
|
|
777
|
+
'',
|
|
778
|
+
'Deliver the FINAL answer as a fresh `reply`, never as an edit: a fresh reply',
|
|
779
|
+
'notifies the user and carries `consumed_turn_ids`; an edit does neither. If you',
|
|
780
|
+
'no longer have the status bubble\'s message_id, just send a fresh `reply` —',
|
|
781
|
+
'never guess an id.',
|
|
782
|
+
'',
|
|
783
|
+
'If you will finish in one or two tool calls, just answer — no status bubble.',
|
|
784
|
+
'Status is for work that takes time, not for quick answers (do not spam it).',
|
|
785
|
+
'',
|
|
786
|
+
'Write status in PLAIN language about what you are doing FOR THE USER — never',
|
|
787
|
+
'tool names. Say "Checking your config now…", not "Running Bash".',
|
|
779
788
|
'',
|
|
780
789
|
// TEMPORARY mitigation (2026-06-08 Shumabit@UMI wedge): AskUserQuestion opens
|
|
781
790
|
// a blocking TUI selection widget the channel can't answer → the session
|
|
@@ -2132,6 +2141,22 @@ class CliProcess extends Process {
|
|
|
2132
2141
|
backend: this.backend,
|
|
2133
2142
|
});
|
|
2134
2143
|
this._logEvent('turn-timeout', { turnTimeoutMs, reason });
|
|
2144
|
+
// 0.12.3 wedge characterization (docs/0.13-turn-wedge-autorecovery-spec.md):
|
|
2145
|
+
// a zero-reply turn hit the ceiling = claude wedged (no hooks AND no
|
|
2146
|
+
// "esc to interrupt" the whole window). Capture the TUI pane tail + busy
|
|
2147
|
+
// flags to learn WHAT state claude is stuck in (a tool, an unrecognized
|
|
2148
|
+
// prompt, the idle ❯, blank). Fire-and-forget: never blocks or changes
|
|
2149
|
+
// the kill path; the tmux session is still alive at this point.
|
|
2150
|
+
this.probeBusyState().then((probe) => {
|
|
2151
|
+
this._logEvent('turn-timeout-pane', {
|
|
2152
|
+
reason,
|
|
2153
|
+
streaming: probe.streaming,
|
|
2154
|
+
background_shell: probe.backgroundShell,
|
|
2155
|
+
shell_count: probe.shellCount,
|
|
2156
|
+
captured: probe.captured,
|
|
2157
|
+
pane_tail: probe.paneTail,
|
|
2158
|
+
});
|
|
2159
|
+
}).catch(() => { /* telemetry best-effort — never throws into the kill path */ });
|
|
2135
2160
|
this.emit('idle');
|
|
2136
2161
|
const err = new Error(`turn timeout (${turnTimeoutMs}ms, reason=${reason})`);
|
|
2137
2162
|
err.code = 'TURN_TIMEOUT';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "polygram",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.4",
|
|
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": {
|