- 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 -
Ean Schuessler committed
-
- 05 Jan, 2026 1 commit
-
-
Ean Schuessler committed
-
- 02 Jan, 2026 4 commits
-
-
Ean Schuessler committed
-
Ean Schuessler committed
-
- Remove McpScreenDoc entity and mapping layer - Use screen paths directly as WikiPage.pagePath - Fix historySeqId from string "01" to numeric "1" - Fix DbResourceFile fileData to use CDATA for complex content - Add wiki descriptions to BrowseScreens subscreens - Update BrowseScreens to query WikiPage directly by screenPath - Remove duplicate/corrupt data entries from McpScreenDocsData.xml
Ean Schuessler committed -
- Update build.gradle: jakarta.servlet-api:6.1.0 - Update EnhancedMcpServlet.groovy: Jakarta imports and servlet attributes - Update WebFacadeStub.groovy: Complete Jakarta migration - New Servlet 6.0 methods (getRequestId, getProtocolRequestId, getServletConnection) - Removed deprecated methods (getSessionContext, getRealPath, etc.) - New sendRedirect(String, int, boolean) overload - Update TestHealthServlet.java: Jakarta servlet imports Aligns with upstream framework migration to Jakarta EE.
Ean Schuessler committed
-
- 31 Dec, 2025 2 commits
-
-
- Load McpPromptsData.xml seed data for prompt templates - Add data load to component.xml
Ean Schuessler committed -
- Fix inputSchema properties to use quoted string keys for proper JSON Schema format - Remove debug logging added for Accept header troubleshooting - Remove unnecessary tools/list workaround in mcp#ToolsCall service - The properties field in inputSchema must be a record/object, not an array - All 6 tool schemas now properly defined with string keys: "path", "action", "renderMode", "parameters", "query", "name", "arguments"
Ean Schuessler committed
-
- 30 Dec, 2025 1 commit
-
-
Ean Schuessler committed
-
- 29 Dec, 2025 1 commit
-
-
- Delegate Basic Auth to MoquiAuthFilter instead of inline handling - Fix Accept header validation to use OR instead of AND condition - Enhanced JSON macros with form rendering and dot notation link paths - Add query parameter stripping for screen paths - Update MCP instructions to use dot notation for screen paths - Remove obsolete McpFilter implementation
Ean Schuessler committed
-
- 23 Dec, 2025 8 commits
-
-
The submit button rendering code I added needs sri.getFormNode() which requires a form node to be in context. When rendering form-list rows with individual submit fields, the form node is not available causing FTL template errors. This is expected behavior - actions are still extracted via screen definition (renderMode=mcp), which is the intended metadata mechanism.
Ean Schuessler committed -
Ean Schuessler committed
-
- Revert to CustomScreenTestImpl instead of broken ec.screen.render() call - Remove duplicate screenUrl variable declaration - Fix transition method calls: hasTransitions() → hasTransition(null), getAllTransitions() → getTransitionList() - Simplify rendering path to always use CustomScreenTestImpl for both action and browse modes This restores working screen rendering functionality that was broken during the action execution implementation work (commit 0fc4e236). The ec.screen.render() API doesn't exist on ScreenFacadeImpl, causing RENDER_EXCEPTION for all screens.
Ean Schuessler committed -
Remove mock/test session requirement when action != null This allows database updates to persist when action is executed through MCP.
Ean Schuessler committed -
- Parse screen definition and find transitions directly - Execute transitions (service calls) instead of queuing actions - Handle action types: null (browse), submit (form), create, update, or named transition - For 'submit' action: pass parameters to screen render for form processing - For other actions: call service directly and return result - Add actionResult to browse response with status and service details - This bypasses CSRF/session limitations by executing transitions at service layer Enables models to actually trigger state changes via MCP instead of just queuing actions.
Ean Schuessler committed -
- Add optional action parameter for processing before rendering - Action values: null (browse), submit (form), create, update, or transition name - Action processing queued and passed through to screen rendering - Add actionResult and actionError to browse response - Update tool schema to expose action parameter - Keep moqui_render_screen for direct screen access This enables models to trigger form submissions and transitions through browse_screens.
Ean Schuessler committed -
- Add renderMode parameter (default: 'mcp') to browse_screens - Add parameters parameter for screen rendering - Add screen rendering logic for non-root paths - Return rendered content along with subscreens list - Update list#Tools schema to expose new parameters Default renderMode is 'mcp' unless explicitly specified.
Ean Schuessler committed -
Ean Schuessler committed
-
- 19 Dec, 2025 3 commits
-
-
- Replace redundant screen-specific tools with moqui_render_screen - Simplify ToolsCall dispatcher and remove dead protocol mapping logic - Improve GetScreenDetails to extract parameters from XML and entities - Fix Basic auth and session handling in EnhancedMcpServlet - Remove obsolete name decoding logic from McpUtils
Ean Schuessler committed -
Ean Schuessler committed
-
Ean Schuessler committed
-
- 18 Dec, 2025 2 commits
- 12 Dec, 2025 2 commits
-
-
Ean Schuessler committed
-
Ean Schuessler committed
-
- 11 Dec, 2025 14 commits
-
-
Ean Schuessler committed
-
Ean Schuessler committed
-
Ean Schuessler committed
-
Ean Schuessler committed
-
Ean Schuessler committed
-
Ean Schuessler committed
-
Ean Schuessler committed
-
Ean Schuessler committed
-
Ean Schuessler committed
-
Ean Schuessler committed
-
Ean Schuessler committed
-
Ean Schuessler committed
-
Ean Schuessler committed
-
Ean Schuessler committed
-