442 Commits
Author SHA1 Message Date
claudeandClaude Sonnet 4.6 1c323351a2 fix: parse Quarto schema YAML errors and stop heading style bleeding
Build and Deploy Verso / deploy (push) Successful in 9m46s
Two unrelated fixes:

1. quarto-log-parser: handle the two-line Quarto schema-validation
   error format:
     ERROR: In file main.qmd
     (line 6, columns 24--27) Field "section-numbering" has value …
   Previously neither the file name nor the line number were extracted,
   so the error appeared without a red highlight. Now the first line
   stores the filename in pendingLocation and the second line creates
   the log entry with the correct file and line so the editor can jump
   to and highlight it.

2. headingTitleTokenizer: change contextual: false → contextual: true
   and guard with stack.canShift(HeadingTitle). With contextual: false
   Lezer calls the tokenizer speculatively at positions beyond the strict
   post-HeadingMark state; in some LALR-merged states the resulting token
   was accepted for body-text lines, making them render as bold-blue
   heading text. The contextual guard ensures the tokenizer only fires
   in the one state where HeadingTitle is legitimately valid.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 13:31:26 +00:00
claudeandClaude Opus 4.8 c9727a26e4 Python deps: smart missing-package hint + switch to .vrf requirements file
Build and Deploy Verso / deploy (push) Successful in 9m46s
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>
2026-06-02 14:19:01 +00:00
claudeandClaude Opus 4.8 96fc1a90a1 Surface missing-Python-package errors clearly in the Quarto log
Build and Deploy Verso / deploy (push) Successful in 14m45s
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>
2026-06-02 11:32:08 +00:00
claudeandClaude Opus 4.8 aa3fb56458 Parse Quarto logs and make the accent colour a single knob
Build and Deploy Verso / deploy (push) Successful in 11m55s
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>
2026-06-01 10:57:06 +00:00
Malik GlossopandCopybot 127d8273dc Merge pull request #29999 from overleaf/mg-svg-suggestion
Add svg package suggestion

GitOrigin-RevId: e2e29736a4aabb0916b619129c4afad4fd4b95b6
2025-12-03 09:06:10 +00:00
DavidandCopybot 1b5887d97f Merge pull request #28675 from overleaf/dp-pdf-preview-output-files-typescript-2
Convert output-files.js to typescript

GitOrigin-RevId: 32eb509f491cfd53de7f1b21b97861ba421566a5
2025-09-30 08:05:45 +00:00
Mathias JakobsenandCopybot 44f4c835c8 Merge pull request #27819 from overleaf/mj-human-readable-logs-typescript
[web] Convert logs parsing to typescript

GitOrigin-RevId: 7a338740db50c8a3a0b70dd2212083f17348d4f1
2025-08-14 08:05:15 +00:00
andrew rumbleandCopybot f871130773 Disable lint warnings for stubbed class
GitOrigin-RevId: bcee2d1ea4fcb5543fa31fd2174641e55d6c4d39
2025-06-11 08:06:00 +00:00
Jakob AckermannandCopybot 39110d9da9 [clsi-cache] check compiler settings before using compile from cache (#24845)
* [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
2025-04-16 08:05:35 +00:00
Jakob AckermannandCopybot dda94cdfbc [web] ensure that only a single socket.io transport is connected (#24422)
GitOrigin-RevId: 9397b0c85f0a889385d4761945e976ada7aa537b
2025-03-27 09:05:14 +00:00
4d857b7937 [web] editor connection fixes (#23807)
* [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
2025-02-25 09:04:58 +00:00
DavidandCopybot 1d648f9755 Merge pull request #23502 from overleaf/dp-pdf-typescript
Convert PDF Preview components to typescript

GitOrigin-RevId: 34594d21143727fa42b8b595aa12125a4dd7ae5e
2025-02-13 09:06:41 +00:00
Alf EatonandCopybot 71ab3a41ed Remove ColorManager (#22974)
GitOrigin-RevId: 32cb6fd599345eaf8e474553da5c6d3080575ee8
2025-01-29 09:04:48 +00:00
Alf EatonandCopybot 2fbb4615f9 Convert utility functions to TypeScript (#22658)
* 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
2025-01-16 09:05:36 +00:00
Alf EatonandCopybot 47af13c8a8 Delete unused iconTypeFromName file (#22662)
GitOrigin-RevId: 3c768cacebcf229d932a7b03a4068291e3cf60b1
2025-01-14 09:04:58 +00:00
Alf EatonandCopybot 9659294459 Add hint_unicode_character rule (#21593)
GitOrigin-RevId: ba2c6f49c3b20c6fb4708dfd80000a216c3c4a77
2024-11-08 09:04:53 +00:00
30860ae9f9 [web] Migrate PDF Logs to BS5 (#21062)
* [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
2024-10-23 08:06:32 +00:00
Alf EatonandCopybot 607b3e3494 feat: making highlighting of errors more specific (#19963)
GitOrigin-RevId: 63bc147e18e80c1e070722bc70114f8fca8509ae
2024-09-04 08:04:48 +00:00
Alf EatonandCopybot 3453f4cb94 Remove trailing slash from log hint (#18998)
GitOrigin-RevId: d95ffde59c5a7c58aed14a542b8dad3085405c2d
2024-06-24 12:02:52 +00:00
Jakob AckermannandCopybot aa480a2663 Merge pull request #18898 from overleaf/jpa-no-window
[web] migrate from window attributes to getMeta

GitOrigin-RevId: 3dcf1ab6b01155e5e4abeb3e78d0fa9053e055bc
2024-06-19 08:04:21 +00:00
Alf EatonandCopybot b9a8a7f7ec Move AI provider usage to the backend (#18562)
GitOrigin-RevId: 4f66c6576571c4fbb7381d8d0e34f2e468d6f34f
2024-06-18 08:04:09 +00:00
Alf EatonandCopybot c24ace801b Remove Angular (#17534)
GitOrigin-RevId: 7a0d45e17d9905fa75569e2d19ca59caa4a41565
2024-06-06 08:04:09 +00:00
Liangjun SongandCopybot 432fbd3c40 Revert "[web]implement in-house sha1 hash function (#18651)" (#18703)
This reverts commit aa3f5ab3ff412696c715521381eebf176f503197.

GitOrigin-RevId: b2be3907439525f3ed49baec0b438ba35ea1663c
2024-06-05 08:03:57 +00:00
4101f4efeb [web]implement in-house sha1 hash function (#18651)
* implement in-house sha1 hash function

* add comment

* add test description

Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>

* add more tests

* dedupe test strings and remove unneeded toString calls

---------

Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>
GitOrigin-RevId: aa3f5ab3ff412696c715521381eebf176f503197
2024-06-05 08:03:42 +00:00
Liangjun SongandCopybot c22802eac9 implement in-house md5 hash function (#18647)
* implement in-house md5 hash function

* format

* add lisence information

GitOrigin-RevId: 1416654e8c27ec7a0d6ca632e6ece59c830ef561
2024-06-04 08:04:50 +00:00
Domagoj KriskovicandCopybot 218a4538c1 [web] support for reverting binary files (#18033)
* [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
2024-05-30 08:04:20 +00:00
Alf EatonandCopybot 9d6754f546 Add citepalias and citetalias (#18272)
GitOrigin-RevId: 60716cd30141f3079e9402140a5e40665bbe685f
2024-05-17 08:04:20 +00:00
Jakob AckermannandCopybot 9c5eb9630b Merge pull request #18222 from overleaf/jpa-socket-io-mock
[web] replace socket.io-mock with simple EventEmitter based interface

GitOrigin-RevId: 012e4263367a83e16efea3947f310a2de9a65279
2024-05-09 08:05:14 +00:00
Alf EatonandCopybot 8921b8484e Merge pull request #18140 from overleaf/ae-log-rules
Add new regular expressions for matching compiler error messages

GitOrigin-RevId: ab6e17951c29c2a68b385b7e0cb77abf2d22281d
2024-05-01 08:04:27 +00:00
Alf EatonandCopybot 1f14746111 Remove latex-log-parser split test (#17999)
GitOrigin-RevId: 5accb0e5fc4c1ecce563f1d6f991de8c8633308b
2024-04-23 08:05:16 +00:00
Andrew RumbleandCopybot 6100954635 Merge pull request #17863 from overleaf/ar-set-socket-disconnect-timeout-to-match-wire-value
Set socket disconnect timeout to match wire value

GitOrigin-RevId: b3bfc460090b872500b55b0d5e2167b828ef31f4
2024-04-16 08:04:22 +00:00
Domagoj KriskovicandCopybot 8bde496da4 Send operations to project-history when resolving/unresolving comments (#17540)
* 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
2024-04-10 08:04:08 +00:00
Alf EatonandCopybot 6cc2db3cdd Merge pull request #17525 from overleaf/ae-upgrade-prettier
Upgrade Prettier to v3

GitOrigin-RevId: 6f1338f196408f3edb4892d5220ad3665ff1a5bc
2024-03-26 09:04:05 +00:00
Miguel SerranoandCopybot ee4b8c0868 Merge pull request #17400 from overleaf/msm-fix-permissions-disconnection
[web] Fix editor still enabled during disconnection

GitOrigin-RevId: 55bf7a6a8a77850c86011f1e70930b354a9d7e98
2024-03-06 17:27:29 +00:00
Jakob AckermannandCopybot 63520c7076 Merge pull request #16859 from overleaf/jpa-sharelatex-cleanup
[misc] ShareLaTeX cleanup - high impact

GitOrigin-RevId: 6dcce9b0f15e30f7afcf6d69c3df36a369f38120
2024-02-09 09:04:11 +00:00
Jakob AckermannandCopybot 82cde31619 Merge pull request #16808 from overleaf/jpa-wsUrl
[web] move wsUrl into meta tag

GitOrigin-RevId: c94638759b79b8090b8b3cfa81baa718a69839e1
2024-02-02 09:03:35 +00:00
ilkin-overleafandCopybot fc3fb7318a Merge pull request #16493 from overleaf/ii-rp-mini-page-load
[web] Prevent opening and closing of the mini review panel

GitOrigin-RevId: 25297a24ddfb2654b00efa8d33b825620f859147
2024-01-17 09:03:17 +00:00
Mathias JakobsenandCopybot d7a4061486 Merge pull request #16397 from overleaf/mj-logparser-missed-error
[web] Stop wrapping potential errors into previous log lines

GitOrigin-RevId: 892fc19e2e7886afa3dc011315879fa992f94877
2024-01-08 09:04:35 +00:00
Domagoj KriskovicandCopybot da2f7ff153 Store editor selection on a per-user rather than per-project basis (#16246)
* Store editor selection on a per-user rather than per-project basis

* set code editor if rich_text=false

* format fix

GitOrigin-RevId: 8efc33b682de211162e674839e6b891ec04e542e
2023-12-19 09:04:31 +00:00
Mathias JakobsenandCopybot 1a6f3fc256 Merge pull request #16253 from overleaf/mj-human-readable-logs-fixes
[web] Fix incorrect error log parsing and imprecise package recommendations

GitOrigin-RevId: a0b9c6c51ebf680bb77be88167ab6d35eaa8fa70
2023-12-19 09:04:07 +00:00
ilkin-overleafandCopybot 5dbe1a6121 Merge pull request #16114 from overleaf/ii-rp-track-changes-for-users
[web] Review panel track changes for users fix

GitOrigin-RevId: 011b8ad5f9bef989da7802946241bc9be1c4f066
2023-12-08 09:04:28 +00:00
Alf EatonandCopybot 17ac0eb16b Remove unused Angular code from "main" and "ide" endpoints (#15868)
GitOrigin-RevId: dc7ed968c60ae6c64d3cd6d2ec47c93e8d32d7db
2023-12-06 09:04:45 +00:00
Jakob AckermannandCopybot 6b19cae812 Merge pull request #16001 from overleaf/jpa-web-real-time-auto-join-only
[web] drop support for legacy real-time connection

GitOrigin-RevId: d03aae6392a8d920239647ab198d66d6c75f61a0
2023-11-30 09:03:49 +00:00
Alf EatonandCopybot 19a17060ab Remove history-related Angular code (#15932)
GitOrigin-RevId: e4fafddd67909a0e709439ddbe560c66e2629bdb
2023-11-29 09:04:17 +00:00
Alf EatonandCopybot d40de2018c Remove Angular/Pug review panel code (#15935)
GitOrigin-RevId: de782d4b47d987f6434a34bea487568b269e8d85
2023-11-29 09:04:13 +00:00
Alf EatonandCopybot 9875e55a27 Remove Ace (#14299)
GitOrigin-RevId: ec8788fdbc8aea73ca33ec2810f4e588fe9476b5
2023-11-29 09:04:08 +00:00
Mathias JakobsenandCopybot 21c61be543 Merge pull request #15781 from overleaf/ds-react-history-split-test-tear-down
History View React - Split test tear down

GitOrigin-RevId: 6095ea94a74fc96c7031a4d1bbefdc6211cc934c
2023-11-24 09:04:14 +00:00
Jakob AckermannandCopybot 6b2daed903 Merge pull request #15843 from overleaf/jpa-download-events
[web] add additional event tracking

GitOrigin-RevId: 877f92db41efff017db370ec75b8d1f861eed4f2
2023-11-21 09:04:28 +00:00
Tim DownandCopybot 13f246a85e Merge pull request #15342 from overleaf/td-remove-file-tree-manager-in-react
Remove use of FileTreeManager in React code

GitOrigin-RevId: f15bc9b4f84e0f65709b9850ed8cc5d3637efa7f
2023-10-27 08:03:10 +00:00
Alf EatonandCopybot 9868ce46ec Fix "add new comment" keyboard shortcut (#15404)
GitOrigin-RevId: d675abbf0977d5c60f332136e98c55a765cf87e9
2023-10-25 08:04:37 +00:00