Commit Graph
135 Commits
Author SHA1 Message Date
Thomas Durieux 6434337923 perf: bound request work and resource usage (#866)
* perf: bound request work and resource usage

* fix: address performance review regressions

* fix: guard content expiration and dashboard state

* fix: tolerate cache outages and retire derived paths

* fix: revalidate expiration claims and status pagination

* fix: retry interrupted repository metadata cleanup

* fix: retire obsolete content cache storage

* fix: activate tree metadata and recheck expiration claims

* fix: fence cache publication across expiration

* fix: recover staged trees and enforce cache lifecycle cleanup

* fix: prune expired transforms during database outages

* fix: finish conference removals and reload expiration candidates
2026-10-08 03:38:19 +01:00
Thomas Durieux 282efdc16e fix: make dashboard UI consistent and compact on mobile 2026-10-07 14:54:49 +00:00
Thomas Durieux adc9dbd439 Merge pull request #863 from tdurieux/fix/editor-mode-fallback
fix: fall back to plain text for unsupported editor modes
2026-10-07 14:36:59 +02:00
Thomas Durieux 45153886e3 fix: derive editor modes from shipped assets for ES2020 browsers 2026-10-07 12:33:44 +00:00
Thomas Durieux e5dac99598 fix: distinguish upstream stream failures from storage errors 2026-10-07 12:24:23 +00:00
Thomas Durieux 64ae393200 fix: fall back to plain text for unsupported editor modes 2026-10-07 12:24:21 +00:00
Thomas Durieux e268bce1c7 fix: recover stale pull requests and refresh renamed repository caches 2026-10-07 11:58:56 +00:00
Thomas Durieux ccccf07491 fix: save renamed source together with reconnected access 2026-10-07 11:41:48 +00:00
Thomas Durieux e6073941b9 fix: verify reconnects through supported GitHub routes and protect active jobs 2026-10-07 11:24:59 +00:00
Thomas Durieux 61a155fd2e Merge pull request #860 from tdurieux/fix/zip-proxy-errors
fix: abort ZIP responses when the streamer fails
2026-10-07 13:23:26 +02:00
Thomas Durieux dda4160560 Merge pull request #859 from tdurieux/fix/pdf-rendering-build
fix: preserve PDF.js rendering in asset builds
2026-10-07 13:23:23 +02:00
Thomas Durieux a7ae790640 fix: recover renamed repositories by ID and hide archived actions 2026-10-07 11:10:30 +00:00
Thomas Durieux 6c0d335e98 fix: let compressed proxy errors finish flushing 2026-10-07 11:09:04 +00:00
Thomas Durieux 37426d0c48 fix: validate PDF.js syntax before publishing assets 2026-10-07 11:09:03 +00:00
Thomas Durieux b50e6c4565 perf: index anonymization terms before scanning large files 2026-10-07 10:57:09 +00:00
Thomas Durieux 3140ad3c45 fix: reconnect resources after GitHub App reinstall 2026-10-07 10:34:55 +00:00
Thomas Durieux f32b2c6eb7 fix: abort ZIP responses when the streamer fails 2026-10-07 10:34:43 +00:00
Thomas Durieux b72631bbbe fix: preserve PDF.js rendering in asset builds 2026-10-07 10:34:33 +00:00
Thomas Durieux d28799f234 fix: reconnect anonymizations to recreated source repositories 2026-09-29 23:09:51 +00:00
Thomas Durieux 083544bf68 fix: preserve active downloads and atomically prepare refreshed snapshots 2026-09-27 06:41:39 +00:00
Thomas Durieux 0002e8d1a1 fix: serialize repository refreshes and recover stale downloads 2026-09-27 06:34:05 +00:00
Thomas Durieux 7ada28f9e3 fix: report repository refresh failures and reject busy updates 2026-09-27 06:09:19 +00:00
tdurieux 0e7a8899b5 fix: prevent large notebook download timeouts 2026-09-23 11:27:17 +08:00
Thomas Durieux 383dad7e20 fix: prevent path traversal through hashed asset routes 2026-09-15 20:26:42 +00:00
Thomas Durieux 2e6b79b30d fix: address streamer review edge cases 2026-09-14 15:23:13 +00:00
Thomas Durieux c9c729c2c5 fix: restore public file streaming and contain ZIP failures 2026-09-14 15:06:29 +00:00
tdurieux 2d153dd353 fix: read public repositories without scoped App token minting 2026-09-14 16:50:18 +02:00
tdurieux 8b9f79502b test: cover repository loading with restricted Pages settings 2026-09-14 16:44:53 +02:00
Thomas Durieux 878dda1d37 fix: restore legacy hashbang repository links 2026-09-14 14:32:00 +00:00
Thomas Durieux 8abdaf7119 Merge pull request #828 from tdurieux/fix/public-repository-app-access
fix: allow GitHub App access to public repositories without installation
2026-09-13 19:06:25 +02:00
Thomas Durieux dc026e2ee8 fix: revalidate scoped public tokens throughout repository reads 2026-09-13 15:16:45 +00:00
Thomas Durieux 5e5cc6e0c2 fix: renew public grants and verify source identity and visibility 2026-09-13 15:05:43 +00:00
Thomas Durieux 8efb9bd506 fix: allow GitHub App access to public repositories without installation 2026-09-13 08:42:55 +00:00
Thomas Durieux 7cdf0f5e8d fix: distinguish repository publication and settings dates 2026-09-13 08:42:54 +00:00
tdurieux 99a50cad7b feat: unify GitHub sign-in and connect OAuth for gists 2026-09-10 18:20:56 +02:00
tdurieux 68d9c54fcf fix: keep GitHub access controls beside the source URL 2026-09-10 18:04:56 +02:00
tdurieux 3667e8e3cd fix: preserve anonymous sessions during GitHub sign-in 2026-09-10 16:15:39 +02:00
tdurieux df81d7db56 style: restore mobile sign-in and compact access controls 2026-09-10 16:07:02 +02:00
Thomas Durieux 4e52f42009 Merge pull request #814 from tdurieux/feat/github-app-dual-auth
Add read-only GitHub App access alongside OAuth
2026-09-10 06:27:36 -07:00
tdurieux 19f819949e perf: avoid anonymization timeouts for absent literal terms 2026-09-10 14:49:01 +02:00
Thomas Durieux a60ad6a921 feat: add read-only GitHub App access alongside OAuth 2026-09-09 22:08:12 +02:00
tdurieux a8a03de4bc fix: preserve saved auto-update settings and clarify file tree icons 2026-09-09 13:57:07 +02:00
tdurieux 8e85458b05 fix: unblock gist and pull request form submissions 2026-09-09 13:41:20 +02:00
tdurieux e68ab037eb perf: load document libraries only when needed 2026-09-09 13:28:44 +02:00
tdurieux 4a18f94631 refactor: migrate the frontend from AngularJS to Vue 3 2026-09-09 13:19:53 +02:00
Thomas Durieux dc0ef022fb Merge pull request #810 from tdurieux/feat/landing-redesign
feat: rebuild the landing page around the product
2026-09-09 12:24:47 +02:00
tdurieuxandClaude Fable 5.1 88d8225f00 feat: rebuild the landing page around the product
The home page led with a text hero, a boxed stats strip, a numbered
how-it-works list, a trust card and three Bootstrap featurettes with
postage-stamp screenshots. It now shows the product first and stays
flat:

- Hero: copy on the left, the anonymize form in a browser frame on the
  right, one primary CTA plus a link to a real anonymized repository,
  and three reassurance points (free, read-only, expires).
- Proof and live stats collapse into hairline strips with no cards;
  the stat bars keep their daily-delta charts and the "+N today" line.
- Before/after example gets a section head and shows the actual XXXX-n
  masks, each labelled for screen readers.
- "What you get" is one large screenshot with three vertical tabs
  (Anonymize, Review, Manage) instead of three columns. Tabs are real
  buttons with tablist/tab/tabpanel roles, roving tabindex and arrow-key
  navigation; the description and link sit outside the button. Signed-out
  visitors are sent to sign in rather than to a dashboard that redirects.
- FAQ teaser with the three questions that come up most, linking into
  the FAQ anchors.
- Phone layout: tabs become a strip above the screenshot with the
  selected description below it, stats go two-up, panes stack, the CTA
  fills the width, and horizontal overflow is clipped so the hero bleed
  can never cause sideways scrolling.

Removes the dead how-it-works, trust, featurette and metrics styles and
the legacy mobile hero font overrides that fought the new sizes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 12:21:02 +02:00
Thomas Durieux da247de018 Merge pull request #808 from tdurieux/fix/webview-script-playback
fix: restore scripts and video playback on project pages
2026-09-09 10:23:45 +02:00
Thomas Durieux f27e9ca9a0 Merge pull request #809 from tdurieux/feat/dashboard-redesign
feat: make the dashboard, menus and settings readable at a glance
2026-09-08 21:07:30 +02:00
tdurieuxandClaude Fable 5.1 b9189953d3 test: drop unused timer globals from the dashboard sandbox
ESLint's test config does not declare setTimeout and friends, so passing
them into the vm sandbox failed the Lint job. Nothing the test exercises
uses them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 21:02:52 +02:00