ruvector/examples/benchmarks/Cargo.toml
ruvnet f5c39e5bbe chore(ci): green security audit + split test job into 6 matrix shards
Unblocks the 7 stacked PRs (#381-#387) and turns `main`'s CI green
for the first time in days. Two issues fixed:

## Failure 1 — Security audit (was: 8 vulnerabilities)

`cargo audit` is now exit 0. 4 of the 5 critical advisories were
fixed by version bumps; only the unfixable one is ignored.

**Dep-bumped:**
- `rustls-webpki 0.101.7` + `0.103.10` → `0.103.13` via
  `cargo update -p rustls-webpki@0.103.10`. Patches:
    RUSTSEC-2026-0098 (URI name constraints)
    RUSTSEC-2026-0099 (wildcard name constraints)
    RUSTSEC-2026-0104 (CRL parsing panic)
- `idna 0.5.0` → `1.1.0` via `validator 0.18 → 0.20` in
  `examples/scipix`. Patches RUSTSEC-2024-0421 (Punycode acceptance).
- Bonus: `reqwest 0.11 → 0.12` (in `ruvector-core` + `examples/benchmarks`)
  and `hf-hub 0.3 → 0.4` (in `ruvector-core` + `ruvllm` +
  `ruvllm-cli`). Removes the entire legacy `rustls 0.21` /
  `rustls-webpki 0.101.7` subtree from the lockfile.

**Ignored** (single advisory, with rationale):
- `RUSTSEC-2023-0071` (rsa Marvin timing sidechannel) — no upstream
  fix available; we don't expose RSA decryption services. Documented
  in `.cargo/audit.toml`.

**Unmaintained warnings** (16 total — proc-macro-error, derivative,
instant, paste, bincode 1, pqcrypto-{kyber,dilithium}, rustls-pemfile 1,
rusttype, wee_alloc, number_prefix, rand_os, core2, lru, pprof, rand) —
each given a one-line justification in `.cargo/audit.toml` so CI stays
green on them while the team decides whether to chase upstream
replacements.

## Failure 2 — Tests timeout (was: 30-min job timeout cancellation)

`.github/workflows/ci.yml` `test` job is now a `matrix` with
`fail-fast: false` and `timeout-minutes: 45`. Six parallel shards
under `cargo nextest run` (installed via `taiki-e/install-action@v2`)
plus a separate `cargo test --doc` step (nextest doesn't run
doctests):

  | Shard            | Crates                                      |
  |------------------|---------------------------------------------|
  | vector-index     | rabitq, rulake, diskann, graph, gnn, cnn    |
  | rvagent          | 10 rvagent-* crates                         |
  | ruvix            | 16 ruvix-* crates                           |
  | ruqu-quantum     | 5 ruqu* crates                              |
  | ml-research      | attention, mincut, scipix, fpga-transformer,|
  |                  | sparse-inference, sparsifier, solver,       |
  |                  | graph-transformer, domain-expansion,        |
  |                  | robotics                                    |
  | core-and-rest    | --workspace minus the above                 |

`Swatinem/rust-cache@v2` is keyed per shard. Audit job switched to
`taiki-e/install-action` for `cargo-audit` (faster than
`cargo install --locked`).

## Verification

  cargo audit                                                   → exit 0
  cargo build --workspace --exclude ruvector-postgres           → clean
  cargo clippy --workspace --exclude ruvector-postgres --no-deps -- -D warnings → exit 0
  cargo fmt --all --check                                       → exit 0

## Cargo.lock churn

166-line diff, net ~120 lines removed (more deletions than
additions). Removed: `idna 0.5.0`, `rustls-webpki 0.101.7`,
`validator 0.18`, `validator_derive 0.18`, `proc-macro-error 1.0.4`.
Added: `rustls-webpki 0.103.13`, `validator 0.20`,
`proc-macro-error2`, `hf-hub 0.4.3`, `reqwest 0.12.28`. No
suspicious crates.

## Recommended merge order

1. **This PR first** — unblocks every other PR's CI.
2. After this lands and main is green, rebase the 7 open PRs
   (#381-#387) one at a time. The DiskANN stack (#383→#384→#385→#386)
   must merge in numeric order. #381 (Python SDK), #382 (research),
   #387 (graph property index) are independent and can merge in
   any order after their CI goes green on the rebase.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-04-26 00:17:25 -04:00

110 lines
2.3 KiB
TOML

[package]
name = "ruvector-benchmarks"
version = "0.1.0"
edition = "2021"
description = "Comprehensive benchmarks for temporal reasoning and vector operations"
publish = false
[dependencies]
# Core ruvector
ruvector-core = { path = "../../crates/ruvector-core", default-features = false, features = ["parallel"] }
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
bincode = { version = "2.0.0-rc.3", features = ["serde"] }
# Error handling
anyhow = "1.0"
thiserror = "2.0"
# Random and numerics
rand = "0.8"
rand_distr = "0.4"
# Parallel processing
rayon = "1.10"
# CLI and progress
clap = { version = "4.5", features = ["derive"] }
indicatif = "0.17"
console = "0.15"
# Async
tokio = { version = "1.41", features = ["rt-multi-thread", "sync", "macros", "time", "fs"] }
futures = "0.3"
# Time handling (critical for temporal benchmarks)
chrono = { version = "0.4", features = ["serde"] }
# Logging and tracing
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# Crypto for witness chains
sha2 = "0.10"
# RVF native format integration
rvf-types = { path = "../../crates/rvf/rvf-types" }
rvf-crypto = { path = "../../crates/rvf/rvf-crypto" }
rvf-wire = { path = "../../crates/rvf/rvf-wire" }
# Statistics
statistical = "1.0"
hdrhistogram = "7.5"
# HTTP for tool-augmented tests
reqwest = { version = "0.12", features = ["json"] }
# Visualization
plotters = { version = "0.3", optional = true }
# Type theory for verified reasoning (lean-agentic)
lean-agentic = "0.1"
[dev-dependencies]
tempfile = "3.13"
[features]
default = []
visualize = ["plotters"]
[[bin]]
name = "temporal-benchmark"
path = "src/bin/temporal_benchmark.rs"
[[bin]]
name = "vector-benchmark"
path = "src/bin/vector_benchmark.rs"
[[bin]]
name = "swarm-regret"
path = "src/bin/swarm_regret.rs"
[[bin]]
name = "timepuzzle-runner"
path = "src/bin/timepuzzle_runner.rs"
[[bin]]
name = "intelligence-assessment"
path = "src/bin/intelligence_assessment.rs"
[[bin]]
name = "rvf-intelligence-bench"
path = "src/bin/rvf_intelligence_bench.rs"
[[bin]]
name = "superintelligence"
path = "src/bin/superintelligence.rs"
[[bin]]
name = "agi-proof-harness"
path = "src/bin/agi_proof_harness.rs"
[[bin]]
name = "acceptance-rvf"
path = "src/bin/acceptance_rvf.rs"
[[bin]]
name = "wasm-solver-bench"
path = "src/bin/wasm_solver_bench.rs"