Commit graph

286 commits

Author SHA1 Message Date
092c88cab1 chore: bump version to 4.2.36 2026-01-28 18:40:21 -05:00
8da77c6dd1 feat(reports): add API health tracking to perf reports
- generate-perf-report.sh now collects api-health.json from test artifacts
- Aggregates retry counts by type (429, 5xx, timeout, connection)
- Calculates API health score (100 = perfect, decreases with retries)
- Adds API Health section to perf.md with interpretation guide
- aggregate-performance-reports.py now shows API health trends over time
- Tracks scientific integrity improvements starting from 4.2.34
2026-01-28 18:40:10 -05:00
ee43329a55 chore: bump version to 4.2.35 2026-01-28 18:33:17 -05:00
b651bf2b63 feat(tests): add transient error tracking for API health monitoring
Track retry counts by error type (429, 5xx, timeout, connection) and
output API Health Report at end of each test run. Writes api-health.json
for aggregation across all 42 SDKs.

This lets us monitor API reliability over time and identify patterns.
2026-01-28 18:33:04 -05:00
0db0c9be22 chore: bump version to 4.2.34 2026-01-28 18:26:23 -05:00
ab70e8b508 fix(tests): remove soft passes - tests must never lie
SCIENTIFIC INTEGRITY: Tests now retry transient errors (429, 5xx,
timeouts) with exponential backoff instead of falsely passing.

Prior to this fix, ~35% of 'passing' tests were masked failures.
Now tests will PASS (verified), FAIL (couldn't verify), or SKIP.
2026-01-28 18:26:23 -05:00
GitLab CI
2316595f6f perf: Update aggregated performance analysis [ci skip] 2026-01-28 17:24:35 -05:00
GitLab CI
eda673069f perf - Add performance report for 4.2.32 [ci skip] 2026-01-28 17:23:51 -05:00
GitLab CI
27725bc535 perf: Update aggregated performance analysis [ci skip] 2026-01-28 17:18:13 -05:00
GitLab CI
ccc9681982 perf - Add performance report for 4.2.31 [ci skip] 2026-01-28 17:17:45 -05:00
GitLab CI
be65c03eee perf: Update aggregated performance analysis [ci skip] 2026-01-28 17:16:59 -05:00
GitLab CI
ce03941151 perf - Add performance report for 4.2.30 [ci skip] 2026-01-28 17:16:33 -05:00
6997552307 chore: bump version to 4.2.31 2026-01-28 17:04:02 -05:00
23b47bfbf8 fix(qr): Groovy use qrencode CLI instead of ZXing 2026-01-28 17:03:58 -05:00
GitLab CI
50069440b4 perf: Update aggregated performance analysis [ci skip] 2026-01-28 15:40:40 -05:00
GitLab CI
257dc4cf6b perf - Add performance report for 4.2.29 [ci skip] 2026-01-28 15:40:14 -05:00
15f37c8acc chore: bump version to 4.2.29
Test QR code functional tests with updated container image.
2026-01-28 15:32:42 -05:00
bd91337584 fix(qr): Crystal use C FFI instead of qr-code shard
Crystal shards pre-cached during build aren't available for
single-file execution. Use @[Link("qrencode")] FFI instead.
2026-01-28 07:59:57 -05:00
edfe6dc865 fix(qr): Fortran dlopen FFI + Nim versioned library names
- Fortran: use dlopen/dlsym at runtime instead of direct linking
  (sandbox doesn't pass -lqrencode to gfortran)
- Both: try libqrencode.so.4, .so.3, .so in order
2026-01-28 07:41:29 -05:00
99ac93b2d5 fix(qr): update 4 failing language tests
- Perl: use Text::QRCode (pure Perl, pre-installed) instead of Imager::QRCode
- Elixir: try Erlang :qrcode module, fallback to CLI
- OCaml: use Unix.open_process_in (no ctypes in compiled mode)
- Fortran: direct C FFI binding (requires -lqrencode at link)
2026-01-28 07:04:21 -05:00
d517236663 fix(ci): match test/ directory in change detection (was tests/)
The QR test files live in test/ (singular) but detect-changes.sh
only matched tests/ (plural), causing the matrix to skip.
2026-01-28 06:43:41 -05:00
bec3f8c289 fix(qr): rewrite 7 failing language tests to use native C FFI
All use dlopen/dlsym to libqrencode.so (system-wide via gcc role):
- Haskell: System.Posix.DynamicLinker + foreign import ccall "dynamic"
- F#: Mono P/Invoke DllImport("libqrencode.so")
- COBOL: LINKAGE SECTION for proper struct pointer access
- Nim: dynlib module (loadLib/symAddr)
- Fortran: renamed dlclose binding to avoid symbol collision
- D: core.sys.posix.dlfcn (dlopen/dlsym)
- OCaml: Ctypes.foreign via ocamlfind #require
2026-01-27 19:53:21 -05:00
702b21f920 fix(qr): pass file path without -s flag for proper file execution
With -s, the un CLI treats the positional argument as inline code text.
Without -s, it reads the file from disk and auto-detects the language
from the extension. The QR test was failing across 18 languages because
test/qr.py was being interpreted as code (test divided by qr.py).
2026-01-27 19:15:56 -05:00
d7388d43ba feat: add QR code functional tests across 41 languages
Native QR generation for each language's ecosystem:
- 27 languages use package manager QR libraries (qrcode, rqrcode, ZXing, etc.)
- 10 languages use C FFI to libqrencode (dlopen, ISO_C_BINDING, @cImport, critcl)
- 2 shell languages use qrencode CLI (native shell paradigm)
- 1 language (Prolog) uses C FFI with CLI fallback

Section 9 added to test-sdk.sh with get_qr_file() mapping and
QR:unsandbox-qr-ok:ROWS pattern validation across the hydra matrix.
2026-01-27 18:24:54 -05:00
0f4755620f fix: make manual-burn-pool job visible with play button on pipelines 2026-01-25 09:35:44 -05:00
c59e69eb52 feat: add manual matrix trigger job for on-demand pool churn
- New 'manual-matrix-run' job with play button in GitLab UI
- Click to run full 42-language matrix without creating a tag
- Useful for load testing, pool churn, and QR lib testing
- Added --force-all flag to generate-matrix.sh
2026-01-25 08:14:17 -05:00
eeb1dcb3dc feat: add --show-freeze-page and --no-show-freeze-page CLI flags
Add CLI support for toggling the show_freeze_page service setting,
which controls whether frozen services display an HTML payment page
or return a JSON error response.

Updated 18 SDK implementations + CLI_SPEC.md documentation.
2026-01-25 04:28:24 -05:00
1b76be5277 fix: resolve merge conflicts in PERFORMANCE-HISTORY.md 2026-01-24 19:12:39 -05:00
8a8edbc65a perf: add aggregate report for 4.2.27 and 4.2.28 with new infrastructure context
- API and orchestrator now on dedicated infrastructure (separated from compute)
- Two pool types: Xeon (32 vCPU, 300GB RAM) and i9 (32 vCPU, 32GB RAM)
- 4.2.27: 119s avg, 4.2.28: 116s avg (-2.5%)
2026-01-24 19:07:11 -05:00
GitLab CI
54223ea9fe perf: Update aggregated performance analysis [ci skip] 2026-01-24 18:31:53 -05:00
GitLab CI
3b30c311ea perf - Add performance report for 4.2.28 [ci skip] 2026-01-24 18:31:29 -05:00
GitLab CI
128c19c878 perf: Update aggregated performance analysis [ci skip] 2026-01-24 18:28:02 -05:00
GitLab CI
484a9c78f3 perf - Add performance report for 4.2.27 [ci skip] 2026-01-24 18:27:37 -05:00
919890bbbd chore: bump version to 4.2.28 2026-01-24 18:17:07 -05:00
14c50efff6 chore: bump version to 4.2.27 2026-01-24 18:16:56 -05:00
08e7afc691 perf: add aggregate report for 4.2.25 and 4.2.26 [ci skip] 2026-01-24 18:14:26 -05:00
7dd432189d Delete AGGREGATED-PERFORMANCE.md 2026-01-24 23:13:03 +00:00
GitLab CI
ac59c105f9 perf: Update aggregated performance analysis [ci skip] 2026-01-24 16:08:30 -05:00
GitLab CI
35b2cd79fe perf - Add performance report for 4.2.26 [ci skip] 2026-01-24 16:08:09 -05:00
GitLab CI
b317065ea0 perf: Update aggregated performance analysis [ci skip] 2026-01-24 16:04:33 -05:00
GitLab CI
51cb91e915 perf - Add performance report for 4.2.25 [ci skip] 2026-01-24 16:04:07 -05:00
2648d4ccf9 chore: bump version to 4.2.26 2026-01-24 15:56:49 -05:00
affa90abef chore: bump version to 4.2.25 2026-01-24 15:56:38 -05:00
30837d20e5 fix: regenerate aggregate report to resolve merge conflicts [ci skip] 2026-01-24 15:46:02 -05:00
GitLab CI
ee6ae407a3 perf: Update aggregated performance analysis [ci skip] 2026-01-24 14:14:33 -05:00
GitLab CI
6268800e9b perf: Update aggregated performance analysis [ci skip] 2026-01-24 14:14:19 -05:00
GitLab CI
9a42515ec2 perf - Add performance report for 4.2.23 [ci skip] 2026-01-24 14:14:10 -05:00
GitLab CI
89e6672fa8 perf - Add performance report for 4.2.24 [ci skip] 2026-01-24 14:13:52 -05:00
35076c4fbf perf: Update aggregated performance charts [ci skip] 2026-01-24 14:05:38 -05:00
cdd7cf714b chore: bump version to 4.2.24 2026-01-24 13:47:09 -05:00