feedback: not-relevant/not-useful commands, edge strength adjustment
Add adjust_edge_strength() to Store — modifies strength on all edges between two nodes, clamped to [0.05, 0.95]. New commands: - `not-relevant KEY` — weakens ALL edges to the node by 0.01 (bad routing: search found the wrong thing) - `not-useful KEY` — weakens node weight, not edges (bad content: search found the right thing but it's not good) Enhanced `used KEY` — now also strengthens all edges to the node by 0.01, in addition to the existing node weight boost. Three-tier design: agents adjust by 0.00001 (automatic), conscious commands adjust by 0.01 (deliberate), manual override sets directly. All clamped, never hitting 0 or 1. Design spec: .claude/analysis/2026-03-14-link-strength-feedback.md Co-Authored-By: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
dccc18b205
commit
cb44138433
3 changed files with 184 additions and 1 deletions
|
|
@ -184,6 +184,27 @@ impl Store {
|
|||
});
|
||||
}
|
||||
|
||||
/// Adjust edge strength between two nodes by a delta.
|
||||
/// Clamps to [0.05, 0.95]. Returns (old_strength, new_strength, edges_modified).
|
||||
pub fn adjust_edge_strength(&mut self, key_a: &str, key_b: &str, delta: f32) -> (f32, f32, usize) {
|
||||
let mut old = 0.0f32;
|
||||
let mut new = 0.0f32;
|
||||
let mut count = 0;
|
||||
for rel in &mut self.relations {
|
||||
if rel.deleted { continue; }
|
||||
if (rel.source_key == key_a && rel.target_key == key_b)
|
||||
|| (rel.source_key == key_b && rel.target_key == key_a)
|
||||
{
|
||||
old = rel.strength;
|
||||
rel.strength = (rel.strength + delta).clamp(0.05, 0.95);
|
||||
new = rel.strength;
|
||||
rel.version += 1;
|
||||
count += 1;
|
||||
}
|
||||
}
|
||||
(old, new, count)
|
||||
}
|
||||
|
||||
pub fn record_gap(&mut self, desc: &str) {
|
||||
self.gaps.push(GapRecord {
|
||||
description: desc.to_string(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue