Skip to content

Conversation

@qdaxb
Copy link
Contributor

@qdaxb qdaxb commented Jun 27, 2025

Related GitHub Issue

Closes: #5181

Description

When performing complex tasks, the model may miss certain steps during execution. To address this issue, a todo list tool can be introduced to remind the model of the current todo list and progress during the execution process, helping ensure that no steps are missed.

  • Added the update_todo_list tool to save and update the current task’s todo list.
  • Added a reminder in the prompt’s environment to display the current todo progress in each conversation.
  • Added todo progress display in the taskheader.
  • Added a todoBlock in the chat row for displaying or editing the todo list.
  • Added an option for automatic todo approval.

Test Procedure

prompt:

create a.txt
create b.txt
use todolist

Pre-Submission Checklist

  • Issue Linked: This PR is linked to an approved GitHub Issue (see "Related GitHub Issue" above).
  • Scope: My changes are focused on the linked issue (one major feature/fix per PR).
  • Self-Review: I have performed a thorough self-review of my code.
  • Testing: New and/or updated tests have been added to cover my changes (if applicable).
  • Documentation Impact: I have considered if my changes require documentation updates (see "Documentation Updates" section below).
  • Contribution Guidelines: I have read and agree to the Contributor Guidelines.

Screenshots / Videos

image

Documentation Updates

Additional Notes

Get in Touch


Important

Introduces a todo list tool to track task progress, with UI updates for displaying and editing todos, and settings for automatic approval.

  • Behavior:
    • Adds update_todo_list tool to manage task's todo list.
    • Displays todo progress in task header and chat row.
    • Supports automatic todo approval.
  • UI Components:
    • Adds UpdateTodoListToolBlock for displaying/editing todos.
    • Updates ChatRow and TaskHeader to include todo list display.
  • Settings:
    • Adds alwaysAllowUpdateTodoList setting for automatic approval.
  • Localization:
    • Updates translations in chat.json and settings.json for multiple languages.
  • Misc:
    • Adds todo.ts for todo item schema and types.
    • Updates presentAssistantMessage.ts to handle update_todo_list tool.

This description was created by Ellipsis for 74dc06c. You can customize this summary. It will automatically update as commits are pushed.

@qdaxb qdaxb requested review from cte, jr and mrubens as code owners June 27, 2025 05:59
@dosubot dosubot bot added size:XXL This PR changes 1000+ lines, ignoring generated files. enhancement New feature or request labels Jun 27, 2025
@hannesrudolph hannesrudolph added the Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. label Jun 27, 2025
@qdaxb qdaxb force-pushed the add_todo_list branch 2 times, most recently from f945997 to 905f876 Compare June 27, 2025 06:18
@daniel-lxs daniel-lxs moved this from Triage to PR [Needs Prelim Review] in Roo Code Roadmap Jun 27, 2025
@hannesrudolph hannesrudolph added PR - Needs Preliminary Review and removed Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. labels Jun 27, 2025
@daniel-lxs daniel-lxs moved this from PR [Needs Prelim Review] to PR [Draft / In Progress] in Roo Code Roadmap Jun 27, 2025
@daniel-lxs daniel-lxs marked this pull request as draft June 27, 2025 23:09
@KJ7LNW
Copy link
Contributor

KJ7LNW commented Jun 30, 2025

great idea I have found that telling it to create a checklist before making large sets of changes is very effective.

  • attempt approval should fail if any to do items are not yet resolved
  • the model needs to be able to set and clear these at will

@adamhill
Copy link
Contributor

adamhill commented Jul 1, 2025

Cool idea! So which PR wins? Yours or roomotes?

@KJ7LNW
Copy link
Contributor

KJ7LNW commented Jul 1, 2025

Cool idea! So which PR wins? Yours or roomotes?

@roomote is a bot, so while you might get inspiration from something that it does if you like the idea, detinitely go with the human!

@roomote
Copy link
Collaborator

roomote commented Jul 1, 2025

Thanks for the feedback! I understand you'd prefer to go with the human implementation over the bot's approach. I'll review the current todo tool implementation and ensure it's ready for integration. Let me know if there are any specific aspects you'd like me to focus on or improve.

@mrubens
Copy link
Collaborator

mrubens commented Jul 5, 2025

This looks good!

Copy link
Contributor

@KJ7LNW KJ7LNW left a comment

Choose a reason for hiding this comment

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

please see the comments below, mostly this is about organization to keep Task.ts from getting too big to manage.

@qdaxb
Copy link
Contributor Author

qdaxb commented Jul 7, 2025

please see the comments below, mostly this is about organization to keep Task.ts from getting too big to manage.

@mrubens @KJ7LNW thanks for review

I’ve done some refactoring to make it less like a prototype. The changes include:

  1. Moved type definitions to packages/types/src/todo.ts.
  2. Moved todo-related functions in the task to updateTodoListTool.ts.
  3. Rewrote the Todo editing feature (it didn’t have actual functionality before).
  4. Fixed the AutoApprove Todo feature.
  5. Made a simple optimization to the Todo styles.
  6. Support streaming display of todos.

I haven’t fixed the unit tests yet because I’m not sure if further changes to the prompt are needed.

@qdaxb qdaxb marked this pull request as ready for review July 7, 2025 12:20
@dosubot dosubot bot added the UI/UX UI/UX related or focused label Jul 7, 2025
@daniel-lxs daniel-lxs marked this pull request as draft July 7, 2025 12:59
@mrubens mrubens marked this pull request as ready for review July 7, 2025 16:23
@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. and removed size:XXL This PR changes 1000+ lines, ignoring generated files. labels Jul 7, 2025
@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Jul 7, 2025
@mrubens mrubens merged commit 7645aad into RooCodeInc:main Jul 7, 2025
14 checks passed
@github-project-automation github-project-automation bot moved this from PR [Draft / In Progress] to Done in Roo Code Roadmap Jul 7, 2025
@github-project-automation github-project-automation bot moved this from New to Done in Roo Code Roadmap Jul 7, 2025
@qdaxb qdaxb deleted the add_todo_list branch July 8, 2025 01:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request lgtm This PR has been approved by a maintainer PR - Draft / In Progress size:L This PR changes 100-499 lines, ignoring generated files. UI/UX UI/UX related or focused

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

support task todo list

6 participants