yggvault ratatoskr-space connected via regular web
Color theme
also available via yggdrasil mesh http://[203:b338:2a84:a18f:986:47ae:1a4:d8d3]/pkg/ruview/v1484
vault / ruview / v1484

ruview @ v1484

integrity

size
61.0 MiB
downloaded
last checked
source https://github.com/ruvnet/RuView · available · github

release notes

Automated release from CI pipeline

Changes: feat(swarm): add ruview-swarm crate — drone swarm control system (ADR-148) (#862)

New crate wifi-densepose-swarm with hierarchical-mesh swarm topology, Raft consensus, MAPPO MARL, CSI sensing integration, and ITAR-gated coordination features. Closes 3 of 7 milestones (M1, M2, M5) with 5/5 ADR-148 SOTA performance targets met.

Modules (45 source files, 14 modules)

ITAR compliance

Swarming coordination features gated behind itar-unrestricted feature per USML Category VIII(h)(12). Default build compiles clean stubs.

Benchmark results (criterion, release mode)

Tests

Closes #861

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

The swarm control system is a RuView-level capability (drone coordination, Raft consensus, MARL) that operates above the wifi-densepose sensing layer rather than being a sub-component of it. Rename aligns with the project identity and separates coordination infrastructure from sensing modules.

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

Also adds test_marl_convergence_improves_mean_return: fills 64-transition ReplayBuffer with mixed rewards (steps 0-31: negative, 32-63: positive), runs ppo_update, asserts mean_return is finite and non-zero.

Result: 0 clippy warnings · 74/74 tests (default) · 86/86 (itar-unrestricted)

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

Adds a feature-gated Ruflo integration layer connecting ruview-swarm to the claude-flow daemon's AgentDB, AIDefence, and SONA intelligence subsystems. Default build is unaffected (all paths behind Option<Box<dyn RufloBackend>>).

New module: src/ruflo/

4 capability areas

  1. MissionMemory → memory_store / memory_search (cross-mission victim memory)
  2. PatternLearner → agentdb_pattern-store / -search (HNSW SONA trajectory patterns)
  3. MavlinkDefence → aidefence_is_safe / aidefence_scan (scan MAVLink before accepting)
  4. IntelligenceHooks → trajectory-start/step/end (SONA learning loop)

SwarmOrchestrator integration

Cargo feature

ruflo = ["dep:reqwest", "dep:serde_json"] — optional, not in default

Tests

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

Adds end-to-end mission runners producing structured MissionReport output, and updates project docs (CHANGELOG, README, CLAUDE.md) per pre-merge checklist.

M7 Mission Profiles (integration/mission_report.rs + swarm_sim.rs)

Docs (pre-merge checklist)

Tests

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

Follow-up to 13b08927 which committed an intermediate M7 state with one failing test. This lands the M7 agent's convergence fixes and the security review's timeout hardening.

Fixes

Security review verdict (HttpRufloBackend)

Safe to merge. No credentials in requests, serde_json prevents injection, fail-open on daemon-down is documented and appropriate for SAR missions, MAVLink passed as structured text (not raw bytes). Timeout fix applied.

Tests

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

M6 benchmark suite now 5/5 compiling and running. Tests unchanged: 87/100.

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

Replaces the finite-difference PPO placeholder with a real GPU-capable Candle 0.9 autodiff trainer, adds A-MAPPO heterogeneous-role attention, a runnable training binary, and right-sized GCP/local launch scripts. This is the unlock that makes "GPU long training cycles" actually mean something — the previous ppo_update did no gradient descent.

Real autodiff PPO (feature train, optional cuda)

A-MAPPO heterogeneous-role attention (role_attention.rs, always compiled)

Addresses the four sensor-vs-relay edge cases:

Training binary

Right-sized launch (scripts/gcp/)

Tests

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

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

Adds an offline, dependency-free visualization for the drone training system: a top-down swarm replay synced with training-metric curves, fed by a JSONL telemetry log the trainer emits. No server, no build step, no CDN.

Telemetry recorder (integration/telemetry.rs, always compiled, no new deps)

train_marl telemetry flags

Visualizer (viz/swarm_viz.html — single file, vanilla JS + canvas)

Usage

cargo run --release -p ruview-swarm --features train,cuda --bin train_marl --
--episodes 5000 --telemetry run.jsonl open v2/crates/ruview-swarm/viz/swarm_viz.html # load run.jsonl

Tests unchanged (91 default / 96 train / 104 ruflo+itar); telemetry adds 2.

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

Adds multiple flight/coverage-optimization strategies and self-learning strategies, selectable from the trainer, and fixes drone clustering — the demo sweep now covers 36% of the area (was ~0.9%) with 4 disjoint strips.

Flight patterns (planning/patterns.rs) — FlightPattern

Self-learning patterns (marl/learning.rs) — LearningPattern

Trainer wiring (bin/train_marl.rs)

Verification

Tests

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

5 loadable presets (verified browser-distinct, physics-ordered coverage): pheromone ~44% > potential ~40% > partitioned 36% > spiral ~13% > levy ~5%. Load any in viz/swarm_viz.html to compare flight strategies without retraining.

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

Tests unchanged: 103 default / 108 train / 116 ruflo+itar / 120 full+train. (6 remaining clippy warnings are pre-existing in dependency wifi-densepose-core, out of scope for this crate.)

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

Path-scoped guard for v2/crates/ruview-swarm/** (ADR-148). Complements the main ci.yml (which only runs the default workspace tests):

All steps verified locally green before commit.

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

Docker Image: ghcr.io/ruvnet/RuView:0d3d835bf830472667d2e5e5f05befa8f357b1d3

download

unix · zip
curl -fL -o v1484.zip https://ratatoskr.space/pkg/ruview/v1484.zip
                    printf '%s  %s\n' 'ee0e6905c73a177e8fdd024d7bf8f8ad4317a9b4dea0586e637c1b55abd7a76d' 'v1484.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/ruview/v1484.zip"
$out = "v1484.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "ee0e6905c73a177e8fdd024d7bf8f8ad4317a9b4dea0586e637c1b55abd7a76d") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1484.tar.gz https://ratatoskr.space/pkg/ruview/v1484.tar.gz
                    printf '%s  %s\n' '88c8e8ae02cb072e872a4cf311f4ff297ff9d4435dd9106f06a11fdd28a7a69d' 'v1484.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/ruview/v1484.tar.gz"
$out = "v1484.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "88c8e8ae02cb072e872a4cf311f4ff297ff9d4435dd9106f06a11fdd28a7a69d") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v1484.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1484.zip
                    printf '%s  %s\n' 'ee0e6905c73a177e8fdd024d7bf8f8ad4317a9b4dea0586e637c1b55abd7a76d' 'v1484.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1484.zip"
$out = "v1484.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "ee0e6905c73a177e8fdd024d7bf8f8ad4317a9b4dea0586e637c1b55abd7a76d") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1484.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1484.tar.gz
                    printf '%s  %s\n' '88c8e8ae02cb072e872a4cf311f4ff297ff9d4435dd9106f06a11fdd28a7a69d' 'v1484.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1484.tar.gz"
$out = "v1484.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "88c8e8ae02cb072e872a4cf311f4ff297ff9d4435dd9106f06a11fdd28a7a69d") { throw "sha256 mismatch" }
artifact format size hashes
v1484.zip zip 61.0 MiB
blake3-24 e92238353df6b189ca329e5c599cc89b1728f66df6d3a772
sha256 ee0e6905c73a177e8fdd024d7bf8f8ad4317a9b4dea0586e637c1b55abd7a76d
sha1 4a6aae7856c369b032c0123a048455f76fd7d3ff
v1484.tar.gz tar.gz 59.2 MiB
blake3-24 fa69d157608d12e3f458a3f6c7c4025a0cb159ced987a8eb
sha256 88c8e8ae02cb072e872a4cf311f4ff297ff9d4435dd9106f06a11fdd28a7a69d
sha1 76060581fb2641457d211e0b0f505f1794bd756a

install

bazel
http_archive(
    name = "ruview",
    urls = ["https://ratatoskr.space/pkg/ruview/v1484.tar.gz"],
    integrity = "sha256-iMjorgLLBy6HKkzzEfT/KX/51ENd2RBvBqEf3Sinpp0=",
    strip_prefix = "ruview-v1484",
)
zig
.url = "https://ratatoskr.space/pkg/ruview/v1484.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
    name = "ruview",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1484.tar.gz"],
    integrity = "sha256-iMjorgLLBy6HKkzzEfT/KX/51ENd2RBvBqEf3Sinpp0=",
    strip_prefix = "ruview-v1484",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1484.tar.gz",
← v1506v1451 →