Commit Graph
14 Commits
Author SHA1 Message Date
bruno 7b2da1ff6a feat: CI/CD pipeline + sortedcontainers for O(log n) index ops
CI / lint (push) Failing after 2m3s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after 10s
CI/CD (.gitea/workflows/ci.yml):
- Lint: ruff + mypy on every push/PR
- Test: pytest with coverage report (175 tests)
- Security: bandit SAST + pip-audit dependency scan
- Build: Docker image verification

sortedcontainers (backend/search.py):
- Replace bisect with SortedList for _sorted_tokens
- O(log n) add() / discard() instead of O(n) insort/pop
- SortedList.bisect_left() for prefix search
- Add sortedcontainers>=2.4.0 to requirements.txt
2026-05-27 22:47:28 -04:00
bruno 8055b20e5f Fix tag filtering to preserve "all" vault filter 2026-05-27 12:08:59 -04:00
bruno e3c25b5b09 Add saved searches with CRUD API and UI sidebar
Add extension field to search results and display it
Add active filter badges and save button to search header
2026-05-27 08:39:52 -04:00
bruno aa2c05b05f Add regex search with highlighted snippet support 2026-05-27 08:15:39 -04:00
bruno 7c4f2964eb Render frontmatter as styled cards in public share view
Split search query tokens on word boundaries for accurate inverted-index
matching
2026-05-26 22:16:21 -04:00
bruno 8fdcdaf412 Add search toggles, path filters, and find/replace functionality 2026-05-26 13:35:38 -04:00
bruno 775722f5d4 Switch inverted index from stale check to incremental updates
Register a hook with the indexer so that file add/remove events
incrementally maintain the inverted index, removing the need for
periodic staleness checks and cooldowns. Rebuild the index once on
startup via init_inverted_index().
2026-05-26 12:37:59 -04:00
bruno b38f3f16e4 Coalesce index generation increments and add rebuild cooldown 2026-05-26 11:42:47 -04:00
bruno 84d3ad0e90 feat: add ext: operator for file extension filtering in advanced search
- Add ext: operator support to query parser in backend and frontend
- Update search documentation in README and help modal with ext: examples
- Parse ext: operator to extract file extension filter (strips leading dot, converts to lowercase)
- Filter search candidates by file extension in advanced_search function
- Add ext chip display in search UI alongside existing tag/vault/title/path chips
- Update API documentation and function
2026-03-31 13:41:07 -04:00
bruno b40fcae62f Add advanced search engine with inverted index, thread pool execution, configuration API, and comprehensive diagnostics 2026-03-23 13:21:20 -04:00
bruno e171a0dc35 Add advanced TF-IDF search with autocomplete, query operators, facets, pagination, and accent normalization 2026-03-23 12:09:46 -04:00
bruno d311a09527 Implement multi-stage Docker build with security hardening, add health check endpoint, optimize in-memory search with O(1) wikilink lookup, extract inline tags from markdown content, and enhance documentation with architecture diagrams and performance metrics 2026-03-22 19:03:34 -04:00
bruno b73aa19c51 Add file deletion endpoint with multi-tag filtering support and redesigned editor UI with icon-only buttons 2026-03-21 22:42:55 -04:00
bruno e76e9ea962 first commit 2026-03-21 09:52:44 -04:00