orchestrix-yuri 2.3.4 → 2.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.
@@ -143,24 +143,28 @@ function tmuxSafe(cmd) {
143
143
 
144
144
  // ── Claude Code TUI Indicators ─────────────────────────────────────────────────
145
145
  //
146
- // Claude Code uses three circle symbols as primary state indicators:
146
+ // Claude Code TUI state indicators vary by version and statusline config:
147
147
  //
148
- // (U+25CB) IDLE — Claude is waiting for user input
149
- // (U+25CF) PROCESSING Claude is actively generating a response
150
- // ◐ (U+25D0) APPROVAL Claude is waiting for permission approval
148
+ // Idle indicators (any of these = ready for input):
149
+ // (U+25CB) — circle idle indicator (shown with certain statusline configs)
150
+ //prompt cursor (always shown when idle, most reliable)
151
151
  //
152
- // During processing, a Braille spinner animates: ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏
153
- // with cycling verbs like "Baking...", "Computing...", "Thinking..."
152
+ // Processing indicators:
153
+ // ● (U+25CF) filled circle, active generation
154
+ // Braille spinner: ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏
154
155
  //
155
- // Completion message format (past-tense verb + duration):
156
- // "Baked for 31s", "Worked for 2m 45s", "Cooked for 1m 6s"
157
- // Pattern: /[A-Z][a-z]*ed for \d+/
156
+ // Status line elements (NOT state indicators):
157
+ // ◐ — effort level indicator (e.g. " medium · /effort"), NOT approval prompt
158
+ //
159
+ // Completion message (past-tense verb + duration):
160
+ // "Baked for 31s", "Worked for 2m 45s"
161
+ // Pattern: /[A-Z][a-z]*ed for \d+/
158
162
  //
159
163
  // ────────────────────────────────────────────────────────────────────────────────
160
164
 
161
165
  const BRAILLE_SPINNER = /[⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏]/;
162
166
  const COMPLETION_RE = /[A-Z][a-z]*ed for \d+/;
163
- const IDLE_RE = /○/;
167
+ const IDLE_RE = /[○❯]/;
164
168
  const PROCESSING_RE = /●/;
165
169
 
166
170
  /**
@@ -202,10 +206,6 @@ function paneTail(name, n) {
202
206
  /**
203
207
  * Detect Claude Code's current state from pane output.
204
208
  *
205
- * Note: We launch with --dangerously-skip-permissions, so approval prompts (◐)
206
- * should never appear. The detection is kept for robustness but no auto-approve
207
- * action is taken — sending blind 'y' keystrokes is dangerous.
208
- *
209
209
  * @returns {'idle'|'processing'|'complete'|'unknown'}
210
210
  */
211
211
  function detectState(name) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orchestrix-yuri",
3
- "version": "2.3.4",
3
+ "version": "2.4.0",
4
4
  "description": "Yuri — Meta-Orchestrator for Orchestrix. Drive your entire project lifecycle with natural language.",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {