Conversation
Add a "Change Tags" submenu to task actions that allows users to add or remove existing workspace tags from tasks.
subtasks have same actions as tasks
Add three new actions: 1. "Convert to Subtask" - For tasks only, pick a parent task 2. "Convert to Task" - For subtasks only, remove parent relationship 3. "Add Subtask" - For tasks only, create subtask with inherited project/section and assignee option
|
Thank you for your contribution! 🎉 🔔 @thomaslombart @spaceDolph1n @tuzemec @xmok @abcd-ca you might want to have a look. You can use this guide to learn how to check out the Pull Request locally in order to test it. 📋 Quick checkout commandsBRANCH="feature/tags-and-subtasks"
FORK_URL="https://github.com/abcd-ca/ray-cast-extension-asana.git"
EXTENSION_NAME="asana"
REPO_NAME="ray-cast-extension-asana"
git clone -n --depth=1 --filter=tree:0 -b $BRANCH $FORK_URL
cd $REPO_NAME
git sparse-checkout set --no-cone "extensions/$EXTENSION_NAME"
git checkout
cd "extensions/$EXTENSION_NAME"
npm install && npm run devDue to our current reduced availability, the initial review may take up to 10-15 business days. |
There was a problem hiding this comment.
Greptile Overview
Greptile Summary
This PR adds three significant features to the Asana extension:
-
Subtasks Support: Users can now view, create, and manage subtasks. The implementation includes:
- Viewing subtasks in task detail view with a checklist display
- Creating new subtasks with assignee, description, and due date
- Converting tasks to subtasks and vice versa
- Preventing circular dependencies by filtering subtasks from parent selection
-
Tag Management: Users can add and remove tags from existing tasks through a new submenu with lazy-loaded tag data.
-
Task Renaming: A simple form to rename tasks and subtasks with optimistic updates.
The implementation follows existing patterns in the codebase with proper error handling, optimistic updates, and TypeScript typing. However, there are a few issues that need attention:
- Keyboard shortcut conflict between "View Subtasks" and "Move to Section" actions
- Missing cache mutation when creating subtasks from task actions, leading to stale subtask counts
- Minor date typo in the CHANGELOG (2026 instead of 2025)
The API integration is clean, reusing the existing request infrastructure. The new components (CreateSubtaskForm, ParentTaskPicker, RenameTaskForm, SubtasksList) are well-structured and follow Raycast UI patterns.
Confidence Score: 3/5
- This PR has solid implementation but contains logical issues that will cause UX problems
- The code quality is generally good with proper error handling and follows existing patterns. However, the keyboard shortcut conflict will cause one action to not work as expected, and the missing mutateSubtasks prop will lead to stale data requiring manual refreshes. These are functional bugs that will impact user experience. The CHANGELOG date issue is minor but should be fixed.
- Pay close attention to TaskActions.tsx and TaskDetail.tsx - they contain the keyboard shortcut conflict and cache mutation issues
Important Files Changed
File Analysis
| Filename | Score | Overview |
|---|---|---|
| extensions/asana/CHANGELOG.md | 4/5 | Changelog updated with new features; minor date typo (2026 instead of 2025) |
| extensions/asana/src/api/tasks.ts | 5/5 | Added subtask APIs and parent field to Task type; clean implementation with proper typing |
| extensions/asana/src/components/TaskActions.tsx | 3/5 | Added subtask/tag actions and rename functionality; keyboard shortcut conflict and missing mutateSubtasks prop |
| extensions/asana/src/components/TaskDetail.tsx | 3/5 | Enhanced with subtasks display and actions; keyboard shortcut conflict with existing actions |
|
@pernielsentikaer Hello, may I ask you to review, please? |
Greptile SummaryThis PR adds three features to the Asana extension: tag management (add/remove tags from tasks), subtask support (view, create, and convert between tasks/subtasks), and task renaming. The implementation follows established architectural patterns with proper API endpoints, custom hooks, and component structure. The code demonstrates solid understanding of the codebase's mutation patterns and error handling. Key Changes:
Issues Found:
Confidence Score: 3/5
Important Files Changed
|
extensions/asana/CHANGELOG.md
Outdated
| @@ -1,5 +1,13 @@ | |||
| # Asana Changelog | |||
|
|
|||
| ## [Add subtasks support and tag management] - 2026-01-09 | |||
There was a problem hiding this comment.
the date "2026-01-09" is in the future. This should likely be "2025-01-09" (current year).
| ## [Add subtasks support and tag management] - 2026-01-09 | |
| ## [Add subtasks support and tag management] - 2025-01-09 |
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
…st-extension-asana into feature/tags-and-subtasks
putting < and > characters in the description field would result in a 400
|
@greptileai, could you please do a fresh review of this PR? |
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
pernielsentikaer
left a comment
There was a problem hiding this comment.
Looks good to me, approved 🔥
|
Published to the Raycast Store: |
|
🎉 🎉 🎉 Such a great contribution deserves a reward, but unfortunately we couldn't find your Raycast account based on your GitHub username (@abcd-ca). Please link your GitHub account to your Raycast account to receive your credits and soon be able to exchange them for some swag. |
Description
Screencast
https://youtu.be/fc_1RrHIHto
Checklist
npm run buildand tested this distribution build in Raycastassetsfolder are used by the extension itselfREADMEare located outside the metadata folder if they were not generated with our metadata tool