Change:
Testing to open the issue reporter for an extension issue reporter open, return to the main window step 1 for another extension =issue reporter opens but doesn't update the issue reporter input fields.

Discussion:
} }); <ins> this.addEventListener('issue-title', 'input', _ => { const titleElement = this.getElementById('issue-title') as HTMLInputElement; if (titleElement) { const title = titleElement.value; this.issueReporterModel.update({ issueTitle: title }); } }); </ins> this.addEventListener('issue-title', 'input', (e: Event) => { const title = (<HTMLInputElement>e.target).value; const lengthValidationMessage = this.getElementById('issue-title-length-validation-error');

import { IssueWebReporter } from 'vs/workbench/contrib/issue/browser/issueReporterService'; import { AuxiliaryWindowMode, IAuxiliaryWindowService } from 'vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService'; <ins> export interface IssuePassData { issueTitle: string; issueBody: string; } </ins> export class IssueFormService implements IIssueMainService { readonly _serviceBrand: undefined;

} if (this.issueReporterWindow) { <ins> const getModelData = await this.getIssueData(); if (getModelData) { const { issueTitle, issueBody } = getModelData; if (issueTitle || issueBody) { data.issueTitle = data.issueTitle ?? issueTitle; data.issueBody = data.issueBody ?? issueBody; // close issue reporter and re-open with new data this.issueReporterWindow.close(); this.openAuxIssueReporter(data); return; } } </ins> this.issueReporterWindow.focus(); return; } <ins> this.openAuxIssueReporter(data); } async openAuxIssueReporter(data: IssueReporterData): Promise<void> { </ins> const disposables = new DisposableStore(); // Auxiliary Window

this.issueReporterWindow = auxiliaryWindow.window; if (auxiliaryWindow) { await auxiliaryWindow.whenStylesHaveLoaded; auxiliaryWindow.window.document.title = 'Issue Reporter';

return result as IssueReporterData | undefined; } <ins> // Listens to data from the issue reporter model, which is updated regularly async getIssueData(): Promise<IssuePassData | undefined> { const sendChannel = `vscode:triggerIssueData`; mainWindow.postMessage({ sendChannel }, '*'); const result = await new Promise((resolve, reject) => { const timeout = setTimeout(() => { mainWindow.removeEventListener('message', listener); reject(new Error('Timeout exceeded')); }, 5000); // Set the timeout value in milliseconds (e.g., 5000 for 5 seconds) const listener = (event: MessageEvent) => { const replyChannel = `vscode:triggerIssueDataResponse`; if (event.data && event.data.replyChannel === replyChannel) { clearTimeout(timeout); mainWindow.removeEventListener('message', listener); resolve(event.data.data); } }; mainWindow.addEventListener('message', listener); }); return result as IssuePassData | undefined; } </ins> async $closeReporter(): Promise<void> { this.issueReporterWindow?.close(); }

*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <ins> import { mainWindow } from 'vs/base/browser/window'; </ins> import { isRemoteDiagnosticError, SystemInfo } from 'vs/platform/diagnostics/common/diagnostics'; import { ISettingSearchResult, IssueReporterExtensionData, IssueType } from 'vs/platform/issue/common/issue'; export interface IssueReporterData { issueType: IssueType; issueDescription?: string; <ins> issueTitle?: string; </ins> extensionData?: string; versionInfo?: any;

}; this._data = initialData ? Object.assign(defaultData, initialData) : defaultData; <ins> mainWindow.addEventListener('message', async (event) => { if (event.data && event.data.sendChannel === 'vscode:triggerIssueData') { mainWindow.postMessage({ data: { issueBody: this._data.issueDescription, issueTitle: this._data.issueTitle }, replyChannel: 'vscode:triggerIssueDataResponse' }, '*'); } }); </ins> } getData(): IssueReporterData {