Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rileyhilliard/rr
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.14.2
Choose a base ref
...
head repository: rileyhilliard/rr
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.15.0
Choose a head ref
  • 6 commits
  • 41 files changed
  • 4 contributors

Commits on Jan 21, 2026

  1. docs: update changelog for v0.14.2 (#133)

    Co-authored-by: Riley Hilliard <rileyhilliard@users.noreply.github.com>
    rileyhilliard and rileyhilliard authored Jan 21, 2026
    Configuration menu
    Copy the full SHA
    71da1fc View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2026

  1. Configuration menu
    Copy the full SHA
    aaa56fb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2a17d08 View commit details
    Browse the repository at this point in the history

Commits on Jan 23, 2026

  1. fix(ci): show all failure types in test output (#134)

    The CI script was only showing failures where .Test != null, which
    missed package-level failures, build errors, and other edge cases.
    This caused the "Tests failed" message to appear with no output.
    
    Now handles:
    - Individual test failures (.Test is set)
    - Package-level failures (.Test is null)
    - Build/compile errors (build-output actions)
    - Fallback raw JSON output for unexpected formats
    
    Co-authored-by: Riley Hilliard <rileyhilliard@users.noreply.github.com>
    Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
    3 people authored Jan 23, 2026
    Configuration menu
    Copy the full SHA
    fb39d72 View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2026

  1. feat: add remote environment bootstrap with require field (#135)

    * feat: add remote environment bootstrap with require field
    
    Add pre-flight requirement checking that runs after SSH connect but before sync.
    Leverages existing tool installer infrastructure (40+ tools). Session caching
    prevents repeated checks.
    
    Changes:
    - Add `require` field to Host, Config, and TaskConfig structs
    - New internal/require package for checking and caching requirements
    - Requirements phase integrated into workflow (after connect, before sync)
    - Add --skip-requirements flag to run/exec commands
    - Add --requirements flag to doctor command
    - Doctor integration with RequirementsCheck (can auto-install missing tools)
    - Input validation for tool names to prevent command injection
    - Fix rangeValCopy lint issues across codebase
    
    Example usage in .rr.yaml:
      require:
        - go
        - node
    
      tasks:
        build:
          run: make build
          require:
            - cargo
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    
    * docs: update documentation for require field and refactor skill
    
    Documentation updates:
    - Add `require` field to README features and configuration examples
    - Add Requirements section to docs/configuration.md
    - Update setup command to leverage `require` and `rr doctor --requirements`
    
    Skill refactor for progressive disclosure:
    - Refactor SKILL.md from 572 lines to 202 lines (directory/overview)
    - Split detailed content into reference files:
      - config.md: Two-config system details
      - commands.md: Full command reference
      - tasks.md: Task definitions, parallel, multi-step
      - requirements.md: Remote environment bootstrap guide
      - machine-interface.md: JSON output and error codes
      - troubleshooting.md: Diagnostics and common fixes
    
    Following Claude skill best practices:
    - SKILL.md under 500 lines (now 202)
    - Reference files one level deep
    - Progressive disclosure pattern
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    
    * fix: address PR review comments
    
    - Fix docstring in NewRequirementsCheck to accurately describe behavior
      (merges project and host, not task - task reqs handled in workflow)
    - Add semaphore to limit concurrent SSH connections to 5 in CheckAll
      to prevent overwhelming the SSH connection
    - Add 'text' language identifier to fenced code blocks (MD040)
    - Convert bare URL to markdown link in troubleshooting.md (MD034)
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    
    ---------
    
    Co-authored-by: Riley Hilliard <rileyhilliard@users.noreply.github.com>
    Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
    3 people authored Jan 24, 2026
    Configuration menu
    Copy the full SHA
    03d16c5 View commit details
    Browse the repository at this point in the history
  2. feat: add task dependencies with parallel group support (#136)

    * feat: add task dependencies with parallel group support
    
    Add support for task dependencies that allow composing workflows from
    reusable task units. Tasks can declare prerequisites using a `depends:`
    field that supports both simple lists and parallel groups.
    
    Features:
    - `depends:` field for task definitions: `depends: [lint, test]`
    - Parallel group syntax: `depends: [{parallel: [lint, typecheck]}, test]`
    - Circular dependency detection at config load time with clear errors
    - `--skip-deps` flag to run only the target task
    - `--from <task>` flag to start from a specific point in the chain
    - Automatic task deduplication (tasks run once even if referenced multiple times)
    - fail-fast behavior stops on first failure when enabled
    - Integration with existing task execution infrastructure
    
    New packages:
    - internal/deps/resolver.go: Dependency resolution and execution planning
    - internal/deps/executor.go: Execution orchestration with parallel support
    
    Changes:
    - internal/config/types.go: Add DependencyItem struct and Depends field
    - internal/config/loader.go: Custom mapstructure decode hook for DependencyItem
    - internal/config/validate.go: Dependency validation and cycle detection
    - internal/cli/task.go: CLI integration with --skip-deps and --from flags
    
    Tests:
    - Unit tests for resolver, executor, and validation
    - Integration tests for full dependency chain execution
    - E2E tests for CLI flag behavior
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    
    * refactor: address code review feedback
    
    - types.go: DependencyItemFromInterface now returns descriptive errors
      instead of silently skipping invalid elements or unknown types
    - loader.go: Reuse DependencyItemFromInterface to avoid code duplication
    - resolver.go: Filter parallel tasks that have no executable work, making
      parallel branch consistent with sequential branch behavior
    - validate.go: Extract step validation into helper function to avoid
      duplication, optimize cycle detection by keeping visited map across
      iterations (O(V+E) instead of O(V²+VE))
    - task.go: Remove redundant SkipDeps from ResolveOptions (always false
      when runTaskWithDeps is called), add timeout context support using
      task.Timeout if configured
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    
    * docs: add task dependencies documentation
    
    Update configuration reference and rr skill with documentation for the
    new task dependencies feature:
    
    - Task dependencies with `depends:` field
    - Parallel groups in dependencies: `parallel: [lint, typecheck]`
    - Orchestrator tasks (depends-only, no run command)
    - Dependency deduplication (diamond pattern support)
    - CLI flags: --skip-deps, --from
    - Validation rules for circular/missing dependencies
    - Updated task fields table to include depends
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    
    * fix: improve error handling for dependencies
    
    - task.go: Log warning when task.Timeout has invalid format instead of
      silently ignoring it
    - types.go: Return error when dependency map is missing 'parallel' key
      instead of returning empty DependencyItem
    
    Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
    
    ---------
    
    Co-authored-by: Riley Hilliard <rileyhilliard@users.noreply.github.com>
    Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
    3 people authored Jan 24, 2026
    Configuration menu
    Copy the full SHA
    6dccbfc View commit details
    Browse the repository at this point in the history
Loading