ruvnet / ruvnet/RuVector

feat: add dual window spatio temporal event memory for WorldGraph

Open
#950 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
4.5k
Forks
603
Avg merge
23h 32m
Merged PRs (30d)
59

Description

Problem

RuVector already condenses streams of RuView WorldGraph observations into event summaries, and issue 927 defines a chained spatial consistency benchmark. The current event representation does not yet make recent decision trajectory events and verified long lived spatial outcomes separate first class memory windows.

That matters because persistent spatial agents need two different retention behaviors. Recent actions and paths should be cheap to discard. Verified cross task outcomes should survive and be re associated with current geometry rather than treated as permanent ground truth.

Research evidence

STEGNav, arXiv 2608.28279, submitted 2026 08 28, extends state centric scene graphs into spatio temporal event graphs. Its spatial axis jointly represents target instances and occupancy aware exploration frontiers with reachability, path cost, and exploration utility. Its temporal axis uses a short term decision trajectory window plus a long term window of verified cross subtask outcomes.

Reported results include 66.3 percent success rate and 39.7 SPL on GOAT Bench, with a 3.9 percentage point success rate improvement over the strongest reported competitor. Error analysis reports 34.1 percent fewer total failures, 53.8 percent fewer instance confusion failures, and 40.0 percent fewer inefficient exploration failures.

These are navigation benchmark results, not direct evidence for RuVector performance. The transferable idea is the memory contract.

Current architecture

crates/ruvector-graph-condense/examples/worldgraph.rs already models spatial temporal adjacency and condenses many observations into event summaries with provenance.

@ruvector/graph-node 2.1.0 now has corrected real Cypher query execution and deferred hydration, making graph backed spatial event queries substantially more practical.

Issue 927 already defines the complementary chain consistency gate.

Observed limitation

Condensed events currently represent persistent summaries, but there is no explicit distinction between:

  1. short lived decision and trajectory context
  2. verified long lived spatial anchors
  3. current exploration frontiers
  4. authoritative facts versus recall cues

Without that distinction an agent can either retain too much transient state or over trust old event summaries after the environment changes.

Proposed improvement

Extend existing graph and condensation packages rather than creating a new database.

Introduce additive event memory metadata:

SpatialEventKind

EventVerification

RetentionClass

ExplorationFrontier

TrajectoryEvent

VerifiedSpatialAnchor

Implement two bounded views over the same witnessed graph state:

  1. Short window for recent decisions, trajectories, failures, and unresolved hypotheses.
  2. Long window for verified outcomes and cross task anchors.

Long window entries are recall cues. They must be re associated with current scene evidence before driving an authoritative action.

Target packages

Primary:

crates/ruvector-graph-condense

@ruvector/graph-node

Existing WorldGraph and RVF integration paths

Secondary:

crates/agentic-robotics-* consumers

MetaHarness spatial retrieval policy

Implementation phases

  1. Define additive metadata and deterministic retention semantics.
  2. Add fixture backed short and long window views with bounded memory.
  3. Add frontier nodes with reachability, path cost, exploration utility, and uncertainty.
  4. Add re association rules that require current evidence before a historical anchor becomes authoritative.
  5. Wire issue 927 as the promotion gate.
  6. Expose the same query contract in Rust, Node, and WASM where the existing graph surface supports it.

Expected measurable improvement

Do not claim navigation gains from STEGNav directly.

Initial RuVector targets:

  1. zero new contradictions on the issue 927 chain benchmark
  2. 100 percent evidence coverage for promoted long term anchors
  3. bounded short window memory independent of mission duration
  4. at least 10 times lower transient event retention than storing all trajectory observations on a one day RuView replay
  5. no more than 5 percent p95 query latency regression versus current graph queries
  6. deterministic re association decisions across five replays

Dependencies

Use existing RuVector graph, graph condensation, RVF, scope isolation, and MetaHarness promotion components.

No new model or external service is required for phase 1.

Security and privacy

  1. Historical anchors never bypass current scope or capability checks.
  2. External labels and navigation text remain untrusted data.
  3. Long term anchors require witnessed evidence and cannot be promoted from an unverified model assertion.
  4. Bound chain length, frontier count, trajectory length, and payload size.
  5. Preserve privacy class and tenant scope across condensation.
  6. Do not place raw P0 sensor payloads in long term event memory.

Backward compatibility

Additive metadata and query surfaces only in phase 1. No existing RVF bytes change unless a later ADR explicitly versions a spatial profile.

Testing

Unit tests for retention and verification semantics.

Property tests for deterministic ordering, bounded windows, and valid inverse spatial relations.

Mutation tests that inject stale anchors and contradictions.

Replay tests from fixed RuView WorldGraph fixtures.

Node and WASM parity tests for any exposed query path.

Latency and memory benchmarks.

Rollback

Disable the new event memory view and retain existing condensed event behavior. No index rebuild should be required for the initial additive implementation.

Definition of done

A second engineer can replay the same WorldGraph fixture, observe identical short and long event windows, inject a stale verified anchor, see it treated only as a recall cue until current evidence re associates it, and run issue 927 without introducing a new contradiction.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with crates/ruvector-graph-condense/examples/worldgraph.rs and the existing WorldGraph and RVF integration paths, then inspect the graph-node query surface and fixed RuView fixture replay tests. Use the retention, verification, bounded-window, and parity tests described in the issue, with issue 927 as the promotion gate. Done means identical short and long windows on replay and stale anchors remain recall cues until current evidence re-associates them.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, rust, wasm
Domain
ai, backend, databases, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.