feat: add missing features from main merge
1. Built-in tool type seeding (apps/api/src/seeds/builtin_tool_types.py):
- Seeds code-server, jupyter-notebook, and opencode on startup.
- Adapts to current dev model: uses interface_type (single string)
instead of interfaces array, and created_by_id=None instead of
is_builtin flag.
- Called from main.py startup event.
2. Config profile default management:
- Adds default_profile_id and default_profiles properties to
UserConfig model for JSON-backed per-tool-type defaults.
- Adds GET /config-profiles/defaults, PUT /config-profiles/defaults,
and GET /config-profiles/defaults/{tool_type_id} endpoints.
- Validates that all profile IDs in default mappings belong to the
authenticated user before persisting.
3. Config profile unique constraint:
- Adds __table_args__ with UniqueConstraint(user_id, name) to
ConfigProfile model. The constraint already exists in the DB
from migration 2026_05_24_add_config_profiles.py; this just
aligns the SQLAlchemy model with the schema.
Quality gates: py_compile passed, ruff passed on all modified files.
This commit is contained in:
@@ -37,6 +37,7 @@ from src.logging_config import (
|
||||
RequestLoggingMiddleware,
|
||||
configure_logging,
|
||||
)
|
||||
from src.seeds.builtin_tool_types import seed_builtin_tool_types
|
||||
from src.services.correlation import CorrelationIdMiddleware
|
||||
from src.services.event_bus import InstanceEventBus
|
||||
from src.services.health_monitor import HealthMonitor
|
||||
@@ -135,6 +136,10 @@ async def on_startup():
|
||||
_health_monitor.start()
|
||||
logger.info("Health monitor started")
|
||||
|
||||
# Seed built-in tool types
|
||||
await seed_builtin_tool_types()
|
||||
logger.info("Built-in tool types seeded")
|
||||
|
||||
logger.info("Startup complete.")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user