Commit Graph

178 Commits

Author SHA1 Message Date
Jakob Ackermann
3586b37491 [web] Remove clsi-cache-prompt/survey, split-tests and events (#29510)
* [web] Remove clsi-cache-prompt/survey and split-tests

* [web] Remove initial 50/50 clsi-cache split-test

* [web] Remove synctex-downloaded-from-cache event

* [web] Remove fallback-to-clsi-cache event

* [saas-e2e] fix tests with clsi-cache enabled

GitOrigin-RevId: b5cf2ab073dc866fe398b81fd5afe46422134c80
2025-11-05 09:06:59 +00:00
Jakob Ackermann
f3f6a8a8e0 [web] add clsi-cache prompts (#29281)
* [web] add clsi-cache prompts

* [web] add new editor variant to segmentation

* [web] add tests for useNewEditorVariant

* [web] adjust start of using clsi-cache in split-test

GitOrigin-RevId: c9c5b1eff2ceefb65ef82516d9074cb971cb4c48
2025-10-24 08:05:42 +00:00
David
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
David
75030aa410 Merge pull request #27928 from overleaf/dp-pdf-caching-typescript-2
Convert pdf-caching file to typescript

GitOrigin-RevId: 9acd2fc0697490008d82abfad0994df362814bad
2025-09-09 08:06:57 +00:00
David
0b76174936 Merge pull request #27989 from overleaf/dp-pdf-caching-transport
Re-convert pdf-caching-transport to typescript

GitOrigin-RevId: f0033afd5d46bc1da00a0d815b946225a804ca19
2025-08-20 08:05:38 +00:00
David
016fcffd56 Merge pull request #27987 from overleaf/dp-pdf-caching-revert
Revert "Merge pull request #27892 from overleaf/dp-pdf-caching-typescript"

GitOrigin-RevId: 036a05cfe5db754d1f1050bd58d2cd605550bc18
2025-08-19 08:05:42 +00:00
David
9f7c1f7a69 Merge pull request #27892 from overleaf/dp-pdf-caching-typescript
Convert pdf-caching-transport to typescript

GitOrigin-RevId: 161cac41eebd9d92804fad6bce85a863573b133e
2025-08-19 08:05:31 +00:00
David
3c1e14b04a Merge pull request #27871 from overleaf/dp-pdf-preview-typescript-3
Convert pdf-preview metrics to typescript

GitOrigin-RevId: be8f9f97915e0681f9db4f047ed7af27afa080cf
2025-08-14 08:06:16 +00:00
David
4e15b8fbf5 Merge pull request #27868 from overleaf/dp-pdf-preview-2-typescript
Convert DocumentCompiler class to typescript

GitOrigin-RevId: 6a0d72f7e0cc319c9166ee6236380f6af5187dbb
2025-08-14 08:06:12 +00:00
David
95014d005a Merge pull request #27846 from overleaf/dp-pdf-preview-typescript
Convert several pdf-preview files to typescript

GitOrigin-RevId: afa7f7fce8fec2a36090a259783a586960ccb291
2025-08-14 08:05:47 +00:00
Antoine Clausse
40136785dd [web] Move pdf.* scopes to react states (#26599)
* Move `pdf.logEntryAnnotations` to react state

* Remove unused scope `pdf.downloadUrl`

* Remove unused scope `pdf.url`

* Move `pdf.uncompiled` to react state

* Move `pdf.logEntries` to react state

* Remove `pdf` from `mockScope`

* Fix test: "renders annotations in the gutter"

GitOrigin-RevId: bf1d0ec30cc0ffcc1177871651483c296ed08baf
2025-07-03 08:04:58 +00:00
andrew rumble
25675ce2ba Remove unused params from destructuring
GitOrigin-RevId: e47a16e2d99e923c314fd0fa2220c19b7b2c9b51
2025-06-11 08:05:56 +00:00
Jakob Ackermann
ec1bd69605 [clsi-cache] remove non sharded instances (#25645)
* Revert "[clsi-cache] only use sharding from updated project editor tabs (#25326)"

This reverts commit 1754276bed3186c0536055c983e32476cc90d416.

* [clsi-cache] remove non sharded instances

GitOrigin-RevId: aa3ac46140dfc1722a3350cf7071e5b11af61199
2025-05-16 08:05:02 +00:00
Alf Eaton
c942b490ab Clamp PDF highlights to the extents of the page container (#25498)
GitOrigin-RevId: cc2e30b04b9c57b2ea6038bee1e06467b785386f
2025-05-14 08:06:16 +00:00
Jakob Ackermann
b3a1341545 [web] settle on a single split-test for the clsi-cache rollout (#25399)
* [web] settle on a single split-test for the clsi-cache rollout

Use the split-test that was used for rolling out the writes so that we
can use their already populated caches.

* [clsi-cache] fix non-sharded clsi-cache in dev-env

GitOrigin-RevId: 6ebd6369183342fe6d5e325b760d011fd1d57516
2025-05-08 08:06:37 +00:00
Jakob Ackermann
6881ba956a [clsi-cache] only use sharding from updated project editor tabs (#25326)
GitOrigin-RevId: 1754276bed3186c0536055c983e32476cc90d416
2025-05-07 08:06:39 +00:00
Jakob Ackermann
5ce1685b5b [clsi-cache] shard each zone into three instances (#25301)
* [clsi-cache] shard per zone into three instances

Keep the old instance as read fallback. We can remove it in 4 days.

Disk size: 2Ti gives us the maximum write throughput of 240MiB/s on a
N2D instance with fewer than 8 vCPUs.

* [clsi] fix format

* [k8s] clsi-cache: bring back storage-classes

* [k8s] clsi-cache: fix reference to zonal storage-classes

* [k8s] clsi-cache: add logging configs

* [clsi] improve sharding

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [clsi] fix sharding

Index needs to be positive.

* [clsi] fix sharding

The random part is static per machine/process.

* [clsi] restrict clsi-cache to user projects

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [k8s] clsi-cache: align CLSI_CACHE_NGINX_HOST with service LB

---------

Co-authored-by: Brian Gough <brian.gough@overleaf.com>
GitOrigin-RevId: 1efb1b3245c8194c305420b25e774ea735251fb3
2025-05-07 08:06:16 +00:00
Alf Eaton
247b4e274d Upgrade PDF.js to v5 (#24948)
* Reapply "Upgrade PDF.js to v5 (#24646)" (#24946)
* Upgrade core-js, caniuse-lite and babel

GitOrigin-RevId: 63398189301b5f5adc8a17b332d92dccfc26d612
2025-04-28 08:05:09 +00:00
Alf Eaton
9d290ae234 Add polyfills for AbortSignal.any and AbortSignal.timeout (#24958)
GitOrigin-RevId: d0fc041054e17f50b5b19343e06e857bd9635902
2025-04-28 08:05:04 +00:00
Jakob Ackermann
8ed650f57a [web] make clsi-cache a premium feature (#25075)
* [web] stopOnFirstError=true does not conflict with =false locally

Allow stopOnFirstError to be enabled in the compile from cache and
disabled locally.
Compiles that passed with stopOnFirstError=true will also pass with
stopOnFirstError=false. The inverse does not hold, and we need to
recompile.

* [web] record event when using compile from cache

* [web] record event when falling back to clsi-cache

* [web] make clsi-cache a premium feature

* [k8s] clsi-cache: increase disk size for beta rollout

NOTE: As this is a premium feature and paid servers run in zones c+d, we
do not need to scale up clsi-cache in zone b for now.

* [web] enable full sampling of compile-result-backend events

* [web] fix frontend tests

* [web] be more verbose when determining access to clsi-cache feature

GitOrigin-RevId: 6fd663e16085187876eb225f7f33eeeaf69d2b2a
2025-04-25 08:05:33 +00:00
Jakob Ackermann
ee2338a33b [web] align criteria for fallback to clsi-cache (#24970)
* [web] rename helper for browser cache bug, avoid confusion w/ clsi-cache

* [web] align criteria for fallback to clsi-cache

Notably, avoid the fallback from inside pdf-caching when disabled.

GitOrigin-RevId: 3fd918de14eef59c45c28cc5b5e256048cb91528
2025-04-18 08:05:25 +00:00
Alf Eaton
34d5564abc Revert "Upgrade PDF.js to v5 (#24646)" (#24946)
This reverts commit 3ef46af6363aab5b5b007b6c9d72decae65a36ab.

GitOrigin-RevId: 9c3671b3ff196bb62ff547210a1138cb603d6791
2025-04-17 08:05:15 +00:00
Alf Eaton
a1098a921c Upgrade PDF.js to v5 (#24646)
GitOrigin-RevId: 3ef46af6363aab5b5b007b6c9d72decae65a36ab
2025-04-17 08:04:59 +00:00
Jakob Ackermann
b831a0b3f7 [clsi-cache] frontend (#24389)
* [clsi-lb] forward ?clsiserverid=cache requests to clsi-cache

* [web] use clsi-cache in frontend

* [web] upgrade compile from cache to full compile when triggered inflight

* [web] fix pdf-js-viewer.spec.tsx tests -- add ?clsiserverid=foo to url

* [web] fix renamed reference after merge

* [web] fix download of other output files and use specific build

* [web] consolidate validation of filename into ClsiCacheHandler

* [web] remove unused projectName from getLatestBuildFromCache

* [web] avoid hitting the same clsi-cache instance first all the time

* [web] update documentation

GitOrigin-RevId: d48265a7ba89d6731092640e1492bc9f103f5c33
2025-04-10 08:05:22 +00:00
Jakob Ackermann
b538d56591 [clsi-cache] backend (#24388)
* [clsi-cache] initial revision of the clsi-cache service

* [clsi] send output files to clsi-cache and import from clsi-cache

* [web] pass editorId to clsi

* [web] clear clsi-cache when clearing clsi cache

* [web] add split-tests for controlling clsi-cache rollout

* [web] populate clsi-cache when cloning/creating project from template

* [clsi-cache] produce less noise when populating cache hits 404

* [clsi-cache] push docker image to AR

* [clsi-cache] push docker image to AR

* [clsi-cache] allow compileGroup in job payload

* [clsi-cache] set X-Zone header from latest endpoint

* [clsi-cache] use method POST for /enqueue endpoint

* [web] populate clsi-cache in zone b with template data

* [clsi-cache] limit number of editors per project/user folder to 10

* [web] clone: populate the clsi-cache unless the TeXLive release changed

* [clsi-cache] keep user folder when clearing cache as anonymous user

* [clsi] download old output.tar.gz when synctex finds empty compile dir

* [web] fix lint

* [clsi-cache] multi-zonal lookup of single build output

* [clsi-cache] add more validation and limits

Co-authored-by: Brian Gough <brian.gough@overleaf.com>

* [clsi] do not include clsi-cache tar-ball in output.zip

* [clsi-cache] fix reference after remaining constant

Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>

* [web] consolidate validation of filename into ClsiCacheHandler

* [clsi-cache] extend metrics and event tracking

- break down most of the clsi metrics by label
  - compile=initial - new compile dir without previous output files
  - compile=recompile - recompile in existing compile dir
  - compile=from-cache - compile using previous clsi-cache
- extend segmentation on compile-result-backend event
  - isInitialCompile=true - found new compile dir at start of request
  - restoredClsiCache=true - restored compile dir from clsi-cache

* [clsi] rename metrics labels for download of clsi-cache

This is in preparation for synctex changes.

* [clsi] use constant for limit of entries in output.tar.gz

Co-authored-by: Eric Mc Sween <eric.mcsween@overleaf.com>

* [clsi-cache] fix cloning of project cache

---------

Co-authored-by: Brian Gough <brian.gough@overleaf.com>
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
Co-authored-by: Eric Mc Sween <eric.mcsween@overleaf.com>
GitOrigin-RevId: 4901a65497af13be1549af7f38ceee3188fcf881
2025-04-10 08:05:17 +00:00
Jakob Ackermann
54f5c3115c [web] convert file-list to typescript (#24354)
* [web] convert file-list to typescript

* [web] add type annotation for clsiServerId without providing default

Co-authored-by: David Powell <david.powell@overleaf.com>

---------

Co-authored-by: David Powell <david.powell@overleaf.com>
GitOrigin-RevId: 5ecb79c2540a3e46e296c6bf7f8573fb65febc3f
2025-03-24 10:46:48 +00:00
Alf Eaton
02cd5d2f2f Reduce PDF.js maxCanvasPixels in Safari (#23781)
GitOrigin-RevId: 3b75d85bb4af33e4d4d40ee6f1dc9cf375f1435f
2025-02-26 09:04:05 +00:00
David
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 Eaton
8406807552 Always wait for buffered ops before compiling (#23336)
GitOrigin-RevId: 1e586979897fb01378e449fe9dc9c7d269de83bb
2025-02-05 09:05:19 +00:00
Alf Eaton
f1e1d55d8c Merge pull request #22964 from overleaf/ae-project-search-flush
Ensure that open docs are flushed before running full project search

GitOrigin-RevId: 6707cf982018908a37957503add73a085c749f61
2025-01-24 09:05:05 +00:00
Alf Eaton
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
David
c0ccb57100 Merge pull request #22756 from overleaf/dp-preload-pdf-presentation
Load full pdf document in background when entering presentation mode

GitOrigin-RevId: 514ef838b155a7f13f3bc12690aef45fd3f2c3fc
2025-01-14 09:05:20 +00:00
David
d6e763bc57 Merge pull request #22738 from overleaf/dp-new-editor-pdf
Drop in PdfPreview into new editor skeleton

GitOrigin-RevId: c88806904bd2534690a1540d7e39c5f81ab65709
2025-01-09 09:05:47 +00:00
Alf Eaton
5ec52e2e5b Avoid calling destroy on the PDF.js loading task (#21277)
GitOrigin-RevId: b315e78ff739d301583f2139109f3244abceade8
2024-10-25 08:05:05 +00:00
Alf Eaton
620f31d6a6 Restore singleton pdfCachingTransportFactory (#21194)
GitOrigin-RevId: 3c1d71ba4fdd07f0774534fbe3a99b2d47dfa962
2024-10-18 08:05:39 +00:00
Alf Eaton
53d6b4dfd0 Set workerPublicPath in webpack config (#20629)
GitOrigin-RevId: 3fba33a6b52bf2a91f3126efc9d76f6f1dfbc1c4
2024-10-14 11:06:45 +00:00
Alf Eaton
17e8c70069 Use non-legacy build of PDF.js
GitOrigin-RevId: 473dc8657bac01fc4fc7b94565b10ff939e7fcdd
2024-10-14 11:01:04 +00:00
Alf Eaton
df6147bb4d Convert PDF.js code to TypeScript
GitOrigin-RevId: 840bc48816d78497131b927522b4f6f7940bb0c4
2024-10-14 11:00:45 +00:00
Alf Eaton
5e7f4feeb8 Remove pdfjs-dist split test
GitOrigin-RevId: 39c8a54921c2b541a5bbe3670e1baa6fd9d5f745
2024-10-14 11:00:36 +00:00
andrew rumble
3fa35ef03a Share ignore logic between web and clsi
GitOrigin-RevId: c4ae306413efb71989d2db410c3859cb69b3d5de
2024-09-24 08:05:01 +00:00
Mathias Jakobsen
a807a810e6 Merge pull request #20297 from overleaf/mj-stream-bib-log
[web] Stream .blg files before parsing

GitOrigin-RevId: 2e7a16a19e62fc32bbcb7fe35bed745b938e6963
2024-09-18 08:04:51 +00:00
Alf Eaton
607b3e3494 feat: making highlighting of errors more specific (#19963)
GitOrigin-RevId: 63bc147e18e80c1e070722bc70114f8fca8509ae
2024-09-04 08:04:48 +00:00
David
de3661f7c3 Merge pull request #20035 from overleaf/dp-pdf-fit-height
Update zoom on window resize when pdf zoom is set to page-height

GitOrigin-RevId: 19b963ffbd9da95c0c97642c7cd2195578c295d3
2024-08-21 08:05:20 +00:00
Alf Eaton
a71e61791c Merge pull request #19830 from overleaf/ae-iterator-polyfill
Always use ReadableStream asyncIterator polyfill

GitOrigin-RevId: 660a7316a549fe4ce4fc6bd1ef1a7d7e58759f14
2024-08-08 08:04:26 +00:00
Alf Eaton
5067c0b22d Merge pull request #19712 from overleaf/ae-fetch-first-log-part
Stream and truncate large log files

GitOrigin-RevId: 9d9058d1cc0b3c7a56b25ff34f7a41bfe3e59772
2024-08-07 08:05:37 +00:00
Alf Eaton
21e458df2a Improve PDF double-click listener (#19556)
GitOrigin-RevId: 3d8f316481d8be30ffe1a04a270b978b4720ccbe
2024-07-30 08:05:03 +00:00
Alf Eaton
8abda70bfd Use correct variable for previous rule counts (#19218)
GitOrigin-RevId: 5245c49ca5ea5dd6599d9a05c5e61b2bd7caa544
2024-07-03 08:04:31 +00:00
Alf Eaton
9a8b76c24f Add compile log rule deltas to the compile-log-entries event (#19169)
GitOrigin-RevId: 976736ecacbb79ef9c91c4861952a7af8532190e
2024-07-02 08:04:48 +00:00
Alf Eaton
bee698c01d Updates to the AI error assistant (#19065)
* Only show the AI error assistant to users with write permission on the project
* Fix line number in searchDocLines
* Abort the request after 60 seconds
* Move comment
* Jump to file + line when suggestion line number is clicked
* Set tool_choice: 'required'
* Fix handling of suggestLineChange
* Tidy up getDocLines
* Avoid showing Suggest Fix button in gutter marker for typesetting warnings
* Log request errors
* Fix prefixed function name
* Update tool description
* Tweak the prompt in an attempt to improve the line number
* Reject if the total message content is too large
* Change the structure of the suggested change
* Reduce line highlight
* Fix change highlighting on deletion

GitOrigin-RevId: afde096e547050b8518195ef51b68983bc3b0be3
2024-06-24 12:05:51 +00:00
Jakob Ackermann
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