docs: Review of PR #18 (pr-triage) with Gemini#346
Closed
whitmo wants to merge 19 commits intodlorenc:mainfrom
Closed
docs: Review of PR #18 (pr-triage) with Gemini#346whitmo wants to merge 19 commits intodlorenc:mainfrom
whitmo wants to merge 19 commits intodlorenc:mainfrom
Conversation
Wrap all prose lines in README.md to a maximum of 80 characters for better readability in code editors and terminal windows. ASCII art diagrams and markdown tables are preserved in their original format for visual consistency. Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
This reverts commit 64c60ec.
Wrap all prose paragraphs in README.md to 80 characters maximum while preserving: - Code blocks (both fenced and indented) - Markdown tables - ASCII art diagrams - Command examples This improves readability in terminal viewers and text editors with 80-column displays. Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Fixes branch and config directory leaks in worker cleanup. Adds test coverage.
Adds actionable suggestions to error messages and creates new structured error constructors for common patterns.
Fixes /refresh slash command to detect and use upstream remote in fork workflows.
Adds PR URL and number tracking to task history when workers complete. P1 roadmap item.
When createWorker fails partway through (e.g., daemon communication error, tmux failure, Claude startup failure), orphaned worktrees, tmux windows, and prompt files were left behind. Add deferred cleanup that tracks created resources and removes them if the function returns an error after the worktree has been created. Addresses PR #9 audit finding. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Five commands had custom repo detection logic that didn't check git remotes, so running them from a tracked repo's directory without --repo would fail. Now all commands use the unified resolveRepo() which checks: --repo flag, git remote URL, multiclaude CWD, then default repo. Also enhanced findRepoFromGitRemote() to check both origin and upstream remotes, supporting fork workflows where origin points to the user's fork. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Tests pass locally (fork - no GitHub CI). Docs-only change.
The P1 "Task history" feature is fully implemented: - TaskHistoryEntry struct with Name, Task, Branch, PRURL, Status, Summary - TaskStatus enum (open, merged, closed, no-pr, failed) - State methods: AddTaskHistory, GetTaskHistory, UpdateTaskHistoryStatus - Daemon records history when workers complete - CLI command: multiclaude history with --status, --search, -n, --full - Live PR status from GitHub via gh pr list Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Implements the P1 roadmap item "Agent restart: Gracefully restart crashed agents without losing context". Changes: - Add CrashedAt field to Agent state to track when crash was detected - Add UpdateAgentCrashed and ClearAgentCrashed state methods - Modify checkAgentHealth to detect crashed workers (dead PID + window exists) - Check for uncommitted work in crashed worker's worktree - Send notification to supervisor when workers crash - Add "crashed" status to handleListAgents response - Add StatusCrashed to format package for CLI display - Update listWorkers CLI to show crashed status with distinct styling - Clear crashed state when agent is successfully restarted The existing `multiclaude agent restart` command already preserves context via Claude's --resume flag and the preserved worktree. Addresses Gap 2 from PR #9 (Worker Lifecycle Audit). Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Add a new `multiclaude stats` command that displays agent activity statistics for a repository: - Summary: total tasks completed, active agents count - PR Status: breakdown by merged/open/closed/failed/no-pr with percentages - Time Statistics: average task duration, total time spent - Success Metrics: PR creation rate, PR merge rate This implements the P2 roadmap item "Agent metrics: Simple stats on agent activity (tasks completed, PRs created)". Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Add three documentation files to improve onboarding (P2 roadmap item): - docs/QUICKSTART.md: 5-minute getting started guide covering install, daemon, init, workers, and common issues - docs/FAQ.md: Answers to common questions about agents, workflow, troubleshooting, configuration, and philosophy - PRESS_RELEASE.md: Project announcement covering the Brownian Ratchet philosophy, key features, and comparison with Gastown Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive visual diagrams covering: - System overview and component relationships - The Brownian Ratchet philosophy - Agent types and relationships - Worker lifecycle (spawn → complete → cleanup) - Message routing and status flow - Repository initialization sequence - Health check loop logic - Daemon goroutine structure - File system layout - Shutdown sequence - State thread safety model These diagrams complement the existing ASCII diagrams in ARCHITECTURE.md and render properly in GitHub's Markdown viewer. Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Adds new error constructors to internal/errors/: - InvalidFlagValue: for invalid CLI flag values with allowed options - InvalidSelection/SelectionOutOfRange: for interactive selection errors - NoItemsAvailable: when selection list is empty - WorkspaceAlreadyExists: for duplicate workspace names - InvalidRepoName: for empty/invalid repository names - FailedToReadInput: for terminal input failures Converts raw fmt.Errorf calls to use structured errors: - selector.go: All user-facing errors now have suggestions - cli.go: Invalid flag values use InvalidFlagValue constructor - cli.go: Daemon communication errors use DaemonCommunicationFailed - cli.go: Workspace/repo validation uses appropriate constructors Every error now tells the user what went wrong and how to fix it. Addresses ROADMAP.md P0 item: "Clear error messages" Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Add on-demand worktree sync capability to complement the daemon's automatic 5-minute refresh loop. This enables event-driven sync when PRs are merged. Changes: - Add `refresh_worktrees` socket handler in daemon - Add `multiclaude refresh` CLI command with local fallback - Update merge-queue prompt to call refresh after merges This addresses P0 roadmap item: "Keep agent worktrees in sync with main as PRs merge" Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Instead of blindly waking all agents every 2 minutes, only wake agents that actually have work to do. This reduces unnecessary context churn and token usage for idle agents. Wake conditions by agent type: - Supervisor: woken when active workers exist to monitor - Merge-queue: woken when there are open PRs (active or in history) - Workers: only woken for pending messages (they drive their own work) - Review: only woken for pending messages Adds HasPending() to messages.Manager for efficient pending message detection, and agentHasWork() to daemon for per-agent work checking. Addresses P2 roadmap item: "Selective wakeup: Only wake agents when there's work to do" Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Review found PR description severely misleading: claims 5 upstream PRs but contains 99 commits (full upstream sync). Code quality is mostly good but has 5 specific concerns around removed cleanup logic, fragile type inference, and removed crash notifications. Posted review comment: dlorenc#18 (comment) Co-Authored-By: Claude Opus 4.6 <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
docs/reviews/pr-18-triage-review.mdKey Findings
Review Comment
#18 (comment)
Recommendation
Request changes — split into accurate upstream sync PR + focused cherry-pick PR
🤖 Generated with Claude Code