Duplicate leaf task names in included taskfiles break tree grouping #228
Copy link
Copy link
Closed
Description
Activity
- addedstate: needs triageWaiting to be triaged by a maintainer.Waiting to be triaged by a maintainer.
on Jan 29, 2026 Update: Confirmed this is purely a VS Code extension issue, not a Task CLI issue.
Using the reproduction case above,
task --list-allcorrectly shows:* default: Root default * aaa:install: AAA install * bbb:install: BBB installBoth
installtasks are properly namespaced underaaa:andbbb:— no hoisting, no ambiguity. The Task CLI handles duplicate leaf names across namespaces without any issues.The tree view in the VS Code extension is the only place where these get incorrectly hoisted to the root level.
Fixed in #214 which will release soon.
- removedstate: needs triageWaiting to be triaged by a maintainer.Waiting to be triaged by a maintainer.
on Feb 14, 2026
Metadata
Metadata
Assignees
Labels
No labels
Type
Fields
No fields configured for issues without a type.
Problem
When using Taskfile
includeswith namespaced taskfiles, tasks that share the same leaf name across different included files (e.g.install,health,shell) are hoisted to the root level in the VS Code tree view instead of staying nested under their namespace.Expected behavior
duckdb:installandrestish:installshould each appear under their respective namespace folders (duckdbandrestish) in the tree view — the same waytask --list-allshows them as fully qualified names on the CLI.Actual behavior
When multiple included taskfiles contain a task with the same name (e.g. both
duckdb.ymlandrestish.ymlhave aninstall:task), those tasks appear at the root level of the tree view to disambiguate, breaking the namespace grouping.Workaround
Prefix every task name inside included files to ensure global uniqueness (e.g.
duckdb-install:instead ofinstall:insideduckdb.yml). This works but produces redundant fully-qualified names likeduckdb:duckdb-install.Reproduction
Taskfile.yml:taskfiles/duckdb.yml:taskfiles/restish.yml:Both
installtasks appear at root instead of underduckdbandrestishfolders.Environment
task.vscode-task