polygram 0.12.0-rc.25 → 0.12.0-rc.27

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.
@@ -115,13 +115,20 @@ const STREAMING_HINT_RE = /esc to interrupt/i;
115
115
 
116
116
  // 0.12.0 background-work lifecycle: claude's TUI mode line shows a live
117
117
  // background-shell COUNT while a `run_in_background:true` Bash outlives its turn,
118
- // e.g. `⏵⏵ auto mode on · 1 shell · ← for agents · ↓ to manage`. Confirmed on
119
- // claude 2.1.158 (P0 spike — docs/0.12.0-background-work-lifecycle-plan.md): the
120
- // count is always-present in the viewport mode line while shells run and clears
121
- // IN-PLACE within ~3s when they exit (no stale scrollback). Anchored to the
122
- // `auto mode on` line and matched only against the captured TAIL so a scrolled-off
123
- // history line never trips it. R1: re-validate on each pinned-claude bump.
124
- const BACKGROUND_SHELL_RE = /auto mode on[^\n]*·\s*(\d+)\s+shells?\b/i;
118
+ // e.g. `⏵⏵ bypass permissions on · 1 shell · ← for agents · ↓ to manage`.
119
+ // Confirmed on claude 2.1.158 (P0 spike — docs/0.12.0-background-work-lifecycle-
120
+ // plan.md): the count is always-present in the viewport mode line while shells run
121
+ // and clears IN-PLACE within ~3s when they exit (no stale scrollback).
122
+ //
123
+ // MODE-INDEPENDENT (prod regression fix, 2026-06-04): the original regex anchored
124
+ // on "auto mode on", but EVERY shumorobot session runs "⏵⏵ bypass permissions on"
125
+ // — the spike happened to be captured in auto mode. So the detector never matched
126
+ // in prod and bg-work-status fired zero times. Anchor instead on the `⏵⏵` mode-
127
+ // line glyph (present in auto / bypass / accept-edits modes alike); only the mode
128
+ // label between it and `· N shell` varies. Still matched only against the captured
129
+ // TAIL so a scrolled-off history line never trips it. R1: re-validate on each
130
+ // pinned-claude bump (glyph + `N shell` wording).
131
+ const BACKGROUND_SHELL_RE = /⏵⏵[^\n]*·\s*(\d+)\s+shells?\b/i;
125
132
  // How long a detached background shell may run AFTER its turn resolved (claude
126
133
  // idle) before the stall-watchdog fires one read-only self-check. Override via
127
134
  // the constructor (tests use a small value).
@@ -781,8 +788,12 @@ class CliProcess extends Process {
781
788
  // Dev-channels confirmation — always fires under
782
789
  // --dangerously-load-development-channels.
783
790
  { name: 'dev-channels', regex: /WARNING: Loading development channels/i, key: 'Enter' },
784
- // Workspace trust prompt — fires on first-time cwd or untrusted.
785
- { name: 'trust', regex: /trust the files in this folder/i, key: 'Enter' },
791
+ // Workspace trust prompt — fires on first-time cwd or untrusted. claude
792
+ // 2.1.158 renders "Quick safety check: Is this a project you created or
793
+ // one you trust? … ❯ 1. Yes, I trust this folder" (Enter confirms the
794
+ // pre-selected "trust" option). The older "trust the files in this folder"
795
+ // wording is kept for back-compat; both anchor on "trust … this folder".
796
+ { name: 'trust', regex: /trust (?:the files in )?this folder/i, key: 'Enter' },
786
797
  // Review F#12: session-age "Resume from summary?" prompt — fires on
787
798
  // aged sessions (claude treats older session JSONLs differently).
788
799
  // Tmux backend dismisses with Enter at tmux-process.js:2637 onward;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "polygram",
3
- "version": "0.12.0-rc.25",
3
+ "version": "0.12.0-rc.27",
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": {