Commit Graph
233 Commits
Author SHA1 Message Date
Thomas Durieux c9d326142a fix: keep donation access in the header without covering content 2026-11-04 10:54:25 +00:00
Thomas Durieux d4b9fd85e7 fix: isolate website limits and scope explorer counts 2026-11-03 15:03:23 +00:00
Thomas Durieux e71e6b6389 merge: reconcile paid hosting with shared cache and main 2026-11-03 08:26:43 +00:00
Thomas Durieux 47a436ee4e fix: admit dated repositories before offering checkout 2026-11-02 21:46:26 +00:00
Thomas Durieux ded6f905fd merge: reconcile paid hosting with latest main 2026-11-02 21:12:29 +00:00
Thomas Durieux 036eddfa0e fix: preserve paid hosting deadlines, quotas and review snapshots 2026-11-02 21:03:29 +00:00
Thomas Durieux 410863d253 feat: add paid author and conference hosting with Stripe 2026-11-02 20:49:03 +00:00
Thomas Durieux dd668c1f4b perf: share verified blobs and expose bounded cache metrics 2026-11-02 12:14:54 +00:00
Thomas Durieux 6cf5445972 fix: fill gaps in GitHub Markdown rendering (#912)
* fix: fill gaps in GitHub Markdown rendering

* fix: harden Markdown dependencies and address review findings
2026-11-02 07:56:32 +01:00
Thomas Durieux 075c3a4622 Suggest existing configurations for duplicate repository URLs (#911) 2026-11-02 06:31:57 +00:00
Thomas Durieux a301c46a94 fix: harden repository content and improve access recovery
Sandbox executable MIME aliases, enforce strict Mermaid rendering, and add security regression coverage. Upgrade vulnerable dependencies with archive compatibility checks and Node 22/24 CI. Make repository restoration atomic and provide actionable viewer errors with retry controls.
2026-11-02 05:50:34 +00:00
Thomas Durieux 8ce670a613 fix: show repository authorization controls for App-only users (#894) 2026-10-12 19:47:04 +01:00
Thomas Durieux 1d326e7c32 fix: repair private repository access from the edit page (#892)
* fix: repair private repository access from the edit page

* fix: respect App rollout and reload renamed sources after repair

* fix: gate access repair by status and update response tests
2026-10-11 12:13:02 +01:00
Thomas Durieux 7319a5a744 fix: keep settings links on profile and fill the project table (#887) 2026-10-09 13:20:27 +01:00
Thomas Durieux 95f8aef30a feat: notify owners when GitHub access needs attention 2026-10-09 05:22:41 +00:00
Thomas Durieux eb4fbb6b15 Merge commit 'refs/security-review/pr849' into HEAD
# Conflicts:
#	src/server/service/review-consent-http.ts
2026-10-08 16:26:12 +00:00
Thomas Durieux c1d192cb7f Merge commit 'refs/security-review/pr846' into HEAD
# Conflicts:
#	public/script/main.js
2026-10-08 16:25:32 +00:00
tdurieuxandClaude Opus 5.5 be2f979296 fix: keep redaction marks correct with custom masks, Prism and Mermaid
- The mask from /api/options is stored once loaded; code markers and
  rendered Markdown are refreshed when it arrives instead of keeping the
  XXXX default.
- Mermaid sources are left untouched so diagrams still parse.
- Fenced code blocks are marked from a Prism complete hook, after Prism
  has rewritten their HTML.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 14:46:13 +02:00
tdurieuxandClaude Opus 5.5 80944954d6 fix: bring the admin pages in line with the rest of the app
- Overview: error-volume bars render (the fills were inline spans), the
  cumulative users chart is scaled to its range and labels it, latencies
  over a second read in seconds, and charts and daily numbers use the
  accent instead of four unrelated colours.
- Labels, table headers and state chips drop the mono caps; queue stat
  values drop the serif.
- Error rows keep their content aligned; row metadata wraps instead of
  truncating every item; "1 term" is singular.
- Errors filter uses the shared segmented control; breadcrumbs include
  Admin; user detail spaces its status and actions, uses the accent for
  Generate and says when no access token is stored.
- The jobs table scrolls inside its card on phones.
- Mock server: admin fixtures for every admin endpoint (ADMIN=1).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 14:46:03 +02:00
tdurieuxandClaude Opus 5.5 fd1bce74b4 fix: clean up the admin queue controls
The range picker drew a border around every segment inside the group's
border, and Drain used a filled pill that made the most destructive
action the loudest. Segments are now borderless inside one outline with
a tinted selection, all header controls share one height, and Drain and
Clear all use a red outline. Queue labels drop the mono caps. ADMIN=1
signs the mock server in as an administrator.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 14:46:01 +02:00
tdurieuxandClaude Opus 5.5 57412d0610 feat: refine the reviewer explorer and the visual system
- Explorer: redacted terms are highlighted in Markdown and code, the
  sidebar shows when the link expires, "Download repository" is the one
  primary action, and signed-out reviewers get a header without Sign in
  or the source-code link.
- Status: a ready anonymization leads with a copyable share link; the
  support links sit flat inside their section.
- One primary colour (accent) for actions and progress; mono is kept for
  IDs, hashes and paths; settings are plain sections instead of cards.
- Font sizes snap to one scale (10-40px); rem values keep following the
  reader's browser font size.
- Ko-fi button uses a dark surface in dark mode instead of a white pill.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 14:45:54 +02:00
tdurieuxandClaude Opus 5.5 69f9029301 fix: address review on explorer actions, wrapping and breakpoints
- File-level errors keep the breadcrumb and repository actions; only
  repository-level failures (no file list) hide the bar.
- Code wrapping follows the viewport when it crosses 992px.
- Settings and FAQ tables of contents stack at the same breakpoint as
  their grids, so they no longer stay sticky over stacked content.
- The sign-in page keeps its 480px cap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 14:45:41 +02:00
tdurieuxandClaude Opus 5.5 361f761f92 fix: tidy the phone layouts
- Wrap long code lines in the explorer below 992px; the declared
  useWrapMode option was never applied.
- Light editor and gutter use the page colour, like dark mode.
- New anonymization uses the same 18px inset as other pages.
- Settings, new conference and FAQ section links scroll in one row
  instead of wrapping under a lone underline.
- Page intros are no longer clamped to two lines.
- Status page actions stack full width without the anonymize form's
  sticky bar styling; dropdown labels no longer split apart.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 12:43:24 +02:00
tdurieuxandClaude Opus 5.5 f8b2ea38a1 fix: polish explorer, error states and page alignment
- Explorer: 13px code, page-coloured dark editor, padded Markdown with a
  readable width, full repository ID on hover, sidebar footer kept clear
  of the floating Ko-fi button.
- Explorer errors render as a card with links home and to the FAQ; the
  empty action bar and Raw/Download buttons are hidden.
- Unknown error codes show the generic message instead of the raw
  ERRORS.<code> key.
- All app pages share one content column; New anonymization starts at
  the top instead of floating mid-screen.
- Status page: spaced action buttons, aligned status pill, no second
  Ko-fi embed under the support cards.
- Claim placeholders; consistent notebook option on new conferences.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 12:36:15 +02:00
Thomas Durieux fd0dd0adbd chore(deps): upgrade dependencies and remove production vulnerabilities 2026-10-08 10:21:00 +00:00
Thomas Durieux 9435a99b6c fix: prevent admin user crashes and match performance styling (#877) 2026-10-08 10:59:49 +01:00
Thomas Durieux a9760eab39 perf: avoid needless downloads and track request latency (#876)
* perf: avoid needless downloads and track request latency

* fix: correct request timing and monitoring revalidation
2026-10-08 10:38:33 +01:00
Thomas Durieux db966356ec fix: support gists through GitHub App login (#875)
* fix: prompt OAuth reconnection when gist credentials are rejected

* fix: support gist reads through GitHub App user grants

* test: adapt truncated gist regression to provider selection

* fix: address gist reconnect visibility and token renewal review

* fix: verify App authorization before revoking OAuth
2026-10-08 10:26:13 +01:00
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 a7e3826da7 fix: restore visible Ko-fi support across screen sizes 2026-10-07 15:02:53 +00:00
Thomas Durieux 282efdc16e fix: make dashboard UI consistent and compact on mobile 2026-10-07 14:54:49 +00:00
Thomas Durieux 45153886e3 fix: derive editor modes from shipped assets for ES2020 browsers 2026-10-07 12:33:44 +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 e6073941b9 fix: verify reconnects through supported GitHub routes and protect active jobs 2026-10-07 11:24:59 +00:00
Thomas Durieux a7ae790640 fix: recover renamed repositories by ID and hide archived actions 2026-10-07 11:10:30 +00:00
Thomas Durieux 3140ad3c45 fix: reconnect resources after GitHub App reinstall 2026-10-07 10:34:55 +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 d3a8b4a8a7 Return artifact consent through registered POST callbacks 2026-09-27 15:59:36 +00:00
Thomas Durieux e4334bc9a7 Add isolated artifact owner consent page 2026-09-27 14:56:06 +00:00
Thomas Durieux 9c95cfb463 build: include refreshed dashboard assets 2026-09-27 06:17:04 +00:00
Thomas Durieux 7ada28f9e3 fix: report repository refresh failures and reject busy updates 2026-09-27 06:09:19 +00:00
Thomas Durieux 878dda1d37 fix: restore legacy hashbang repository links 2026-09-14 14:32:00 +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 df81d7db56 style: restore mobile sign-in and compact access controls 2026-09-10 16:07:02 +02:00
tdurieux bcc7abc975 style: clarify GitHub connections and account navigation 2026-09-10 16:04:44 +02:00
tdurieux b80a15bb69 fix: guide existing accounts to legacy GitHub sign-in 2026-09-10 16:00:28 +02:00