Composer 'Accept' and 'Accept All' buttons only work after clicking 'Apply'

System Info

Version: 0.40.3
VSCode Version: 1.91.1
Commit: 2804893a83ef162ae6c48e8254717e25c7c7c510
Date: 2024-08-29T17:42:50.254Z
Electron: 29.4.0
ElectronBuildId: undefined
Chromium: 122.0.6261.156
Node.js: 20.9.0
V8: 12.2.281.27-electron.0
OS: Windows_NT x64 10.0.22631

Steps To Reproduce

  1. Open Composer

  2. Current file is selected as context

  3. Ask Composer to change something

  4. Composer provides response and makes suggested changes in one file

  5. I click on Accept All on the Composer tab, nothing happens

  6. I click on the file tab, I click Accept, nothing happens, but error is logged in dev tools console:

Uncaught TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator))
    at Ke.acceptDiff (workbench.desktop.main.js:23127:25259)
    at Ke.accept (workbench.desktop.main.js:23127:26323)
    at Object.onClick (workbench.desktop.main.js:23017:53863)
    at HTMLDivElement.<anonymous> (workbench.desktop.main.js:23012:32073)
  1. I click on the Apply button on the file tab, and the colored diffs are added to the underlying file, then I can click the Accept button, and the changes are applied and the colored diffs are hidden.

Thinking out loud:

  • Come to think of it, perhaps that is the intended behaviour - that you must click ‘Apply’ first, and then click ‘Accept’.

  • But if that is the case, why is the ‘Accept’ button highlighted first?

  • To be honest, I’m a bit confused why there is an ‘Apply’ and an ‘Accept’ button, why not just one ‘Accept’ button?
    (i’m sure there is a valid reason)

Screenshot 01 - Composer File Tab

Screenshot 02 - Developer Tools Console Logs