312a646b89
- Drop is_builtin column from tool_types table - Remove built-in tool seeding from startup - Remove is_builtin from API schemas and frontend types - Update tool-types spec to reflect removal of built-in concept - Add Alembic migration for column removal - Update tests to work without built-in distinction
1.6 KiB
1.6 KiB
Why
Currently, the system maintains a hardcoded distinction between "built-in" and "custom" tool types via the is_builtin flag and automatic seeding logic in main.py. This creates a two-tier system where built-in tools are privileged, cannot be fully managed by users, and require code changes to modify. All tool types should be first-class citizens — the former "built-in" tools are simply preconfigured tool types that ship with the system.
What Changes
- Remove
is_builtinfield fromToolTypemodel and database schema - Remove automatic seeding of built-in tool types from
main.pystartup logic - Create migration script to convert existing built-in types to regular types
- Update tool type API to remove built-in vs custom distinction in responses and permissions
- Remove built-in protections that prevent deletion/modification of built-in types
- Seed initial data via migration instead of runtime code, making them regular database records
- Update frontend to remove any built-in-specific UI treatment
Capabilities
New Capabilities
None.
Modified Capabilities
tool-types: Remove built-in vs custom distinction. All tool types are equal.
Impact
- Database: Migration to drop
is_builtincolumn and convert existing records - Backend API:
tool_types.py— remove built-in checks, simplify permissions - Models:
tool_type.py— removeis_builtinfield - Startup:
main.py— removeseed_builtin_tool_types()function - Frontend: Remove any built-in-specific UI (badges, restrictions, etc.)
- Data: Existing built-in types become regular editable tool types