Code change:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- Version: 1.59.0-insider Commit: Date: 2021-07-31T00:42:32.346Z Electron: 13.1.7 Chrome: 91.0.4472.124 14.16.0 V8: 9.1.269.36-electron.0 OS: Linux x64 5.13.5 Steps to Reproduce: a project directory that is hooked up with tasks via v2. The file must define one of the tasks as being the default. you have bound to a shortcut (mine is ctrl+shift+b) the key combination to trigger the build picker combobox to choose a task appears instead of the default task being executed as used to happen before.
I'm not able to reproduce this issue. Do you have a repository I can test with? I tried with: If there is more than one default build task, then we have always shown the picker. If there is only one default build task, then we run it.
I'm experiencing this with internal company code which cannot be shared. I can share the file. It should work with any c# based project.
Has the schema for changed at all in the past month?
I've replicated this on other similar projects, even those that have just one task defined.
Thanks for the additional details and for reporting this issue!

Related discussion:
text: } context.taskLoadIssues = Objects.deepClone(baseLoadIssues); } <del> if ((defaultBuildTask.rank > -1) && (defaultBuildTask.rank < 2) && defaultBuildTask.task) { </del> <ins> // There is some special logic for tasks with the labels "build" and "test". // Even if they are not marked as a task group Build or Test, we automagically group them as such. // However, if they are already grouped as Build or Test, we don't need to add this grouping. const defaultBuildGroupName = Types.isString(defaultBuildTask.task?.configurationProperties.group) ? defaultBuildTask.task?.configurationProperties.group : defaultBuildTask.task?.configurationProperties.group?._id; const defaultTestTaskGroupName = Types.isString(defaultTestTask.task?.configurationProperties.group) ? defaultTestTask.task?.configurationProperties.group : defaultTestTask.task?.configurationProperties.group?._id; if ((defaultBuildGroupName !== Tasks.TaskGroup.Build._id) && (defaultBuildTask.rank > -1) && (defaultBuildTask.rank < 2) && defaultBuildTask.task) { </ins> defaultBuildTask.task.configurationProperties.group = Tasks.TaskGroup.Build; <del> } else if ((defaultTestTask.rank > -1) && (defaultTestTask.rank < 2) && defaultTestTask.task) { </del> <ins> } else if ((defaultTestTaskGroupName !== Tasks.TaskGroup.Test._id) && (defaultTestTask.rank > -1) && (defaultTestTask.rank < 2) && defaultTestTask.task) { </ins> defaultTestTask.task.configurationProperties.group = Tasks.TaskGroup.Test; }