Skip to content

feat: task lists #6906

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
Open

feat: task lists #6906

wants to merge 12 commits into from

Conversation

uinstinct
Copy link
Contributor

@uinstinct uinstinct commented Jul 31, 2025

Description

Task list in the assistant which adds and shows what task is being currently executed by the agent. Useful to plan and add more tasks while the agent is executing.

This is a simpler form of #6593 where all CRUD operations are managed by the agent.

resolves CON-2763

Checklist

  • [] I've read the contributing guide
  • [] The relevant docs, if any, have been updated or created
  • [] The relevant tests, if any, have been updated or created

Screen recording or screenshot

feat.mp4

Tests

[ What tests were added or updated to ensure the changes work as expected? ]


Summary by cubic

Added a task list feature to the assistant, allowing users to view, add, and update tasks while the agent is running. This helps plan and track work in real time.

  • New Features
    • Introduced a task list manager with add, update, list, and run actions.
    • Added a GUI section to display current tasks and their status.

@uinstinct uinstinct requested a review from a team as a code owner July 31, 2025 13:54
@uinstinct uinstinct requested review from tomasz-stefaniak and removed request for a team July 31, 2025 13:54
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Jul 31, 2025
Copy link
Collaborator

@RomneyDa RomneyDa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comments, I think the redux thing is the most important.

I also wonder if we should persist these in dedicated JSON somewhere, maybe ~/.continue/tasks/<session_id>.json or similar so that it's not just in memory. It would be a bit odd to close vs code, open it and have no tasks again. But could leave it for test-driving for now

Could we also make this experimental until we've test-driven it?

const [tasks, setTasks] = useState<TaskInfo[]>([]);
const currentSessionId = useAppSelector((state) => state.session.id);

useWebviewListener("taskEvent", async (taskEvent) => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will only accept task Events when the component is mounted, should move to parallel listeners

});

useEffect(() => {
void (async () => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same, I'd move this to parallel listeners and move tasks to a new redux slice so we can access them around the UI and so they update regardless of if this component is present

import { TaskManager } from "./TaskManager";

// in memory storage for storing individual task lists
const taskManagers = new Map<Session["sessionId"], TaskManager>();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be better to make this a class for testing but not that important
But should add tests

};
break;
}
case "run_task": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like run_task might be more readable as mark_completed. Or is this intended to be extensible in the future?

This tool helps manage complex workflows by breaking them down into manageable tasks that can be tracked and executed systematically.

When to use this tool:
- Breaking down complex multi-step work into organized tasks
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should consider making this a bit more concise, this is a lot of tokens for a tool description

@github-project-automation github-project-automation bot moved this from Todo to In Progress in Issues and PRs Jul 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size:L This PR changes 100-499 lines, ignoring generated files.
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

2 participants