mirror of
https://github.com/ruvnet/ruflo.git
synced 2026-11-09 22:13:39 +09:00
* dream(intelligence): #3394 fix inverted EMA direction in EWCConsolidator.updateFisherFromConfidences() EWCConsolidator.updateFisherFromConfidences() (v3/@claude-flow/cli/src/memory/ewc-consolidation.ts), the Fisher-matrix EMA update wired into production at intelligence.ts:413 after every SONA distillLearning() pass, used globalFisher[i] = alpha*old + (1-alpha)*new with alpha=fisherDecayRate (0.01) -- giving the new batch 99% weight and the accumulated Fisher signal only 1%, discarding ~99% of accumulated importance on every call. Inverted vs. the two sibling globalFisher-updating methods in the same class (computeFisherMatrix(), recordGradient()), which correctly do (1-decay)*old + decay*new. Confirmed against the standard online-EWC/EWC++ convention (Chaudhry et al., ECCV 2018, arXiv:1801.10112). Fixed to match the sibling sites. Added a discriminating regression test (__tests__/ewc-fisher-ema-direction.test.ts): baseline-fails/candidate-passes verified via git stash isolation, independently reproduced by an adversarial critic. Full @claude-flow/cli suite byte-identical failure set both ways (96 pre-existing, unbuilt-dist class); 155/155 in EWC-adjacent tests; tsc --noEmit identical (463 pre-existing errors, none in changed files). Darwin skipped (binary correctness fix, no fitness gradient to search). No Flywheel state exists in this repo; evidence retained as tests + issue + gist + stash-isolated proof, per every accepted night since 2026-08-18. See issue #3394 for the full evaluation receipt, adversarial critique, and witness stamp. Co-Authored-By: RuFlo <ruv@ruv.net> Claude-Session: https://claude.ai/code/session_0183FfWhMHJ2EjZb2MjxZfpJ * dream(intelligence): #3394 update ledger with 2026-09-22 row + 09-15..09-21 backlog note Co-Authored-By: RuFlo <ruv@ruv.net> Claude-Session: https://claude.ai/code/session_0183FfWhMHJ2EjZb2MjxZfpJ * dream(intelligence): #3394 harden updateFisherFromConfidences() per review Addresses ruvnet's REJECT review on #3395 (evidence-gate review at1cc7231): the EMA-direction fix itself was confirmed correct (retention 1.01e-8% -> 95.099% after 5 low-signal updates), but the function had no defenses against malformed input or a corrupted persisted state file. - updateFisherFromConfidences(): drop a sample whose embedding or oldConf/newConf is non-finite (NaN/Infinity) instead of letting it poison the shared globalFisher accumulator for every other pattern in the batch; a batch where no sample contributes (all filtered out, or every delta was zero) now leaves globalFisher and persisted state untouched instead of decaying accumulated importance toward an empty no-op batch and writing that no-op to disk. - loadFromDisk(): validate the loaded globalFisher (exact dimensions, every entry a finite non-negative number -- Fisher values are sums of squares and can never legitimately be negative) and quarantine (reset to zero) the whole array if invalid, rather than silently resuming with corrupted entries (e.g. a non-finite value that round-tripped through JSON as `null`). - 3 new regression tests: non-finite input dropped without poisoning state, no-op update doesn't persist, corrupted persisted state is quarantined on load. All 3 independently confirmed to fail against the pre-hardening code via git stash isolation. 158/158 EWC-adjacent tests passing (153 pre-existing + 5 EMA-direction + 3 new hardening); tsc --noEmit identical (463 pre-existing errors, none in changed files). Co-Authored-By: RuFlo <ruv@ruv.net> Claude-Session: https://claude.ai/code/session_0183FfWhMHJ2EjZb2MjxZfpJ * dream(intelligence): #3394 rebind witness to the hardened candidate commit Addresses the last item of ruvnet's REJECT review on #3395: the original witness bound "session commit" to the pre-session base commit (9c61c86, computed at STEP 0 before any diff existed), which didn't actually bind the receipt to the candidate that was reviewed. Rebound to290959f(the hardened candidate commit from the previous push) and recomputed the gist SHA-256 + witness stamp against it. Co-Authored-By: RuFlo <ruv@ruv.net> Claude-Session: https://claude.ai/code/session_0183FfWhMHJ2EjZb2MjxZfpJ * dream(intelligence): #3394 update ledger with post-review hardening outcome Co-Authored-By: RuFlo <ruv@ruv.net> Claude-Session: https://claude.ai/code/session_0183FfWhMHJ2EjZb2MjxZfpJ --------- Co-authored-by: Claude <noreply@anthropic.com>