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
tdurieux and Claude 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
tdurieux and Claude 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