deepflow 0.1.62 → 0.1.64

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.
@@ -215,8 +215,9 @@ run_claude_monitored() {
215
215
  claude_pid=$!
216
216
  fi
217
217
 
218
- # Read the FIFO line-by-line
218
+ # Read the FIFO line-by-line (set +e to tolerate EINTR from signals)
219
219
  local capturing_result=false
220
+ set +e
220
221
  while IFS= read -r line || [[ -n "$line" ]]; do
221
222
  [[ -z "$line" ]] && continue
222
223
 
@@ -289,6 +290,7 @@ run_claude_monitored() {
289
290
  fi
290
291
  fi
291
292
  done < "$fifo_path"
293
+ set -e
292
294
 
293
295
  # Clean up FIFO
294
296
  rm -f "$fifo_path"
@@ -606,9 +608,29 @@ run_spikes() {
606
608
  pids+=($!)
607
609
  done
608
610
 
609
- # Wait for all remaining spikes to complete
611
+ # Wait for all remaining spikes with progress heartbeat
610
612
  auto_log "Waiting for all ${#pids[@]} spike(s) to complete..."
611
- wait
613
+ local wait_start=$SECONDS
614
+ while true; do
615
+ local -a still_running=()
616
+ local pid
617
+ for pid in "${pids[@]}"; do
618
+ if kill -0 "$pid" 2>/dev/null; then
619
+ still_running+=("$pid")
620
+ fi
621
+ done
622
+ if [[ ${#still_running[@]} -eq 0 ]]; then
623
+ break
624
+ fi
625
+ local elapsed=$(( SECONDS - wait_start ))
626
+ local mins=$(( elapsed / 60 ))
627
+ local secs=$(( elapsed % 60 ))
628
+ printf "\r ⏳ %d spike(s) running... [%dm%02ds] " "${#still_running[@]}" "$mins" "$secs"
629
+ pids=("${still_running[@]}")
630
+ sleep 5
631
+ done
632
+ printf "\r \r"
633
+ wait 2>/dev/null || true
612
634
  auto_log "All spikes completed for ${spec_name} cycle ${cycle}"
613
635
 
614
636
  # Collect results and process
@@ -786,9 +808,29 @@ Important:
786
808
  impl_slugs+=("$slug")
787
809
  done
788
810
 
789
- # Wait for all implementations to complete
811
+ # Wait for all implementations with progress heartbeat
790
812
  auto_log "Waiting for all ${#pids[@]} implementation(s) to complete..."
791
- wait
813
+ local wait_start=$SECONDS
814
+ while true; do
815
+ local -a still_running=()
816
+ local pid
817
+ for pid in "${pids[@]}"; do
818
+ if kill -0 "$pid" 2>/dev/null; then
819
+ still_running+=("$pid")
820
+ fi
821
+ done
822
+ if [[ ${#still_running[@]} -eq 0 ]]; then
823
+ break
824
+ fi
825
+ local elapsed=$(( SECONDS - wait_start ))
826
+ local mins=$(( elapsed / 60 ))
827
+ local secs=$(( elapsed % 60 ))
828
+ printf "\r ⏳ %d implementation(s) running... [%dm%02ds] " "${#still_running[@]}" "$mins" "$secs"
829
+ pids=("${still_running[@]}")
830
+ sleep 5
831
+ done
832
+ printf "\r \r"
833
+ wait 2>/dev/null || true
792
834
  auto_log "All implementations completed for ${spec_name} cycle ${cycle}"
793
835
 
794
836
  # Collect results
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepflow",
3
- "version": "0.1.62",
3
+ "version": "0.1.64",
4
4
  "description": "Stay in flow state - lightweight spec-driven task orchestration for Claude Code",
5
5
  "keywords": [
6
6
  "claude",