support cross-project task relations
Problem Statement
Currently, task relations can only be created between tasks inside the same project. In real workflows, however, tasks are often related across project boundaries.
For example:
- A frontend task may be blocked by an API task in another project.
- A bug fix in one project may be related to a feature task in another project.
- A design task may need to be tracked as a subtask of a task in a different project.
Today, users have to work around this limitation by duplicating tasks, adding plain-text references in descriptions, creating shared projects, or using external links. None of these preserve the actual relation between tasks, and they make dependency tracking harder as the workspace grows.
Proposed Solution
Allow task relations to target tasks in other projects.
Suggested scope for an initial implementation:
- Allow a task in project A to be related to a task in project B, at least within the same workspace.
- Reuse the existing relation types, such as
subtask,blocks, andrelated. - In the task detail view, show cross-project relations clearly, including the project name or a project badge for the related task.
- In the relation picker, allow searching or filtering tasks across projects.
- Update the API so
targetTaskIdcan belong to a different project, with proper authorization checks. - Ensure users can only create relations between tasks they have access to.
- Keep the current single-project behavior unchanged.
Cross-workspace relations could be considered later, but starting with cross-project relations within the same workspace would cover most practical use cases while keeping permissions simpler.
Alternative Solutions
- Move the task to another project: Not always appropriate, because it changes the task’s ownership, context, and project structure.
- Duplicate the task: Creates two sources of truth and makes status updates unreliable.
- Add an external URL or plain-text reference: Does not create a real relation and cannot support dependency tracking.
- Create a shared project for related tasks: Pollutes the project structure and defeats the purpose of project-based organization.
- Use a global task list only: Helps discovery, but does not solve the need for explicit task-to-task relations.
- Support only
blocksrelations across projects first: Could be an incremental step, but it would make the relation model inconsistent and confusing.
Relevant Context
Kaneo v2.24.0
ImageDoes this feature align with Kaneo's focus on simplicity?
Yes, if it is scoped carefully.
It extends an existing concept—task relations—to cover a real workflow that users already need. It removes manual workarounds and keeps related work connected without forcing users to reorganize their projects.
Originally requested by @dfface on 2026-09-19. Original GitHub request #1752.
ROA-949
Original GitHub comment
👍🏼 +1 to this, but furthermore realize that cross-workspace task relations can even be necessary.
Original GitHub comment