Change:
Testing ! It would be nice if that text is a hyperlink which opens the output channel, similar to above: !
/verified

Discussion:
import { equals } from 'vs/base/common/objects'; import { IEditSessionIdentityService } from 'vs/platform/workspace/common/editSessions'; import { ThemeIcon } from 'vs/platform/theme/common/themeService'; <ins> import { IOutputService } from 'vs/workbench/services/output/common/output'; import * as Constants from 'vs/workbench/contrib/logs/common/logConstants'; </ins> registerSingleton(IEditSessionsLogService, EditSessionsLogService); registerSingleton(IEditSessionsStorageService, EditSessionsWorkbenchService);

category: EDIT_SESSION_SYNC_CATEGORY, precondition: IsWebContext }; <ins> const showOutputChannelCommand: IAction2Options = { id: 'workbench.experimental.editSessions.actions.showOutputChannel', title: { value: localize('show log', 'Show Log'), original: 'Show Log' }, category: EDIT_SESSION_SYNC_CATEGORY }; const resumingProgressOptions = { location: ProgressLocation.Window, type: 'syncing', title: `[${localize('resuming edit session window', 'Resuming edit session...')}](command:${showOutputChannelCommand.id})` }; </ins> const queryParamName = 'editSessionId'; const experimentalSettingName = 'workbench.experimental.editSessions.enabled';

this.lifecycleService.onWillShutdown((e) => e.join(this.autoStoreEditSession(), { id: 'autoStoreEditSession', label: localize('autoStoreEditSession', 'Storing current edit session...') })); } <del> private async autoResumeEditSession() { if (this.environmentService.editSessionId !== undefined) { // In web, resume edit session based on an edit session GUID that // was explicitly passed into the workbench construction options void this.progressService.withProgress({ location: ProgressLocation.Window, type: 'syncing', title: localize('resuming edit session dialog', 'Resuming your latest edit session...') }, async () => { performance.mark('code/willResumeEditSessionFromIdentifier'); </del> <ins> private autoResumeEditSession() { void this.progressService.withProgress(resumingProgressOptions, async () => { performance.mark('code/willResumeEditSessionFromIdentifier'); </ins> <del> type ResumeEvent = {}; type ResumeClassification = { owner: 'joyceerhl'; comment: 'Reporting when an action is resumed from an edit session identifier.'; }; this.telemetryService.publicLog2<ResumeEvent, ResumeClassification>('editSessions.continue.resume'); </del> <ins> type ResumeEvent = {}; type ResumeClassification = { owner: 'joyceerhl'; comment: 'Reporting when an action is resumed from an edit session identifier.'; }; this.telemetryService.publicLog2<ResumeEvent, ResumeClassification>('editSessions.continue.resume'); if (this.environmentService.editSessionId !== undefined) { </ins> await this.resumeEditSession(this.environmentService.editSessionId).finally(() => this.environmentService.editSessionId = undefined); <del> performance.mark('code/didResumeEditSessionFromIdentifier'); }); } else if (this.configurationService.getValue('workbench.experimental.editSessions.autoResume') === 'onReload' && this.editSessionsStorageService.isSignedIn) { // Attempt to resume edit session based on edit workspace identifier // Note: at this point if the user is not signed into edit sessions, // we don't want them to be prompted to sign in and should just return early void this.progressService.withProgress({ location: ProgressLocation.Window, type: 'syncing', title: localize('resuming edit session window', 'Resuming edit session...') }, async () => { </del> <ins> } else if (this.configurationService.getValue('workbench.experimental.editSessions.autoResume') === 'onReload' && this.editSessionsStorageService.isSignedIn) { // Attempt to resume edit session based on edit workspace identifier // Note: at this point if the user is not signed into edit sessions, // we don't want them to be prompted to sign in and should just return early </ins> await this.resumeEditSession(undefined, true); <del> }); } </del> <ins> } performance.mark('code/didResumeEditSessionFromIdentifier'); }); </ins> } private async autoStoreEditSession() {

this.registerContinueInLocalFolderAction(); this.registerShowEditSessionViewAction(); <ins> this.registerShowEditSessionOutputChannelAction(); </ins> this.registered = true; } <ins> private registerShowEditSessionOutputChannelAction() { this._register(registerAction2(class ShowEditSessionOutput extends Action2 { constructor() { super(showOutputChannelCommand); } run(accessor: ServicesAccessor, ...args: any[]) { const outputChannel = accessor.get(IOutputService); void outputChannel.showChannel(Constants.editSessionsLogChannelId); } })); } </ins> private registerShowEditSessionViewAction() { const that = this; this._register(registerAction2(class ShowEditSessionView extends Action2 {

} async run(accessor: ServicesAccessor, editSessionId?: string): Promise<void> { <del> await that.progressService.withProgress({ location: ProgressLocation.Notification, title: localize('resuming edit session', 'Resuming edit session...') }, async () => { </del> <ins> await that.progressService.withProgress(resumingProgressOptions, async () => { </ins> type ResumeEvent = {}; type ResumeClassification = { owner: 'joyceerhl'; comment: 'Reporting when the resume edit session action is invoked.';