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 inapp/code/-/issues/page.tsx.