Entwurf · Issue e7eab09

Eine Suche durchsucht das ganze Board

Entwurf zu Issue e7eab09, zu docs/plans/e7eab09-a-search-searches-the-whole-board.md. Jedes Urteil unten ist eine echte Suchantwort aus lib/unified-search.ts, beim Rendern gerechnet.

Die Leiste legt den Zyklus in die Adresse, und der Server reichte dem Grid nur die Karten dieser Scheibe — die Suche stand IN der Scheibe. Wer die Id eines Issues aus einem anderen Sprint tippte, bekam "no matches": die Antwort einer Suche, die so tut, als existierte das Issue nicht. Blättern darf schmal sein, eine Frage verdient das Ganze.

01Die Verzweigung liest nur den Query-String

scopedUnlessSearching(scoped, all): ein leerer Query antwortet aus der Scheibe, jeder getippte Text — ein Wort, ein Oid-Präfix, ein field:-Ausdruck — aus allem. Facetten-Häkchen kommen in filters an, nicht im Query-String: ein Häkchen auf einem Sprint-Board ist Blättern und bleibt in der Scheibe.

  • hältein leerer Query zeigt genau die Scheibe
  • hältein Oid-Präfix von außerhalb wird gefunden
  • hältein Häkchen ohne Query bleibt in der Scheibe

02Was sich nicht ändert

  • Die Adresse bleibt die Wahrheit des Blätterns: inBoardView, die Leiste und die Filterzeile sind unberührt — die Zeile beschreibt, welche Scheibe die ADRESSE hält, und eine getippte Frage ändert die Adresse nicht. Das ist die eine bewusste Asymmetrie dieses Entwurfs.
  • Der Spaltenrahmen wächst mit: ein Treffer aus einem anderen Zyklus rendert in seiner Spalte, statt still am Sichtbarkeits-Filter des Boards zu scheitern.
  • Was diese Seite nicht sehen kann: das Zusammenspiel im laufenden Grid. Die Mechanik der Verzweigung hält lib/unified-search.test.ts; welche Karten die Seite dem Grid reicht, liest man in app/code/-/issues/page.tsx.