Skip to content

Add task board, plan tracking, and markdown table rendering#90

Open
braverior wants to merge 2 commits into
farouqaldori:mainfrom
braverior:feature/task-board-and-plan-tracking
Open

Add task board, plan tracking, and markdown table rendering#90
braverior wants to merge 2 commits into
farouqaldori:mainfrom
braverior:feature/task-board-and-plan-tracking

Conversation

@braverior

Copy link
Copy Markdown

Summary

  • Task Board UI: Add a collapsible task board above chat messages that tracks TaskCreate/TaskUpdate tool calls in real-time, with a segmented progress bar, status icons, and spinning animation for in-progress tasks
  • Plan Tracking: Capture ExitPlanMode tool call content and render the plan inline below the tool call in the chat view
  • Markdown Table Rendering: Add support for rendering Markdown.Table with styled headers, borders, and rounded corners
  • Project Name Subtitle: Show project name as a subtitle in the chat header and instance list row when it differs from the session title
  • Hook Event Enhancements: Forward tool_result and tool_response from the Python hook script to Swift for task ID resolution (temp ID → real ID)

Changes

File Description
SessionState.swift Add TaskItem model, tasks/planContent/planFilePath properties, and task lifecycle methods
SessionStore.swift Add processTaskTracking and processPlanTracking event handlers
claude-island-state.py Parse tool_result/tool_response to extract resolved task IDs
HookSocketServer.swift Add toolResult, resolvedTaskId, resolvedTaskSubject fields to HookEvent
ChatView.swift Add Task Board UI, plan inline rendering, project name subtitle in header
MarkdownRenderer.swift Add Markdown.Table rendering support
ClaudeInstancesView.swift Show project name in instance list
PlanDetailView.swift New view for plan detail display
PlanPreviewView.swift New view for plan preview
PlanWindowController.swift New window controller for plan windows

Test plan

  • Verify Task Board appears when Claude uses TaskCreate and updates live with TaskUpdate
  • Verify progress bar segments change color as tasks transition between pending → in_progress → completed
  • Verify collapsing/expanding the task board works smoothly
  • Verify ExitPlanMode renders plan content inline in the chat
  • Verify markdown tables render correctly with headers and borders
  • Verify project name subtitle shows in chat header and instance list
  • Verify task list resets on new user prompt submission

- Add TaskItem model and task lifecycle management (create, update,
  resolve temp IDs, prune stale/completed) in SessionState
- Hook into TaskCreate/TaskUpdate/TaskList tool events via
  SessionStore.processTaskTracking for real-time task state sync
- Parse tool_result and tool_response in Python hook script to
  extract resolved task IDs back to Swift
- Add HookEvent fields: toolResult, resolvedTaskId, resolvedTaskSubject
- Add collapsible Task Board UI above chat messages with per-task
  segmented progress bar, status icons, and spinning animation
  for in-progress tasks
- Track ExitPlanMode tool calls to capture plan content and render
  it inline below the tool call in chat
- Add Markdown.Table rendering support with styled header, borders,
  and rounded corners
- Show project name as subtitle in chat header and instance list
- Add PlanDetailView, PlanPreviewView, and PlanWindowController
Update lastMessage and summary even when no new chat messages arrive,
so the UI reflects edits and reordering that happen outside of new
message arrivals.
@braverior braverior force-pushed the feature/task-board-and-plan-tracking branch from 09829c5 to a788a90 Compare May 8, 2026 11:29
@braverior

Copy link
Copy Markdown
Author
image

@braverior

Copy link
Copy Markdown
Author
image Plan mode

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.

2 participants