Added: - PROJECTS_INDEX.md - Master catalog of 7 active projects - GURURMM_API_ACCESS.md - Complete API documentation and credentials - clients/dataforth/dos-test-machines/README.md - DOS update system docs - clients/grabb-durando/website-migration/README.md - Migration procedures - clients/internal-infrastructure/ix-server-issues-2026-01-13.md - Server issues - projects/msp-tools/guru-connect/README.md - Remote desktop architecture - projects/msp-tools/toolkit/README.md - MSP PowerShell tools - projects/internal/acg-website-2025/README.md - Website rebuild docs - test_gururmm_api.py - GuruRMM API testing script Modified: - credentials.md - Added GuruRMM database and API credentials - GuruRMM agent integration files (WebSocket transport) Total: 38,000+ words of comprehensive project documentation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
15 KiB
15 KiB
Changelog
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.
Unreleased
0.19.0 - 2026-01-22
Added
- Watcher Performance Optimization: Skip unchanged files on subsequent launches (#62)
- New
last_index_timefield in configuration tracks last indexing timestamp - Files with ModTime before
last_index_timeare skipped, avoiding unnecessary embeddings - Config write throttling (30s) prevents file system overload during active development
- Significantly faster subsequent
grepai watchlaunches (~1ms vs ~100ms for unchanged codebases) - Fully backward compatible: old configs work normally, optimization kicks in after first watch
- New
Changed
Indexernow acceptslastIndexTimeparameter for ModTime-based file skippingrunInitialScanreturnsIndexStatsto enable conditional config updates
0.18.0 - 2026-01-21
Added
- Qdrant Vector Store Backend: New storage backend using Qdrant vector database (#57)
- Support for local Qdrant (Docker) and Qdrant Cloud
- gRPC connection with TLS support
- Automatic collection creation and management
- Docker Compose profile for easy local setup:
docker compose --profile=qdrant up - Configuration options: endpoint, port, TLS, API key, collection name
Fixed
- Qdrant Backend Improvements: Various fixes and improvements
- Fixed default port display in
grepai initprompt (6333 → 6334 for gRPC) - Added UTF-8 sanitization to prevent indexing errors on files with invalid characters
- Added
qdrant_storageto default ignore patterns - Updated CLI help to include qdrant in backend options
- Fixed typo in compose.yaml ("Optionnal" → "Optional")
- Fixed default port display in
0.17.0 - 2026-01-21
Added
- Cursor Rules Support:
grepai agent-setupnow supports.cursor/rulesconfiguration file (#59).cursor/rules(Cursor's current standard) takes priority over deprecated.cursorrules- Backwards compatibility maintained for existing
.cursorrulesfiles - Both files are configured if present (idempotence handled by marker detection)
0.16.1 - 2026-01-18
Fixed
- CLI Error Display: Commands now properly display error messages on stderr (#52, #53)
- Previously errors were silenced by Cobra's
SilenceErrors: truesetting - Permission errors in
updatecommand now show user-friendly message with sudo suggestion
- Previously errors were silenced by Cobra's
0.16.0 - 2026-01-16
Added
- Background Daemon Mode: New flags for
grepai watchto run as a background processgrepai watch --background: Start watcher as a detached daemongrepai watch --status: Check if background watcher is running (shows PID and log location)grepai watch --stop: Gracefully stop the background watcher (with 30s timeout)--log-dir: Override default log directory- OS-specific default log directories:
- Linux:
~/.local/state/grepai/logs/(or$XDG_STATE_HOME) - macOS:
~/Library/Logs/grepai/ - Windows:
%LOCALAPPDATA%\grepai\logs\
- Linux:
- PID file management with file locking to prevent race conditions
- Automatic stale PID detection and cleanup
- Ready signaling: parent waits for child to fully initialize before returning
- Graceful shutdown with index persistence on SIGINT/SIGTERM
- New
daemonpackage: Cross-platform process lifecycle management- Platform-specific implementations for Unix and Windows
- File locking (flock on Unix, LockFileEx on Windows)
- Process detection and signal handling
0.15.1 - 2026-01-16
Added
- External Gitignore Support: New
external_gitignoreconfiguration option to specify a path to an external gitignore file (e.g.,~/.config/git/ignore) (#50)- Supports
~expansion for home directory paths - External patterns are respected during indexing alongside project-level
.gitignorefiles - If the file doesn't exist, a warning is logged but indexing continues normally
- Supports
0.15.0 - 2026-01-14
Added
- C# Language Support for Trace: Symbol extraction and call graph analysis now supports C# (#48)
- Classes (with inheritance, generics, sealed/abstract/static/partial modifiers)
- Structs (including readonly and ref structs)
- Records (record, record class, record struct)
- Interfaces (including generic interfaces)
- Methods (with all modifiers: public, private, protected, internal, static, virtual, override, abstract, async, etc.)
- Constructors
- Expression-bodied members
- C# keywords added to filter out false positives
.csadded to default traced languages- Tree-sitter support for precise symbol extraction
0.14.0 - 2026-01-12
Added
- Java Language Support for Trace: Symbol extraction and call graph analysis now supports Java (#32)
- Classes (with extends/implements, generics, sealed/non-sealed)
- Inner and nested classes
- Interfaces (including generic interfaces)
- Annotations (
@interface) - Enums (top-level and inner, with methods)
- Records (Java 14+)
- Methods with all modifiers (public, protected, private, static, final, abstract, synchronized, native, strictfp)
- Constructors
- Default interface methods (Java 8+)
- Abstract methods
- Java keywords added to filter out false positives
.javaadded to default traced languages
0.13.0 - 2026-01-12
Added
- Self-Update Command: New
grepai updatecommand for automatic updates (#42)grepai update --check: Check for available updates without installinggrepai update: Download and install the latest version from GitHub releasesgrepai update --force: Force update even if already on latest version- Automatic platform detection (linux/darwin/windows, amd64/arm64)
- SHA256 checksum verification before installation
- Progress bar during download
- Graceful error handling for network issues, rate limits, and permission errors
Changed
- Makefile: Uses Docker for consistent linting with golangci-lint v1.64.2
0.12.0 - 2026-01-12
Fixed
- Custom OpenAI Endpoint: Fixed
embedder.endpointconfig not being used for OpenAI provider (#35)- Enables Azure OpenAI and Microsoft Foundry support
- Custom endpoints now correctly passed to the OpenAI embedder
Added
- Configurable Vector Dimensions: New
embedder.dimensionsconfig option (#35)- Allows specifying vector dimensions per embedding model
- PostgreSQL vector column automatically resizes to match configured dimensions
- Backward compatible: old configs without
dimensionsuse sensible defaults per provider
0.11.0 - 2026-01-12
Added
- Nested
.gitignoreSupport: Each subdirectory can now have its own.gitignorefile (#40)- Patterns in nested
.gitignorefiles apply only to their directory and subdirectories - Matches git's native behavior for hierarchical ignore rules
- Example:
src/.gitignorewithgenerated/only ignoressrc/generated/, notdocs/generated/
- Patterns in nested
Fixed
- Directory Pattern Matching: Patterns with trailing slash (e.g.,
build/) now correctly match the directory itself- Previously only matched contents inside the directory
- Now triggers
filepath.SkipDirfor better performance on large repositories - Significantly improves indexing speed when ignoring
node_modules/,vendor/, etc.
0.10.0 - 2026-01-11
Added
- Compact JSON Output: New
--compact/-cflag forgrepai searchcommand (#33)- Outputs minimal JSON without
contentfield for ~80% token savings - Requires
--jsonflag (returns error if used alone) - Recommended format for AI agents:
grepai search "query" --json --compact - All agent setup templates updated to use
--json --compactby default
- Outputs minimal JSON without
0.9.0 - 2026-01-11
Added
- Claude Code Subagent: New
--with-subagentflag forgrepai agent-setup(#17)- Creates
.claude/agents/deep-explore.mdfor Claude Code - Provides a specialized exploration agent with grepai search and trace access
- Uses
model: inheritto match user's current model - Subagents operate in isolated context, ensuring grepai tools are available during exploration
- Creates
0.8.1 - 2026-01-11
Documentation
- Simplify Claude Code MCP setup: use
claude mcp addcommand instead of manual JSON configuration
0.8.0 - 2026-01-11
Added
- MCP Server Mode: New
grepai mcp-servecommand for Model Context Protocol integration (#18)- Exposes grepai as native MCP tools for AI agents (Claude Code, Cursor, Windsurf, etc.)
- Available tools:
grepai_search,grepai_trace_callers,grepai_trace_callees,grepai_trace_graph,grepai_index_status - Uses stdio transport for local MCP server communication
- Structured JSON responses by default
- Works automatically in subagents without explicit configuration
0.7.2 - 2026-01-11
Documentation
- Sidebar Reorganization: Moved "Search Boost" and "Hybrid Search" from Configuration to Features section
- Configuration Reference: Updated full configuration reference with correct field names
- Added missing options:
version,watch.debounce_ms,trace.mode,trace.enabled_languages,trace.exclude_patterns - Fixed
scanner.ignore→ignore(root level) - Fixed
store.postgres.connection_string→dsn - Removed
store.gob.path(handled automatically)
- Added missing options:
- Trace Documentation: Added missing supported languages (C, C++, Zig, Rust) to the languages table
0.7.1 - 2026-01-11
Added
- Agent Setup Trace Instructions: Updated
grepai agent-setupto include trace command documentation (#16)- Added "Call Graph Tracing" section with
trace callers,trace callees,trace graphexamples - All trace examples include
--jsonflag for optimal AI agent integration - Updated workflow to include trace as step 2 for understanding function relationships
- Added "Call Graph Tracing" section with
0.7.0 - 2026-01-10
Added
- Extended Language Support for Trace: Symbol extraction now supports additional languages
- C (
.c,.h) - functions, structs, enums, typedefs - Zig (
.zig) - functions, methods (inside structs/enums), inline/export/extern functions, structs, unions, enums, error sets, opaque types, nested types - Rust (
.rs) - functions, methods, structs, enums, traits, type aliases - C++ (
.cpp,.hpp,.cc,.cxx,.hxx) - functions, methods, classes, structs, enums
- C (
- Default ignore patterns for Zig and Rust build directories:
target,.zig-cache,zig-out
0.6.0 - 2026-01-10
Added
- Search JSON Output: New
--json/-jflag forgrepai searchcommand- Machine-readable JSON output optimized for AI agents
- Excludes internal fields (vector, hash, updated_at) to minimize token usage
- Error handling outputs JSON format when flag is used
- Closes #13
0.5.0 - 2026-01-10
Added
- Call Graph Tracing: New
grepai tracecommand for code navigationtrace callers <symbol>- find all functions calling a symboltrace callees <symbol>- find all functions called by a symboltrace graph <symbol>- build call graph with configurable depth
- Regex-based symbol extraction (fast mode) for Go, JS/TS, Python, PHP
- Tree-sitter integration (precise mode) with build tag
treesitter - Separate symbol index stored in
.grepai/symbols.gob - JSON output for AI agent integration (
--jsonflag) - Automatic symbol indexing during
grepai watch
0.4.0 - 2026-01-10
Added
- LM Studio Provider: New local embedding provider using LM Studio
- Supports OpenAI-compatible API format
- Configurable endpoint and model selection
- Privacy-first alternative for local embeddings
0.3.0 - 2026-01-09
Added
- Search Boost: Configurable score multipliers based on file paths
- Penalize tests, mocks, fixtures, generated files, and docs
- Boost source directories (
/src/,/lib/,/app/) - Language-agnostic patterns, enabled by default
- Hybrid Search: Combine vector similarity with text matching
- Uses Reciprocal Rank Fusion (RRF) algorithm
- Configurable k parameter (default: 60)
- Optional, disabled by default
GetAllChunks()method to VectorStore interface for text search- Dedicated documentation pages for Search Boost and Hybrid Search
- Feature cards on docs homepage
Changed
- Searcher now accepts full SearchConfig instead of just BoostConfig
0.2.0 - 2026-01-09
Added
- Initial release of grepai
grepai initcommand for project initializationgrepai watchcommand for real-time file indexinggrepai searchcommand for semantic code searchgrepai agent-setupcommand for AI agent integration- Ollama embedding provider (local, privacy-first)
- OpenAI embedding provider
- GOB file storage backend (default)
- PostgreSQL with pgvector storage backend
- Gitignore support
- Binary file detection and exclusion
- Configurable chunk size and overlap
- Debounced file watching
- Cross-platform support (macOS, Linux, Windows)
Security
- Privacy-first design with local embedding option
- No telemetry or data collection
0.1.0 - 2026-01-09
Added
- Initial public release