All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.5.3 - 2026-01-14
-
Codex CLI executor — New executor for OpenAI Codex CLI
diffray review --executor codex-cli— Use Codex as executor- Installation:
npm install -g @openai/codex - Command:
codex exec - Supports all OpenAI models
-
Mermaid diagrams in ARCHITECTURE.md — Visual architecture documentation
- Overview diagram — Complete system architecture (CLI, Pipeline, Agents, Executors, Config)
- Pipeline flow — Sequential pipeline stages
- Data flow between stages — Input/output for each stage with table
- Agent & executor relationship — How agents and executors interact
- Agent execution flow — Sequence diagram of parallel agent execution
- CLI command architecture — Command registry pattern visualization
-
Improved streaming output — Cleaner JSON stream parsing for Cursor Agent and OpenCode
- Removed plain text accumulation from streaming errors
- Parse errors now only log when
process.env.DEBUGis set - Simplified final buffer handling
-
Updated documentation
- README now includes Codex CLI installation and usage
- AGENTS.md updated with codex-cli in executor list
- CLI help updated with codex-cli example
0.5.2 - 2026-01-13
-
OpenCode CLI executor — New executor for OpenCode AI CLI
diffray review --executor opencode-cli— Use OpenCode as executor- Supports all OpenCode models (e.g.,
opencode/gpt-5-nano,opencode/grok-code) - Streaming support with
--streamflag - Installation:
curl https://opencode.ai/install -fsS | bash
-
--modelflag — Override model for all agents from CLIdiffray review --model sonnet— Use Sonnet for all agentsdiffray review --model opus— Use Opus for thorough reviewdiffray review --executor opencode-cli --model opencode/gpt-5-nano— Combine executor and model- Overrides both agent settings and config file settings (highest priority)
-
Model override documentation — Comprehensive guide in README
- Available models per executor
- Override hierarchy (CLI > project config > global config > defaults)
- Configuration examples for global and project configs
- Practical use cases and recommendations
- Performance vs quality trade-offs table
-
Improved setup-command — Better multi-file support
- Now installs multiple command files per CLI tool
- Cleaner status display with per-command file status
- Better removal message ("command file(s)" vs "installation(s)")
-
Simplified model override logic — Cleaner code in
executeAgent()- Removed unnecessary wrapper object in model override path
- Direct executor call with overridden settings
- Same behavior, less complexity
- Optional chaining for
config.executorsaccess in validation stage
0.5.1 - 2026-01-13
diffray setup-commandcommand — Install/diffraycommand for Claude Code, Cursor Agent, and OpenCodediffray setup-command— Install command to all detected CLI toolsdiffray setup-command --force— Overwrite existing installationdiffray setup-command status— Show installation status for all toolsdiffray setup-command remove— Remove command from all tools- Command enables
/diffrayslash command in editors with interactive review mode
0.5.0 - 2026-01-13
-
--filesflag — Review only specific files (comma-separated paths)diffray review --files src/auth.ts— review changes in single filediffray review --files src/a.ts,src/b.ts— review multiple filesdiffray review --files src/auth.ts --base main— changes relative to main
-
--fullflag — Review entire file content without git diffdiffray review --files src/auth.ts --full— review whole file- Requires
--filesflag, incompatible with--base
- Refactored
runReview()with helper functions for better maintainabilitytryCheckoutToHead()— checkout logicgetDefaultDiffs()— uncommitted/last commit diffscollectDiffs()— all diff collection modesformatResults()— result formatting and output
- Duplicate
successCountcalculation informatResults()
0.4.0 - 2026-01-12
-
Confidence filtering stage - Filter issues by confidence threshold before validation
- New
--confidence <0-100>CLI option (default: 80) - Separate stage
confidence-filterruns after review, before validation - Issues below threshold are filtered out early to reduce validation cost
- New
-
CLI schema validation - Zod-based input validation for all CLI arguments
- Type-safe parsing in
src/cli-schema.ts - Comprehensive test coverage in
src/cli-schema.test.ts - Validates numeric ranges, comma-separated lists, and option combinations
- Type-safe parsing in
-
Evidence field in issues - Agents can now provide concrete code proof
- New optional
evidencefield in Issue type - Shows exact code snippet that demonstrates the issue
- Displayed in formatted output with syntax highlighting
- New optional
-
Validation instructions split - Optimized prompt structure for better caching
- System prompt: Core principles only (57 lines, ~1.3KB)
- User prompt: Detailed instructions from
validation-instructions.md - Reduces API costs via prompt caching
-
Validation rule - Example rule at
.diffray/rules/validation.md- Documents validation stage behavior
- Provides guidance for custom validation agents
-
Validation stage improvements - Better context awareness for intentional design decisions
- Validation instructions now explicitly check code comments and inline documentation
- Added guidance to check CLAUDE.md and README.md for architectural decisions
- Repository context now mentions project documentation files
- Validation agent prompted to verify comments explaining trade-offs before flagging issues
-
Validation stage refactored - Parser chain pattern for output formats
- Split
parseValidatedIdsinto 4 separate parsers with clear responsibilities - Improved testability and maintainability
- Better error handling with explicit format fallbacks
- Split
-
Validation agent simplified - Moved detailed instructions to separate file
- Agent file now focuses on core principles
- Detailed instructions in
defaults/prompts/validation-instructions.md - More efficient prompt caching
-
Issue parser enhanced - Support for evidence field and confidence
- Parses new
evidencefield from agent output - Handles missing confidence gracefully (defaults to 100)
- Better error messages for malformed JSON
- Parses new
-
Output format updated - Agents must now provide evidence when possible
- Updated
defaults/prompts/output-format.mdwith evidence examples - Guidance on when to include concrete code proof
- Updated
- Deduplication now preserves evidence field from issues
- Rule badge display for validation rules in
diffray rulescommand
0.3.2 - 2026-01-12
diffray extends install <url>now auto-adds URL to config--globalflag to add extends to global config (~/.diffray/config.json)
0.3.1 - 2026-01-12
-
Extends system - Load agents and rules from any git repository
- Configure in
.diffray.json:"extends": ["https://github.com/owner/repo#v1.0"] - Supports HTTPS and SSH URLs with optional ref (branch/tag)
- Commands:
diffray extends install,diffray extends list,diffray extends remove - Lockfile tracking at
~/.diffray/extends.lock.json
- Configure in
-
--branchCLI option - Review branches against auto-detected basediffray review --branch .- Current branch vs main (auto-detect)diffray review --branch feature-auth- Specific branch vs maindiffray review --branch . --base develop- Override base branch- Auto-detects default branch from remote origin or falls back to main/master/develop
- Parallel processing for extends installation (4 concurrent clones)
- Path traversal protection in
removeExtend()- validates paths before deletion
0.2.0 - 2025-01-10
- Cursor Agent CLI executor - full streaming support for Cursor Agent CLI
- Consistency-check agent - detects inconsistencies in code style, patterns, and conventions
- CONTRIBUTING.md - comprehensive contribution guidelines
- Husky + lint-staged - pre-commit hooks for code quality (ESLint, Prettier)
- Centralized path management (
src/paths.ts) - unified resolution for agents, rules, and configs - Project config (
.diffray.json) - example project-level configuration
- Major documentation overhaul - expanded README, ARCHITECTURE, CLAUDE.md
- Improved config system with better defaults and validation
- Updated agent prompts for better accuracy
- Refactored executor system for cleaner code organization
- Enhanced CLI with better error messages and help text
- Config loading edge cases
- Rule matching with nested directories
- Agent loading from multiple sources
0.1.3 - 2025-01-09
- MultiProgress display for parallel agent execution - visual feedback when multiple agents run concurrently
- Exclude binaries from npm package - smaller package size
0.1.2 - 2025-01-08
- Embedded defaults support - agents and rules are bundled with the package
- Streaming output with
--streamflag - see thinking, tool use, and preliminary issues in real-time - Claude CLI streaming with
--verboseflag for raw JSON output - Batch processing for validation stage - process multiple issues in parallel
- Cerebras API executor - alternative to Claude CLI using Cerebras API
- Unified caching system for better performance
executorSettingsoverride in agent frontmatter
- Simplified build process with esbuild
- Modularized executor system - cleaner separation between CLI, API, and MCP executors
- Reorganized agents/rules structure for better maintainability
- Enhanced deduplication and validation stages
- Validation timeout and fuzzy matching for
<json>format - Issue parsing edge cases
0.1.1 - 2025-01-07
- Initial public release
- Core pipeline: load-rules → match-rules → review → deduplicate → validate
- Built-in agents: general, bug-hunter, security-scan, performance-check, consistency-check
- Claude CLI executor with streaming support
- Cursor Agent CLI executor
- Configuration system with global and project-level settings
- Custom agents and rules via Markdown files
- Major codebase cleanup and modernization