nightly research: structural-time agent memory decay (REJECT, evidence retained) - #926
Draft
ruvnet wants to merge 3 commits into
Draft
nightly research: structural-time agent memory decay (REJECT, evidence retained)#926ruvnet wants to merge 3 commits into
ruvnet wants to merge 3 commits into
Conversation
…ory compaction Add a research crate that reuses emergent-time's StructuralProperTime (ADR-251) as the recency signal for memory-compaction retention scoring, in place of wall-clock step count. Includes a deterministic multi-seed synthetic session generator, compaction/oracle-recall scoring, and a benchmark binary sweeping 3 plateau lengths x 3 clocks x 10 seeds. Co-Authored-By: claude-flow <ruv@ruv.net> Claude-Session: https://claude.ai/code/session_01TdYyZd166DoTxb5R4FWuJc
…cted Records the nightly's REJECT outcome: a 10-seed averaged benchmark shows StructuralProperTime-based compaction retention never regresses recall vs wall-clock, but its mean long-plateau lead (2.00pp) misses the pre-registered 5pp acceptance bar. Not promoted to ruvector-agent-memory. Co-Authored-By: claude-flow <ruv@ruv.net> Claude-Session: https://claude.ai/code/session_01TdYyZd166DoTxb5R4FWuJc
Full research report and standalone gist for the structural-time agent memory compaction experiment: hypothesis, architecture, raw benchmark output (10 seeds, 3 plateau lengths, 3 clocks), acceptance-clause table, honest account of the single-seed cherry-picking risk found and fixed during the run, limitations, and next-research directions. Co-Authored-By: claude-flow <ruv@ruv.net> Claude-Session: https://claude.ai/code/session_01TdYyZd166DoTxb5R4FWuJc
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Nightly research run testing whether
emergent-time'sStructuralProperTime(ADR-251, arc-length-through-state-space internal time) is a better recency
clock than wall-clock step count for agent-memory compaction retention
scoring. Result: REJECT of the pre-registered acceptance threshold —
documented and retained as evidence, not discarded, per this repo's nightly
research process.
crates/ruvector-structural-memory: reusesemergent-time'sClock/StructuralProperTime/StateSnapshot/WallClock/entropy typesdirectly (no new clock math). Deterministic synthetic-session generator
(topic plateaus + sharp switches), compaction/oracle-recall scoring, and a
benchmarkbinary sweeping 3 plateau lengths × 3 clocks × 10 seeds.docs/adr/ADR-340-structural-time-memory-decay.md— formal decisionrecord (Status: Rejected).
docs/research/nightly/2026-08-24-structural-time-memory-decay/—full research report + standalone gist, including an explicit account of
a single-seed cherry-picking risk found mid-run and fixed before the
final (honest) result was gated.
Hypothesis
Benchmark
Command:
cargo run --release -p ruvector-structural-memory --bin benchmarkFull raw output (including per-seed detail) is in the nightly README.
Acceptance result
REJECT. The structural clock never underperforms wall-clock across the
30 (seed × plateau_len) cells measured — it ties in most, wins by a fixed
+6.67pp margin in a few, never loses — but the mean long-plateau lead
(2.00pp) misses the pre-registered 5pp bar. The threshold was fixed before
benchmarking began and was not weakened after seeing this result.
Darwin / Flywheel
Neither
npx metaharness(present, but a scaffolding/scoring tool —score,analyze,genome— not a live Darwin/Flywheel orchestration daemon forthis repo) nor an
npx ruvector harnessCLI exposingdarwin/flywheelsubcommands was found installed in this environment (
npx ruvector harness doctorfails with "could not determine executable to run"). No crate namedflywheelordarwinexists in this repo. This is stated here rather thanfabricated: the described evolutionary-search and evidence-replay tooling
does not currently exist as invokable infrastructure, so this run's
"evolution" step is the manual parameter-debugging process documented in the
README's Failure Modes section (fractional-budget triviality, noise-scale
collapse, single-seed cherry-picking — each found, fixed, and disclosed
rather than tuned away silently).
Security review
No new attack surface: synthetic in-memory benchmark, no I/O, no untrusted
deserialization, no interaction with
ruvector-agent-memory's ledger,proof-gate, or capability-token paths. A theoretical risk for any future
production integration (an agent that keeps its reported context
artificially static to make a structural clock under-forget stale memories)
is identified in the ADR as a precondition for any promotion, not mitigated
here since nothing is being promoted.
Main limitations
memory out of 15).
swept.
StructuralFullClock) showed nomeasurable benefit over the pure embedding-arc clock at the deciding
configuration.
Production recommendation
Not recommended for promotion in its current form. See ADR-340's
Production Path section for the three concrete follow-ups (drift-ratio
sweep, real embedding source, wiring a genuine coherence signal into the
unused
ΔCchannel) that would need to precede a re-attempt.Test plan
cargo build --release -p ruvector-structural-memorycargo test --release -p ruvector-structural-memory(7/7 pass)cargo clippy --release -p ruvector-structural-memory --all-targets -- -D warnings(clean)cargo fmt -p ruvector-structural-memorycargo run --release -p ruvector-structural-memory --bin benchmark(raw output captured verbatim in the nightly README)node scripts/adr-index.mjs(regenerateddocs/adr/INDEX.md)Generated by Claude Code