vestige/apps/dashboard/build/_app/immutable/nodes
Sam Valladares d7f0fe03e0 test(graph): ruthless coverage for v2.0.8 memory-state colour mode
80 new vitest cases exhaustively exercising the v2.0.8 colour-mode
additions, taking total dashboard coverage to 251 tests.

Pure-function correctness:
- getMemoryState: 12 retention boundaries including exact thresholds,
  NaN, ±Infinity, negative, and >1 values + determinism across 10k
  random samples.
- getNodeColor: per-node-type mapping in type mode (all 8 types),
  per-bucket mapping in state mode, unknown-type fallback, and the
  invariants that type mode ignores retention + state mode ignores type.
- MEMORY_STATE_COLORS: valid 6-digit hex, all four buckets distinct,
  zero overlap with NODE_TYPE_COLORS.
- MEMORY_STATE_DESCRIPTIONS: threshold parentheticals match getMemoryState
  bucket boundaries (70 / 40 / 10), all four lines distinct.

NodeManager state machine:
- default mode 'type', field writable pre-createNodes.
- setColorMode is idempotent (early return verified via copy() spy counts).
- setColorMode calls color.copy + emissive.copy + glow.color.copy exactly
  once per node per transition, never replaces mesh / glow / material
  references, preserves userData.{nodeId,type,retention}.
- rapid 5× type <-> state toggle preserves all three maps.
- addNode during state mode inherits the mode; subsequent switch to
  type correctly retints the live-added node.
- suppressed-node interaction: setColorMode updates color + emissive but
  never touches opacity or emissiveIntensity (v2.0.5 SIF channel stays
  isolated from v2.0.8 colour channel).
- defensive paths: missing glow, missing userData.retention, missing
  userData.type — all degrade to sane defaults without throwing.

Also refreshes the embedded dashboard build so the Rust binary picks up
the new SvelteKit chunks with the memory-state-colors feature baked in.
2026-04-19 21:12:06 -05:00
..
0.Dfz0v1Cj.js test(graph): ruthless coverage for v2.0.8 memory-state colour mode 2026-04-19 21:12:06 -05:00
0.Dfz0v1Cj.js.br test(graph): ruthless coverage for v2.0.8 memory-state colour mode 2026-04-19 21:12:06 -05:00
0.Dfz0v1Cj.js.gz test(graph): ruthless coverage for v2.0.8 memory-state colour mode 2026-04-19 21:12:06 -05:00
1.Ch7DMSq8.js test(graph): ruthless coverage for v2.0.8 memory-state colour mode 2026-04-19 21:12:06 -05:00
1.Ch7DMSq8.js.br test(graph): ruthless coverage for v2.0.8 memory-state colour mode 2026-04-19 21:12:06 -05:00
1.Ch7DMSq8.js.gz test(graph): ruthless coverage for v2.0.8 memory-state colour mode 2026-04-19 21:12:06 -05:00
2.BFaWefTK.js feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
2.BFaWefTK.js.br feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
2.BFaWefTK.js.gz feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
3.BaQEyQZ-.js test(graph): ruthless coverage for v2.0.8 memory-state colour mode 2026-04-19 21:12:06 -05:00
3.BaQEyQZ-.js.br test(graph): ruthless coverage for v2.0.8 memory-state colour mode 2026-04-19 21:12:06 -05:00
3.BaQEyQZ-.js.gz test(graph): ruthless coverage for v2.0.8 memory-state colour mode 2026-04-19 21:12:06 -05:00
4.BEP4iikl.js feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
4.BEP4iikl.js.br feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
4.BEP4iikl.js.gz feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
5.BgcStf4T.js feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
5.BgcStf4T.js.br feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
5.BgcStf4T.js.gz feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
6.20aay-57.js test(graph): ruthless coverage for v2.0.8 memory-state colour mode 2026-04-19 21:12:06 -05:00
6.20aay-57.js.br test(graph): ruthless coverage for v2.0.8 memory-state colour mode 2026-04-19 21:12:06 -05:00
6.20aay-57.js.gz test(graph): ruthless coverage for v2.0.8 memory-state colour mode 2026-04-19 21:12:06 -05:00
7.B1rI2ZuC.js feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
7.B1rI2ZuC.js.br feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
7.B1rI2ZuC.js.gz feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
8.BmBiit5q.js feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
8.BmBiit5q.js.br feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
8.BmBiit5q.js.gz feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
9.Ds9IBqJA.js feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
9.Ds9IBqJA.js.br feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
9.Ds9IBqJA.js.gz feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
10.BXBzm8vP.js feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
10.BXBzm8vP.js.br feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
10.BXBzm8vP.js.gz feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
11.BOa24N9o.js feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
11.BOa24N9o.js.br feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00
11.BOa24N9o.js.gz feat(graph): FSRS memory-state colour mode + legend overlay 2026-04-19 20:45:08 -05:00