Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
f3570c7
feat(benchmark): pure layer for matched Arango/Postgres dataframe ben…
matthewpeterkort Nov 13, 2026
d2068e1
feat(benchmark): arm provisioning and public-route harness
matthewpeterkort Nov 13, 2026
d66dc91
feat(benchmark): benchcli verify/run entry point
matthewpeterkort Nov 13, 2026
efc36ac
feat(benchmark): battery authoring in acceptance-proven workspace shapes
matthewpeterkort Nov 13, 2026
118f873
feat(benchmark): run scope/leg plan in report schema, verifier, and m…
matthewpeterkort Nov 13, 2026
f6f0570
feat(benchmark): control-run math and full authoring-route client
matthewpeterkort Nov 13, 2026
66d243a
feat(benchmark): live driver with pre-timing auth gate, controls, and…
matthewpeterkort Nov 13, 2026
bde236b
feat(benchcli): wired run command with fail-closed preflight and live…
matthewpeterkort Nov 13, 2026
c34c0c1
feat(scripts): node orchestrator for backend benchmark checks with di…
matthewpeterkort Nov 13, 2026
ce41f0f
feat(benchcli): setup-pg/drop-pg six-series ladder bootstrap under th…
matthewpeterkort Nov 13, 2026
2928d60
fix(benchcli): accept the exact loom_bench schema prefix (schemas gai…
matthewpeterkort Nov 13, 2026
58e5d94
fix(benchmark): supply the population-mapping cursor secret in spawne…
matthewpeterkort Nov 13, 2026
c1ad89f
fix(benchmark): render the chosen listen address into the spawned arm…
matthewpeterkort Nov 13, 2026
71855d1
fix(benchmark): MockFence grants read AND write on granted paths
matthewpeterkort Nov 13, 2026
68a09c2
feat(benchmark): planned run scope with skip-capture discipline
matthewpeterkort Nov 13, 2026
4a6ed79
test(benchmark): pin benchcli fail-closed guards, DSN parsing, and de…
matthewpeterkort Nov 13, 2026
cd34fd4
test(benchmark): commit defect repros for PG-PG-AUTH-PATH-DISCOVERY-A…
matthewpeterkort Nov 13, 2026
7b47cb6
fix(benchmark): emit FHIR-valid Patient names and Condition clinicalS…
matthewpeterkort Nov 13, 2026
2af2cf4
fix(benchmark): send auth_resource_path on durable write routes
matthewpeterkort Nov 13, 2026
875243e
fix(benchmark): pin arm working directory and real fixtures in the li…
matthewpeterkort Nov 13, 2026
7a32a5b
feat(benchmark): disclose the ClickHouse-backed publication chain as …
matthewpeterkort Nov 13, 2026
99835fd
fix(benchmark): register audit packages and confine benchcli to the p…
matthewpeterkort Nov 13, 2026
a9417fb
Merge remote-tracking branch 'origin/feature/postgres-backend' into a…
matthewpeterkort Nov 13, 2026
51fad8e
fix(benchmark): exclude unproven workloads from live legs with named …
matthewpeterkort Nov 13, 2026
7d0d620
fix(benchmark): truthful cache labels and regime-aware controls (revi…
matthewpeterkort Nov 13, 2026
9d188d9
fix(benchmark): derive-age-band authors as a closed category recode
matthewpeterkort Nov 13, 2026
a4a27ab
Merge commit '9534829d' into ao/backend-benchmark/pg-benchmark-dataframe
matthewpeterkort Nov 13, 2026
4e500c1
feat(benchmark): paired real-driver timing lane, timed publication mo…
matthewpeterkort Nov 13, 2026
b4a2240
fix(benchmark): paired lane provisions its own fresh benchmark database
matthewpeterkort Nov 13, 2026
44e8757
fix(ci): paired-driver-benchmark job honours the ten-minute budget
matthewpeterkort Nov 13, 2026
44f2568
fix(benchmark): paired lane uses a benchcli-legal database name
matthewpeterkort Nov 13, 2026
10dc37e
fix(arango): discovering auth paths on a never-ingested database answ…
matthewpeterkort Nov 13, 2026
67b6458
fix(benchmark): publish aggregate predicates as contributor intent
matthewpeterkort Nov 13, 2026
84fb820
fix(benchmark): address the project by its fence legacy key so scoped…
matthewpeterkort Nov 13, 2026
3e2172a
docs(benchmark): current postgres planned-leg capability
matthewpeterkort Nov 13, 2026
76054ef
fix(benchmark): run the paired lane through the real publication chain
matthewpeterkort Nov 13, 2026
1fdd963
Merge remote-tracking branch 'origin/feature/postgres-backend' into a…
matthewpeterkort Nov 13, 2026
ef7380d
fix(benchmark): authenticate the paired lane's ClickHouse service
matthewpeterkort Nov 13, 2026
7602791
style(benchmark): gofmt the excluded-mode comment in report.go
matthewpeterkort Nov 13, 2026
748ba09
fix(benchmark): warm-cell claimable regime for spawned arms; truthful…
matthewpeterkort Nov 13, 2026
4d2263d
feat(benchmark): authoring publish verification, activation fail-clos…
matthewpeterkort Nov 13, 2026
6499633
refactor(benchmark): key activation-refusal detection on codes and ad…
matthewpeterkort Nov 13, 2026
7fe53ce
fix(benchmark): wire setup proof and authoring publish into the live …
matthewpeterkort Nov 13, 2026
2f455ef
fix(benchmark): verifier recomputes control values; stability CV judg…
matthewpeterkort Nov 13, 2026
15d8375
test(benchmark): unpinned forgery cases now fail solely on their targ…
matthewpeterkort Nov 13, 2026
ba53916
Merge origin/feature/postgres-backend (7e081f49, #184 activation adap…
matthewpeterkort Nov 13, 2026
93295ea
Merge origin/feature/postgres-backend (492d3f01, #188 deterministic p…
matthewpeterkort Nov 13, 2026
7c5ef71
Merge origin/feature/postgres-backend (cc889e22, #190 pg-renderer tra…
matthewpeterkort Nov 13, 2026
79e72ed
fix(benchmark): decode explorer readback from real ExplorerStateV1 shape
matthewpeterkort Nov 13, 2026
d437550
fix(benchmark): decode preview columns from the real ContractColumn w…
matthewpeterkort Nov 13, 2026
9764e83
fix(benchmark): carry sampled from the preview wire into the complete…
matthewpeterkort Nov 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 118 additions & 0 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -492,6 +492,124 @@ jobs:
path: ${{ runner.temp }}/backend-conformance
if-no-files-found: warn

paired-driver-benchmark:
name: factory/paired-driver-benchmark
runs-on: ubuntu-latest
# Operator acceptance (2026-11-13): the actual speed comparison between
# the two real drivers. Both arms run the SAME matched battery against
# actual ArangoDB and PostgreSQL services -- the same images, ports,
# and health options the backend-conformance lane adjudicates -- plus
# the actual ClickHouse service: authoring publishes through the
# ClickHouse-backed materialization chain (a ClickHouse-less
# deployment cannot author at all -- the 422 MATERIALIZATION_FAILED
# the local rehearsal produced is the proof), so this lane runs the
# full chain with --publication=run. Each arm materializes into its
# own loom_bench_* database; the timed path itself is the
# source-row preview route, identical on both arms.
# The gate fails closed if either arm is planned/not_run/excluded, if
# the chain did not run, or if either driver produced no real timing
# samples; a disclosure artifact can never turn this check green.
timeout-minutes: 10
services:
arangodb:
image: arangodb:3.12
env:
ARANGO_NO_AUTH: '1'
ports:
- 8529:8529
options: >-
--health-cmd "wget --quiet --tries=1 --spider http://127.0.0.1:8529/_api/version"
--health-interval 3s
--health-timeout 5s
--health-retries 40
postgres18:
image: postgres:18
env:
POSTGRES_USER: loom_bench
POSTGRES_PASSWORD: loom_ci_test_only
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -h 127.0.0.1 -U loom_bench"
--health-interval 3s
--health-timeout 5s
--health-retries 40
clickhouse:
image: clickhouse/clickhouse-server:25.3
env:
CLICKHOUSE_USER: loom_ci
CLICKHOUSE_PASSWORD: loom_ci_password
CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: "1"
ports:
- 9000:9000
- 8123:8123
options: >-
--health-cmd "wget --no-verbose --tries=1 --spider http://127.0.0.1:8123/ping || exit 1"
--health-interval 5s
--health-timeout 3s
--health-retries 20
env:
LOOM_TEST_ARANGO_URL: http://127.0.0.1:8529
LOOM_TEST_POSTGRES_URL: postgresql://loom_bench:loom_ci_test_only@127.0.0.1:5432/loom_bench_paired?sslmode=disable
LOOM_BENCH_ADMIN_DSN: postgresql://loom_bench:loom_ci_test_only@127.0.0.1:5432/postgres?sslmode=disable
LOOM_BENCH_CH_USER: loom_ci
LOOM_BENCH_CH_PASSWORD: loom_ci_password
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.26.5
cache: true
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 24.x
- name: Build the server binary and benchcli from this SHA
run: |
mkdir -p "$RUNNER_TEMP/paired-bin"
go build -o "$RUNNER_TEMP/paired-bin/loom-server" ./cmd/arango-fhir-server
go build -o "$RUNNER_TEMP/paired-bin/benchcli" ./internal/dataframe/benchmark/cmd/benchcli
- name: Run the paired benchmark against both services
# Five interleaved rounds x two measured iterations per driver: the
# post-restart process-cold sample plus one warm sample per round
# (claims cite the warm cell), one warmup, tiny matched fixture,
# full publication chain through the ClickHouse service (each arm
# materializes into its own loom_bench_*
# database). The script verifies the artifact through the Go
# verifier, classifies realness (both arms ran, the chain ran,
# both timed), and writes comparison.md; it exits nonzero on any
# shortfall, so the job goes red rather than reporting
# scaffolding as a comparison.
run: >-
node scripts/benchmark-backends.mjs --paired
--binary "$RUNNER_TEMP/paired-bin/loom-server"
--benchcli "$RUNNER_TEMP/paired-bin/benchcli"
--profile tiny
--iterations 10
--warmup 1
--rounds 5
--source-commit "$GITHUB_SHA"
--clickhouse-url clickhouse://127.0.0.1:9000
--window-note "granted by the paired-driver-benchmark CI job (isolated services, $GITHUB_RUN_ID)"
--out "$RUNNER_TEMP/paired-benchmark"
- name: Show the comparison table in the job log
if: always()
run: |
if [ -f "$RUNNER_TEMP/paired-benchmark/comparison.md" ]; then
cat "$RUNNER_TEMP/paired-benchmark/comparison.md"
else
echo "no comparison table: the paired check did not reach a real both-driver comparison" >&2
fi
- name: Preserve paired benchmark evidence
if: always()
uses: actions/upload-artifact@v4
with:
name: paired-driver-benchmark
path: ${{ runner.temp }}/paired-benchmark
if-no-files-found: error

node-unit:
name: Node unit tests
runs-on: ubuntu-latest
Expand Down
42 changes: 22 additions & 20 deletions docs/PACKAGE_AUDIT.csv

Large diffs are not rendered by default.

Loading
Loading