Global Search
The Web interface provides a macOS Spotlight-style centered search dialog that searches tasks, drafts, documents, decisions, Wiki pages, and memos in one go. It replaces the earlier sidebar inline search that could only show 5 results.
Opening and Closing
| Action | Method |
|---|---|
| Open | Press Ctrl+K (Windows/Linux) or Cmd+K (macOS); or click the search trigger button at the top of the sidebar |
| Close | Press Esc, click the × in the upper-right corner of the dialog, click the mask area outside the dialog, or use the browser back button |
When the dialog opens, the underlying page stays as-is and scrolling is locked; after closing, you return to the original page without losing filter or sort state.
The search box in the sidebar is now a read-only trigger button showing "Search (⌘K)..."; clicking it opens the dialog. Input and results have moved into the dialog.
Dialog Layout
- Desktop: horizontally centered, about 12vh from the top, fixed 800px width, max height 75vh, with a dark semi-transparent mask.
- Narrow screens (width < 640px): automatically fills the full screen; result rows become fixed two-line rows (title on first line, ID and labels on second line).
Search Types
A row of type tabs at the top of the dialog re-searches immediately when a new scope is selected:
| Tab | Scope |
|---|---|
| All | Tasks, documents, decisions, Wiki, memos |
| Tasks | Only tasks (including drafts) |
| Documents | Only documents |
| Wiki | Only Wiki pages |
| Decisions | Only decision records |
| Memos | Only memos |
No results are shown when the input is empty; search runs automatically about 300 milliseconds after typing.
Include Completed Tasks
The dialog provides a "Completed corpus" toggle: when enabled, the search scope expands to historical tasks in the backlog/completed/ directory. Matched completed records carry a Completed badge and open in a read-only popup (no edit actions) when clicked. It is off by default, and default results are identical to before.
Results List
Results are grouped by type (Tasks → Documents → Wiki → Decisions → Memos). Each group has a header showing the count and a collapse arrow:
- Click the header (or press Enter / Space when focused) to collapse or expand the group; collapsed groups do not participate in scroll positioning.
- Each row shows: type icon, resource ID, title, and status/priority labels.
- The entered keyword is highlighted in both titles and resource IDs.
- There is no result count limit; the list uses virtual scrolling and stays smooth even with thousands of results.
Keyboard Operations
| Key | Behavior |
|---|---|
| ↑ / ↓ | Move selection up/down |
| Enter | Open the selected item |
| Esc | Close the dialog |
| Ctrl+K / Cmd+K | Open (keeps focus if already in the dialog) |
Navigation Behavior When Opening Results
- Tasks: opened as a modal over the current page; after closing, you return to the search dialog with the query, type filter, and scroll position preserved.
- Documents / Decisions / Wiki: navigate to the corresponding full-page view; use the browser back button to return to the search dialog.
- Memos: navigate to
/memos?date=<day>—memos do not have an independent detail route, so they are opened in the memo page's day view.
Position Memory
After scrolling in the result list and pressing Enter to open an item, returning via Back returns the list to its original position (it records the "first visible row" rather than pixel offset, so it can still restore stably when the result set changes). If the position is no longer valid (for example results have decreased), the list returns to the top.
Closing the dialog with Esc, clicking the mask, or clicking × does not record position—there is no need to remember scroll position when actively abandoning the search.
Sharing and Refreshing
The dialog state is saved in the address bar:
http://localhost:6420/search?q=timezone&type=task
qis the keyword; omitted if not entered.typeis the type filter (docis short fordocument); omitted means "All".- Refreshing the page or sending the link to a colleague reopens the dialog with the same query, filter, and results.
Related Chapters
- Task List — list page filtering and task detail modal
- Wiki Browsing & Editing — Wiki page reading and editing