Suche über Aufgaben #4

Closed
opened 2026-08-17 22:30:33 +00:00 by florian.wilde · 3 comments
Owner

Im Aufgabendashboard keine Suche vorhanden. Die Volltextsuche deckt bisher nur Notizen ab.

Angelegt aus Nebula in Nebula.

Im Aufgabendashboard keine Suche vorhanden. Die Volltextsuche deckt bisher nur Notizen ab. _Angelegt aus [Nebula](https://nebula.wilde-ste.de/projects/cms2wvhe9000opb01h8c8ajxn) in Nebula._
florian.wilde added the in-arbeit label 2026-08-18 01:16:07 +00:00
florian.wilde started working 2026-08-18 01:16:18 +00:00
Author
Owner

🤖 Claude Code hat mit der Umsetzung begonnen.

  • Branch: feat/4-suche-ueber-aufgaben
  • Verstanden als: Zwei Dinge, die im Issue zusammen stehen — im Aufgaben-Dashboard fehlt ein Suchfeld, und die serverseitige Volltextsuche kennt bisher nur Notizen, findet also keine Aufgaben.
  • Geplantes Vorgehen:
    • Aufgaben-Dashboard: Suchfeld über Titel, Beschreibung, Labels und Projektname. Die Aufgaben liegen dort ohnehin schon alle vor, das filtert also ohne zusätzliche Abfrage und ohne Verzögerung
    • Volltextsuche: Task in /api/search aufnehmen, nach demselben Muster wie Note — deutsche Textsuche, ts_headline für den Ausschnitt, Treffer mit [[…]] markiert statt mit HTML
    • Dazu ein Ausdrucksindex Task_fulltext_idx wie Note_fulltext_idx; der Ausdruck muss exakt dem in der Abfrage entsprechen, sonst greift er nicht
    • Die beiden Stellen, die heute Notiztreffer zeigen (Projektbrett und Schnellsuche), zeigen dann auch Aufgabentreffer

Zeiterfassung läuft.

🤖 **Claude Code hat mit der Umsetzung begonnen.** - Branch: `feat/4-suche-ueber-aufgaben` - Verstanden als: Zwei Dinge, die im Issue zusammen stehen — im Aufgaben-Dashboard fehlt ein Suchfeld, **und** die serverseitige Volltextsuche kennt bisher nur Notizen, findet also keine Aufgaben. - Geplantes Vorgehen: - **Aufgaben-Dashboard:** Suchfeld über Titel, Beschreibung, Labels und Projektname. Die Aufgaben liegen dort ohnehin schon alle vor, das filtert also ohne zusätzliche Abfrage und ohne Verzögerung - **Volltextsuche:** `Task` in `/api/search` aufnehmen, nach demselben Muster wie `Note` — deutsche Textsuche, `ts_headline` für den Ausschnitt, Treffer mit `[[…]]` markiert statt mit HTML - Dazu ein **Ausdrucksindex** `Task_fulltext_idx` wie `Note_fulltext_idx`; der Ausdruck muss exakt dem in der Abfrage entsprechen, sonst greift er nicht - Die beiden Stellen, die heute Notiztreffer zeigen (Projektbrett und Schnellsuche), zeigen dann auch Aufgabentreffer Zeiterfassung läuft.
florian.wilde worked for 22 minutes 2026-08-18 01:39:08 +00:00
florian.wilde referenced this issue from a commit 2026-08-18 01:39:33 +00:00
florian.wilde added zu-testen and removed in-arbeit labels 2026-08-18 01:39:55 +00:00
Author
Owner

✅ Umsetzung abgeschlossen — bereit zum Testen.

Was geändert wurde

  • Suchfeld im Aufgabendashboard über Titel, Beschreibung, Labels und Projektname. Gefiltert wird im Browser — die Aufgaben liegen dort ohnehin vor, also ohne zusätzliche Abfrage und ohne Verzögerung
  • Wer sucht, sucht auch in Erledigtem; der Schalter „Erledigte einblenden“ gilt nur ohne Suchbegriff
  • Task in der Volltextsuche (/api/search), nach demselben Muster wie Note: deutsche Textsuche, ts_headline, Hervorhebung als [[…]] statt HTML
  • Ausdrucksindex Task_fulltext_idx wie Note_fulltext_idx — mit EXPLAIN nachgewiesen, dass er wirklich greift
  • Projektbrett und Schnellsuche zeigen jetzt beide auch Aufgabentreffer

Geänderte Dateien

  • src/app/api/search/route.ts
  • src/components/tasks/TaskOverview.tsx · src/components/ProjectBoard.tsx · src/components/CommandPalette.tsx
  • prisma/migrations/20260818000000_task_fulltext/migration.sql (neu)
  • e2e/api.spec.ts · e2e/ui.spec.ts

So testest du es

  1. git switch feat/4-suche-ueber-aufgaben
  2. npm run docker:db, dann npx prisma migrate deploy (neuer Index), dann npm run dev
  3. Auf /tasks: ins Suchfeld ein Wort aus einem Aufgabentitel tippen → nur passende Aufgaben bleiben, auch erledigte
  4. Ein Wort eingeben, das nirgends vorkommt → „Keine Treffer“ mit Hinweis, worin gesucht wurde
  5. Auf dem Dashboard ins Suchfeld ein Wort tippen, das nur in einer Aufgabenbeschreibung steht → Abschnitt „Treffer in Aufgaben“ mit hervorgehobener Fundstelle
  6. Strg+K und dasselbe Wort → die Aufgabe steht in der Schnellsuche

Stammformen greifen: „Rechnung“ findet „Rechnungen“.

Aufgewendete Zeit: 00:23
Pull Request: #7

Nach Freigabe: /issue-freigabe 4

✅ **Umsetzung abgeschlossen — bereit zum Testen.** <!-- claude-status branch: feat/4-suche-ueber-aufgaben pr: 7 zeit_sekunden: 1370 --> **Was geändert wurde** - **Suchfeld im Aufgabendashboard** über Titel, Beschreibung, Labels und Projektname. Gefiltert wird im Browser — die Aufgaben liegen dort ohnehin vor, also ohne zusätzliche Abfrage und ohne Verzögerung - Wer sucht, sucht auch in **Erledigtem**; der Schalter „Erledigte einblenden“ gilt nur ohne Suchbegriff - **`Task` in der Volltextsuche** (`/api/search`), nach demselben Muster wie `Note`: deutsche Textsuche, `ts_headline`, Hervorhebung als `[[…]]` statt HTML - Ausdrucksindex `Task_fulltext_idx` wie `Note_fulltext_idx` — mit `EXPLAIN` nachgewiesen, dass er wirklich greift - Projektbrett und Schnellsuche zeigen jetzt beide auch Aufgabentreffer **Geänderte Dateien** - `src/app/api/search/route.ts` - `src/components/tasks/TaskOverview.tsx` · `src/components/ProjectBoard.tsx` · `src/components/CommandPalette.tsx` - `prisma/migrations/20260818000000_task_fulltext/migration.sql` *(neu)* - `e2e/api.spec.ts` · `e2e/ui.spec.ts` **So testest du es** 1. `git switch feat/4-suche-ueber-aufgaben` 2. `npm run docker:db`, dann `npx prisma migrate deploy` (neuer Index), dann `npm run dev` 3. Auf `/tasks`: ins Suchfeld ein Wort aus einem Aufgabentitel tippen → nur passende Aufgaben bleiben, auch erledigte 4. Ein Wort eingeben, das nirgends vorkommt → „Keine Treffer“ mit Hinweis, worin gesucht wurde 5. Auf dem Dashboard ins Suchfeld ein Wort tippen, das nur in einer **Aufgabenbeschreibung** steht → Abschnitt „Treffer in Aufgaben“ mit hervorgehobener Fundstelle 6. `Strg+K` und dasselbe Wort → die Aufgabe steht in der Schnellsuche Stammformen greifen: „Rechnung“ findet „Rechnungen“. **Aufgewendete Zeit:** 00:23 **Pull Request:** #7 Nach Freigabe: `/issue-freigabe 4`
Author
Owner

🚀 Freigegeben und nach main übernommen.

  • Merge-Commit: a264eb0
  • Pull Request: #7 (gemergt)
  • Gesamtaufwand: 00:23

Vor dem Merge geprüft: tsc sauber, 261 Unit-Tests grün, PR ohne Konflikte.

Beim Deploy zu beachten: Dieser Stand bringt die Migration 20260818000000_task_fulltext mit (Ausdrucksindex für die Volltextsuche über Aufgaben). scripts/update.sh spielt sie beim Start ein.

Issue wird geschlossen.

🚀 **Freigegeben und nach `main` übernommen.** <!-- claude-status merge: a264eb0 pr: 7 zeit_sekunden: 1370 --> - Merge-Commit: `a264eb0` - Pull Request: #7 (gemergt) - Gesamtaufwand: 00:23 Vor dem Merge geprüft: `tsc` sauber, 261 Unit-Tests grün, PR ohne Konflikte. **Beim Deploy zu beachten:** Dieser Stand bringt die Migration `20260818000000_task_fulltext` mit (Ausdrucksindex für die Volltextsuche über Aufgaben). `scripts/update.sh` spielt sie beim Start ein. Issue wird geschlossen.
florian.wilde removed the zu-testen label 2026-08-18 05:38:20 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Total Time Spent: 22 minutes
florian.wilde
22 minutes
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: florian.wilde/nebula#4