she does not look herself up (V-555)

Two defects found probing the new source on the box.

"кто ты" was answered from one of his notes. The self source sat below
memory and notes, which match by proximity and have no idea the subject
is her. It belongs above all three: a question about her has no answer
in his data either.

And PhraseQuery opens every answer with "вот что я нашла: ", which is
deliberate — it marks the answer as a lookup. Her own description is the
one subject she did not look up, so this is PhraseSelf instead, same
read-only discipline and its own opener. The Stub reads the description
out as it stands, which needs no fallback: it is already her voice.
This commit is contained in:
2026-08-05 23:05:09 +04:00
parent 5815f0b8f3
commit c6b11a6d1d
4 changed files with 47 additions and 6 deletions
+6 -5
View File
@@ -122,6 +122,12 @@ var querySources = []querySource{
{name: "network", answer: (*reactiveHandler).queryNetwork},
{name: "calendar", answer: (*reactiveHandler).queryCalendar, dateAware: true},
{name: "weather", answer: (*reactiveHandler).queryWeather},
// A question about her, above the three sources that search his own data
// (Vikunja #555). It has no answer anywhere else: below the boundary
// SearXNG answers about somebody else's assistant, and above it his notes
// answer by proximity — "кто ты" came back from a note of his, measured on
// the box, because the recall index has no idea the subject is her.
{name: "self", answer: (*reactiveHandler).querySelf},
{name: "embed", answer: (*reactiveHandler).queryEmbed},
{name: "memory", answer: (*reactiveHandler).queryMemory},
{name: "notes", answer: (*reactiveHandler).queryNotes},
@@ -129,11 +135,6 @@ var querySources = []querySource{
// below answers from the world's. A question about him that got this far
// has no answer in his data, and no outside source can supply one, so this
// stops the walk rather than let the encyclopedia and the model guess.
// A question about her sits just above the boundary, because it has no
// answer below one: refusing it as his says "не нашла у тебя такой записи"
// about her own description, and letting it through asks SearXNG about
// somebody else's assistant (Vikunja #555).
{name: "self", answer: (*reactiveHandler).querySelf},
{name: "personal", answer: (*reactiveHandler).queryPersonal},
// The world, read live. Owner's ruling of 2026-08-02: a metasearch hit beats
// a frozen ZIM, so SearXNG asks before Kiwix does. Nothing of his is at
+1 -1
View File
@@ -104,7 +104,7 @@ func (h *reactiveHandler) querySelf(ctx context.Context, t *queryTurn) (string,
var reply string
if h.phraser != nil {
var err error
reply, err = h.phraser.PhraseQuery(ctx, t.dec.Utterance, []string{selfDescription})
reply, err = h.phraser.PhraseSelf(ctx, t.dec.Utterance, selfDescription)
if err != nil {
log.Printf("voice: phrase self: %v", err)
}