Option A: when a {python} cell fails with ModuleNotFoundError/ImportError, the
log now suggests the exact PyPI package to add (with a module->package map, e.g.
cv2 -> opencv-python, sklearn -> scikit-learn), names the Verso requirements
file, and notes it could instead be a local module — so the langmuirthermalstudy
case isn't mistaken for a PyPI package.
Switch the per-project requirements file from requirements.txt to a Verso-
specific requirements.vrf (so it won't be confused with arbitrary .txt files);
QuartoRunner now looks for requirements.vrf, and 'vrf' is registered as an
editable text extension. The dedicated in-UI editor (and hiding it from the
file tree) follows in a separate change.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
When a {python} cell fails with ModuleNotFoundError/ImportError, the Quarto
log parser now emits an actionable error ('Python package "X" is not
installed on the server') noting which scientific packages are pre-installed,
instead of leaking an opaque traceback line.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Quarto compiles (.qmd/.md/.Rmd, dispatched to QuartoRunner) write
Typst/Pandoc/Quarto diagnostics to output.log that the LaTeX log parser
does not understand, so the Errors/Warnings tabs stayed empty. Add a
dedicated quarto-log-parser that recognises Typst `error:`/`warning:`
(+ `┌─ file:line:col`), Pandoc `[WARNING]`/`[ERROR]`, Quarto CLI/Deno
`ERROR:`/`WARNING:`, and knitr `Quitting from lines`. handleLogFiles now
routes to it when the root file is a Quarto file (mirrors CLSI dispatch),
otherwise the LaTeX path is unchanged.
Also decouple the UI accent from the green ramp. The framework already
funnels every primary/accent surface (primary buttons, Bootstrap
$primary/$success, --btn-primary-background) through the --bg-accent-*
tokens; those just happened to point at Overleaf green. Introduce a
single $accent knob in foundations/colors.scss (with auto-derived
hover/tint shades) and repoint the accent tokens at it, defaulting to
the Verso/Quarto blue. Re-skinning the whole UI is now a one-line edit.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* [web] provide an actual rootFolder from EditorProviders in tests
- Fixup SocketIOMock and ShareJS mocks to provide the complete interface
- Extend SocketIOMock interface to count event listeners
- Fixup test that did not expect to find a working rootDoc
* [web] expose imageName from ProjectContext
* [clsi-cache] check compiler settings before using compile from cache
* [web] avoid fetching initial compile from clsi-cache in PDF detach tab
GitOrigin-RevId: e3c754a7ceca55f03a317e1bc8ae45ed12cc2f02
* [haproxy] add support for xhr-polling in real-time
* [web] try 3 WebSockets then fallback to xhr-polling when (re-)connecting
* [web] ensure old socket.io transport has been closed when reconnecting
* [web] close xhr-polling transport before leaving the page
This will de-register the client, leave the project and clean up the
connected clients tracking ASAP.
* [web] rename constant to avoid confusion
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
---------
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
GitOrigin-RevId: 55e500c341145947e5589875438fc796394b6ae4
* Convert event-tracking to TypeScript
* Convert local-storage to TypeScript
* Convert mapSeries to TypeScript
* Convert SessionStorage to TypeScript
* Convert account-upgrade to TypeScript
* Convert isValidTeXFile to TypeScript
* Convert date functions to TypeScript
* Convert EventEmitter to TypeScript
* Convert isNetworkError to TypeScript
* Convert webpack-public-path to TypeScript
* Convert displayNameForUser to TypeScript
GitOrigin-RevId: 79c5a2d1101fcd520f3116f0f4af29d974189d94
* [web] Migrate Logs components JSX to Bootstrap 5
* [web] Migrate logs.less to logs.scss
* [web] Remove unused class names
* [storybook] Define default Bootstrap version in Storybook
This prevents some warning in the console
* [storybook] Update pdf-preview.stories.jsx
* [storybook] Add pdf-log-entry.stories.tsx
* [storybook] Force re-renders when switching BS version
* [web] Keep files dropdown menu in bounds
* [web] Make files dropdown items not bold in BS5
* [web] Revert unrelated change
* [web] Fixup PreviewLogsPaneMaxEntries
* [web] Add style for log-entry-content-link
* [web] Replace log-entry by OLNotification in `PdfCodeCheckFailedNotice`
* [web] Use `BootstrapVersionSwitcher` instead of `isBootstrap5`
* [web] Rename `DropdownBS3` to `BS3Dropdown`
* [web] Reuse variables for `toolbar-height` and `toolbar-small-height`
* [web] Set `id` on `DropdownToggle` not `Dropdown`
* [web] Set `log-entry-btn-expand-collapse` in BS3 only
* [web] Remove `block: true` from StartFreeTrialButton in BS3
* [web] Remove unnecessary CSS in `.log-entry-header-link`
* [web] Use semantic color names
* Migrate the downloadable pdf file list to Bootstrap 5
* Remove nested BootstrapVersionSwitcher, fix "key" prop
* Update roles to: `<li role="menuitem">` `<a role="link">`
* Update `log-entry-header-link`: variant ghost and fix colors
---------
Co-authored-by: Rebeka <o.dekany@gmail.com>
GitOrigin-RevId: 89848970ab5d8a8c135335386caf24363f69a34c
* [web] revert binary file
* use addEntityWithName if file was deleted
* todo comments
* only show Revert file in ui even if deleted
* use _revertBinaryFile function
* emit new ids when reverting
* format:fix
* await emitToRoom calls
* use EditorController.upsertFile
* remove _revertBinaryFile function
* binary file check
* mock importFile method in tests
* move findElementByPath stub
* debug ci error
* resolve with empty object as file
* fix tests
* remove await before expect()
* format:fix
* test when binary file exists and when it does not
* use "file-revert" for source
* [web] revert existing file without ranges support (#18107)
* [web] revert existing file without ranges support
* ignore document_updated_externally if file-revert
* fix test
GitOrigin-RevId: a5e0c83a7635bc7d934dec9debe916bdd4beb51e
* Send operations to project-history when resolving/unresolving comments
* small fixes
* added doc_id in web unit test
* Revert "added doc_id in web unit test"
This reverts commit f0b8251abfce17965d5e1b0e45d8784fcf1d9eed.
* fix mocked dependency in test
* wip: web unit tests
* document updater, reopen test
* document-updater tests
* format fix
* fix typo
* fix callsArgWith
* fix reopenThread calls in doc updater tests
* fix typos
* log error if chat api resolve failes
* log error when reopening thread
* sendStatus calls done() in tests
* using OError instead of logging
* removed timers
* preserve legacy endpoints
* update after merge
* Remove timer check in HttpControllerTest
* prettier
* added "legacy" in log
* remove metrics.timer
* fix promisify issues
* remove unused cb
GitOrigin-RevId: 849538c86996973a065c727835e93028e5429344
* Store editor selection on a per-user rather than per-project basis
* set code editor if rich_text=false
* format fix
GitOrigin-RevId: 8efc33b682de211162e674839e6b891ec04e542e
[web] If a particular bib is modified, index all the existing bib files instead of only indexing the modified bib file
GitOrigin-RevId: 2d0f965746c45142f0927d06a23759aa5ff52c1a