mavend: Nexus says which name it knows, we do not pick (V-524)
entityReferenceText returned the longest Latin run in the utterance, which is a guess dressed as a rule. "перезапусти nginx на muzick-indexer" holds two names, the target is not the longer one, and docs/ecosystem.md already says what to do instead: ambiguous resolution asks the owner, it does not pick. Nexus owns which names it knows. So entityReferences returns every Latin run, in the order he said them, capped at four so one utterance cannot fan out into a dozen HTTP calls. resolveEntityCandidates asks about each and stops as soon as the answer is decided: a Nexus failure ends it and reports degradation, Nexus calling one name ambiguous ends it with its candidates, and two names resolving to different entities is our own clarify listing the names Nexus spells. One resolving is the target, none resolving falls through as before. The transliteration signal is unchanged — the recovery still fires only when the utterance carries a Latin run and the model's Text slot carries none. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XGTGCWX33aX8SMBSRz9VmS
This commit is contained in:
@@ -114,8 +114,10 @@ func TestStuckRoutinesAreBackfilled(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if _, err := s.db.ExecContext(ctx, migrations[18]); err != nil {
|
||||
t.Fatalf("migration 19: %v", err)
|
||||
// Index 19, version 20: standing lists landed on the same number first
|
||||
// (Vikunja #453), so this one moved down one.
|
||||
if _, err := s.db.ExecContext(ctx, migrations[19]); err != nil {
|
||||
t.Fatalf("migration 20: %v", err)
|
||||
}
|
||||
|
||||
accepted, err := s.ListAcceptedRoutines(ctx)
|
||||
|
||||
Reference in New Issue
Block a user