Closes the three gaps that made tiny-dancer inference-only:
1. Real gradients: FastGRNN::forward_cached + backward implement single-step
analytic backprop (h0=0); gradient-checked vs central finite differences.
2. Real Adam step: train_batch accumulates mean batch gradients; apply_gradients
does L2 + global-norm clip + bias-corrected Adam update on the existing
optimizer state. Model now actually learns (test: loss down, acc>0.9).
3. safetensors persistence: model.rs save/load serialize every tensor (f32 LE)
with config in __metadata__; round-trip is bit-exact.
4. DRACO adapter: TrainingDataset::from_draco consumes the {embedding, scores}
+ prices shape (same as @metaharness/router) so one dataset trains both.
Runnable example train_from_draco demonstrates DRACO -> train -> save -> load
-> route end to end. 31 core tests green (gradient check, convergence,
round-trip, adapter).
Co-Authored-By: claude-flow <ruv@ruv.net>
- Run cargo fmt across all crates (468 files formatted)
- Add permissions for PR comments in benchmarks.yml
- Add continue-on-error for PR comment steps
- Remove Docker service from postgres-extension-ci (pgrx manages own postgres)
- Add permissions to postgres-extension-ci.yml
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Export training module and types from lib.rs (TrainingConfig,
TrainingDataset, Trainer, TrainingMetrics, generate_teacher_predictions)
- Export RouterConfig and FastGRNNConfig from lib.rs
- Add From<std::io::Error> impl for TinyDancerError
- Update examples to work without external dependencies:
- admin-server.rs: Simplified to demonstrate health checks and
config inspection without axum/tokio
- full_observability.rs: Uses manual metrics tracking instead of
prometheus crate
- metrics_example.rs: Manual metrics collection and display
- tracing_example.rs: Simple timing-based example without
OpenTelemetry
Fixes#16🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Format all Rust code with cargo fmt
- Generate Cargo.lock for security audit
- Add build:wasm script to graph-wasm package.json
- Update npm/package-lock.json
The CI was failing due to:
1. Rust code formatting check failures
2. Missing Cargo.lock file for cargo audit
3. Missing build:wasm script expected by graph-ci.yml workflow
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Critical fix for v0.1.7 that resolves native module loading failure.
Changes:
- Fixed case sensitivity: VectorDB → VectorDb in type checks
- Native module exports VectorDb (lowercase 'b')
- Code was checking for VectorDB (uppercase 'B')
- Re-export as VectorDB for API consistency
- Version bump: 0.1.6 → 0.1.7
This fix resolves the error:
"Native module loaded but VectorDB not found"
Related commits:
- Database pooling: already in storage.rs (commit 44ca725)
- Package name fixes: already applied (ruvector-core)
Next steps:
- Rebuild platform packages with pooling code
- Publish platform packages v0.1.2
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>