[web] Tear down new-user-system-overall-theme split test and themed-project-dashboard feature flag
GitOrigin-RevId: fe947a603266166332b73a5707bb6cbc9e3d03b9
* [web] extract PythonExecutionContext and PythonRunner to manage pyodide execution per file
* [web] define worker URL in python execution context in order to avoid breaking cjs-based tests
* [web] use null check for doc contents to allow running empty python files
* [web] flush buffered editor ops before refreshing snapshot for python execution
* [web] catch getExecutionContext errors in python runner to prevent unhandled rejections
* [web] add PythonRunner unit tests and extract shared WorkerMock
* refactor: rename snapshot to state in PythonRunner
* fix: remove unnecessary path normalization in PythonExecutionProvider
* fix cypress tests
GitOrigin-RevId: 9c55586d982fe8df5b90374227005c6b83e94d1f
* [metrics] mongo: fail when command monitoring is not available
* [metrics] mongo: add optional client label to pool metrics
* [web] collect mongo stats on native client
* [metrics] mongo: record namespace of find commands
* [metrics] mongo: add counter for all the commands with collection label
* [web] add missing mock
GitOrigin-RevId: 9f378d8aa8d7167f56cf512681d63ef115c6dd98
* Add feature table translation strings
* Add feature comparison table config, types, and unit tests
Adds plans-features-table.mjs (8 sections, 25 rows, 5 plan columns) with
PlanTypesFeatureTable type, FeatureTableColumnHeader types, and 18 unit tests.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add feature comparison table template and styles
* Add logos row to 2026 pricing page
* Accessibility improvements to 2026 pricing page suggested by Claude
* Stylelint appeasement
* Fixes from Copilot review
* Remove duplicate translation string
* Appease Prettier
* Non-ideal solution for pricing features table on mobile
* Make features table same width as cards container on new pricing page
* Increase spacing between cards and features table in new pricing page
* Remove help cursor from integration icons
* Add trademark symbol to FedRAMP
Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>
* Hide features table header cell overflow
Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>
GitOrigin-RevId: 6d6c661c9d682b86bd33886a518da25f9ab6e372
* [monorepo] move building of nginx proxy into Makefile
* [v1] add fake-secrets.env
* [github] add copilot-setup-steps.yml workflow
* [make] debug permissions
* [monorepo] use the host uid/gid for monorepo service
* [web] populate DOCKER_USER for test_frontend_ct
* [github] run npm install outside docker in Copilot sandbox
* [monorepo] add comment for building nginx-proxy image locally
* [monorepo] change uid/gid of node user in cypress image
* [monorepo] low-level rewrite of passwd and groups to match host user
GitOrigin-RevId: d74a5801f0318bab7e7f460374255426706002a3
* Rename _faq_new.pug to _faq.pug
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add 2026 plans page FAQ templates
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Wire up quotes and FAQ section in plans_2026.pug
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Update styles, quote component, and translations for 2026 plans page
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix missing accordion icon wrapper in last FAQ item
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fixup: rename `.card-pattern-sides` back to `.card-pattern`
* Create SASS placeholder and mixin
Suggested by Tim
* Fixup quote style
* Update spacings to match Figma
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
GitOrigin-RevId: 2f4e284038d79157d2b029a967918077bb206032
* [monorepo] run npm install before top-level lint/format
* [monorepo] extend lint_fix for web
* [monorepo] bin/run: silence docker compose
We do not need it to print the newly created containers name.
* [monorepo] run format:fix
* [monorepo] run all the tasks or services/web/lint_fix_other in docker
GitOrigin-RevId: 997b360d1136f466c8e6bf8c5ad0e1189406d1f1
* [web] enable async local storage on all the endpoints
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [web] deduplicate getting the project when loading the editor
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [web] use ProjectAccess state for computing analytics segmentation
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [web] restore ownership of active flag and deferredTpdsFlushCounter
* [web] add missing await
* [web] update unit tests
* [web] add metrics for project access caching
* [web] add missing test mock
* [web] invalidate async local storage when changing project access
* [web] deduplicate project lookup when checking for token access
* [web] add helper function for getting cached ProjectAccess
* [web] add acceptance test for caching of ProjectAccess
* [web] account for saas-only project access in tests
* Revert "[web] enable async local storage on all the endpoints"
This reverts commit 1b82f3b935040e8cfd180d1f6bf4183a655580e2.
* [web] add async local storage to project endpoints in top-50
* [web] invalidate async local storage for project access from modules
Co-authored-by: Jessica Lawshe <jessica.lawshe@overleaf.com>
---------
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
Co-authored-by: Jessica Lawshe <jessica.lawshe@overleaf.com>
GitOrigin-RevId: 3eea7956b24e6f937dc1c17948681063d4dca3ea
* [project-history] add best effort flush when cloning project
* [web] update labels in clone project modal for admins
* [project-history] do not shadow history flush failure
* [web] fix accessible label for 'Add comment' button
* [chat] clone comment threads when cloning project with ranges
GitOrigin-RevId: ef30204c8a94b3d6204d56dcca2f62a46319996b
* Add AI allowance tooltip copy and wire into plans feature comparison
Adds per-tier tooltip strings for basic, increased, and max AI
allowance. Splits the ai_allowance feature entry in the individual and
student plan configs into separate per-tier objects so each can carry
its own featureExplanation key.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix plans page styling: section padding, badge line-height, checkbox accent-color
- Replace padding-block shorthand with explicit start/end on
.plans-and-pricing-section to avoid overriding the bottom spacing
- Add missing line-height to .price-plan-card-badge
- Add accent-color to .plans-educational-discount-checkbox
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Only render geo-banner-container when there is content
Previously, .geo-banner-container was always rendered even when no
banners or errors were present, which introduced an unnecessary empty
wrapper in the DOM. Also moves the payment error conditions to be
top-level siblings (removing the `if paymentError` indirection) to
make each case independently explicit.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Migrate plans page to .plans-2026 gap-based layout
Replaces .plans-new-design's per-section padding rules with a single
flex column + gap on .plans-2026, letting the layout engine handle
spacing uniformly. Removes the now-redundant .plans-and-pricing-section
padding block, .plans-cards-content padding, and
.plans-new-design-content-spacing class from the heading row.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
GitOrigin-RevId: 3a112c46759419ef0bc994dfb88498fc19b18c10
* [github] code spaces: add more standard users with a common password
* [github] code spaces: automatically share dev-env with Overleaf org
* [github] code spaces: merge split tests rather than replacing them
* [github] code spaces: ts-check the setup script in web
GitOrigin-RevId: 1a86ac7e0304d47e68290352f58a0e193eed1d77
* emit email-notification-sent event
* use UTM tags to track email link clicks
* do not include utm_id on session at registration
GitOrigin-RevId: 24091bf8923fa11b8ba5ebfc63a0cea5c0f9f40c