Commit Graph
23 Commits
Author SHA1 Message Date
Thomas DurieuxandClaude Opus 5.5 c685d833ab Merge origin/main into feat/ui-redesign
Backend, scripts, docs and their tests take main's newer code where both
sides changed the same lines (the shared blob cache, GitHubStream and
markdown fixes landed on main after the Go migration branch was cut).
The Dockerfile keeps the Go build from the migration, plus main's
owner-alert-protocol label; .gitignore keeps both sides' entries.

Frontend keeps the redesign and folds in main's features: Stripe billing
in the New anonymization submit bar, GitHub access repair, redaction
syntax help, the preview expand toggle, configurable redaction mask,
folder counts, reviewer-route header rules, link expiry (now in the
viewer's snapshot details) and the explorer error card. main's
narrow-only wrap logic is dropped because the redesign wraps on desktop
and scrolls sideways on phones.

Tests: 1534 passing with SESSION_SECRET set (as in CI). Three main tests
were updated for the agreed viewer design (no site header in the viewer,
no repository-wide file count).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 14:07:33 +00:00
Thomas Durieux 76e5804404 feat: migrate backend to Go with streaming and provider support 2026-11-04 14:21:36 +00:00
Thomas Durieux 772e40debd fix: retain recipient suppression after access recovery (#897)
* fix: retain recipient suppression after access recovery

* fix: migrate cold starts and fence resource deactivation

* docs: stop every writer before alert reconciliation
2026-10-14 19:23:12 +01:00
Thomas Durieux 445a479339 fix: deduplicate owner access alerts per recipient (#896)
* fix: prevent duplicate access alerts to the same recipient

* fix: address recipient alert recovery review findings

* fix: reconcile unsent alerts and wait for startup migration

* fix: preserve legacy recipient alerts through upgrades

* fix: reconcile alert results and legacy recovery races

* fix: fence dispatch and clean cancelled alert metadata

* fix: fence alert preparation and retain in-flight recovery

* fix: atomically commit alert dispatch and retry deferred recovery

* fix: keep recovery lookups from blocking upstream file reads
2026-10-13 13:55:10 +01:00
Thomas Durieux 51c779dffa fix: install native dependencies for the Docker runtime (#881) 2026-10-08 14:12:57 +01:00
tdurieux 3eeed23609 handle memory issues 2026-05-07 21:01:07 +03:00
tdurieux 7dc48bccd2 fix(build): isolate parallel npm cache mounts and bump node to 22
- Give the deps and prod-deps stages distinct BuildKit cache IDs with
  sharing=locked so concurrent npm ci runs no longer race on
  /root/.npm and fail with ENOTEMPTY.
- Drop the post-install 'npm cache clean --force' in prod-deps; it
  was wiping the cache mount it had just filled.
- Update base images from node:21 to node:22 (LTS) to silence
  EBADENGINE warnings from packages requiring node >= 22.
2026-05-06 13:40:17 +03:00
tdurieux 06a098fba7 perf(deploy): faster builds and zero-downtime streamer rollover
- Multi-stage Dockerfile with BuildKit npm cache mounts and a separate
  prod-deps stage so source edits don't reinstall or prune.
- Tighter .dockerignore to shrink build context.
- Healthchecks: add start_period and tighten interval/retries so
  containers report healthy as soon as the process is actually ready
  instead of after a full polling interval.
- Move recoverStuckPreparing() off the startup critical path; the
  recovery sweep now runs in the background after app.listen.
- depends_on uses condition: service_healthy and the obsolete
  compose 'version' key is gone.
- New scripts/build.sh + scripts/deploy.sh: deploy.sh builds, exits
  early if the image is unchanged, runs a blue/green streamer swap
  (scale to 2N, wait healthy in parallel, drop olds), then recreates
  the API with --no-deps to avoid compose's depends_on re-poll.
2026-05-06 13:38:19 +03:00
tdurieux 1dde5dc308 docker: multi-stage build with alpine runtime
Split into builder (node:21-slim, full deps + tsc/gulp) and runtime
(node:21-alpine, production deps only). Drops ~hundreds of MB from
the published image and removes dev tooling from the runtime layer.
2026-05-05 00:52:55 +03:00
Thomas Durieux 655ae92c4c Remove OpenTelemetry tracing infrastructure (#662) 2026-04-15 04:39:08 +02:00
tdurieux c940c98b6e fix: add missing gulpfile.js 2024-04-05 12:30:47 +01:00
tdurieux 4d12641c7e feat: introduce streamers that handle the stream and anonymization from github 2024-04-03 11:13:01 +01:00
tdurieux 87c7e8c470 chore: update node version 2024-04-01 10:27:18 +01:00
tdurieux 8505daceaa chore: remove pm2 install 2024-03-28 10:14:00 +00:00
tdurieux 0caf786c9c feat: adds opentelemetry support 2024-03-27 11:18:13 +00:00
tdurieux e24d1b4630 update dependencies & remove google analytics 2023-06-20 09:58:25 +02:00
tdurieux 99f837c3cf fix: fix and optimize Dockerfile 2023-02-13 14:07:57 +01:00
tdurieux 3ab9b0c7a4 fix(#166): fix docker build 2023-02-13 08:15:55 +01:00
tdurieux 0f8572fe01 chore: uses pm2 to start Anonymous GitHub in docker 2021-09-07 08:39:15 +02:00
tdurieux a3a8667d6d chore: improve docker image 2021-09-06 11:57:37 +02:00
tdurieux cd9de704db fix: update dockerfile to the new architecture 2021-08-13 14:05:48 +02:00
tdurieux a2d0f0b212 v2 wip 2021-03-16 11:23:16 +01:00
tdurieux a9f206ae47 start v2 2020-06-01 09:42:11 +02:00