Commit graph

3 commits

Author SHA1 Message Date
rUv
e7a5096205 fix: format all files, add EXO crate READMEs, convert path deps to version deps
- Run cargo fmt across entire workspace
- Create README.md files for all 9 EXO-AI crates
- Convert path dependencies to crates.io version dependencies for publishing
- Add [patch.crates-io] to exo workspace for local development

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-27 16:21:14 +00:00
rUv
b4d2b7343f fix: resolve P0 safety issues in ruvector-dither, thermorust, and exo-ai
- Replace debug_assert with assert for bits bounds in quantize functions
- Guard ChannelDither against 0 channels and invalid bits
- Handle non-finite beta/rate in Langevin/Poisson noise (return 0)
- Remove unused itertools dependency from thermorust
- Fix partial_cmp().unwrap() NaN panics across 7 exo-ai files
- Fix SystemTime unwrap() in transfer_crdt (use unwrap_or_default)
- Fix domain ID mismatch (exo_retrieval → exo-retrieval) in orchestrator
- Update tests to match corrected domain IDs

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-27 16:12:45 +00:00
Claude
658c762994 feat: add ruvector-dither crate and integrate thermorust+dither into exo
ruvector-dither (new crate):
- GoldenRatioDither: additive φ-sequence with best 1-D equidistribution
- PiDither: cyclic 256-entry π-byte table for deterministic weight dithering
- quantize_dithered / quantize_slice_dithered: drop-in pre-quantization offset
- quantize_to_code: integer-code variant for packed-weight use
- ChannelDither: per-channel pool seeded by (layer_id, channel_id) pairs
- DitherSource trait for generic dither composition
- 15 unit tests + 3 doctests; 4 Criterion benchmark groups

exo-backend-classical integration:
- ThermoLayer (thermo_layer.rs): Ising motif coherence gate using thermorust
  - Runs Metropolis steps on clamped activations
  - Returns ThermoSignal { lambda, magnetisation, dissipation_j, energy_after }
  - λ-signal = −ΔE/|E₀|: positive means pattern is settling toward coherence
- DitheredQuantizer (dither_quantizer.rs): wraps ruvector-dither for exo tensors
  - GoldenRatio or Pi kind, per-layer seeding, reset support
  - Supports 3/5/7/8-bit quantization with ε-LSB dither amplitude
- 8 new unit tests across both modules; all 74 existing tests still pass

https://claude.ai/code/session_019Lt11HYsW1265X7jB7haoC
2026-02-27 14:30:26 +00:00