In Compare each pane renders into a sandboxed <iframe>. A file dropped on a pane was handled by the iframe (browser default), so the browser loaded the file *inside* the pane — appearing 'behind' the app — instead of attaching it. The existing #chat-container drop handler never sees the event because drag events don't bubble out of an iframe. While a file drag is active in Compare, raise a single full-window drop shield above the panes/iframes so the drop lands on the parent document, then route the files into the shared composer (the same pending-files pipeline the file picker and paste already use). Scoped to Compare via the .compare-active class, so normal chat and the tool dropzones (gallery, RAG, document editor, …) are unaffected. Verified with a headless-Chromium integration test: synthetic file dragover raises the shield, drop attaches the file to the composer, and non-Compare mode is unaffected. Also ran node --check static/app.js. |
||
|---|---|---|
| .. | ||
| fonts | ||
| js | ||
| lib | ||
| app.js | ||
| index.html | ||
| landing.html | ||
| login.html | ||
| manifest.json | ||
| style.css | ||
| sw.js | ||