M2 search: Postgres FTS backend + top search bar + results
- Migration 0005: generated tsvector column (title A + body B) + GIN index on notes; GET /api/notes/search?q= (websearch_to_tsquery, ts_rank, ACL-scoped, excludes trash), labels merged into results. - Persistent AppShell layout (parent route + <RouterView> children) so the new top search box keeps focus across board/search/label navigation. - SearchView (debounced live search from the shell → /search?q=, results masonry, no-match empty state); BoardView/SearchView render inside the shared shell. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FRgehjoz7Yv8LkUfADxACm
This commit is contained in:
@@ -50,3 +50,9 @@ async def test_notes_create_requires_auth(app):
|
||||
client = app.test_client()
|
||||
resp = await client.post("/api/notes", json={"body": "hi"})
|
||||
assert resp.status_code == 401
|
||||
|
||||
|
||||
async def test_search_requires_auth(app):
|
||||
client = app.test_client()
|
||||
resp = await client.get("/api/notes/search?q=hello")
|
||||
assert resp.status_code == 401
|
||||
|
||||
Reference in New Issue
Block a user