docs: document overnight session behavior and live monitoring - #2
Merged
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe README now documents live log monitoring, per-task pull request timing, continuous overnight execution, same-stack branch progression without review gates, and the use of ChangesOvernight run documentation
Estimated code review effort: 1 (Trivial) | ~3 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
3 tasks
c0d3ster
added a commit
that referenced
this pull request
Aug 6, 2026
- #11 [stack: solo] Make DB schema/migration generation NEEDS HUMAN - Amend #2's NEEDS HUMAN trial to require a cache-read cost comparison against the 2026-08-06 baseline before adopting split-per-task as default - nextTaskNumber -> 12 (only #11 was formally assigned here; the out-of-band format-stream.jq log fix, PR #21, was never written into TASKS.md under a number, so it never consumed one) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2 tasks
c0d3ster
added a commit
that referenced
this pull request
Aug 6, 2026
- #11 [stack: solo] Make DB schema/migration generation NEEDS HUMAN - Amend #2's NEEDS HUMAN trial to require a cache-read cost comparison against the 2026-08-06 baseline before adopting split-per-task as default - nextTaskNumber -> 12 (only #11 was formally assigned here; the out-of-band format-stream.jq log fix, PR #21, was never written into TASKS.md under a number, so it never consumed one) Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
6 tasks
c0d3ster
added a commit
that referenced
this pull request
Aug 7, 2026
- split_tasks(): an untagged leading task (no [stack: x], no predecessor in file order) now defaults to "solo" instead of an empty stack name, which previously produced "This task starts stack \"\"" prompts and a docs/stack-notes/.md path. - dispatch(): capture claude's own exit status via PIPESTATUS[0] instead of the trailing tee's, and return it. run_repo's task loop now aborts the repo's run after 2 consecutive dispatch failures instead of ploughing through every remaining task the same way (e.g. an auth error or a missing format-stream.jq); the override-prompt and housekeeping call sites surface a warning on failure too. - Anchor the TASK_RESULT branch= extraction to the structured field (^TASK_RESULT: #<n> status=... branch=...) instead of a greedy match that could pick up a literal "branch=" inside the free-form note field, and verify the reported branch actually exists locally before recording it as a stack's next base. - Document Bash 4.3+ as a requirement (local -n namerefs, local -A associative arrays) and switch every script's shebang to /usr/bin/env bash. - README: correct stack-notes ownership -- the task subprocess creates and appends its own entry, overnight.sh only reads it. Task #2. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
c0d3ster
added a commit
that referenced
this pull request
Aug 7, 2026
- Record the second failed dispatch's stats (update_stats) before aborting on 2 consecutive failures, not just discarding it. - Anchor TASK_RESULT validation to the current task's own #<n> before trusting it for run_summary or a stack's next base branch, instead of accepting any TASK_RESULT line regardless of which task number it names -- a stale or malformed one now falls back to the same synthesized status=unknown line a missing TASK_RESULT would produce. Task #2. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
c0d3ster
added a commit
that referenced
this pull request
Aug 7, 2026
* feat: fresh-subprocess-per-task execution model for overnight.sh Task #2. overnight.sh previously ran one continuous claude -p session across a whole repo's TASKS.md, so context (and cache-read cost) compounded across every task in a run -- confirmed against the 2026-08-06 c0d3ster run that hit its usage limit at 42.8M cache-read tokens / $16.61 after just 2 tasks in one session. Restructures the loop in overnight.sh to dispatch one fresh claude -p subprocess per open task, plus one more for end-of-run housekeeping: - split_tasks() parses TASKS.md's Agent-Ready/Verify/Research sections into per-task blocks, computing each task's effective stack (own tag or inherited) so --stack/--stop-after/--limit can filter in bash before any subprocess launches, instead of asking a mega-session to self-filter. - Stacked tasks read predecessor context from docs/stack-notes/<stack>.md in the target repo (append-only, one entry per task: decisions, interfaces/exports, deviations, and its own branch name) instead of a raw diff/commit dump. resolve_base_branch() resolves which branch a task builds on -- the stack's latest branch this run, or the last Branch: line in stack-notes when resuming a stack from an earlier run. - Each task subprocess reports a TASK_RESULT: #<n> status=... line at the end of its final message; overnight.sh collects these across the run and feeds them to the housekeeping subprocess as its starting point (housekeeping still confirms real PR/branch state via git/gh before trusting it). - --override-prompt now explicitly bypasses the dispatch loop for a single one-off session, same as before. - logs/ keeps its existing per-repo-per-day file layout (task #4 owns splitting those further); stats/<repo>.json now also tracks cache_read/cache_creation token totals, needed to judge whether this actually keeps cache-read volume down per the task's NEEDS HUMAN gate. CLAUDE.md and README.md updated to document the new execution model, the stack-notes/TASK_RESULT contracts, and updated stats.sh's rollup to match. NEEDS HUMAN: this needs the supervised trial run specified in task #2's acceptance criteria before it's adopted as default -- a --limit 2 run on a low-stakes repo across at least two different stacks, comparing total_cache_read_tokens in stats/<repo>.json against the 42.8M baseline above. Don't skip it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix: address CodeRabbit review findings on PR #24 - split_tasks(): an untagged leading task (no [stack: x], no predecessor in file order) now defaults to "solo" instead of an empty stack name, which previously produced "This task starts stack \"\"" prompts and a docs/stack-notes/.md path. - dispatch(): capture claude's own exit status via PIPESTATUS[0] instead of the trailing tee's, and return it. run_repo's task loop now aborts the repo's run after 2 consecutive dispatch failures instead of ploughing through every remaining task the same way (e.g. an auth error or a missing format-stream.jq); the override-prompt and housekeeping call sites surface a warning on failure too. - Anchor the TASK_RESULT branch= extraction to the structured field (^TASK_RESULT: #<n> status=... branch=...) instead of a greedy match that could pick up a literal "branch=" inside the free-form note field, and verify the reported branch actually exists locally before recording it as a stack's next base. - Document Bash 4.3+ as a requirement (local -n namerefs, local -A associative arrays) and switch every script's shebang to /usr/bin/env bash. - README: correct stack-notes ownership -- the task subprocess creates and appends its own entry, overnight.sh only reads it. Task #2. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix: address second round of CodeRabbit findings on PR #24 - Record the second failed dispatch's stats (update_stats) before aborting on 2 consecutive failures, not just discarding it. - Anchor TASK_RESULT validation to the current task's own #<n> before trusting it for run_summary or a stack's next base branch, instead of accepting any TASK_RESULT line regardless of which task number it names -- a stale or malformed one now falls back to the same synthesized status=unknown line a missing TASK_RESULT would produce. Task #2. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2 tasks
c0d3ster
added a commit
that referenced
this pull request
Aug 8, 2026
- Archive #2 (fresh-subprocess-per-task execution model, PR #24) as complete; NEEDS HUMAN cache-read comparison trial ongoing outside TASKS.md tracking, see archive note - Add #12 [stack: solo], bundling four turn/cache-read efficiency findings from the c0d3ster cost audit, placed at the top of Agent-Ready - #1 confirmed not implemented, left open and untouched - nextTaskNumber 12 -> 13, tasksCompleted 0 -> 1 Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
NEEDS HUMANdoesn't pause a stackblockedis reserved for cross-stack dependencies, not same-stack orderinglogs/<repo>-<date>.logis teed live, sotail -fplus watching forgh pr createlines is how to monitor a session in progress and know when a task is ready to checkTest plan
🤖 Generated with Claude Code
Summary by CodeRabbit
blockedapplies only to cross-stack dependencies.