golem-cc 0.1.23 → 0.1.25
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/bin/golem +34 -6
- package/package.json +1 -1
package/bin/golem
CHANGED
|
@@ -145,6 +145,15 @@ is_plan_complete() {
|
|
|
145
145
|
return $EXIT_INCOMPLETE
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
+
# Get the current (first incomplete) task from the plan
|
|
149
|
+
get_current_task() {
|
|
150
|
+
local plan=".golem/IMPLEMENTATION_PLAN.md"
|
|
151
|
+
if [[ -f "$plan" ]]; then
|
|
152
|
+
# Find first unchecked task and extract its title
|
|
153
|
+
grep -E '^\s*-\s*\[ \]' "$plan" | head -1 | sed 's/.*\[ \] //' | sed 's/^[0-9]*\.\s*//' | cut -c1-60
|
|
154
|
+
fi
|
|
155
|
+
}
|
|
156
|
+
|
|
148
157
|
# Get task counts for display
|
|
149
158
|
get_task_counts() {
|
|
150
159
|
local plan=".golem/IMPLEMENTATION_PLAN.md"
|
|
@@ -498,11 +507,8 @@ run_build_loop() {
|
|
|
498
507
|
|
|
499
508
|
if [[ ! -d ".golem/specs" ]] || [[ -z "$(ls -A .golem/specs/*.md 2>/dev/null)" ]]; then
|
|
500
509
|
echo ""
|
|
501
|
-
status_line "
|
|
502
|
-
echo -e " ${DIM}Run: /golem:spec in Claude first${NC}"
|
|
510
|
+
status_line "◦" "$YELLOW" "No specs found (using plan only)"
|
|
503
511
|
echo ""
|
|
504
|
-
log_event "BUILD_ABORT" "No specs found"
|
|
505
|
-
exit $EXIT_ERROR
|
|
506
512
|
fi
|
|
507
513
|
|
|
508
514
|
# Find prompt file
|
|
@@ -542,8 +548,10 @@ run_build_loop() {
|
|
|
542
548
|
break
|
|
543
549
|
fi
|
|
544
550
|
|
|
545
|
-
# Get task counts for display
|
|
551
|
+
# Get task counts and current task for display
|
|
546
552
|
read -r remaining checked <<< "$(get_task_counts)"
|
|
553
|
+
local current_task
|
|
554
|
+
current_task=$(get_current_task)
|
|
547
555
|
|
|
548
556
|
echo ""
|
|
549
557
|
hr "─" "$BLUE"
|
|
@@ -551,6 +559,9 @@ run_build_loop() {
|
|
|
551
559
|
local progress_pct=0
|
|
552
560
|
[[ $total -gt 0 ]] && progress_pct=$((checked * 100 / total))
|
|
553
561
|
echo -e "${BLUE} ▸ Iteration ${BOLD}$iteration${NC}${BLUE} Tasks: ${GREEN}$checked${BLUE}/${total} ${DIM}($progress_pct%)${NC}"
|
|
562
|
+
if [[ -n "$current_task" ]]; then
|
|
563
|
+
echo -e "${CYAN} ▸ Task:${NC} ${current_task}"
|
|
564
|
+
fi
|
|
554
565
|
hr "─" "$BLUE"
|
|
555
566
|
|
|
556
567
|
local iter_start=$(date +%s)
|
|
@@ -565,8 +576,25 @@ run_build_loop() {
|
|
|
565
576
|
|
|
566
577
|
local iter_end=$(date +%s)
|
|
567
578
|
local iter_duration=$((iter_end - iter_start))
|
|
579
|
+
local iter_mins=$((iter_duration / 60))
|
|
580
|
+
local iter_secs=$((iter_duration % 60))
|
|
568
581
|
log_event "ITERATION_END" "iteration=$iteration exit_code=$claude_exit duration=${iter_duration}s"
|
|
569
582
|
|
|
583
|
+
# Show iteration summary
|
|
584
|
+
echo ""
|
|
585
|
+
if [[ $claude_exit -eq 0 ]]; then
|
|
586
|
+
echo -e " ${GREEN}✓${NC} Iteration $iteration completed ${DIM}(${iter_mins}m ${iter_secs}s)${NC}"
|
|
587
|
+
else
|
|
588
|
+
echo -e " ${YELLOW}!${NC} Iteration $iteration exited with code $claude_exit ${DIM}(${iter_mins}m ${iter_secs}s)${NC}"
|
|
589
|
+
fi
|
|
590
|
+
|
|
591
|
+
# Show what changed
|
|
592
|
+
local files_changed
|
|
593
|
+
files_changed=$(git diff --name-only HEAD~1 2>/dev/null | wc -l | tr -d ' ')
|
|
594
|
+
if [[ "$files_changed" -gt 0 ]]; then
|
|
595
|
+
echo -e " ${DIM}Files changed: $files_changed${NC}"
|
|
596
|
+
fi
|
|
597
|
+
|
|
570
598
|
# Push changes after each iteration (like Ralph)
|
|
571
599
|
local current_branch=$(git branch --show-current)
|
|
572
600
|
git push origin "$current_branch" 2>/dev/null || {
|
|
@@ -575,7 +603,7 @@ run_build_loop() {
|
|
|
575
603
|
}
|
|
576
604
|
|
|
577
605
|
echo ""
|
|
578
|
-
|
|
606
|
+
hr "─" "$DIM"
|
|
579
607
|
echo ""
|
|
580
608
|
done
|
|
581
609
|
|