From f824a1e6fec4219d83ec15657556e29163d0d9ab Mon Sep 17 00:00:00 2001 From: Fusion Date: Wed, 20 May 2026 11:20:43 +0200 Subject: [PATCH] fix: settings save and session deletion bugs Settings save: - Remove exclude_none=True from user_config.py model_dump() call - Fixes fields not updating when cleared or set to null/undefined Session deletion: - Add project_id and repository_id to get_user_sessions response - Update frontend Session interface with new fields - Fix handleDelete to use IDs instead of names, resolving 404 errors --- apps/api/src/api/tool_instances.py | 3 ++- apps/api/src/api/user_config.py | 2 +- apps/web/src/api/sessions.ts | 2 ++ apps/web/src/pages/sessions.tsx | 4 ++-- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/api/src/api/tool_instances.py b/apps/api/src/api/tool_instances.py index 46aeafe..7540d91 100644 --- a/apps/api/src/api/tool_instances.py +++ b/apps/api/src/api/tool_instances.py @@ -762,9 +762,10 @@ async def get_user_sessions( "display_name": instance.display_name, "tool_type_name": tool_type.name if tool_type else "unknown", "tool_icon": tool_type.name if tool_type else "code", - "tool_type_interfaces": tool_type.interfaces if tool_type else [], "repository_name": repo.name if repo else "unknown", + "repository_id": str(instance.repository_id), "project_name": project.name if project else "unknown", + "project_id": str(instance.project_id), "status": instance.status, "url": instance.url, }) diff --git a/apps/api/src/api/user_config.py b/apps/api/src/api/user_config.py index 8c1c294..af2da07 100644 --- a/apps/api/src/api/user_config.py +++ b/apps/api/src/api/user_config.py @@ -110,7 +110,7 @@ async def update_user_config( config = await _get_or_create_config(session, user_id) # Merge updates - update_data = data.model_dump(exclude_unset=True, exclude_none=True) + update_data = data.model_dump(exclude_unset=True) logger.info("Updating user config for user %s: %s", user_id, update_data) config.config.update(update_data) diff --git a/apps/web/src/api/sessions.ts b/apps/web/src/api/sessions.ts index 8c7eae7..2f7071e 100644 --- a/apps/web/src/api/sessions.ts +++ b/apps/web/src/api/sessions.ts @@ -20,7 +20,9 @@ export interface Session { tool_icon: string; tool_type_interfaces: string[]; repository_name: string; + repository_id: string; project_name: string; + project_id: string; status: string; url: string | null; } diff --git a/apps/web/src/pages/sessions.tsx b/apps/web/src/pages/sessions.tsx index 620a613..2b59d7f 100644 --- a/apps/web/src/pages/sessions.tsx +++ b/apps/web/src/pages/sessions.tsx @@ -289,8 +289,8 @@ export const SessionsPage = () => { onClick={() => void handleDelete( session.id, - projects.find((p) => p.name === session.project_name)?.id ?? "", - "" + session.project_id, + session.repository_id ) } type="button"