Releases: block/agent-task-queue
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 [email protected]
# 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.