commits
- Add safe_registry_lookup wrapper with timeout and error handling
- Add safe_load_yardoc wrapper for protected yardoc loading
- Catch SystemStackError from circular references in YARD registry
- Add timeout protection (5s for lookups, 10s for loading)
- Replace all YARD::Registry.at and load_yardoc calls with safe versions
- Graceful degradation with proper logging on failures
Fixes stack overflow errors seen when YARD encounters circular
references in complex gem dependency graphs.
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create yard-mcp.gemspec for proper gem packaging
- Add version.rb with initial 0.1.0 version
- Create exe/yard-mcp executable for bundle exec usage
- Update Gemfile to use gemspec for dependency management
- Update .mcp.json to use bundle exec yard-mcp
- Update README with bundler-only installation instructions
- Focus on development dependency usage in Ruby projects
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Use proper .mcp.json format created by claude mcp add
- Configure yard-mcp server with ruby bin/yard-mcp command
- Server configured for project scope with 413 libraries available
- Enables Claude Code to access Ruby documentation via MCP
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Detect when searching for core class methods (no namespace)
- Suggest common extension libraries (activesupport, rails) when methods not found
- Simple, maintainable approach without hardcoded class lists
- Helps users discover where monkey-patched methods are defined
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update plan.md to show completed phases and current architecture
- Document single registry approach instead of two-tier system
- Add current usage examples and available MCP tools
- Update implementation status with completion markers
- Document library-scoped search and gem source tracking features
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Convert all MCP tool methods from class to instance methods to match fast-mcp 1.5.0 API
- Add list_libraries tool with gem source filtering (bundler vs installed gems)
- Track gem sources in registry to distinguish bundler/installed/project libraries
- Add library parameter support to lookup_object for scoped searches
- Support #project and #stdlib special library namespaces
- Add concurrent-ruby dependency for thread-safe operations
- Update tool registration to use instance-based pattern consistently
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major improvement using YARD's native library management:
- Adopt YARD::Server::LibraryVersion architecture (like yard server)
- Build library collection with proper gem/project handling
- Load documentation using LibraryVersion.ready? checks
- Support both installed gems (-g) and bundler gems (-G)
Results:
- 2,464 objects loaded vs 101 previously (24x improvement\!)
- Can now find YARD module and other library documentation
- Follows YARD's established patterns for gem documentation
- Foundation for on-demand documentation building
This replicates the robustness of 'yard server -g -G' behavior.
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major simplification:
- Remove complex isolated registry architecture
- Use YARD's global registry directly (project-local via .yardoc)
- Leverage YARD's native cache management and incremental parsing
- Load Gemfile gems automatically (equivalent to yard server -G)
- No more instance variable manipulation or thread isolation hacks
Benefits:
- Much simpler and cleaner code
- Better performance using YARD's optimized caching
- Native YARD behavior and compatibility
- Easier to maintain and debug
Registry now loads 100+ objects vs 1 previously.
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix registry methods: replace 'at' with 'get' for YARD::RegistryStore
- Update live registry to load from existing .yardoc files
- Add debugging methods to show sample objects in registry
- All MCP tools now working correctly:
- tools/list shows available tools with schemas
- health_check tool returns server status and registry info
- lookup_object tool successfully finds and returns Ruby objects
- Support multiple output formats (structured, markdown, text)
- Registry now properly loads YardMcp module and all classes/methods
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update fast-mcp gem from 0.1.0 to 1.5.0 to resolve transport errors
- Fix server hanging issue by updating to new FastMcp::Server API
- Convert tools to class-based implementation as required by new API
- Add required methods (tool_name, description, input_schema_to_json) to tools
- Server now properly responds to MCP protocol messages
- Tools/list and tools/call endpoints working correctly
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add safe_registry_lookup wrapper with timeout and error handling
- Add safe_load_yardoc wrapper for protected yardoc loading
- Catch SystemStackError from circular references in YARD registry
- Add timeout protection (5s for lookups, 10s for loading)
- Replace all YARD::Registry.at and load_yardoc calls with safe versions
- Graceful degradation with proper logging on failures
Fixes stack overflow errors seen when YARD encounters circular
references in complex gem dependency graphs.
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create yard-mcp.gemspec for proper gem packaging
- Add version.rb with initial 0.1.0 version
- Create exe/yard-mcp executable for bundle exec usage
- Update Gemfile to use gemspec for dependency management
- Update .mcp.json to use bundle exec yard-mcp
- Update README with bundler-only installation instructions
- Focus on development dependency usage in Ruby projects
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Use proper .mcp.json format created by claude mcp add
- Configure yard-mcp server with ruby bin/yard-mcp command
- Server configured for project scope with 413 libraries available
- Enables Claude Code to access Ruby documentation via MCP
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Detect when searching for core class methods (no namespace)
- Suggest common extension libraries (activesupport, rails) when methods not found
- Simple, maintainable approach without hardcoded class lists
- Helps users discover where monkey-patched methods are defined
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update plan.md to show completed phases and current architecture
- Document single registry approach instead of two-tier system
- Add current usage examples and available MCP tools
- Update implementation status with completion markers
- Document library-scoped search and gem source tracking features
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Convert all MCP tool methods from class to instance methods to match fast-mcp 1.5.0 API
- Add list_libraries tool with gem source filtering (bundler vs installed gems)
- Track gem sources in registry to distinguish bundler/installed/project libraries
- Add library parameter support to lookup_object for scoped searches
- Support #project and #stdlib special library namespaces
- Add concurrent-ruby dependency for thread-safe operations
- Update tool registration to use instance-based pattern consistently
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major improvement using YARD's native library management:
- Adopt YARD::Server::LibraryVersion architecture (like yard server)
- Build library collection with proper gem/project handling
- Load documentation using LibraryVersion.ready? checks
- Support both installed gems (-g) and bundler gems (-G)
Results:
- 2,464 objects loaded vs 101 previously (24x improvement\!)
- Can now find YARD module and other library documentation
- Follows YARD's established patterns for gem documentation
- Foundation for on-demand documentation building
This replicates the robustness of 'yard server -g -G' behavior.
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major simplification:
- Remove complex isolated registry architecture
- Use YARD's global registry directly (project-local via .yardoc)
- Leverage YARD's native cache management and incremental parsing
- Load Gemfile gems automatically (equivalent to yard server -G)
- No more instance variable manipulation or thread isolation hacks
Benefits:
- Much simpler and cleaner code
- Better performance using YARD's optimized caching
- Native YARD behavior and compatibility
- Easier to maintain and debug
Registry now loads 100+ objects vs 1 previously.
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix registry methods: replace 'at' with 'get' for YARD::RegistryStore
- Update live registry to load from existing .yardoc files
- Add debugging methods to show sample objects in registry
- All MCP tools now working correctly:
- tools/list shows available tools with schemas
- health_check tool returns server status and registry info
- lookup_object tool successfully finds and returns Ruby objects
- Support multiple output formats (structured, markdown, text)
- Registry now properly loads YardMcp module and all classes/methods
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update fast-mcp gem from 0.1.0 to 1.5.0 to resolve transport errors
- Fix server hanging issue by updating to new FastMcp::Server API
- Convert tools to class-based implementation as required by new API
- Add required methods (tool_name, description, input_schema_to_json) to tools
- Server now properly responds to MCP protocol messages
- Tools/list and tools/call endpoints working correctly
馃 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>