1. 12 Jan, 2026 3 commits
    • - Safe navigation of formNode and fieldNode attributes using ?parent
      - Fallback to empty string for null field values in display/text macros
      - Use getActiveScreenDef() for screen name resolution in formListWidget
      - Prevents NullPointerException in EditPrices and other list screens.
      Ean Schuessler committed
    • - Resolve NonHashException in macros by avoiding .add() on sequences.
      - Fix 'Maps with null keys' JSON error by ensuring string keys.
      - Stabilize form macros with null-safe checks.
      - Update McpServices and CustomScreenTestImpl for better semantic data handling.
      Ean Schuessler committed
    • Extract core MCP logic into modular services (ResolveScreenPath, RenderScreenNarrative, ExecuteScreenAction) and update screen path conventions to use slash notation (e.g., /PopCommerce/Product) instead of dot notation. This aligns MCP navigation with browser URLs and improves path resolution reliability.
      
      - Split McpServices.xml into specialized services for better maintainability
      - Update DefaultScreenMacros.mcp.ftl to generate slash-based links
      - Update prompts and documentation to reflect new path convention
      - Enhance CustomScreenTestImpl to support slash path parsing
      - Add AGENTS.md documenting self-guided narrative screens architecture
      Ean Schuessler committed
  2. 09 Jan, 2026 2 commits
    • - Create UiNarrativeBuilder class for structured, story-like UI descriptions
        - screen: 50-80 words describing current state
        - actions: 80-120 words with exact tool invocation examples
        - navigation: 30-40 words for navigating to related screens
        - notes: 30-50 words for truncation, permissions, constraints
      
      - Enhance mcp.ftl macros to capture semantic metadata
        - form-single: Track field names, types, validation rules
        - form-list: Capture totalItems, displayedItems, truncated flags
        - Store metadata in mcpSemanticData for narrative generation
      
      - Deprecate DefaultScreenMacros.json.ftl
        - Update MoquiConf.xml to map both mcp and json to mcp.ftl
        - Remove redundant 218-line template with no semantic capture
      
      - Integrate uiNarrative into BrowseScreens service
        - Generate narrative using UiNarrativeBuilder
        - Include uiNarrative in result map
        - Provide screenDef for context
      
      - Remove redundant semantic state extraction
        - Delete fallback logic that extracted forms/lists from screen definition
        - Rely exclusively on mcpSemanticData captured by macros
      
      - Improve smart truncation in serializeMoquiObject
        - terse mode: 10 items, 200 char strings
        - non-terse mode: 50 items, no string truncation (fixed bug)
        - Add _hasMore flag to truncated data metadata
      
      - Fix CustomScreenTestImpl postRenderContext capture
        - Capture context before pop to preserve mcpSemanticData
      Ean Schuessler committed
  3. 05 Jan, 2026 1 commit
  4. 02 Jan, 2026 4 commits
  5. 31 Dec, 2025 2 commits
  6. 30 Dec, 2025 1 commit
  7. 29 Dec, 2025 1 commit
  8. 23 Dec, 2025 8 commits
  9. 19 Dec, 2025 3 commits
  10. 18 Dec, 2025 2 commits
  11. 12 Dec, 2025 2 commits
  12. 11 Dec, 2025 11 commits