✨ Features:
- Add admin portal thread viewer with pagination
- Display thread list with project names and public status
- Add clickable links to view threads via /share/{thread_id}
- Add admin bypass for accessing all threads (public and private)
🔧 Backend Refactoring:
- Consolidate admin APIs into admin_api.py and billing_admin_api.py
- Remove unused files: users_admin.py, admin/api.py
- Remove unused endpoints: user search, grant-bulk-credits, migrate-user
- Update admin thread endpoint to use share URLs
⚡ Performance:
- Remove message_count from UserThreadSummary (optimization)
- Remove N+1 query issue in thread listing
🔒 Authorization:
- Add admin role bypass in verify_and_authorize_thread_access
- Create RLS migration (20251005160000_admin_roles_access.sql)
- Update thread_select_policy for admin access
- Update message_select_policy for admin access
- Update project_select_policy for admin access
- Update agent_runs_select_policy for admin access
💻 Frontend:
- Add Threads tab to admin user details dialog
- Add useAdminUserThreads hook with pagination
- Remove unused admin hooks (useAdminUserSearch, useAdminAdvancedSearch)
- Display thread metadata with Open button and ExternalLink icon
🗃️ Database:
- Apply RLS policies allowing admin/super_admin roles to bypass restrictions
- Admins can now view any thread, message, project, or agent_run
This enables admins to view and debug any user's threads through the
share page interface, regardless of public/private status.
- Remove 'playbooks' from agentConfigDialog tab union type
- Fixes TypeScript build error after workflow system removal
- Build now passes successfully
- Remove execution_type from ScheduleTriggerConfig defaults
- Remove execution_type from trigger creation dialogs
- Remove execution_type display from upcoming runs dropdown
- Remove execution_type field from UpcomingRun interface
- Hardcode 'Agent' as the only execution mode everywhere
Completes workflow system removal by eliminating the last
execution_type remnants that caused TypeScript build errors.
- Remove workflow_tool.py and all workflow-related backend code
- Delete all workflow database tables and create migration
- Remove workflow API endpoints and execution logic
- Clean workflow references from agent tools and triggers
- Remove playbooks tab and UI from agent configuration
- Eliminate workflow_id, workflow_input, and execution_type fields
- Simplify trigger system to agent-only execution
- Remove workflow tool definitions from tool registry
- Clean up TypeScript interfaces and remove workflow types
- Remove playbooks button from chat input
- Update all trigger components to remove workflow selection
- Clean workflow metadata from threads and sidebar
- Remove 80+ critical workflow code references
Simplifies codebase by eliminating complex dual-mode (agent/workflow)
execution system in favor of pure agent-based automation.
- Removed deprecated GET /agent-runs/{agent_run_id} endpoint from threads.py (20 lines)
- Removed unimplemented delete_mcp_server() method from mcp_server_service.py (12 lines)
- Removed deprecated 'sync' and 'update-all' commands from manage_suna_agents.py script (9 lines)
- Cleaned up 41 lines of dead/deprecated code
- No functional impact as these were already marked deprecated or non-functional
- Removed redundant workspace_path='/workspace' from 7 sandbox tool files
* sb_files_tool.py
* sb_shell_tool.py
* sb_deploy_tool.py
* sb_templates_tool.py
* sb_upload_file_tool.py
* sb_presentation_tool.py
* sb_web_dev_tool.py
- Base class SandboxToolsBase already sets this on line 23
- Eliminates 7 lines of duplicate code
- All tools now inherit workspace_path from base
- Converted sb_upload_file_tool.py to use centralized db_helpers
* Removed DBConnection import
* Uses get_initialized_db() instead