Add Tasks panel infrastructure with type-safe IPC protocol#772
Open
Add Tasks panel infrastructure with type-safe IPC protocol#772
Conversation
318c084 to
33757b5
Compare
Adds foundational infrastructure for the Tasks panel: Backend (TasksPanel.ts): - CRUD operations for tasks (create, delete, pause, resume) - Template and preset management - Log fetching with caching - Real-time push notifications to webview Type-safe IPC Protocol: - Generic request/response/notification patterns - Compile-time type safety for webview-extension messages - useIpc hook for React components - useTasksApi hook with typed methods Supporting infrastructure: - Test setup for jsdom compatibility with Lit elements - Codicon stylesheet integration for vscode-elements - React Compiler integration with ESLint plugin - pnpm catalog for consistent dependency versions
19abe9f to
8c9d478
Compare
8c9d478 to
4fdc74e
Compare
068ac5e to
343940c
Compare
- Remove unused `scope` feature from IPC protocol (YAGNI) - Remove redundant array spreads in TasksPanel - Make TaskDetails extend TaskActions to reduce duplication - Remove handler fallback in TasksPanel (keep requests/commands separate) - Add notification subscription support to useIpc hook - Add tests for onNotification feature - Remove redundant individual exports from tasks/api.ts (export as group only)
343940c to
f7f9316
Compare
Collaborator
DanielleMaywood
left a comment
There was a problem hiding this comment.
Just some minor nits for now. Still haven't had time to read and digest it all
6b927b2 to
c951db0
Compare
DanielleMaywood
approved these changes
Feb 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds foundational infrastructure for the Tasks panel: a type-safe IPC protocol for webview-extension communication, the TasksPanel backend, and comprehensive test coverage.
Type-Safe IPC Protocol
The protocol uses phantom types (inspired by tRPC) to carry type information at compile time without runtime overhead:
Three message types with distinct semantics:
Why this design:
requestHandler,commandHandler) ensure type safety at definition time, catching errors before they reach call sitesTasksApiobject serves as the source of truth for all messagesPackage Structure
Shared types live in
@repo/sharedso both the extension (Node.js) and webviews (browser) import the same definitions.TasksPanel Backend
tasksUpdatednotificationCloses #775