Commit Graph
25644 Commits
Author SHA1 Message Date
Brian Gough df7a9159c2 normalise image counts in compile-with-optimizable-pngs analytics events (#36308)
GitOrigin-RevId: 6049161196fab1b2e4c3d9aa811b97e3e529aca2
2026-09-17 11:49:54 +00:00
Tom Wells 88fb4c48b2 Merge pull request #36290 from overleaf/copilot/update-library-empty-state-illustration
Update library items for better guidance

GitOrigin-RevId: 15f60589f721a8243110dda58ef7b1134e2c5275
2026-09-17 11:49:50 +00:00
Antoine ClausseandMathias Jakobsen 87fd22cefc [web] Fix negative AI quota countdown after reset period elapses (#35690)
* Fix negative AI quota countdown after reset period elapses

Backend (`FeatureUsageRateLimiter`, `TokenUsageRateLimiter`): once the
24h period had lapsed, `remainingUsage`/`remainingTokens` reset to the
full allowance but `resetDate` kept pointing at the old `periodStart +
24h` (i.e. in the past). Advance to `now + 24h` in that case.

Frontend (`NewPlanPaywall`, `ErrorGetPremium`): the "wait X hours and Y
minutes" copy computed `restoreTime - now` without clamping, so a past
`restoreTime` produced negative hours/minutes (users saw "wait -118
hours and -35 minutes"). Clamp to 0.

* Address PR review on quota reset fix

- Keep `resetDate` tied to the stored `periodStart + PERIOD` rather
  than jumping to `now + PERIOD` when the period has lapsed. The
  moving-target variant unnecessarily reinterpreted a stable field
  (existing consumers such as `use-ai-access-gate` check whether the
  reset date is in the past).
- Clamp `remainingUsage` / `remainingTokens` at 0 so a concurrent
  over-usage never leaks a negative count.
- Align the boundary check with `_checkRateLimit` / `checkUsage`
  (inclusive `<=`).
- Cover the period boundary and the clamp in unit tests for both
  `FeatureUsageRateLimiter` and `WorkbenchRateLimiter`.

* Truncate test fixtures to whole seconds

`resetDate` is serialized with `Date.toString()`, which has second
resolution, so fixtures with a millisecond component failed the
boundary assertions.

* Revert code changes; keep tests that document the bug

The fixes masked the symptom (negative countdown) without addressing
the underlying issue, and it is not fully understood yet. Revert the
rate limiters and the writefull paywall components to their original
behaviour, and instead pin the current behaviour in tests:

- `it.fails` tests document that `remainingUsage`/`remainingTokens`
  go negative when usage exceeds the allowance — these flip red when
  the bug is fixed, at which point they should become plain `it`.
- The lapsed-period tests assert (with explanatory comments) that
  `resetDate` keeps pointing at the end of the lapsed period, which is
  the server-side ingredient of the negative-countdown support ticket.

* Reapply quota fixes

Restores the post-review state of the rate limiters (clamp remaining
counts at 0, inclusive period boundary, resetDate tied to periodStart)
and the writefull paywall components (clamp countdown at 0).

Tests intentionally untouched in this commit; the two `it.fails` tests
now need flipping to plain `it` in a follow-up.

* Flip bug-documenting tests to plain assertions

The clamp fixes are reapplied, so the `it.fails` tests now assert the
fixed behaviour directly. Trim the explanatory comments.

* Set resetDate to `Date.now() + PERIOD_IN_MILLISECONDS` instead of the expired/stale date.

Co-authored-by: Mathias Jakobsen <mathias.jakobsen@overleaf.com>

* Update lapsed-period tests for the fresh resetDate

`resetDate` is now `Date.now() + PERIOD` once the period has lapsed, so
assert an approximately-fresh date instead of the stale period end.

---------

Co-authored-by: Mathias Jakobsen <mathias.jakobsen@overleaf.com>
GitOrigin-RevId: ad39627ab9e5ceccb2a61443b2b7d39c68600594
2026-09-17 11:49:47 +00:00
Brian Gough 6b3d95cea4 add optimisable png count and compile stats to compile-with-optimizable-pngs event (#36279)
* add count of optimisable pngs to HistoryResourceWriter

* add optimisable png count and compile stats to compile-with-optimizable-pngs event

GitOrigin-RevId: 5c528d727473ec2d3082845d8d5b60844f3434f6
2026-09-17 11:49:41 +00:00
Anna Claire Fields b8339c5b4a history-v1: handle ERR_STREAM_PREMATURE_CLOSE in streamZip (#36135)
GitOrigin-RevId: 963b65583da58034afe304206f6e0c66e9186b06
2026-09-17 11:49:33 +00:00
Andrew Rumble d9e7900246 Merge pull request #35553 from overleaf/copilot/fix-split-test-calculator-event-suggestions
Fix split-test calculator event suggestions by scoping event queries and deduping in-flight lookups

GitOrigin-RevId: 2afebbd645218770cb3a8fbd615038df215dd9ed
2026-09-17 11:49:27 +00:00
Mathias Jakobsen 77f208633b Merge pull request #36233 from overleaf/mj-command-palette-events
[web] Add events to command palette usage

GitOrigin-RevId: 1bb40c20f3228027ee4470dc84fa2983bb910cbf
2026-09-17 11:49:19 +00:00
David 3325724a9e Merge pull request #36258 from overleaf/dp-fix-library-badge
Use feature flag config for library badge rather than hard-coding

GitOrigin-RevId: a53bd7c739d2d8e6c5dbd5bda1fbc3a87f87b280
2026-09-17 11:49:12 +00:00
Jakob Ackermann 49969f6e0d [history-v1] adopt strict zod types and extend test coverage (#36089)
GitOrigin-RevId: 7bdffe2c05c7c17be6eb3e4296d8df05d650c53e
2026-09-17 11:49:08 +00:00
roo hutton b886c0b266 Merge pull request #35836 from overleaf/rh-prices-split
[web] Update monthly plan prices for new subscriptions with split test

GitOrigin-RevId: 42d0adaf68647adc93f4c05d5ddeefb356753db2
2026-09-17 11:49:04 +00:00
Kristina 2e1a313ccd [web] resize mentions dropdown styles (#36172)
GitOrigin-RevId: e0f4ff0d51f168569ad54fa896ab25c399278ebb
2026-09-17 11:48:53 +00:00
Kristina c5f3726eda [web] update comment placeholder for mentions (#36167)
GitOrigin-RevId: c702e00004d8dfcf243425503459f558973a657b
2026-09-17 11:48:50 +00:00
Jakob Ackermann 2e8f6f0d03 [chat] adopt strict zod types (#36102)
GitOrigin-RevId: eb3e245599f5db2d29366ce5d8e0993ec6b20338
2026-09-17 11:48:40 +00:00
Jakob Ackermann 6ca58edf72 [web] add infrastructure level zod change (#36190)
* [web] add infrastructure level zod change

* [web] set req validation mode for tests to 'enforce'

GitOrigin-RevId: 6dbc8bff7ed9f89045c398df93d84bca589de4e9
2026-09-17 11:48:19 +00:00
Antoine Clausse 86bab9dc99 Merge pull request #35724 from overleaf/ac-wallet-payment-method-analytics
[web] Add Stripe wallet payments (Apple Pay / Google Pay) in analytics and remove conversion to "card"

GitOrigin-RevId: f6d404d35eb108d7ddaf8ca1b6c2164cb5100c9c
2026-09-17 11:48:15 +00:00
Jakob Ackermann 731ed50f78 [clsi] address zod violations (#36199)
* [editor-core] gracefully handle no-op TextOperation

* [web] avoid sending sync to pdf requests without a ?file

* [validation-tools] log deeper nested violations

* [editor-core] fix round trip of EditNoOperation

* [web] use custom error for sync to pdf w/o file, fix tests

* [validation-tools] include request params in log msg for violation

* Revert "[editor-core] gracefully handle no-op TextOperation"

This reverts commit c1d37261d5db72b37dbf39428c54edcfb5423f41.

* [web] gracefully handle rejected sync to pdf from context menu

GitOrigin-RevId: 21de7dc96b23575b0d67b6eb0c68ed9c2f86292b
2026-09-17 11:48:12 +00:00
David 761d4efc1f Merge pull request #36114 from overleaf/dp-merge-library-bibtex-flags
Merge bibtex-visual-editor into overleaf-library feature flags

GitOrigin-RevId: 26f8325d68367d0e33236e9f92ab6dc76f76987d
2026-09-17 11:48:08 +00:00
Davinder Singh a0c923aea8 fix download filename in unable-to-sync modal error message (#36113)
GitOrigin-RevId: fdc891962b24a096a1d54a73fcb0d7af6d504729
2026-09-17 11:48:02 +00:00
Davinder SinghandMathias Jakobsen b04bdd2944 [WEB] Only show affected lines plus one above/below in the diff viewer (#36052)
* adding trimmed diff view with context lines in unable-to-sync modal

* addressing co pilot comments

* Update services/web/frontend/js/features/ide-react/components/modals/diff-viewer.tsx

Co-authored-by: Mathias Jakobsen <mathias.jakobsen@overleaf.com>

---------

Co-authored-by: Mathias Jakobsen <mathias.jakobsen@overleaf.com>
GitOrigin-RevId: de5a01048b0609288acf01196ff0a0f069e8bed3
2026-09-17 11:47:59 +00:00
Davinder Singh 98b79d9532 [WEB] Simplify "New project" dropdown (#34290)
* Simplify the new project dropdown

* Simplify the New project dropdown

* removing artefact of rebase

GitOrigin-RevId: e7e4dc48c10f2297abcd7c5b489ff2308bf9e18b
2026-09-17 11:47:56 +00:00
Jakob Ackermann deec57e54e [chat] gracefully handle projects without threads/messages when cloning (#36101)
GitOrigin-RevId: 0623a4b801f469b7d55412f2be8aac782cb6ab19
2026-09-17 11:47:52 +00:00
Jimmy Domagala-Tang 560b7a209a Transition optimized images to project-level toggle (#36093)
* feat: transitioning optimized images from a compile mode to a project level toggle. We still persist it for the proect and between users, and ensure that draft mode does not interact with it (silently disabled while draft mode is on)

* feat: cleaning up unused var, tests, and locales

* feat: updating copy

GitOrigin-RevId: 8010edfab164980f14125739e481d8b512f6b3df
2026-09-17 11:47:49 +00:00
Olzhas Askar 49747e61c9 Merge pull request #36163 from overleaf/oa-cookie-banner
[web] Rephrase the cookie banner

GitOrigin-RevId: 229cf5ead3d6a9f7c8fa1b8dda45508b06b23c42
2026-09-17 11:47:40 +00:00
Mathias Jakobsen 43ea352733 Merge pull request #36185 from overleaf/mj-cmd-plt-fixes
[web] Tweak command palette

GitOrigin-RevId: f69cf1f24dadecd81b4c563d289cbffc5ef4788f
2026-09-17 11:47:29 +00:00
Kristina f179e89c0c [web] add analytics for @mentions (#36144)
GitOrigin-RevId: 9fb1447166eb5ee82867466abc9af2207c886f8b
2026-09-17 11:47:22 +00:00
Kristina 20a4144cf9 [web] add events for out of sync modals (#36132)
GitOrigin-RevId: f9673defab0d06d8e814bf2d43cbb7e19eb249a7
2026-09-17 11:47:19 +00:00
Jakob Ackermann 591b9f5d39 [clsi] adopt strict zod types and extend test coverage (#36090)
GitOrigin-RevId: ce11933ccc10ac74baf5c78cec194b5532a357a2
2026-09-17 11:47:13 +00:00
Alf EatonandClaude Opus 4.8 f0b8e4af11 Add "Jump to command definition" to the editor context menu (#35116)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
GitOrigin-RevId: 5fcaef2004495a5e71bc083cf8fdc2bffce579d5
2026-09-17 11:47:09 +00:00
Miguel Serrano d20052bf3e [web] Read subscription.features on Group Management rendering (#36168)
* [web] Read subscription.features on Group Management rendering

Fixes 'ai-toggling' not properly read on Group Management rendering, causing the Feature Controls option not being displayed in certain scenarios.

GitOrigin-RevId: 4465fea15279d650d9d231e85072f1d85f2358be
2026-09-17 11:47:01 +00:00
Mathias Jakobsen 588979097d Merge pull request #36139 from overleaf/jd-command-palette-ui-tweaks
UI tweaks to the command palette & adding a "No results" state

GitOrigin-RevId: 4e3c7aa1498ef03f3a1d9948c3f3df8fa38670c3
2026-09-17 11:46:57 +00:00
Mathias Jakobsen 4e088c54fd Merge pull request #36092 from overleaf/mj-command-palette-pre-release
[web] Pre-labs-release changes for command palette

GitOrigin-RevId: 578cf56f1ef51996ce928466edf50e360fa73b42
2026-09-17 11:46:54 +00:00
Tom Wells e3a75e2396 Merge pull request #36125 from overleaf/tw-bibtex-project-drawer
Add side drawer to the project-level Visual BibTeX Editor

GitOrigin-RevId: b9792dd1162e459511f70e2ac325ccdfc7d5b26f
2026-09-17 11:46:46 +00:00
Jakob Ackermann 0776357d1a [document-updater] address zod violations (#36147)
* [editor-core] address zod violation for group_id

* [monorepo] use discriminated union in zod schemas where possible

* [editor-core] v1_source_doc_id is a number

GitOrigin-RevId: 38f591b07cca4e22954bfe30bf855545a6af675d
2026-09-17 11:46:42 +00:00
Tim Down 7895541382 Merge pull request #36141 from overleaf/oa-teardown-editor-upgrade-button-relocation
[web] Teardown `editor-upgrade-button-relocation`

GitOrigin-RevId: b6c53eef240ac2386907e0d0a942c674cfc9133b
2026-09-17 11:46:39 +00:00
Tim Down e8fca0a7aa Merge pull request #36129 from overleaf/td-onboarding-split-test-teardown
Remove onboarding-plan-comparison from code

GitOrigin-RevId: 7fc63e777c0924c3844f144f54623cbc30278afa
2026-09-17 11:46:33 +00:00
Jakob Ackermann b1dece55c8 [docstore] adopt strict zod types and extend test coverage (#36076)
GitOrigin-RevId: b9f1b965dbdb763ce541dabbe89300ce6d044217
2026-09-17 11:46:14 +00:00
Jakob Ackermann 4e80098424 [document-updater] adopt strict zod types and extend test coverage (#36077)
* [document-updater] adopt strict zod types and extend test coverage

* [saas-e2e] add test for project restore with binary and linked file

GitOrigin-RevId: a8e45bd1e46b6ac8a293da24c8b8ad7b236fd9bd
2026-09-17 11:46:05 +00:00
Jakob Ackermann f48132a70e [notifications] adopt strict zod types and extend test coverage (#36049)
* [notifications] adopt strict zod types and extend test coverage

* [notifications] validate expires date via schema

GitOrigin-RevId: 25dee0578ec443447e4c38a50a7e6c8b44831fe7
2026-09-17 11:45:58 +00:00
Jakob Ackermann eb36edac6d [project-history] report a resync that is still pending after a flush (#36122)
GitOrigin-RevId: ccd4390048c09f732531d2e02a40336fce88a952
2026-09-17 11:45:55 +00:00
Jakob Ackermann d62f8fb716 [filestore] adopt strict zod types and extend test coverage (#36112)
GitOrigin-RevId: a761477f2b412133da2d71748233c712c5728fae
2026-09-17 11:45:41 +00:00
Maria Florencia Besteiro Gonzalez 139ebafdca Merge pull request #36003 from overleaf/mfb-truncate-long-fields-in-cards
Truncate long title/author fields in bibtex entry cards

GitOrigin-RevId: 588798c4307958fcd60fce258d46419fbb29dab5
2026-09-17 11:45:32 +00:00
Anna Claire Fields a63fd554c3 Replace MOCHA_GREP with TEST_NAME_PATTERN (#34404)
GitOrigin-RevId: b1b2d1be3d0725f930d83ef035836482ffb72dcd
2026-09-17 11:45:29 +00:00
Jakob Ackermann 52e5fb3498 [project-history] adopt strict zod types and extend test coverage (#36087)
GitOrigin-RevId: ce1396e87926fc8816afa424c9db2a052c7da5e6
2026-09-17 11:45:20 +00:00
Alf Eaton 6b349ee3be Add start_url to web manifest (#35015)
GitOrigin-RevId: 81c723df6e6134d9bce32fd3a0dd632769a595e1
2026-09-17 11:45:13 +00:00
Alf Eaton 2010622ae3 Handle missing state field in line wrapping indentation extension (#35442)
GitOrigin-RevId: 7cc03042c42fbc4afe14438cd9347da7682815c6
2026-09-17 11:45:07 +00:00
Alf Eaton fd52dca3eb Fix the CodeMirror dev tools button (#35757)
GitOrigin-RevId: af14fd8a637b9b71f1940c71c32bf57371bb2267
2026-09-17 11:45:04 +00:00
Alf Eaton c302bbaaaa Ignore more failure states of startViewTransition (#35951)
GitOrigin-RevId: e5aac40612550ea42abdc4d93e80045018670137
2026-09-17 11:44:55 +00:00
Maria Florencia Besteiro Gonzalez 84aa1900f1 Merge pull request #36086 from overleaf/mfb-hide-reference-format
Hide reference format setting in References tab

GitOrigin-RevId: 4df81638c788e4b2908dd0ae8966bf0f9989ee9e
2026-09-17 11:44:44 +00:00
Tom Wells 90931a6c41 Merge pull request #36007 from overleaf/tw-library-validation-side-drawer
Show reference validation errors in the Library preview drawer

GitOrigin-RevId: 68a6a8879642cd32466240a6d25956d1fe8b2c78
2026-09-17 11:44:36 +00:00
Mathias Jakobsen d1691345c5 Merge pull request #36074 from overleaf/mj-reload-after-failed-catch-up
[web] Reload after failed intermittent-connection catchup

GitOrigin-RevId: c9a6315ecb6ebe957ad85c05ebc84bb8165881ab
2026-09-17 11:44:33 +00:00