Skip to content

v0.0.15

Choose a tag to compare

@github-actions github-actions released this 07 May 18:18
· 24 commits to main since this release
aab5d1b
  • fix(utils): validate byte_range in fetch_partial; add tests for invalid inputs (1c65b0a)
  • fix(routers): revert large_file_threshold_bytes to 10 MB; cache detect_format; add FileTooLargeError in URL range path (1410220)
  • fix(estimation): enforce max_image_pixels in header-only helpers (security) (41ce964)
  • test(estimation): cover header-only fallback branches + range-fetch failure paths (0cade38)
  • fix(config): promote LARGE_FILE_THRESHOLD to Settings, lower default to 1 MB (d2d7a3e)
  • feat(routers): Range-fetch URL mode + multipart header-only short-circuit (3b89858)
  • feat(estimation): wire PNG/JPEG header-only path behind FITTED_ESTIMATOR_MODE=active (9bdf4d1)
  • feat(bench): add jpeg_header fit pipeline + commit artifact (2859aca)
  • feat(estimation): add JpegHeaderModel + load_jpeg_header_model loader (d674fcf)
  • feat(estimation): add LSM source-quality estimation (NumPy broadcast) (d0336ad)
  • feat(estimation): add JPEG header parser (pure-bytes, security-hardened) (5835bb1)
  • feat(bench): add png_header fit pipeline + commit artifact (b33fa6d)
  • feat(estimation): add PngHeaderModel + load_png_header_model loader (69ca68e)
  • feat(estimation): add PNG header parser (pure-bytes IHDR) (6363690)
  • feat(utils): add fetch_partial for HTTP Range requests (be336d6)
  • fix(estimation): bound-check knot betas in artifact validator (706ef99)
  • style: fix ruff import ordering + black formatting (32b79f5)
  • chore(bench): drop pandas dep from bench/fit/png.py — use numpy directly (fc526d4)
  • fix(config,docs): tighten fitted_estimator_mode to Literal + sync docstrings (599fce9)
  • fix(estimation): to_thread the fitted PNG helper to unblock event loop (2363d6f)
  • fix(estimation): defensive try/except + schema validation in fitted PNG path (9db7a93)
  • perf(estimation): add input_bpp + quality knots, retrain on full manifest (160a5d6)
  • feat(bench): add bench/fit/png.py + commit png_v1.json artifact (3f677e6)
  • feat(estimation): wire PNG fitted-BPP path behind FITTED_ESTIMATOR_MODE flag (45e80c5)
  • foundation: artifact schema + load union + PNG features (ece38b9)
  • test: lift production coverage to 97% (was 90%) (e4c3e1d)
  • ci(tests): post coverage comment fresh each run instead of editing in place (0a15491)
  • docs(avif): polish review nits — clarify colr-kind wording, add invariant note (d26f60e)
  • fix(avif): exclude ICC profile from pre-flight meta_bytes count (9a6ad23)
  • fix(avif,webp): address PR #25 review feedback (33dc7d0)
  • fix(svg): allow internal entity declarations, keep XXE/billion-laughs blocked (23ff2c3)
  • perf(webp): preset-aware libwebp method (3 for MED/LOW, 4 for HIGH) (0c54be9)
  • perf(gif): drop palette quantization for huge animated GIFs (bb39db7)
  • perf(avif): pre-flight box-header check skips decode on no-op inputs (cebc74b)
  • chore(bench): refresh baseline.core.json post iter2 perf wins (c9b15cd)
  • fix: address PR #23 Copilot review + ruff/black cleanup (fdb8616)
  • docs(bench): label quick-mode memory data as process-wide (979c2be)
  • perf(apng): re-differentiate presets via animation pixel-budget (2b83ef1)
  • perf(png): dimension-aware oxipng level + pngquant early-exit (e8dcf4f)
  • docs(png): clarify pngquant-vs-lossless behavior and pick-smallest tradeoff (e717ea5)
  • fix: harden gather, fail-open visibility, estimator subprocess clarity (2371c04)
  • perf(ingest): stream multipart uploads + reuse pooled httpx in estimate (903ffa9)
  • perf(gcs): off-load synchronous upload to a thread (7cf51f5)
  • fix(cloudrun): correct gate math + use --update-env-vars (9c6a1c3)
  • perf(docker): drop unused webp apt + use runtime libheif/libde265/libaom (43d03bc)
  • perf(concurrency): floor compression semaphore at 2 (8afb8d4)
  • chore(cloudrun): tune deploy for 8 vCPU / 8 GB instance (cd050a9)
  • chore(bench): refresh baseline.core.json post iter1 perf wins (007cc69)
  • perf(bmp): vectorize RLE8 boundary detection with numpy (e834d26)
  • perf(url-fetch): pool httpx client + stream downloads with running size check (44c3108)
  • perf(router): pass detected format through to optimizer dispatch (fd26cbd)
  • perf(bmp): vectorize palette detection with numpy + early-exit sample (9d0ed58)
  • perf(avif,heic): skip strip on lossy presets, drop parallel path (0a8c17e)
  • perf(apng): pin animated path to oxipng level 2 (b44e4ba)
  • perf(webp): drop cwebp parallel path (ad01ca4)
  • perf(png): skip wasted parallel oxipng baseline (377d723)
  • chore(bench): refresh baseline.core.json from Linux Docker (891d129)
  • docs(bench): document new measurement axes + capabilities (d1488f1)
  • fix(bench): reduce path_thin_gradient_large_png dims to 12000x9000 (eadfe16)
  • feat(bench): add 14 non-photo real-world entries to full manifest (88ea4bc)
  • feat(bench): expand content coverage to 103 corpus entries (09de34a)
  • feat(bench): guard bench compare against incomparable runs (8cd0a0d)
  • feat(bench): attribute estimator path on each /estimate response (58a726f)
  • feat(bench): split load-mode 503s + add fat_input tier + JXL preflight (119d434)
  • feat(bench): add SVG synthesizer + expand corpus to 69 entries (c6251ac)
  • fix: register jxlpy PIL plugin via JXLImagePlugin submodule (#19) (c3f124d)
  • fix(lint): fix unsorted import block in tests/bench/test_tui.py (ruff I001) (b29d335)
  • fix(deps): add missing pillow-avif-plugin to requirements.txt (dcbd90f)
  • feat(bench): add interactive TUI wrapper at python -m bench.tui (5dd2cf7)
  • fix(bench): count low-power improvements in CompareResult.improvements (2abf8b3)
  • fix(bench): three labeling/path bugs surfaced during command verification (add03e3)
  • feat(bench): add /quality-samples/ sub-page with lazy before/after thumbnails (137f2af)
  • feat(bench): add scorecard view to dashboard for non-technical reviewers (dfcbdd9)
  • feat(bench): add --mode pr combining timing, accuracy, and quality (9e39187)
  • feat(bench): add per-format rollup at top of comparison report (794c9de)
  • fix(bench): add noise-floor fallback when iterations<3 in compare gate (d77932e)
  • ci(bench): convert bench-pr workflow to manual workflow_dispatch trigger (c163972)
  • fix(bench): address Copilot review comments on PR #18 (8b47db8)
  • fix(ci): install requirements-bench.txt in compare-step container too (d81d111)
  • chore(bench): refresh baseline.core.json from Docker-CI run 25189528057 (9418ece)
  • fix(ci): chown bench output back to runner user after docker run (78027af)
  • chore(ci): upload bench head.json as artifact (always) (3ecb302)
  • fix(bench): load_cases skips missing corpus files by default (1db0919)
  • fix(ci): install requirements-bench.txt for psutil + numpy (e47f77c)
  • feat(bench): add static HTML dashboard for trend visibility (28d5e21)
  • feat(bench): wire deep-color (10/12-bit) encoding for JXL/HEIC/AVIF (b7c4be4)
  • feat(bench): auto-refresh baseline.core.json on main merges (b78af8a)
  • feat(bench): SVG/SVGZ pass-through + 10 Wikimedia real-world entries (1fd8fa1)
  • feat(bench): add --quality-fast for PR-CI quality gating (089b84d)
  • fix(bench): add numpy as dev/CI dep (bench needs it; prod doesn't) (86737ef)
  • feat(bench): add CI baseline + auto-compare on PRs (10197be)
  • feat(bench): add load mode (concurrent gate-driven contention test) (8e5f412)
  • feat(bench): add quality mode (SSIM/PSNR/SSIMULACRA2/butteraugli) (c983749)
  • feat(bench): add --isolate flag for timing mode (9793bbc)
  • feat(bench): add accuracy mode (estimate vs optimize error) (d477295)
  • feat(bench): add JXL coverage to core (5 cells, all buckets) (fa9d88d)
  • fix(bench): stabilize parallelism test against subprocess cold-start (9a33e54)
  • feat(bench): expand core corpus to full format × bucket coverage (d90ec46)
  • feat(bench): add fetched-corpus tier with v2 manifest + tier tags (27cfd72)
  • delete: remove outdated memory and CPU optimization brainstorm and design documents (b8661cf)
  • feat(bench): add RSS curve sampling to memory mode (f77d981)
  • feat(bench): rewrite benchmark + corpus with subprocess-aware measurement (a88c8b8)