All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.8.0 (2026-03-22)
- quality: eliminate negated conditions in ternary expressions (S7735) (#478) (90950d7), closes #471
- quality: extract nested template literals to variables (S4624) (#480) (3e9be2c)
- quality: move inner helper functions to module scope (S7721) (#479) (ae17bd8)
- quality: prefer Number.parseInt/parseFloat/isNaN over globals (S7773) (#477) (7e76bba)
- quality: reduce cognitive complexity of spiderUrl generator (S3776) (#476) (595ec42)
- security: force flatted >=3.4.2 to fix prototype pollution CVE (#475) (56ddf70), closes #474
1.7.2 (2026-03-19)
1.7.1 (2026-03-19)
1.7.0 (2026-03-19)
1.6.0 (2026-03-19)
- Add SonarQube CI/CD step (#417) (00b0479)
- Implement connectors for common doc sites (#450) (056db0e)
- libscope/lite — embeddable semantic search library (#451) (#452) (022b958)
- miscellaneous minor SonarCloud issues (S7755, S4325, S3863, S7748, S7778) (#448) (ef2a6f7)
- resolve all 11 SonarCloud HIGH impact issues (#449) (ec4e539)
- resolve SonarCloud critical issues (#419) (#420) (bf6e1be)
- S7735 — flip negated conditions (31 occurrences) (#445) (b3c3b5b)
- S7780 — use String.raw for escaped strings (13 occurrences) (#446) (63975db)
- use String#replaceAll() over replace() with global flag (S7781) (#447) (1519ad1)
1.5.3 (2026-03-18)
1.5.2 (2026-03-18)
- accept ssh:// protocol URLs in registry URL validation (#405) (acb91b1)
- comprehensive security and robustness hardening for registry feature (#407) (cab4baf)
1.5.1 (2026-03-16)
1.5.0 (2026-03-16)
- add get-related chunk similarity lookup (more-like-this) (#397) (69b0bc7)
- auto-detect document links from markdown and wikilinks (#396) (5863b2c)
- git-based pack registries (#393) (f0653ce)
- deployments v2 (#389) (b800703)
- docs not updating on deployment (#387) (11e11ff)
- set git identity in integration registry tests for CI (#402) (6afa1fb)
- set git identity in registry git helpers and tests for CI (#401) (9ede32f)
- set git identity in registry sync test for CI runners (#400) (1162bd4)
1.4.1 (2026-03-10)
1.4.0 (2026-03-06)
- rebase development features onto main (v1.3.0 baseline) (4733096)
1.3.0 (2026-03-05)
- add allowSelfSignedCerts config for corporate TLS (#239) (858ad1c)
- add source-type filter to search (#246) (#268) (cb05ded)
- auto-suggest tags based on content analysis (#243) (#273) (da158ff)
- bulk operations for documents (#170) (#272) (7e28d2d)
- confluence: add --type flag for cloud vs server auth (#241) (f29029e)
- context chunk expansion for search results (#266) (d087485), closes #247
- deduplicate search results by document (#245) (#269) (3dd70de)
- document cross-references and relationship links (#267) (3151a73), closes #169
- saved searches with filters (#166) (#271) (508d82a)
- scheduled connector sync with cron expressions (#178) (#276) (557cd3f)
- support additional document formats (PDF, Word, CSV, YAML, JSON) (#249) (#275) (6c4b589)
- webhook system for document events (#187) (#274) (4713d2b)
- wire document update to MCP, CLI, and REST API (#182) (#270) (96ced04)
- wire up web dashboard via
libscope serve --dashboard(#265) (cf16afd), closes #259
- add input validation for search params, CLI options, and API responses (#252) (#260) (d84de47)
- add missing database cleanup and stream reader cancellation (#254) (#262) (7a3f650)
- add request timeouts to embedding providers and RAG (#258) (e52e97f)
- address 5 CodeQL security alerts (SSRF, TLS, ReDoS) (#279) (e2339cd)
- address HIGH and MEDIUM audit findings (#280) (1e93987)
- apply allowSelfSignedCerts to connector fetch calls (#240) (3b7b281)
- code quality improvements from comprehensive audit (#278) (e988c63)
- comprehensive audit fixes — security, performance, resilience, API hardening (#316) (5585db5)
- confluence: use correct REST API paths for Server/Data Center (#242) (d1afeab)
- connector bugs — pagination, recursion, rate limiting, auth (#257) (49fef8b)
- error handling gaps — counters, silent failures, version pruning (#255) (#264) (b20cebe)
- fall back to github.token if GH_TOKEN secret not set (5bf987d)
- mcp: expose relevance scores in search results (#248) (760ce21)
- mcp: use workspace-aware database path (#244) (0ddba5a)
- move saveVersion inside transaction in updateDocument (#256) (#263) (2afeae1)
- remove unsafe non-null assertions and fix type casts (#253) (#261) (e549a89)
- use OS DNS resolver fallback for internal hostnames (#237) (3beb234)
1.2.3 (2026-03-02)
1.2.2 (2026-03-02)
1.2.2 (2026-03-02)
1.2.1 (2026-03-02)
1.2.0 (2026-03-02)
- add API key authentication (#173) (#208) (aba755f)
- add config validation on startup (#172) (#205) (dae5759)
- add confirmation prompts for destructive CLI operations (#171) (#206) (a981956)
- add Confluence space and page connector (closes #153) (#159) (2a6a767)
- add connector sync status and history tracking (#179) (#213) (997a37d)
- add conversational RAG search with LLM answers (closes #119) (#134) (ce9c4bc)
- add Docker GHCR publishing workflow (#196) (#210) (48687e4)
- add Docker image and docker-compose (#177) (#192) (790ab3b)
- add document versioning and change history (closes #120) (#131) (c4b0e40)
- add file watch mode for automatic re-indexing (closes #114) (#124) (43d1bf4)
- add GitHub/GitLab repository doc indexing (closes #118) (#125) (e7a5dbc)
- add Go SDK for REST API (closes #149) (#160) (d9b5e4e)
- add incremental re-embedding for model migration (closes #123) (#136) (6664131)
- add knowledge graph visualization to web dashboard (closes #142) (#144) (9a0801e)
- add knowledge pack system for installable doc bundles (closes #137) (#145) (0024170)
- add local web UI dashboard (closes #117) (#130) (36e58c3)
- add multi-database workspace support (closes #115) (#132) (3a343b7)
- add multi-label tag system for document organization (closes #121) (#128) (e0a6015)
- add Notion page and database connector (closes #152) (#156) (08a7437)
- add Obsidian vault connector with incremental sync (closes #146) (#155) (24c3037)
- add offset parameter to REST API search endpoint (#174) (#204) (6dc2df4)
- add OneNote connector via Microsoft Graph API (closes #147) (#154) (f549a2e)
- add Python SDK for REST API (closes #148) (#161) (70fe5db)
- add REST API server with OpenAPI spec (closes #150) (#157) (a9ae913)
- add Server-Sent Events streaming for RAG responses (#175) (#211) (d6264bf)
- add similarity-based deduplication on ingest (closes #116) (#126) (3a8f829)
- add Slack channel connector with thread aggregation (closes #151) (#158) (97f706f)
- add usage analytics and content health metrics (closes #122) (#133) (6b25ab1)
- prepare Python SDK for PyPI publishing as pylibscope (#189) (4ff0d5c), closes #183
- search analytics dashboard with knowledge gap detection (#167) (#212) (5580d89)
- add retry logic for Notion/Slack/Confluence connectors (#176) (#207) (05e11c3)
- add vercel.json to install devDependencies for vitepress build (#214) (3324461)
- cap rate limiter memory with sliding window counter (#180) (#193) (28dba0b)
- deduplicate streaming chunker overlap (#186) (#194) (0355009)
- Docker build failing due to husky in prepare script (#219) (76d6812)
- OneNote rate limiter race condition and CLI lint warnings (#164) (a018cf8)
- pass dbPath to getStats for accurate databaseSizeBytes (#185) (#195) (0579d14)
- resolve CodeQL alerts, update license to BSL 1.1, fix README badges (#218) (3d28d7e)
- security: override esbuild to >=0.25.0 to resolve CVE (#216) (7d5a130)
- update engines to node >=20 (#217) (4419a38)
- validate parseInt results in API routes and fix watcher memory leak (#163) (7712dee)
1.1.0 (2026-03-01)
- add batch import with parallel processing (closes #46) (#70) (81fb08a)
- add date range and source filters to search (closes #94) (#113) (84e1df0)
- add delete-document and management MCP tools (closes #88, closes #93) (#107) (7254725)
- add document update/edit capability (#108) (85dbafb)
- add document versioning and update detection (closes #47) (#67) (31dcb85)
- add export/backup functionality (closes #48) (#69) (902cfba)
- add health-check MCP tool (#63) (e863254), closes #45
- add interactive search REPL mode to CLI (closes #95) (#112) (2e1d2c7)
- add plugin interface for custom embedding providers (closes #96) (#110) (5ce49ac)
- add retry logic with exponential backoff for embedding providers (#66) (2843571), closes #42
- add search result pagination (closes #49) (#68) (0b28fcf)
- add search result scoring explanation (closes #89) (#111) (60140f5)
- add streaming support for large document ingestion (closes #43) (#72) (a907766)
- add structured logging throughout the application (closes #44) (#71) (83a99a1)
- add topic deletion, rename, and browsing (closes #90) (#109) (6ce28b2)
- configurable URL fetcher timeout and limits (closes #92) (#104) (67b9619)
- add foreign key validation in topics and ratings (#57) (8826492), closes #37
- add input and response validation to embedding providers (#59) (3d8e832), closes #34
- add jitter to retry backoff and handle maxRetries=0 edge case (closes #75) (#97) (2316ecd)
- add logging to silent catch blocks (#60) (b8932c3), closes #38
- add SSRF protection and streaming body size limit (closes #78, closes #80) (#103) (3bb898b)
- clamp search scores and add minRating filter to all search strategies (#55) (57ff2e6), closes #28
- extract shared initializeApp() helper in CLI (#62) (1e83720), closes #33
- extract shared test utilities to fixtures directory (#64) (041a638), closes #41
- improve database connection lifecycle management (#53) (fd653e8), closes #36
- include content_hash in export/import (closes #76) (#100) (becb535)
- move MCP server initialization into main() with error handling (#61) (c0e4da8), closes #32
- prevent error double-wrapping in embedding providers (#56) (ca7dab9), closes #30
- proper count queries and safer DB type handling (closes #81, closes #82) (#105) (06f96aa)
- provider validation, Ollama response check, test DRY, .env.example (closes #84, closes #85, closes #86, closes #91) (#98) (ab39e9d)
- remove unused deepMerge function from config.ts (#52) (c672859), closes #39
- replace N+1 rating subqueries with JOIN aggregation in search (#58) (5b297f5), closes #29
- replace unsafe non-null assertions in indexing.ts (#51) (ea03fa5), closes #35
- resolve race condition in local provider initialization (#50) (94f4190), closes #31
- standardize error handling patterns across modules (#65) (4043378), closes #40
- targeted vector fallback errors and LIKE escaping (closes #74, closes #79) (#102) (30151aa)
- use atomic INSERT ON CONFLICT for topic creation (closes #77) (#99) (5430f7b)
- wrap CLI handlers in try-finally for DB cleanup (closes #73) (#106) (7869854)
1.0.1 (2026-03-01)
- resolve all 23 open issues
- add agents.md, FTS5 search, URL ingestion, bulk import (62f5f8e)
- initial LibScope project scaffold (ac88a09)
- MCP submit-document now accepts URL for auto-fetch (a103c66)
- lower coverage thresholds to 75% for CI platform variance (bd0fca6)
- remove Node 18 from CI matrix (vitest 4.x requires Node 20+) (7ff42c2)
- resolve all 23 open issues (926dc80), closes #15
- MCP Server with 5 tools:
search-docs,get-document,rate-document,submit-document,list-topics - CLI with commands:
init,add,search,topics,ratings,serve,config - Embedding providers: local (all-MiniLM-L6-v2), Ollama, OpenAI — configurable via CLI or env vars
- SQLite + sqlite-vec storage with vector similarity search and keyword fallback
- Ratings system — rate documents 1-5, provide feedback, suggest corrections
- Topic hierarchy — organize docs by topic with parent/child relationships
- Document types — library docs (versioned), topic docs, manual, and model-generated
- Strict TypeScript config with full type safety
- GitHub Actions CI/CD — lint, typecheck, test (Node 18/20/22 matrix), build, npm publish, CodeQL
- 65 tests — unit and integration test suite with Vitest