dream(performance): #3976 update dream-cycle ledger for 2026-10-10

Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01JL2GEEWf9ezZo1X1wQ2Ls6
This commit is contained in:
ClaudeandRuFlo committed 2026-10-10 06:32:49 +00:00
1 parent 0aa99cd5aa
commit 1a5c8b834e
1 file changed
+1
+1
View File
@@ -229,3 +229,4 @@ as a first-class, high-priority candidate, not a background note.
| 2026-09-28 | memory | `mmrRerank()`'s embedding-cosine path (`smart-retrieval.ts`) recomputed max-similarity-to-selected against the *entire* selected set on every outer-loop pass (≈O(candidates×selected²)), even after #3169/#3266 already made the Jaccard-fallback tokenization lazy — flagged grade-A by 2026-09-27's own memory scan (still-open #3476) and acted on directly tonight; replaced with a running per-candidate max-similarity cache (one new comparison per candidate per round, folded via `Math.max`, algebraically identical to recomputing the max from scratch) | #3516 | #3517 | yes | ACCEPT | byte-identical selection order across 5 scenarios (all/none/half-embedded, lambda extremes, a dedicated negative-cosine zero-floor case); wall-clock 686.5ms→<343.3ms (>2x, N=200/limit=100), stash-isolated baseline-fails/candidate-passes on this exact assertion; frozen-copy call-count comparison used instead of `vi.spyOn` after a debug test showed Vitest's ESM spy can't intercept same-module internal calls (flagged as a likely latent issue in the sibling 09-10 `tokenize()` call-count test, not fixed retroactively); 564/565 full `@claude-flow/memory` suite both ways (1 pre-existing environmental failure, unchanged), `tsc --noEmit` 0 errors both ways | 85e464a6... | 09-16 (#3339) still open/draft; 09-27 (#3476) still open/draft; 09-15..09-22 backlog mostly MERGED in a 2026-09-26 bulk review batch; no-run gap 09-23/09-25/09-26 |
| 2026-10-09 | swarm | `MessageBus.handleDeliveryError()`'s retry re-queue used the broadcast sentinel `message.to === 'broadcast'` as the queue key instead of the real subscriber `agentId` `enqueue()` had fanned the message out to — `processQueues()` skips any unsubscribed queue, so a failing broadcast subscriber's retries and eventual `message.failed` were silently dropped into an orphaned queue leaking until `shutdown()`; explicitly disclosed as a "KNOWN LIMITATION (pre-existing, not fixed here)" by the immediately-preceding #3562/#3563 rewrite, closed tonight by threading `subscription.agentId` through `deliverMessage()`→`handleDeliveryError()`→the re-queue | #3928 | #3929 | yes | ACCEPT | 2 new discriminating tests, baseline-fails/candidate-passes via stash isolation (independently reproduced byte-identical by an adversarial critic's own stash/pop cycle); full `@claude-flow/swarm` suite 274/274→276/276 (+2 new), 0 regressions, `tsc --noEmit` clean both ways; healthy co-subscriber in the same broadcast unaffected (explicit regression guard); independent adversarial critique CONFIRMED, no blocking issues | 1b7e818e... | 10-01 #3599 MERGED 2026-10-07; 10-02..10-03/10-05..10-08 open/draft or closed-not-merged (see 2026-10-09 note above); 10-04 no-run gap; also newly confirmed MERGED this session: #3339 (09-16), #3539 (09-29) |
| 2026-10-10 | performance | `fallbackLouvain()`'s `communityTotal` map was rebuilt via a full O(n) scan of every node, once per node, once per local-moving pass — O(n²) per pass — instead of maintained incrementally like networkx's `Stot`/python-louvain's `status.degrees` (O(1) per accepted move); this is the *only* community-detection path that ever runs (`loadRuVector()`'s native-acceleration checks for `hooks_graph_mincut`/`hooks_graph_cluster`/`@ruvector/wasm`'s `GraphAnalyzer`, none of which exist in any published `ruvector`/`@ruvector/wasm` version, confirmed by direct inspection of the installed `ruvector@0.2.27`'s real exports — correcting 2026-10-09's own "wire the real exports in" recommendation, which had the wrong premise) | #3976 | #3977 | yes | ACCEPT | 4 new discriminating tests (3 correctness + 1 complexity-growth) with a frozen pre-fix copy inline for CI-safe comparison; stash-isolated baseline-fails/candidate-passes on the growth assertion, independently reproduced by an adversarial critic's own stash/pop cycle; standalone `tsx` probe: baseline 10.37ms→837.29ms (~81x growth, N=200→1600), candidate 5.00ms→22.33ms (~4.5x growth), per-N speedup 2.1x→37.5x; full `@claude-flow/cli` suite failed-file set byte-identical baseline vs. candidate (200 vs. 199 — the one difference is the new test file itself), `tsc --noEmit` byte-identical (498 pre-existing errors); independent adversarial critique CONFIRMED, no blocking issues | 81e21481... | 10-01 #3599 MERGED; 10-02/10-03/10-06/10-07/10-08 open/draft, none stale; 10-04 no-run gap; 10-05 #3754 closed as duplicate of #3517 (not a fresh rejection — same fix had already shipped) |