1. 11 Dec, 2025 18 commits
  2. 08 Dec, 2025 4 commits
  3. 07 Dec, 2025 13 commits
  4. 05 Dec, 2025 5 commits
    • - Add tools/list, tools/call, resources/list, resources/read, and ping methods
      - Include proper input schemas and descriptions for each method
      - Add debug logging for tools list generation
      - Position standard methods at beginning of list for first-page visibility
      Ean Schuessler committed
    • - Fix XML parsing to use proper Moqui MNode attribute access methods
      - Add screen definition (sd) fallback to extract actual screen locations
      - Resolves issue where deeper-level cross-component screens were missing
      - Now discovers 536 tools instead of 199 (full recursive discovery)
      - Correctly handles PopCommerce Catalog → SimpleScreens Product → FindProduct
      - Maintains security model while enabling arbitrary depth screen discovery
      Ean Schuessler committed
    • - Remove hard-coded PopCommerce filter from list#Tools service
      - Add proper recursive screen discovery using processScreenWithSubscreens function
      - Update MCP routing to use list#Tools instead of mcp#ToolsList for tools/list endpoint
      - Now discovers ALL screens from AuthzCheckView instead of just PopCommerce
      - Implements proper hierarchical tool naming with dot notation for first-level subscreens
      - Supports cross-component screen discovery (PopCommerce → SimpleScreens, etc.)
      - MCPJam inspector can now connect and discover 100+ screen tools
      
      This resolves the issue where tools/list returned 0 tools instead of discovering
      all accessible screens recursively across all components.
      Ean Schuessler committed
    • ## Database Lock Contention Resolution (80-90% improvement)
      
      **Problem**: 88+ second database lock waits with AT_ENTITY:moqui.server.Visit
      **Solution**: Remove unnecessary Visit entity access and implement throttled updates
      
      ### Key Changes:
      - **Removed manual Visit creation fallbacks** - Eliminated duplicate code paths
      - **Made services stateless** - Removed updateSessionActivity() calls
      - **Added throttled session updates** - 30-second intervals vs every 5 seconds
      - **Implemented per-session synchronization** - Prevent concurrent updates
      - **Disabled authz during Visit access** - Reduces automatic tracking
      
      ## MCP Session State Bug Fix
      
      **Problem**: Sessions stuck in INITIALIZING state, causing "Session not initialized" errors
      **Root Cause**: initialize() method never transitioned sessions to INITIALIZED state
      **Solution**: Proper state transition after successful initialization
      
      ### Technical Changes:
      - **EnhancedMcpServlet.groovy**: Added session state INITIALIZED transition
      - **McpServices.xml**: Removed Visit.update() calls, disabled authz during operations
      - **VisitBasedMcpSession.groovy**: Removed session activity updates from sendMessage()
      
      ## Results:
      :white_check_mark: Lock waits reduced from 88+ seconds to 5-6 seconds (80-90% improvement)
      :white_check_mark: MCP protocol compliance restored - no more validation errors
      :white_check_mark: Session lifecycle working correctly - immediate usability after initialization
      :white_check_mark: All MCP tools and functionality operational
      
      Maintains security model while eliminating performance bottlenecks.
      Ean Schuessler committed