ruvector/.github
rUv 445b43f285
ci(sona): cross-implementation drift gate — parity harness, RVF fingerprints, stub tripwire (#554)
* ci(sona): cross-implementation drift gate — parity harness, RVF fingerprints, stub tripwire

Issues #519/#553 were the same learn-from-feedback stub shipped in two of
the three parallel SONA implementations (crates/sona, ruvllm TS
SonaCoordinator, ruvector CLI intelligence engine) — nothing enforced
behavioral parity, so a fix in one layer did not protect the others.

Three guards, wired into .github/workflows/sona-drift.yml (path-filtered,
fail-fast order, cached, guard-the-guard step so deleting the harness
fails CI):

1. scripts/sona-drift/stub-tripwire.mjs — static no-op detector on the
   seam functions; fails on effectively-empty bodies (comments/logging
   only), anchored to definitions, not call sites.
2. scripts/sona-drift/harness.mjs — runs one deterministic feedback
   scenario through all three implementations and enforces the contract
   matrix: fresh==0, single positive feedback adapts (the #519/#553
   regression), negative feedback adapts, neutral no-op where defined,
   inference output changes. Scenarios run twice and any bit-level
   fingerprint difference errors, so jitter cannot enter fingerprints.
3. scripts/sona-drift/rvf-fingerprint.mjs — behavioral fingerprints stored
   as vectors in a committed RVF store (reference.rvf, @ruvector/rvf
   NodeBackend); validates current behavior by L2 distance with a
   1e-3-relative tolerance (>100x FP-reassociation headroom, ~500x below
   a real stub regression). --update regenerates on intentional change.

All guards verified to fire: a reverted #553 stub fails C2/C3/C5 and the
tripwire; a perturbed fingerprint fails RVF validation. Skipped
implementations (unbuilt dist) degrade visibly, not silently.

Co-Authored-By: claude-flow <ruv@ruv.net>

* ci(sona-drift): install @ruvector/rvf-node before the fingerprint gate

First CI run: tripwire + harness passed on Linux, but the RVF validation
threw BackendNotFound — nothing installed the rvf native backend on the
runner. Infra failure, not drift.

Co-Authored-By: claude-flow <ruv@ruv.net>

---------

Co-authored-by: ruv <ruvnet@users.noreply.github.com>
2026-06-11 22:40:27 -04:00
..
benchmarks feat: Add Neo4j-compatible hypergraph database package (ruvector-graph) 2025-11-25 23:11:54 +00:00
workflows ci(sona): cross-implementation drift gate — parity harness, RVF fingerprints, stub tripwire (#554) 2026-06-11 22:40:27 -04:00
dependabot.yml ci(security): add 5-layer supply-chain CI + clear 3 npm criticals 2026-05-19 08:59:46 -04:00