newTab() used to mutate state.activeTabId directly, skipping setActiveTab's auto-pause hook AND the toolbar button-state sync. Opening a new tab during a running eval left the send button disabled on the brand-new (idle) tab — fox would land on a tab he couldn't type into. Now newTab pushes the tab onto state.tabs, then awaits setActiveTab which handles both the outgoing-tab auto-pause (if applicable) and the incoming-tab button sync. Verified end-to-end headless: with COOP/COEP enabled, switching from a c-tier eval to a new tab now correctly snapshots the source tab's state, leaves the send button enabled on tab 2, and on switch-back the resumed eval re-fires from the snapshot. |
||
|---|---|---|
| .. | ||
| asm | ||
| c | ||
| fonts/chunkfive | ||
| python | ||
| crypto.js | ||
| index.html | ||
| lumbda-logo-green.png | ||
| repl.css | ||
| repl.js | ||
| runner.js | ||
| style.css | ||
| worker.mjs | ||