Follow-up from Phase 0d spike (already in `docs/spikes/ruvector-phase0.md`).
Background
`ruvector-sona` 0.1.9 has no public API to import LoRA weights back into a `SonaEngine`. MicroLoRA adaptation also only mutates under multi-step trajectories with reward variance + explicit `engine.flush()`, neither of which we instrument today. Phase 1 shipped ReasoningBank-only as the load-bearing retrieval signal.
If/when upstream adds a `load_lora_state(&LoRAState)` (symmetric with the existing `export_lora_state()`) AND we have intermediate reasoning steps worth recording, revisit:
Scope
- Upgrade `ruvector-sona` dep.
- Snapshot LoRA state alongside the existing `sona_state` JSONB column.
- Restore on boot, log the reload size.
- Wire multi-step trajectories in the confirm/dismiss handlers so REINFORCE advantage is non-zero.
- Call `engine.flush()` at a reasonable cadence.
- Re-run the Phase 0d-style probe to confirm MicroLoRA actually shifts.
Acceptance
References
Follow-up from Phase 0d spike (already in `docs/spikes/ruvector-phase0.md`).
Background
`ruvector-sona` 0.1.9 has no public API to import LoRA weights back into a `SonaEngine`. MicroLoRA adaptation also only mutates under multi-step trajectories with reward variance + explicit `engine.flush()`, neither of which we instrument today. Phase 1 shipped ReasoningBank-only as the load-bearing retrieval signal.
If/when upstream adds a `load_lora_state(&LoRAState)` (symmetric with the existing `export_lora_state()`) AND we have intermediate reasoning steps worth recording, revisit:
Scope
Acceptance
References