* Fix AI assist links based on annual/monthly switch
* use translations for annually discount
GitOrigin-RevId: eaf10720eb162c8ecbd891e8f73475db0c02b9f9
* [clsi] merge sandboxed compiles config from Server Pro and SaaS
* [clsi] reorder fallback env vars
Co-authored-by: Mathew Evans <matt.evans@overleaf.com>
* [server-pro] bump version of expected release with these changes
---------
Co-authored-by: Mathew Evans <matt.evans@overleaf.com>
GitOrigin-RevId: bada93fec89bcc3f2bab85b6e60b2e27de88b9c2
* [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
* Remove hacks that conditionally hid `ds-nav` survey
* Remove `getAssignment` of `sidebar-navigation-ui-update`
* Remove `hasDsNav`: make it true everywhere
* Remove dead code
* Update Footer so thin footer is shown in SP/CE
* Run `web$ make cleanup_unused_locales` & `bin/run web npm run extract-translations`
* [server-pro] fix learn wiki tests following DS navigation changes
* [server-pro] tests: remove logout action before switching session
* [server-pro] tests: fix logout test
* [server-pro] tests: use new css class for sidebar on project dashboard
* Revert "should add a documentation entry to the nav bar" test change
---------
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 93eb7a1b03bb4e54ad1770150d83778b8f7f6727
* Use OLIconButton for buttons lacking visible text
* Ensure correct ARIA attr for the Layout dropdown
* Add a tooltip to Layout button
* Add "Open dev tool" aria-label
* Add accessible names to the rail tab items
* Remove unused IconProps export
GitOrigin-RevId: 185937384cf5ec87b32238111d6621ac07789fb4
* Set `"type": "module"` in package.json
* Update imports to include file extensions
* Update imports to include file extensions in test files
* Convert webpack files to ESM
* Update configureStore.js for ESM
* Make static-assets CJS, and rename with .cjs
* Misc: update imports to `node:path`
* Add vitest; Remove chai, mocha, sinon, expect, jsdom
* Return promises in conversion-controller, to make testing easier
* Update tests to vitest syntax
* Fix JSON import syntax and babel config
* Import combobo from NPM
* Rename `app.js` to `app.cjs`
This should prevent errors in the production app (https://console.cloud.google.com/cloud-build/builds;region=us-east1/8b42465c-0d07-4a08-b856-aa18c13fae46?project=overleaf-ops)
### Before
```
node@ea395ce612a8:/overleaf/services/latexqc$ node app.js
[...]
ReferenceError: require is not defined in ES module scope, you can use import instead
This file is being treated as an ES module because it has a '.js' file extension and '/overleaf/services/latexqc/package.json' contains "type": "module". To treat it as a CommonJS script, rename it to use the '.cjs' file extension.
at file:///overleaf/services/latexqc/app.js:2:1
at ModuleJob.run (node:internal/modules/esm/module_job:234:25)
at async ModuleLoader.import (node:internal/modules/esm/loader:473:24)
at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:122:5)
```
### After
```
node@ea395ce612a8:/overleaf/services/latexqc$ node app.cjs
--------------------------
===> 😊 Starting Server . . .
===> Environment: production
===> Listening on port: 8082
--------------------------
```
* Rename `app.js` to `app.cjs` (Fixup forgotten one)
* Rename `app.js` to `app.cjs` (Fixup 2)
* Rename asset files to `.js`
Fixes:
```
Refused to execute script from 'https://staging-latexqc.ieee.org/assets/9d6cc24692a7f912ff06.cjs' because its MIME type ('application/octet-stream') is not executable, and strict MIME type checking is enabled.
```
GitOrigin-RevId: f0b618f7fc4062fb6bdc3779dfc5defc5f72d614
- use beforeEach to ensure tests do not interfere with each other
Notably, the 'when the ops come in a single linear order' test suite
had state-changing tests that were dependent on the correct order.
Also, the assigment of 'this.firstOpTimestamp' was in a test.
- consolidate populating project and doc ids
The doc reference in this.update was undefined.
- fix doc reference in updates
There were two misuses of 'doc_id' instead of 'doc'.
- Move mocking of MockWebApi.getDocument to the top and use
sinon.resetHistory() or sinon.restore() for controlling the stub.
- Add another test for simple transforming of updates
See 'when another client is sending a concurrent update'.
GitOrigin-RevId: 61ca8a1b0172920ad6ab1b604a9b9259cebddaad
* Replace `diskusage` by `fs` in clsi
* Replace `diskusage` by `fs` in clsi-cache
* Update disk space calculations to include block size in bytes
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Add warning comments about Docker-for-Mac fs stats being off by a factor
---------
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 02ea07e531b89bb3d10ddfe780348b19cbddad1f