Skip to content

feat(progress): progress-driven task pipeline#90

Merged
ParkerM2 merged 33 commits intomasterfrom
feature/task-pipeline
Apr 7, 2026
Merged

feat(progress): progress-driven task pipeline#90
ParkerM2 merged 33 commits intomasterfrom
feature/task-pipeline

Conversation

@ParkerM2
Copy link
Copy Markdown
Owner

@ParkerM2 ParkerM2 commented Apr 7, 2026

Summary

  • ProgressService — filesystem-backed service that scans/watches progress/ directory, reads YAML frontmatter, reconciles status from directory contents, and spawns agent sessions via AgentManagerService
  • IPC contract — 12 invoke channels + 7 event channels in src/shared/ipc/progress/ (Zod-validated, thin handlers, no business logic)
  • Global storeuseProgressContext Zustand store + ProgressContextHydrator mounted in RootLayout; all 7 event channels subscribed
  • Task gridProgressTaskGrid (TanStack Table) reads from progress/ store with search, status filter, expandable rows
  • Pipeline UIProgressTaskDetailRow with Research → Plan → Team vertical pipeline, live session indicator, react-markdown content rendering
  • Visualization refactoragent-teams.ts now reads progress/ instead of tracking/; uses AgentManagerService.listSessions() for live status; maps all 5 ProgressStatus stages to visualization node types
  • DocsFEATURES-INDEX.md, AI-AGENT-ROUTING-INDEX.md, and CLAUDE.md updated

Changes

Key files added:

  • src/shared/types/progress.ts
  • src/shared/ipc/progress/contract.ts, schemas.ts, index.ts
  • src/main/services/progress/progress-service.ts, task-file-io.ts, index.ts
  • src/main/ipc/handlers/progress-handlers.ts
  • src/renderer/shared/stores/progress-context-store.ts, ProgressContextHydrator.tsx
  • src/renderer/features/tasks/components/grid/ProgressTaskGrid.tsx
  • src/renderer/features/tasks/components/detail/ProgressTaskDetailRow.tsx

Key files modified:

  • src/shared/ipc/index.ts — spread progress channels
  • src/main/ipc/index.ts — register progress handlers
  • src/main/bootstrap/service-registry.ts — create progress service
  • src/main/services/visualization/agent-teams.ts — refactored to progress/
  • src/main/services/visualization/index.ts — accept AgentManagerService dependency
  • src/renderer/app/layouts/RootLayout.tsx — mount ProgressContextHydrator
  • src/renderer/features/tasks/index.ts — export ProgressTaskGrid
  • docs/routing/FEATURES-INDEX.md, docs/routing/AI-AGENT-ROUTING-INDEX.md, CLAUDE.md

Test plan

  • npm run typecheck — 0 errors
  • npm run lint — 0 errors (180 pre-existing warnings in @ui primitives)
  • npm run build — succeeds
  • QA passed all 8 tasks
  • Codebase Guardian passed (1 trivial fix: Fragment key in ProgressTaskGrid)
  • Visualization renders features from progress/ instead of tracking/
  • Task grid loads and displays items from progress store
  • Pipeline UI expands rows with Research/Plan/Team sections

🤖 Generated with Claude Code

ParkerES and others added 30 commits April 6, 2026 22:24
Adds a `roles` field to WorkflowTeamSchema so templates can specify which
agent role slugs are eligible for a run. Wires a new `workflow-engine.listAgentDefs`
IPC channel that reads .claude/agents/*.md and parses name/description from
markdown headings. Exposes a `useAgentDefinitions()` TanStack Query hook and a
multi-select checkbox UI in TemplateEditorPanel's TeamSection. Default templates
updated with sensible role presets.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Creates ProgressService (CRUD + agent session spawning + FS watching),
task-file-io (minimal YAML frontmatter read/write), and barrel index.
Local ProgressTask types included with TODO to migrate to @shared once Task 1 merges.
Also adds .gitignore negation to allow src/**/progress/ source files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fix method-signature-style, unused imports, promise/always-return,
no-unnecessary-condition, return-await, require-await, no-base-to-string,
and no-unnecessary-type-assertion violations. Zero ESLint errors.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Removes the temporary local ProgressStatus, ProgressPriority, and
ProgressTask definitions from progress-service.ts and replaces them
with an import from @shared/types/progress (added by Task 1).
Updates the barrel index.ts to re-export the types from the shared
module rather than re-exporting from progress-service.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Creates the Zustand store, hydrator component, and mounts the hydrator
in RootLayout so all components have immediate access to progress tasks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…IPC contract

Add PrStatus, SessionSummary, FilteredLogEntry types to progress.ts.
Create agent-session-detail.ts with AgentSessionDetail, ToolCallSummary, AgentError.
Add runLogCleanup IPC channel and sessionSummarySchema to progress contract.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Creates ProgressTaskGrid (8-column TanStack Table) backed by
useProgressContext. Includes toolbar with search, status filter, New Task
dialog and Run Workflow button. Swaps tasks route to use ProgressTaskGrid.
Adds progress-context-store stub so Task 5 compiles while Task 4 runs in
parallel.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds the expanded row component that renders the full Research → Plan →
Team execution pipeline for a ProgressTask, along with a minimal stub for
the progress-context-store (full implementation in Task 4).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace raw <input type="checkbox"> with <Checkbox> from @ui, replace
<span> containing prStatus text with <Text> from @ui, run eslint --fix
to sort jsx props and remove stale eslint-disable comment.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Session writer: filtered JSONL append with event classification,
truncation, and periodic summary file updates.
Log cleanup: scans progress/*/sessions/*.jsonl, deletes files
older than 7 days when summary.json sibling exists.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add runLogCleanup method to ProgressService interface and implementation.
Add progress.runLogCleanup IPC handler. Export session-writer and
log-cleanup from progress barrel.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…r progress domain

- FEATURES-INDEX.md: add ProgressService entry (service + renderer feature + IPC handler + types + IPC domain folder), update Quick Stats counts
- CLAUDE.md: add Progress Task Pipeline section documenting all 13 invoke channels, 7 event channels, directory structure, and status flow
- AI-AGENT-ROUTING-INDEX.md: add progress row to Quick Lookup Table and full vertical slice with invoke/event/agent session data flow traces

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tion refactor (Waves 4-6)

Add getSessionsForTask, getSessionLog, getGitDiff channels to
agent-dashboard contract with placeholder handlers. Expand agent
context store with agentSessions, recentMessages, recentToolCalls,
errors, taskAgentMap fields and IPC-backed actions. Refactor
visualization agent-teams to read from progress/ instead of tracking/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… of tracking/

- buildAgentTeamsData() now scans progress/ (non-archived dirs) for features
- Reads root md file frontmatter for title/status/branch per feature
- Gets live agent status from AgentManagerService.listSessions() instead of JSONL parsing
- Maps ProgressStatus to visualization node types (researching/planning/research_done/plan_ready/executing/done)
- createVisualizationService() now accepts AgentManagerService dependency
- Removes all tracking/ directory reads, JSONL event parsing, and manifest reading
- Updates test suite to match new progress/-based implementation
- Removes TrackingEvent import from agent-teams.ts (no longer needed)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ParkerES and others added 3 commits April 7, 2026 02:56
TeamActivityPanel shows per-agent table with name, role, status, tokens,
duration. AgentDetailExpander provides expandable detail with messages,
tool calls, errors, and on-demand git diff. Wired into ProgressTaskDetailRow
for executing/review task states.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add progress service entry to FEATURES-INDEX.md. Add progress IPC
channels table and agent naming convention to CLAUDE.md. Update
team-leader.md with naming convention. Include implementation plan
and spec documents.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ParkerM2 ParkerM2 merged commit a0e6bdb into master Apr 7, 2026
6 of 8 checks passed
@ParkerM2 ParkerM2 deleted the feature/task-pipeline branch April 7, 2026 12:49
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