Files
claudetools/CHANGELOG.md
Mike Swanson 07816eae46 docs: Add comprehensive project documentation from claude-projects scan
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>
2026-01-22 09:58:32 -07:00

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_time field in configuration tracks last indexing timestamp
    • Files with ModTime before last_index_time are skipped, avoiding unnecessary embeddings
    • Config write throttling (30s) prevents file system overload during active development
    • Significantly faster subsequent grepai watch launches (~1ms vs ~100ms for unchanged codebases)
    • Fully backward compatible: old configs work normally, optimization kicks in after first watch

Changed

  • Indexer now accepts lastIndexTime parameter for ModTime-based file skipping
  • runInitialScan returns IndexStats to 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 init prompt (6333 → 6334 for gRPC)
    • Added UTF-8 sanitization to prevent indexing errors on files with invalid characters
    • Added qdrant_storage to default ignore patterns
    • Updated CLI help to include qdrant in backend options
    • Fixed typo in compose.yaml ("Optionnal" → "Optional")

0.17.0 - 2026-01-21

Added

  • Cursor Rules Support: grepai agent-setup now supports .cursor/rules configuration file (#59)
    • .cursor/rules (Cursor's current standard) takes priority over deprecated .cursorrules
    • Backwards compatibility maintained for existing .cursorrules files
    • 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: true setting
    • Permission errors in update command now show user-friendly message with sudo suggestion

0.16.0 - 2026-01-16

Added

  • Background Daemon Mode: New flags for grepai watch to run as a background process
    • grepai watch --background: Start watcher as a detached daemon
    • grepai 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\
    • 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 daemon package: 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_gitignore configuration 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 .gitignore files
    • If the file doesn't exist, a warning is logged but indexing continues normally

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
    • .cs added 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
    • .java added to default traced languages

0.13.0 - 2026-01-12

Added

  • Self-Update Command: New grepai update command for automatic updates (#42)
    • grepai update --check: Check for available updates without installing
    • grepai update: Download and install the latest version from GitHub releases
    • grepai 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.endpoint config 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.dimensions config option (#35)
    • Allows specifying vector dimensions per embedding model
    • PostgreSQL vector column automatically resizes to match configured dimensions
    • Backward compatible: old configs without dimensions use sensible defaults per provider

0.11.0 - 2026-01-12

Added

  • Nested .gitignore Support: Each subdirectory can now have its own .gitignore file (#40)
    • Patterns in nested .gitignore files apply only to their directory and subdirectories
    • Matches git's native behavior for hierarchical ignore rules
    • Example: src/.gitignore with generated/ only ignores src/generated/, not docs/generated/

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.SkipDir for 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/-c flag for grepai search command (#33)
    • Outputs minimal JSON without content field for ~80% token savings
    • Requires --json flag (returns error if used alone)
    • Recommended format for AI agents: grepai search "query" --json --compact
    • All agent setup templates updated to use --json --compact by default

0.9.0 - 2026-01-11

Added

  • Claude Code Subagent: New --with-subagent flag for grepai agent-setup (#17)
    • Creates .claude/agents/deep-explore.md for Claude Code
    • Provides a specialized exploration agent with grepai search and trace access
    • Uses model: inherit to match user's current model
    • Subagents operate in isolated context, ensuring grepai tools are available during exploration

0.8.1 - 2026-01-11

Documentation

  • Simplify Claude Code MCP setup: use claude mcp add command instead of manual JSON configuration

0.8.0 - 2026-01-11

Added

  • MCP Server Mode: New grepai mcp-serve command 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.ignoreignore (root level)
    • Fixed store.postgres.connection_stringdsn
    • Removed store.gob.path (handled automatically)
  • 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-setup to include trace command documentation (#16)
    • Added "Call Graph Tracing" section with trace callers, trace callees, trace graph examples
    • All trace examples include --json flag for optimal AI agent integration
    • Updated workflow to include trace as step 2 for understanding function relationships

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
  • 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/-j flag for grepai search command
    • 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 trace command for code navigation
    • trace callers <symbol> - find all functions calling a symbol
    • trace callees <symbol> - find all functions called by a symbol
    • trace 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 (--json flag)
  • 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 init command for project initialization
  • grepai watch command for real-time file indexing
  • grepai search command for semantic code search
  • grepai agent-setup command 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