fix: restore API response formats + ai-ui-control ws + profile fields
- Restore {plugins: [...], total: N} for /plugins and /plugins/active-manifests
(flat array broke frontend PluginRegistry → no menu items → empty UI)
- Restore {count: N} for /notifications/unread-count
(scalar broke frontend notification badge)
- Fix ai_ui_control: on_install → on_activate for WS manager registration
(WS 403 on every reconnect after container restart)
- Fix double /api/v1 prefix in useAIContext.ts and SuggestionBadge.tsx
- Add first_name, last_name, avatar_url to User model + migration 0032
- Extend UserUpdate schema with profile + password change fields
- Extend user_service.update_user with profile fields + password change
- Extend frontend UserResponse/UserUpdate types
This commit is contained in:
@@ -44,16 +44,18 @@ class AIUIControlPlugin(BasePlugin):
|
||||
is_core=True,
|
||||
)
|
||||
|
||||
async def on_install(self, db, service_container) -> None:
|
||||
"""Register the WebSocket manager in the service container."""
|
||||
async def on_activate(self, db, service_container, event_bus) -> None:
|
||||
"""Register the WebSocket manager in the service container on every activation."""
|
||||
await super().on_activate(db, service_container, event_bus)
|
||||
from app.plugins.builtins.ai_ui_control.websocket_manager import AIUIControlWSManager
|
||||
|
||||
ws_manager = AIUIControlWSManager()
|
||||
service_container.register("ai_ui_control_ws", ws_manager)
|
||||
logger.info("AI UI Control WebSocket manager registered")
|
||||
|
||||
async def on_uninstall(self, db, service_container) -> None:
|
||||
async def on_deactivate(self, db, service_container, event_bus) -> None:
|
||||
"""Clean up the WebSocket manager."""
|
||||
await super().on_deactivate(db, service_container, event_bus)
|
||||
if service_container.has("ai_ui_control_ws"):
|
||||
service_container.remove("ai_ui_control_ws")
|
||||
logger.info("AI UI Control WebSocket manager removed")
|
||||
|
||||
Reference in New Issue
Block a user