Change:
I noticed this: We always want to add the sequences as it enabled command navigation, the decorations showing is purely a visual thing that hides the decoration button. So I suggest we remove the ShowDecorations check there and instead call into the terminal addon to disable the decoration.
To verify: repo (or any repo with a task that exits) the default build task to some file the test task it the test task it /ctrl+up should take you to the start of the task in step 6, not the very top of the terminal
I actually think we should remove the setting outright as we already have which essentially does the same thing. This would save us from exposing outside of the terminal part the ability to configure decoration visibility. Timeline: The terminal setting was as a boolean in Feb The task setting was in June The terminal setting was made more granular in July The interaction between the 2 settings confused someone in I'll leave the decision up to you whether we remove it, it feels like too much granularity to me as the user must like the terminal ones but not the task ones.
Let's remove it

Discussion:
default: 'on', restricted: true }, <del> [TaskSettingId.ShowDecorations]: { type: 'boolean', markdownDescription: nls.localize('task.showDecorations', "Shows decorations at points of interest in the terminal buffer such as the first problem found via a watch task. Note that this will only take effect for future tasks. {0} will take precedence over this setting", '`#terminal.integrated.shellIntegration.decorationsEnabled#`'), default: true }, </del> [TaskSettingId.Reconnection]: { type: 'boolean', description: nls.localize('task.reconnection', "On window reload, reconnect to tasks that have problem matchers."),

import { TaskTerminalStatus } from 'vs/workbench/contrib/tasks/browser/taskTerminalStatus'; import { ProblemCollectorEventKind, ProblemHandlingStrategy, StartStopProblemCollector, WatchingProblemCollector } from 'vs/workbench/contrib/tasks/common/problemCollectors'; import { GroupKind } from 'vs/workbench/contrib/tasks/common/taskConfiguration'; <del> import { CommandOptions, CommandString, ContributedTask, CustomTask, DependsOrder, ICommandConfiguration, IConfigurationProperties, IExtensionTaskSource, InMemoryTask, IPresentationOptions, IShellConfiguration, IShellQuotingOptions, ITaskEvent, PanelKind, RevealKind, RevealProblemKind, RuntimeType, ShellQuoting, Task, TaskEvent, TaskEventKind, TaskScope, TaskSettingId, TaskSourceKind } from 'vs/workbench/contrib/tasks/common/tasks'; </del> <ins> import { CommandOptions, CommandString, ContributedTask, CustomTask, DependsOrder, ICommandConfiguration, IConfigurationProperties, IExtensionTaskSource, InMemoryTask, IPresentationOptions, IShellConfiguration, IShellQuotingOptions, ITaskEvent, PanelKind, RevealKind, RevealProblemKind, RuntimeType, ShellQuoting, Task, TaskEvent, TaskEventKind, TaskScope, TaskSourceKind } from 'vs/workbench/contrib/tasks/common/tasks'; </ins> import { ITaskService } from 'vs/workbench/contrib/tasks/common/taskService'; import { IResolvedVariables, IResolveSet, ITaskExecuteResult, ITaskResolver, ITaskSummary, ITaskSystem, ITaskSystemInfo, ITaskSystemInfoResolver, ITaskTerminateResponse, TaskError, TaskErrors, TaskExecuteKind, Triggers } from 'vs/workbench/contrib/tasks/common/taskSystem'; import { ITerminalGroupService, ITerminalInstance, ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal';

private _reconnectedTerminals: ITerminalInstance[] | undefined; taskShellIntegrationStartSequence(cwd: string | URI | undefined): string { <del> if (!this._configurationService.getValue(TaskSettingId.ShowDecorations)) { return ''; } </del> return ( VSCodeSequence(VSCodeOscPt.PromptStart) + VSCodeSequence(VSCodeOscPt.Property, `${VSCodeOscProperty.Task}=True`) +

); } get taskShellIntegrationOutputSequence(): string { <del> if (!this._configurationService.getValue(TaskSettingId.ShowDecorations)) { return ''; } </del> return VSCodeSequence(VSCodeOscPt.CommandExecuted); }

import { TerminalSettingId } from 'vs/platform/terminal/common/terminal'; import { IColorTheme, IThemeService, registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { ThemeIcon } from 'vs/base/common/themables'; <del> import { TaskSettingId } from 'vs/workbench/contrib/tasks/common/tasks'; </del> import { terminalDecorationError, terminalDecorationIncomplete, terminalDecorationMark, terminalDecorationSuccess } from 'vs/workbench/contrib/terminal/browser/terminalIcons'; import { DecorationSelector, TerminalDecorationHoverManager, updateLayout } from 'vs/workbench/contrib/terminal/browser/xterm/decorationStyles'; import { ITerminalCommand } from 'vs/workbench/contrib/terminal/common/terminal';

} else if (e.affectsConfiguration(TerminalSettingId.ShellIntegrationDecorationsEnabled)) { this._removeCapabilityDisposables(TerminalCapability.CommandDetection); this._updateDecorationVisibility(); <del> } else if (e.affectsConfiguration(TaskSettingId.ShowDecorations)) { this._updateDecorationVisibility(); </del> } })); this._register(this._themeService.onDidColorThemeChange(() => this._refreshStyles(true)));