Restore full N×M memory scoring matrix (/score command)

The full matrix scorer was deleted during the AST conversion. Restore
it: /score runs score_memories() which computes divergence for every
memory × response pair, stores the MemoryScore on MindState, and
displays per-memory weights with bar charts on the F2 screen.

Both scoring paths now use ActivityGuard::update() for live progress
in the status bar instead of creating a new activity per iteration.

Also bumps score API timeout from 120s to 300s and adds progress
logging throughout.

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
ProofOfConcept 2026-04-09 22:19:02 -04:00 committed by Kent Overstreet
parent f6a6c37435
commit 58cec97e57
6 changed files with 187 additions and 98 deletions

View file

@ -57,8 +57,8 @@ fn commands() -> Vec<SlashCommand> { vec![
});
}
} },
SlashCommand { name: "/score", help: "Score memory importance",
handler: |s, _| { let _ = s.mind_tx.send(MindCommand::Score); } },
SlashCommand { name: "/score", help: "Score memory importance (full matrix)",
handler: |s, _| { let _ = s.mind_tx.send(MindCommand::ScoreFull); } },
SlashCommand { name: "/dmn", help: "Show DMN state",
handler: |s, _| {
let st = s.shared_mind.lock().unwrap();
@ -527,7 +527,7 @@ impl InteractScreen {
}
}
}
AstNode::Branch { role, children } => {
AstNode::Branch { role, children, .. } => {
match role {
Role::User => {
let text: String = children.iter()