feat: add dual window spatio temporal event memory for WorldGraph
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:
- short lived decision and trajectory context
- verified long lived spatial anchors
- current exploration frontiers
- 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:
- Short window for recent decisions, trajectories, failures, and unresolved hypotheses.
- 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
- Define additive metadata and deterministic retention semantics.
- Add fixture backed short and long window views with bounded memory.
- Add frontier nodes with reachability, path cost, exploration utility, and uncertainty.
- Add re association rules that require current evidence before a historical anchor becomes authoritative.
- Wire issue 927 as the promotion gate.
- 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:
- zero new contradictions on the issue 927 chain benchmark
- 100 percent evidence coverage for promoted long term anchors
- bounded short window memory independent of mission duration
- at least 10 times lower transient event retention than storing all trajectory observations on a one day RuView replay
- no more than 5 percent p95 query latency regression versus current graph queries
- 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
- Historical anchors never bypass current scope or capability checks.
- External labels and navigation text remain untrusted data.
- Long term anchors require witnessed evidence and cannot be promoted from an unverified model assertion.
- Bound chain length, frontier count, trajectory length, and payload size.
- Preserve privacy class and tenant scope across condensation.
- 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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