agent/pkg
Snider 40728e68d1 feat(agent/agentic): Poindexter KD-tree clustering replaces exact-key bucketing in runQAWithReport
qa_cluster.go wires QA finding clustering through Poindexter instead
of the old exact (tool, severity, category, rule) bucketing. Hashed
feature vectors built from finding metadata + message text are
indexed in Poindexter KD-trees with cosine + Euclidean distance,
near-neighbours unioned, then emitted as the existing DispatchCluster
shape (so consumers don't break).

Old exact-key grouping kept as fallback if Poindexter tree
construction ever fails.

qa.go updated to describe new similarity-based contract;
runQAWithReport already consumes clusterFindings, picks up the new
grouping automatically.

Tests cover: 3 similar findings + 2 distinct → grouped correctly;
5 distinct findings → 5 clusters; 0 findings → empty/nil no panic;
sample-cap regression preserved.

Note: github.com/Snider/Poindexter added as a direct dep. Per the
non-negotiable migration policy on Snider personal-namespace deps
(see #219), file follow-up to migrate Poindexter to its canonical
core/* home if/when that lands.

Co-authored-by: Codex <noreply@openai.com>
Closes tasks.lthn.sh/view.php?id=164
2026-04-25 20:25:05 +01:00
..
agentic feat(agent/agentic): Poindexter KD-tree clustering replaces exact-key bucketing in runQAWithReport 2026-04-25 20:25:05 +01:00
brain feat(agent/brain): adopt shared T1 client + propagate org through actions (#177) 2026-04-25 16:22:38 +01:00
lib feat(agent/lib/flow): YAML flow library — Parse + ParseFile + LoadEmbedded 2026-04-25 20:21:33 +01:00
messages revert fcb9c189e5 2026-04-23 12:32:57 +01:00
monitor fix(agent/monitor): AX-6 sweep on sync.go — net/url → core.URLEncode 2026-04-25 13:32:52 +01:00
runner revert fcb9c189e5 2026-04-23 12:32:57 +01:00
setup revert fcb9c189e5 2026-04-23 12:32:57 +01:00
.DS_Store revert fcb9c189e5 2026-04-23 12:32:57 +01:00