* feat: create versioned resources for windows setup
* chore: use inno_updater to remove old installation
* chore: remove old installation as part of setup
* chore: update explorer-command
* chore: prefer session-end
* chore: uninst delete updating_version
* chore: make session-ending write synchronous
* chore: cleanup updateService.win32.ts
* chore: invoke inno_updater gc path for non background update
* chore: move session-end path to runtime
* chore: use commit for updating_version
* chore: fix invalid string
* chore: set appUpdate path
* chore: update inno_updater
* chore: empty commit for testing
* chore: some cleanups
1) Check for session-ending flag in appx and tunnel callsites
2) Move gc for background update to cleanup phase in updateservice
3) Set update state to ready when there is a running inno_setup
* chore: disallow same version update
* chore: disallow application launch in the middle of update
* chore: empty commit for testing
* chore: bump inno_updater
* chore: empty commit for testing
* chore: move gc to update startup
* chore: move feature behind insider only check
* chore: bump inno_updater
* chore: bump explorer-command
* fix: build
* fix: gc for background update in system setup
* chore: create separate cli entrypoints for build
* fix: check for setup mutex created by inno
* chore: remove problematic updatingVersionPath deletion
* chore: remove redundant update check
* chore: bump inno_updater
* chore: fix build
* chore: bump inno updater
* Add a send message tool for automation & mcp
This also sents up the posibility of smoke tests.
* Add demonstrate.md and remove prompt
* add simple notification util
* notif
This enables:
* Playwright video recording
* Starting the Code OSS on server start (for clients like Copilot CLI that don't react to tool list changes)
For #269213
This adds a new eslint rule for `as any` and `<any>({... })`. We'd like to remove almost all of these, however right now the first goal is to prevent them in new code. That's why with this first PR I simply add `eslint-disable` comments for all breaks
Trying to get this change in soon after branching off for release to hopefully minimize disruption during debt week work
This makes sure that closing the window actually closes everything to workaround the macOS behavior of having all windows closed but it's still running.
* Allow modals in automation
This allows for the opt-in behavior of allowing dialogs while using automation.
When opted in, we also switch over to using custom dialogs & the simple file picker so that the automation can control it.
This was added so that we can do auth flows, which uses dialogs. Now we will be able to complete an auth flow (with the help of the user in the browser) and automate interacting with chat via the development MCP server.
* Instead use custom for smoke tests
* Go back to command but have a context key for automation
* Workaround terminal smoke tests
This fixes things for MCP... with a hack. But Playwright is not interested in having interop between Playwright & Playwright MCP atm... so this is the best we can do for now.
So that mcp can use dialogs and let the user answer the dialogs. This is critical for auth.
This also switches to using the custom dialog in electron so that the driver can interact with it.
One common source of flakiness is just dispatching a keybinding and
not verifying it did its thing. This change adds a few accept functions
and also forces callers to provide an async function so that the caller
considers adding one as it's the norm, not the edge case.
Fixes#246731
* chore: bump gulp-electron@1.37.0
* chore: update package-lock.json
* Reland "Fix extraction of tab title name" (#251379)"
This reverts commit 5d1bd8f13d.
Reason for revert:
Icon issue was side affect of the windows agent change that affected
the rcedit binary which has now been addressed.
* chore: bump gulp-electron@1.37.1
On Linux, this will also attempt to kill the zygote process (which is a child of the main process). This causes all sorts of issues.
Also, our integration tests just kill the main process and not a tree of processes, so we can align here.