Commit Graph

  • 2f658798ae revert(infra): swap Dragonfly back to Redis 8.8 in compose files germondai 2026-07-10 16:11:12 +02:00
  • 09bdd18b30 docs: update docs and README for Dragonfly and new structure germondai 2026-07-10 08:31:54 +02:00
  • e28463b214 chore(infra): swap Redis for Dragonfly across compose files germondai 2026-07-10 01:14:48 +02:00
  • a40eb1708b feat(web): show live GitHub star count in navbar germondai 2026-07-09 17:57:42 +02:00
  • 613b41ad23 refactor(api): split index.ts into config, deps, routes, and add root status route germondai 2026-07-09 10:40:36 +02:00
  • 7a36a6c2c9 refactor(tiers): split into tiers/ and utils/, dedupe cookie and network-failure helpers germondai 2026-07-09 03:23:30 +02:00
  • 25fe9d739a feat(types): centralize BrowserHandle, BrowserFingerprint, SupportedMethod germondai 2026-07-08 20:06:24 +02:00
  • d873e2662c Merge pull request #23 from germondai/22-bug-js-only-challenge-pages-bypass-tier-1-escalation v0.7.0 GermondandGitHub 2026-07-08 20:06:24 +02:00
  • b72103bba7 chore: add hCaptcha audio solver smoke test script germondai 2026-07-08 19:40:56 +02:00
  • 4dfe5be680 fix(tiers): escalate JS-shell challenge pages from Tier 1 to browser germondai 2026-07-08 19:40:38 +02:00
  • 16499ce2fc feat(tiers): add audio STT fallback to hCaptcha solver germondai 2026-07-08 19:40:24 +02:00
  • 9142838c46 Merge pull request #21 from germondai/20-bug-trawl-fails-to-start---issues-with-healtcheck v0.6.0 GermondandGitHub 2026-07-08 16:05:58 +02:00
  • 7f2dc4fb8e docs(web): bump docker image size to 1.14 GB in comparison table germondai 2026-07-08 15:48:48 +02:00
  • 9fb92d9809 fix(docker): bake GeoLite2 mmdb into api image to prevent geoip startup crash germondai 2026-07-08 15:48:48 +02:00
  • 52cd0ce3ac fix(docker): install curl in api runtime image so healthcheck works germondai 2026-07-08 15:48:48 +02:00
  • 973505b7f3 chore(browser): suppress noExplicitAny lint in pool.ts germondai 2026-07-08 03:49:12 +02:00
  • a8eaf8f843 Merge pull request #19 from edasque/fix/tier-detection-and-proxy-wiring GermondandGitHub 2026-07-08 03:36:55 +02:00
  • 1da2a021b4 docs(web): update comparison benchmarks with measured latency + infra specs germondai 2026-07-08 01:25:00 +02:00
  • 7d3204351c fix(tiers): recognize more block/error page variants, add Tier 4 captcha parity, surface proxy/timing info Erik Dasque 2026-07-07 15:58:54 +00:00
  • d7476274a2 feat(browser): randomize OS/screen/window per browser and match HTTP UA to platform germondai 2026-07-07 02:32:12 +02:00
  • f44f7511f9 build(api): prune devDeps and impit platform binaries in deps stage germondai 2026-07-06 23:41:53 +02:00
  • fb620141f6 build(api): pin Camoufox version, strip symbols, prune deps, switch to debian-slim germondai 2026-07-06 23:10:16 +02:00
  • 1d818f0498 chore: tighten .dockerignore to drop local agent IDE and unused Dockerfile sources germondai 2026-07-06 22:47:37 +02:00
  • e42582e6b6 ci: use native bun test instead of npm-script wrapper in CI germondai 2026-07-06 20:52:59 +02:00
  • 91b49d593f Merge pull request #18 from germondai/17-improve-browser-pool-avoid-cold-starts-and-pool-exhaustion-429s-from-browser_recycle_after_contexts GermondandGitHub 2026-07-06 20:47:23 +02:00
  • 444df08d00 docs: update CHANGELOG, README, and docs for recycle-on-blocked and content-processes germondai 2026-07-06 20:11:08 +02:00
  • 2560f9157a feat(scripts): add automated soak test for repeatable perf measurement germondai 2026-07-06 20:10:56 +02:00
  • 4082c0f3c3 ci: run typecheck and tests in CI workflow germondai 2026-07-06 20:10:42 +02:00
  • bb062c6bd8 test(browser): cover recycle-on-blocked and contentProcesses options germondai 2026-07-06 20:10:19 +02:00
  • 7b57cd4f80 refactor(tiers): add normalizeSameSite helper for cookie sameSite germondai 2026-07-06 20:10:13 +02:00
  • da8f9261e1 feat(api): add BROWSER_CONTENT_PROCESSES env var germondai 2026-07-06 20:09:30 +02:00
  • a307fe835d feat(browser): cap Firefox content processes via dom.ipc.processCount germondai 2026-07-06 20:08:56 +02:00
  • 1c90df92d0 feat(tiers): recycle browser only when tier returns blocked germondai 2026-07-06 20:08:32 +02:00
  • 5d0074c540 docs: add changelog entry for browser recycle env var germondai 2026-07-06 19:43:21 +02:00
  • 47fc0fa647 Merge pull request #14 from CoolDotty/codex/fix-browser-process-leak GermondandGitHub 2026-07-06 19:41:42 +02:00
  • d0877c5344 Merge pull request #15 from germondai/12-bug-500-internalservererror-in-prowlarr v0.5.0 GermondandGitHub 2026-07-06 14:59:06 +02:00
  • e8129735b0 fix(api): normalize proxy field at /v1 boundary for Prowlarr input germondai 2026-07-06 13:56:09 +02:00
  • 7ade0665b3 docs: note Prowlarr proxy object form fix in changelog germondai 2026-07-06 13:55:33 +02:00
  • 1e5acb7975 test(tiers): cover normalizeProxy for string and object inputs germondai 2026-07-06 13:55:25 +02:00
  • 4adf1e0347 feat(tiers): add normalizeProxy helper for proxy field normalization germondai 2026-07-06 13:55:02 +02:00
  • ff1804bcb7 fix(types): accept Prowlarr object form for FlareSolverrRequest.proxy germondai 2026-07-06 13:53:53 +02:00
  • 171f673f28 Table formatting dot 2026-07-06 01:15:16 -07:00
  • 68ad2e0f1a Recycle browsers after temporary contexts CoolDotty 2026-07-06 00:47:32 -07:00
  • da8008d200 feat(api): forward per-request proxy override to scrape handler germondai 2026-07-06 02:29:51 +02:00
  • 2520345c48 feat(tiers): rotate proxy pool on blocked in tier 3 and 4 germondai 2026-07-06 02:29:31 +02:00
  • 4057d7bdac refactor(tiers): consolidate ProxyPool export and drop dead re-exports germondai 2026-07-06 02:29:09 +02:00
  • 79f56b68fe Merge pull request #11 from germondai/fix/pr-8-hardening GermondandGitHub 2026-07-06 01:33:38 +02:00
  • 8d69e660c3 Merge branch 'main' into fix/pr-8-hardening GermondandGitHub 2026-07-06 01:33:13 +02:00
  • 59f78f38e7 docs: document method/body support and header sanitisation germondai 2026-07-06 01:12:30 +02:00
  • ab8c34c216 test: add e2e probe script for method and validation variants germondai 2026-07-06 01:12:30 +02:00
  • ad7764eeb6 test(tiers): cover header sanitiser and tier1 post support germondai 2026-07-06 01:12:30 +02:00
  • d8e0745662 feat(api): validate methods and sanitise headers at the boundary germondai 2026-07-06 01:12:11 +02:00
  • 06783038e4 feat(tiers): thread method and body through all tiers germondai 2026-07-06 01:12:11 +02:00
  • abee1e5063 feat(tiers): add header sanitisation and request validation germondai 2026-07-06 01:12:06 +02:00
  • 7c87dc0b1a feat(types): support full HTTP method set and rename postData to body germondai 2026-07-06 01:12:06 +02:00
  • 7be13e88e1 Merge pull request #10 from germondai/9-unable-to-use-any-other-port-numbers-other-than-8191 GermondandGitHub 2026-07-05 18:15:36 +02:00
  • 9261d5d92f docs: update references to renamed PORT env var germondai 2026-07-05 18:06:12 +02:00
  • e05d9afee3 refactor(api): rename PORT_API env var to PORT germondai 2026-07-05 18:06:02 +02:00
  • a78ba4d55a fix(compose): make API host port configurable via PORT env var germondai 2026-07-05 18:05:34 +02:00
  • 0d35b4d698 style(web): reformat cta section line wrap germondai 2026-07-05 17:00:01 +02:00
  • 0bbbb3f987 docs: document proxy pool config, rotation, and per-request override germondai 2026-07-05 16:41:01 +02:00
  • 756f5aeba9 test(tiers): add proxy pool unit tests germondai 2026-07-05 16:40:48 +02:00
  • 8d78a1a6e1 feat(api): configure proxy pools from env and forward overrides germondai 2026-07-05 16:40:42 +02:00
  • 08b595af6a feat(tiers): route proxy pool selection through orchestrator germondai 2026-07-05 16:40:42 +02:00
  • cd5b674c34 feat(types): add per-request proxy override field germondai 2026-07-05 16:40:42 +02:00
  • a9f18cf382 feat(tiers): rework proxy rotator into sticky failure-aware pool germondai 2026-07-05 16:40:36 +02:00
  • d4bb9533c9 docs: document imperva/incapsula solving in tiered execution germondai 2026-07-05 16:40:29 +02:00
  • 2d8769b4f5 feat(tiers): solve imperva challenges in tier3 and tier4 germondai 2026-07-05 16:40:17 +02:00
  • 15cae0ff30 feat(tiers): add imperva sensor cookie wait resolver germondai 2026-07-05 16:40:11 +02:00
  • 56e9c2cfe3 feat(tiers): detect imperva/incapsula waf challenges germondai 2026-07-05 16:40:11 +02:00
  • 3711e2e041 fix(tiers): actually thread proxy url into tier3 browser context germondai 2026-07-05 16:39:53 +02:00
  • df1cf47d08 fix(browser): support per-context proxy override in fresh contexts germondai 2026-07-05 16:39:18 +02:00
  • 5fde497e3a feat: add post method with postData parameter whoshoe 2026-07-03 22:28:42 +08:00
  • c2b328d841 docs: mention bun kernel version requirements for :baseline vs :latest v0.4.0 germondai 2026-07-01 19:04:43 +02:00
  • a6ee080d44 docs(readme): confirm :baseline works on synology per issue #1 germondai 2026-07-01 18:55:04 +02:00
  • a8ae937ba2 feat(web): mention :baseline image tag on landing page germondai 2026-07-01 18:55:02 +02:00
  • 182dd2e4f6 docs(deployment): document :baseline image variant and add crash-loop troubleshooting entry germondai 2026-07-01 18:55:00 +02:00
  • 55b098e061 fix(dockerfile): drop duplicate camoufox fetch for baseline version germondai 2026-07-01 17:26:36 +02:00
  • 0cd4e52716 Merge pull request #6 from germondai/1-bug-docker-image-crashes-on-startup-missing-memoirist-eisdir-camoufox-js GermondandGitHub 2026-07-01 17:19:14 +02:00
  • 668ad9938d fix(docker): switch bun install to --linker=hoisted to fix EISDIR/module-not-found crash loop germondai 2026-07-01 14:33:46 +02:00
  • 94c499b254 Merge pull request #4 from germondai/3-bug-docker-healthchecks-are-failing GermondandGitHub 2026-07-01 12:49:30 +02:00
  • 177f598f83 fix(docker): replace wget with curl healthcheck, add timeout and start_period germondai 2026-07-01 12:36:06 +02:00
  • 23ff002fd4 fix(dockerfile): add curl to runtime stage, drop duplicate camoufox fetch germondai 2026-07-01 12:36:06 +02:00
  • bddd70cfca fix(api): return 503 from /health while browser pool is initializing germondai 2026-07-01 12:36:06 +02:00
  • 06128d827f fix(ci): fix baseline workflow multi-arch race condition and allow workflow_dispatch from any branch germondai 2026-07-01 00:50:50 +02:00
  • f9a3a0314c ci: use semver-baseline tag pattern (1.0.0-baseline) germondai 2026-06-30 23:30:48 +02:00
  • 0a32a05cff ci: publish baseline to same ghcr package as :latest (:baseline tag) germondai 2026-06-30 23:05:12 +02:00
  • 64e1c1ec8a docs: document two-image setup (latest + baseline, no legacy) germondai 2026-06-30 16:04:49 +02:00
  • a36b411f45 ci: publish trawl-baseline to a separate GHCR image germondai 2026-06-30 16:03:30 +02:00
  • ab8c9a8a76 feat(api): add Bun-baseline Dockerfile variant for older CPUs and kernels germondai 2026-06-30 16:02:55 +02:00
  • f397a4455f fix(api): re-add memoirist and camoufox-js as explicit deps for production install germondai 2026-06-30 16:02:38 +02:00
  • 83c30c69f7 docs(readme): fix BROWSER_POOL_SIZE default and document BROWSER_ACQUIRE_TIMEOUT_MS v0.3.0 germondai 2026-06-30 00:33:31 +02:00
  • 59ba779d3c docs: document BROWSER_ACQUIRE_TIMEOUT_MS and HTTP 429 on pool exhaustion germondai 2026-06-30 00:22:57 +02:00
  • efaf0c96a0 feat(browser): make acquire timeout configurable, default 15s germondai 2026-06-29 23:59:05 +02:00
  • 6cfa87c9a5 chore(api): bump default browser pool size to 3 germondai 2026-06-29 23:12:51 +02:00
  • 9cd79fe01e style: biome lint, format, and check pass germondai 2026-06-29 23:10:28 +02:00
  • 002e55d88b test: add scripts/test-scrape-burst.sh for /scrape load testing germondai 2026-06-29 23:08:57 +02:00
  • 182d3dc1eb fix(api): surface browser pool exhaustion as 429 not 500 germondai 2026-06-29 22:35:01 +02:00
  • a42b3a11af feat(api): add concurrency limiter to prevent oom under burst load germondai 2026-06-29 22:11:50 +02:00
  • df79859ebe chore(api): drop @elysiajs/cors, restrict api to non-browser clients germondai 2026-06-29 20:39:52 +02:00