- Set tool page max-width to 1400px to match remove_background page
- Fix single image view to use same sizing logic as comparison view
- Add dynamic size calculation for processing images to match result view
- Ensure images maintain aspect ratio instead of filling container width
- Relocate Menu Management and Settings from sidebar to user dropdown menu in header
- Remove Profile menu item from user dropdown (not currently used)
- Remove Menu Management and Settings from default sidebar menu items
- Update menu filtering logic to reflect new menu structure
- Improve UX by following common SaaS design patterns
- Free up sidebar space for core business functionality
- Update MenuManager.vue to match menu.ts filtering logic
- Non-system users should only see Tool Marketplace in Development group
- Hide App Marketplace, Node Marketplace, and Agent Marketplace for non-system users
- Restore documentation comments in menu.ts
- Add comment to getDefaultMenus() explaining menu visibility filtering
- Document that pagetype/workspace menus are System User only
- Document that App/Node/Agent marketplaces are System User only
- Ensure default menu documentation matches filtering logic
- Restrict App Marketplace, Node Marketplace, and Agent Marketplace visibility to System Users only
- Non-system users can only see Tool Marketplace in the Development group
- Update comment to reflect the actual filtering logic
- Change 'Click or drag to upload' to 'Click or drag to upload image'
- Update translation key in PublishTool.vue and PublishApp.vue
- Add new translation entry in zh-CN.json
- Improve user clarity by explicitly stating image upload requirement
- Add SEO meta tags (title, description, keywords, robots)
- Add Open Graph and Twitter Card meta tags
- Add JSON-LD structured data (WebPage schema)
- Use relative URLs for og:url, og:image, and canonical links to avoid hardcoded localhost addresses in prerendered HTML
- Support internationalized keywords with English defaults and Chinese translations
- Optimize for Chinese search engines (Baidu, 360, Sogou)
This ensures SEO metadata is properly captured in prerendered static HTML files without hardcoding development server URLs.
Set chunkSizeWarningLimit to 2000KB to suppress build warnings for
large chunks. This is acceptable as some third-party libraries (e.g.,
naive-ui) inherently require larger bundle sizes.
Add @vite-ignore comment to dynamic import statement to suppress
Vite's warning about unanalyzable dynamic imports. This is intentional
as the component path is determined at runtime for tool routes.
- Improve route existence check using router.resolve() for accurate nested route detection
- Register tool routes before router is used to prevent 'No match found' warnings
- Update beforeEach guard to handle dynamic route registration more reliably
- Add MyPublishedTools component aligned with MyPublishedApps functionality
- Add backend API endpoints:
- GET /jingrow/my-published-tools (list published tools with search, pagination, sorting)
- POST /jingrow/delete-published-tool (delete published tool)
- Add route configuration for my-published-tools page
- Add menu item "My Published Tools" under Development group
- Add Chinese translations for all tool-related text
- Remove uppercase transformation for tool_name display in list
The new page provides the same functionality as "My Published Apps":
- Search and filter tools
- Sort by various criteria
- Pagination support
- View tool details
- Delete published tools
- Publish new tool button
- Override delete method in LocalAiNode to delete corresponding node folder
- Add _delete_node_folder helper function to remove node directory
- Import shutil module for directory removal
- Node folder at ai/nodes/{node_type}/ will be automatically deleted when node record is deleted