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
33 lines
1.6 KiB
Markdown
33 lines
1.6 KiB
Markdown
## 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_builtin` field** from `ToolType` model and database schema
|
|
- **Remove automatic seeding** of built-in tool types from `main.py` startup 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_builtin` column and convert existing records
|
|
- **Backend API**: `tool_types.py` — remove built-in checks, simplify permissions
|
|
- **Models**: `tool_type.py` — remove `is_builtin` field
|
|
- **Startup**: `main.py` — remove `seed_builtin_tool_types()` function
|
|
- **Frontend**: Remove any built-in-specific UI (badges, restrictions, etc.)
|
|
- **Data**: Existing built-in types become regular editable tool types
|