Releases: block/agent-task-queue
v0.4.0
What's New
IntelliJ Plugin
Full JetBrains IDE plugin for agent-task-queue visibility. Includes status bar widget, tool window with queue table, per-task output tabs with streaming output, notifications, display modes, settings, and optimistic UI updates on cancel/clear. Install locally via ./gradlew buildPlugin in the intellij-plugin/ directory.
Raw Output Files
Writes .raw.log companion files alongside standard log files for plugin streaming. Adds structured tool results to MCP output for better integration visibility.
Command Storage
Stores the command string in the database when using the MCP run_task tool, making it possible to see what command a task ran.
Stale Task Cleanup
Automatically cleans up stale tasks during polling, improving reliability when parent processes die unexpectedly.
Dependency Updates
- Upgraded fastmcp to 2.14.4
- Updated astral-sh/setup-uv and actions/checkout CI action digests
Bug Fixes
- Fixed output rotation to account for
.raw.logcompanion files - Fixed closeable output tabs and raw log cleanup scaling
Full Changelog
v0.3.0
What's New
JSON Output for CLI (tq)
Added --json flag to CLI commands for programmatic queue inspection:
# Get queue state as JSON
tq list --json
# {"tasks": [...], "summary": {"total": 1, "running": 1, "waiting": 0}}
# Get logs as JSON
tq logs --json
# {"entries": [...]}
# Clear queue without confirmation
tq clear --json
# {"cleared": 5, "success": true}Command Tracking
Tasks now store and display the command being executed, so you can see what's actually running:
{
"id": 1,
"status": "running",
"command": "./gradlew :app:assembleDebug",
...
}Schema Contract Tests
Added comprehensive tests to ensure JSON output structure remains stable for programmatic consumers.
Full Changelog
v0.2.0
Changelog (0.1.4 → 0.2.0)
Fixed
-
Orphaned task cleanup with PID reuse detection - Tasks from cancelled sub-agents no longer block subsequent tasks (#7)
- Added
is_task_queue_process()to detect if a PID is actually running task_queue vs being reused by an unrelated process - Added
SERVER_INSTANCE_IDand_active_task_idstracking in MCP server to detect orphaned tasks from disconnected clients - Added
CLI_INSTANCE_IDtracking in tq.py for same protection - Handle
asyncio.CancelledErrorto properly clean up when sub-agents are cancelled
- Added
-
Ctrl+C leaving orphaned waiting tasks - Split registration from wait to ensure cleanup
Changed
- Refactored shared infrastructure - Extracted
queue_core.pywith shared database, logging, and cleanup logic - Memory efficiency - Stream output directly to file with bounded deque
- Wait time calculation - Use
POLL_INTERVAL_WAITINGinstead of hardcoded value
Added
server_idcolumn to queue table with migration for existing databases- Signal handling integration tests for tq CLI
Security
- Pin
pypa/gh-action-pypi-publishto commit SHA - Add
nosec B602comments explaining intentionalshell=Trueusage for CLI tool
v0.2.0b1 - Beta
Beta Release
This beta includes significant improvements to orphaned task cleanup:
New Features
- PID reuse detection: Detects when a PID has been reused by an unrelated process (Chrome, etc.) vs our actual task_queue process
- Instance tracking: Each server/CLI instance gets a unique ID to detect orphaned tasks from crashed/restarted processes
- Cancellation handling: Properly cleans up queue entries when MCP clients disconnect (e.g., sub-agents cancelled)
Infrastructure
- Extracted shared queue logic into
queue_core.pyfor code reuse between MCP server and CLI
Installation
# Via uvx (recommended)
uvx agent-task-queue@0.2.0b1
# Via pip
pip install agent-task-queue==0.2.0b1Note: This is a pre-release. Use @latest or no version specifier to stay on stable (0.1.4).
v0.1.4
Breaking Changes
- CLI renamed from
atqtotq- Theatqcommand conflicted with the Unixat(1)job scheduler. Update any scripts or aliases that usedatqto usetqinstead.
New Features
-
tq runcommand - Execute commands through the same FIFO queue that AI agents use. This prevents resource contention when humans and agents run builds simultaneously.tq ./gradlew assembleDebug # Run a build through the queue tq -q android ./gradlew test # Use a specific queue tq -t 600 npm test # Custom timeout (seconds) tq -C /path/to/project make # Set working directory
-
Implicit run -
tq echo helloworks the same astq run echo hello -
Rich terminal output - Passthrough mode preserves progress bars, colors, and interactive output from build tools
Improvements
- Database recovery - Automatically detects and recovers from corrupted SQLite databases
- Log rotation - Metrics log file rotates when exceeding 5MB to prevent unbounded disk growth
- Zombie cleanup metrics - Logs
zombie_clearedevents when cleaning up dead or stale tasks - Graceful Ctrl+C handling - Clean process group termination without tracebacks
Testing
- Added comprehensive test suite for
tqCLI (25 new tests)
v0.1.3
What's New
New Features
atqCLI - Inspect the task queue from the command lineatq list- Show current queue statusatq logs- View recent task activityatq clear- Clear stuck tasks
Documentation
- Improved agent configuration docs with compatibility table
- Added setup guides for Claude Code in
examples/ - Clarified Bash allowed rules warning for Claude Code users
Install
uv tool install agent-task-queueOr run one-off:
uvx --from agent-task-queue atq listv0.1.2
v0.1.1
v0.1.0
Initial Release
Agent Task Queue is an MCP server that prevents multiple AI agents from running expensive build operations concurrently.
Features
- FIFO task queuing - Serializes builds across all connected agents
- Multiple queue support - Isolate workloads with named queues
- No timeouts - MCP keeps connections alive indefinitely
- Zombie protection - Detects dead processes and clears stale locks
- Environment variables - Pass build-specific config via env_vars
- Configurable - CLI options for data directory, log rotation, timeouts
Installation
uvx agent-task-queue
Supported Agents
Works with any MCP-compatible tool: Claude Code, Claude Desktop, Cursor, VS Code/Copilot, Windsurf, Amp, Cline, Firebender, and others.