Skip to content

Add IntelliJ plugin for agent-task-queue visibility#18

Merged
himattm merged 10 commits intomainfrom
mmckenna/intellij-plugin
Feb 13, 2026
Merged

Add IntelliJ plugin for agent-task-queue visibility#18
himattm merged 10 commits intomainfrom
mmckenna/intellij-plugin

Conversation

@himattm
Copy link
Collaborator

@himattm himattm commented Feb 10, 2026

Summary

  • Adds a full IntelliJ plugin (intellij-plugin/) that provides real-time visibility into the agent-task-queue build serializer
  • Status bar widget showing running task command and queue depth with configurable display modes
  • Tool window with live queue table, per-task streaming output tabs, and one-click cancellation
  • Balloon notifications for task start, finish, and failure with configurable settings
  • Reads the SQLite database directly for zero-latency updates
  • Stale task detection via PID liveness checks, optimistic UI updates on cancel/clear
  • Dual output file support: streams .raw.log (MCP server v0.4.0+) with fallback to .log filtering (v0.3.x)
  • MCP server changes: writes task_<id>.raw.log alongside formatted log, structured tool results, scaled cleanup

Test plan

  • cd intellij-plugin && ./gradlew buildPlugin compiles
  • Install built ZIP in IntelliJ — status bar widget appears
  • Run tq run echo hello — task appears in queue table, output streams in tab
  • Cancel a running task — row removed immediately from table
  • Close and reopen output tab by clicking running task row
  • Stale tasks cleaned up automatically on next poll cycle
  • Notifications appear for task start/finish/failure

🤖 Generated with Claude Code

himattm and others added 10 commits February 6, 2026 15:28
Status bar widget and tool window for monitoring the task queue directly
from the IDE. Reads the SQLite database used by the MCP server, with
adaptive polling (1s active, 3s idle). Supports cancelling tasks
(SIGTERM/SIGKILL process group), clearing the queue, and opening output
logs in the editor.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Configurable status bar display (hidden/minimal/default/verbose)
- Balloon notifications for task start/finish/failure with exit code detection
- Live streaming output tab in tool window using adaptive-rate file tailing
- Plugin README documenting architecture, polling strategy, and design decisions
- Link to plugin README from top-level README

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ggle

- Stream only command output (skip log headers, filter markers/summary)
- Create a new output tab per task, titled with command (env vars stripped)
- Output persists after task finishes; tabs are user-closeable
- Strip env var prefixes from status bar display via QueueTask.displayCommand
- Add settings gear icon to tool window toolbar
- Status bar click toggles tool window open/closed
- Settings apply triggers immediate UI re-render via notifyListeners()

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Write task_<id>.raw.log alongside formatted log so the IntelliJ plugin
can tail pure build output without filtering metadata markers. Simplify
OutputStreamer by removing header scanning and content filtering logic.

Also add ToolResult structured content and tool annotations to run_task.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Enable close buttons on output tabs via canCloseContents in plugin.xml.
Detect and remove stale DB entries during polling by checking if the
server PID is still alive, so cancelled tasks don't linger in the table.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Click a running task row to open or focus its output tab. Track tab
closures so closed tabs can be reopened. Extract shared openOutputTab
function used by both auto-open and click-to-open paths.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Document that .raw.log is added in MCP server v0.4.0 and .log fallback
is for v0.3.x and earlier. Scale MAX_OUTPUT_FILES by 2x in cleanup since
each task now produces two files. Add OutputStreamer fallback from
.raw.log to .log with filtering for backward compatibility.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove tasks from the model before starting background cleanup so the
table responds instantly. The poller still reconciles with the DB on
subsequent polls for cancellations from other sources (agents, other
windows).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Project README:
- Document both .log and .raw.log output files with version info
- Add command= to success/failure output examples
- Add command and server_id to database schema table
- Clarify cleanup is per-task (not per-file)

Plugin README:
- Describe per-task closeable output tabs instead of single Output tab
- Document click-to-reopen, stale task detection, optimistic cancel
- Document OutputStreamer raw log preference with .log fallback
- Add OpenSettingsAction to project structure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@himattm himattm merged commit 8bfc787 into main Feb 13, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments