Releases: d-kuro/gwq
v0.0.5
Release v0.0.5
🐛 Bug Fixes
Inherit Parent Environment Variables in Exec Command (#31)
- Fixed issue where commands executed via
gwq execwould fail with "executable file not found in $PATH" - Commands now properly inherit the parent shell's environment variables (PATH, NODE_PATH, etc.)
- Allows tools like pnpm, npm, node to be found and executed properly in worktree directories
- Ensures seamless command execution across different worktree environments
Contributors
Thanks to all contributors who made this release possible!
Upgrade Instructions
# Using go install
go install github.com/d-kuro/gwq@v0.0.5
# Or download from releases pageFull Changelog
For a complete list of changes, see: v0.0.4...v0.0.5
v0.0.4
Release v0.0.4
📋 Note: Features released in RC versions (v0.0.4-rc.1, v0.0.4-rc.2) are still under development and will be carried over to the next version for stable release.
🎉 New Features
Naming Template Support for Worktree Path Generation (#29)
- Implement flexible naming templates for worktree path generation
- Support for custom path patterns using Go templates
- Better organization of worktrees based on your preferences
- Enhanced control over directory structure and naming conventions
🔧 Code Quality Improvements
Comprehensive Test Coverage and Utility Consolidation (#27)
- Added comprehensive test coverage across the codebase
- Consolidated utility functions for better maintainability
- Improved code reliability and testing infrastructure
- Enhanced overall project quality and reliability
Advanced Refactoring Initiative (#21, #23, #24, #25, #26)
- CommandContext Pattern Implementation (#23): Eliminated boilerplate code with consistent context handling
- Claude Task Management Simplification (#24): Removed service layer complexity for cleaner architecture
- Interface Abstractions (#25): Implemented Phase 3-4 interface abstractions and function splitting
- Path Expansion Consolidation (#26): Unified path handling logic and finder initialization patterns
- Execution Engine Optimization (#21): Simplified buildTaskPrompt for better performance
🔨 Build & Dependencies
Dependency Updates (#28)
- Bumped github.com/go-viper/mapstructure/v2 to latest version
- Enhanced configuration handling capabilities
- Improved security and performance
🔗 Other Changes
- Added Claude orchestrator command configuration for enhanced AI-powered workflow capabilities
New Contributors
- @ashigirl96 made their first contribution in #29
Contributors
Thanks to all contributors who made this release possible!
Upgrade Instructions
# Using go install
go install github.com/d-kuro/gwq@v0.0.4
# Or download from releases pageFull Changelog
For a complete list of changes, see: v0.0.4-rc.2...v0.0.4
v0.0.4-rc.2
Release v0.0.4-rc.2
🎉 New Features
Unified Table Styling with lipgloss (#15)
- Replaced tabwriter with lipgloss/table for consistent and beautiful table formatting across all commands
- Added new internal table package with builder pattern API
- Support for multiple styling options (Default, Minimal, NoBorder)
- Configurable margins and cell padding for better readability
- CSV output with proper field escaping and lowercase headers
Improved Worktree Type Display (#18)
- Added constants for worktree type display names
- Changed "additional" to "worktree" for better clarity
- Maintained "main" designation for primary worktree
🐛 Bug Fixes
Fixed Main Branch Indicator in Verbose Mode (#19)
- Added missing bullet point (●) indicator for main branch when using -v flag
- Ensures consistent visual indication across normal and verbose display modes
Improved Remove Command Completion (#14)
- Shell completion now filters out main worktrees
- Only suggests removable worktrees, preventing errors
🔧 Code Quality Improvements
Major Refactoring (#16, #17)
- Improved error handling and code consistency across services
- Refactored execution engine and repository service
- Enhanced finder and tmux manager reliability
- Consolidated utility functions in pkg/utils
- Fixed linting issues and standardized patterns
- Removed unused code files
📝 Documentation
- Updated project guidelines with
make fmtcommand - Enhanced workflow documentation for code formatting
Contributors
Thanks to all contributors who made this release possible!
Upgrade Instructions
# Using go install
go install github.com/d-kuro/gwq@v0.0.4-rc.2
# Or download from releases pageFull Changelog
For a complete list of changes, see: v0.0.4-rc.1...v0.0.4-rc.2
v0.0.4-rc.1
v0.0.4-rc.1 (2025-06-13)
⚠️ RELEASE CANDIDATE WARNING
This is a release candidate and may contain breaking changes. Features and APIs are subject to change without notice. Not recommended for production use.
🚀 New Features
Tmux Session Management (#11)
- New
gwq tmuxcommand group for comprehensive session managementgwq tmux list- List active tmux sessions with JSON/CSV output supportgwq tmux run- Create new tmux sessions for long-running processesgwq tmux attach- Attach to running sessions with fuzzy findergwq tmux kill- Terminate sessions with batch operations
- Persistent session support for development servers, builds, and tests
- Real-time monitoring and interactive session selection
Claude Task Queue System (#12)
- Complete task management CLI with YAML-based configuration
gwq task add- Add tasks individually or from YAML filesgwq task list- List all tasks with status and priority filteringgwq task worker start- Start task execution worker with parallel controlgwq task worker stop- Stop running workersgwq task logs- View task-specific execution logsgwq task status- Check task execution status and dependencies
- Advanced dependency management with graph-based resolution and cycle detection
- Priority-based scheduling (0-100 scale) with parallel execution control
- Automatic Git worktree management for isolated task execution
- Comprehensive logging with JSON-structured, task-specific logs
- tmux integration for persistent task sessions
🔧 Technical Improvements
- Added
internal/tmuxpackage for session lifecycle management - Implemented extensible, agent-based architecture for task execution
- Enhanced context cancellation support
- Simplified configuration structure
- Removed unused code and dependencies
📋 Sample Task File (tasks.yaml)
version: "1.0"
repository: /path/to/your/project # REQUIRED: Absolute path only
# Default configuration for all tasks
default_config:
skip_permissions: true
timeout: "2h"
max_iterations: 3
dependency_policy: "wait"
priority: 50
tasks:
- id: lint-check
worktree: release/lint-check
base_branch: main
priority: 90
prompt: "Run make lint and fix any issues found"
- id: test-suite
worktree: release/test-suite
base_branch: main
priority: 85
prompt: "Execute make test and ensure all tests pass"
depends_on: ["lint-check"]
- id: build-check
worktree: release/build-check
base_branch: main
priority: 80
prompt: "Run make build and verify successful compilation"
depends_on: ["test-suite"]
- id: docs-update
worktree: release/docs-update
base_branch: main
priority: 60
prompt: "Update documentation and README if needed"
- id: docs-update2
worktree: release/docs-update2
base_branch: main
priority: 95
prompt: "Prepare release v0.0.4-rc.1 and update version files"
depends_on: ["build-check", "docs-update"]Task Management Examples
Adding tasks:
$ gwq task add claude -f tasks.yaml
Task 'Run make lint and fix any issues found' (f1a2b3c4) added successfully
Repository: /path/to/your/project
Worktree: release/lint-check, Priority: 90
Task 'Execute make test and ensure all tests pass' (d5e6f7g8) added successfully
Repository: /path/to/your/project
Worktree: release/test-suite, Priority: 85
Dependencies: f1a2b3c4
Successfully added 5 tasks from tasks.yamlStarting worker:
$ gwq task worker start --parallel 2
Starting Claude Code worker (max parallel: 2)
Worker started, polling for tasks...
Starting task: Run make lint and fix any issues found (ID: f1a2b3c4)
Starting task: Update documentation and README if needed (ID: l3m4n5o6)
Creating worktree 'release/lint-check' from base branch 'main'...
Creating worktree 'release/docs-update' from base branch 'main'...
Task completed: l3m4n5o6
Task completed: f1a2b3c4
Starting task: Execute make test and ensure all tests pass (ID: d5e6f7g8)📖 Usage Examples
Task Queue Management
# Add single task
gwq task add claude "Fix linting issues in main package"
# Add tasks from YAML file
gwq task add claude -f tasks.yaml
# List all tasks
gwq task list
# List tasks with filtering
gwq task list --status pending --priority high
# Start worker with parallel execution
gwq task worker start --parallel 2
# Stop worker
gwq task worker stop
# View task logs
gwq task logs <task-id>
# Check task status
gwq task status <task-id>Tmux Session Management
# List active sessions
gwq tmux list --format json
# Create and run session
gwq tmux run --session dev-server "npm run dev"
# Attach to session
gwq tmux attach
# Kill specific session
gwq tmux kill --session dev-server⚠️ Breaking Changes
- New command structure may conflict with existing workflows
- Configuration format changes for task management
- API changes in internal packages
🐛 Known Issues
- Task dependency resolution may have edge cases
- tmux integration requires tmux to be installed
- Some error handling may need refinement
v0.0.3
v0.0.3 (2025-06-09)
✨ New Features
- Comprehensive Worktree Status Dashboard (#7): Monitor all worktrees at a glance with real-time visibility into git status, changes, and activity
- Multiple Output Formats: Table (default), JSON, and CSV formats for integration with other tools
- Watch Mode: Auto-refresh with configurable intervals (
--watch) for real-time monitoring - Advanced Filtering & Sorting: Filter by status and sort by various fields (branch, activity, modifications)
- AI Agent Monitoring: Perfect for tracking multiple AI coding agents working across different worktrees
- Process Information: Optional process monitoring to see which tools are active in each worktree
- Activity Tracking: Show last modification time and recent activity for each worktree
- Parallel Collection: Efficient concurrent status gathering for fast performance
📊 Status Command Examples
# Basic status view
gwq status
# Watch mode for real-time monitoring
gwq status --watch
# JSON output for scripting
gwq status --json | jq '.worktrees[] | select(.status == "changed")'
# Filter and export to CSV
gwq status --filter changed --csv > worktree-report.csv🤖 AI Development Workflow Enhancement
- Enhanced README with AI agent monitoring examples
- Real-time visibility into which agents have made changes and when
- Progress tracking across multiple parallel development efforts
- Integration examples for batch operations and reporting
📖 Documentation
- Added comprehensive design document (
docs/DESIGN_STATUS_DASHBOARD.md) - Updated README with status command usage and AI workflow examples
- Expanded configuration documentation
🧪 Testing
- Comprehensive test coverage for status functionality
- Table-driven tests for all formatting functions
- Performance testing with multiple worktrees
Full Changelog: v0.0.2...v0.0.3
v0.0.2
What's Changed
- Fix URL normalization for ssh:// prefixed Git URLs by @osamu2001 in #6
New Contributors
- @osamu2001 made their first contribution in #6
Full Changelog: v0.0.1...v0.0.2
v0.0.1
gwq v0.0.1 Release Notes
🎉 Initial Release
We're excited to announce the first release of gwq - a CLI tool for efficient Git worktree management with global discovery capabilities.
⚠️ Experimental Release: This is an early experimental version. Breaking changes may occur in future releases as we refine the API and features based on user feedback.
🌟 Features
Core Functionality
- Global Worktree Discovery: Automatically find and manage worktrees across all repositories in your configured base directory
- URL-Based Organization: Prevent naming conflicts using repository URL hierarchy (e.g.,
~/worktrees/github.com/user/repo/branch) - Fuzzy Finder Interface: Interactive selection with pattern matching, preview support, and multiple selection capabilities
- AI-Powered Workflows: Enable parallel development with multiple AI coding agents working on different features simultaneously
Commands
gwq add- Create new worktrees with automatic path generationgwq list- Display all worktrees with context-aware behaviorgwq get- Retrieve worktree path for shell substitutiongwq exec- Execute commands in worktree directorygwq remove- Delete worktrees with optional branch deletiongwq prune- Clean up stale worktree informationgwq config- Manage configuration settingsgwq completion- Generate shell completionsgwq version- Display version information
Shell Integration
- Full tab completion support for Bash, Zsh, Fish, and PowerShell
- Quick navigation with
cd $(gwq get <worktree>) - Execute commands without changing directory using
gwq exec
Configuration
Customize behavior through ~/.config/gwq/config.toml:
- Base directory for worktrees
- Fuzzy finder preview settings
- UI preferences (colors, icons, display options)
📋 Requirements
- Git 2.5 or higher
- Go 1.24+ (for building from source)
📦 Installation
go install github.com/d-kuro/gwq/cmd/gwq@v0.0.1🤝 Contributing
As this is an experimental release, we welcome feedback, bug reports, and feature requests! Please open issues on our GitHub repository.
⚠️ Note
This is an experimental v0.0.1 release. The API and behavior may change significantly in future versions as we iterate based on user feedback and requirements. Please be prepared for potential breaking changes in subsequent releases.
For detailed documentation and usage examples, visit our GitHub repository.