INFO: Will watch for changes in these directories: ['/app/ai-hub'] INFO: Uvicorn running on http://0.0.0.0:8001 (Press CTRL+C to quit) INFO: Started reloader process [5892] using WatchFiles INFO:app.core.tools.registry:Registered dynamic tool plugin: 'browser_automation_agent' INFO:app.core.tools.registry:Registered dynamic tool plugin: 'mesh_file_explorer' INFO:app.core.tools.registry:Registered dynamic tool plugin: 'mesh_inspect_drift' INFO:app.core.tools.registry:Registered dynamic tool plugin: 'mesh_sync_control' INFO:app.core.tools.registry:Registered dynamic tool plugin: 'mesh_terminal_control' INFO:app.core.tools.registry:Registered dynamic tool plugin: 'mesh_wait_tasks' INFO:app.core.tools.registry:Registered dynamic tool plugin: 'read_skill_artifact' INFO: Started server process [5928] INFO: Waiting for application startup. INFO:app.db.migrate:Starting database migrations... INFO:app.db.migrate:Column 'audio_path' already exists in 'messages'. INFO:app.db.migrate:Column 'model_response_time' already exists in 'messages'. INFO:app.db.migrate:Column 'token_count' already exists in 'messages'. INFO:app.db.migrate:Column 'reasoning_content' already exists in 'messages'. INFO:app.db.migrate:Column 'stt_provider_name' already exists in 'sessions'. INFO:app.db.migrate:Column 'tts_provider_name' already exists in 'sessions'. INFO:app.db.migrate:Column 'sync_workspace_id' already exists in 'sessions'. INFO:app.db.migrate:Column 'attached_node_ids' already exists in 'sessions'. INFO:app.db.migrate:Column 'node_sync_status' already exists in 'sessions'. INFO:app.db.migrate:Column 'sync_config' already exists in 'sessions'. INFO:app.db.migrate:Column 'is_cancelled' already exists in 'sessions'. INFO:app.db.migrate:Column 'restrict_skills' already exists in 'sessions'. INFO:app.db.migrate:Column 'allowed_skill_names' already exists in 'sessions'. INFO:app.db.migrate:Column 'system_prompt_override' already exists in 'sessions'. INFO:app.db.migrate:Column 'is_locked' already exists in 'sessions'. INFO:app.db.migrate:Adding column 'co_worker_quality_gate' to 'agent_templates' table... INFO:app.db.migrate:Successfully added 'co_worker_quality_gate' to agent_templates. INFO:app.db.migrate:Adding column 'rework_threshold' to 'agent_templates' table... INFO:app.db.migrate:Successfully added 'rework_threshold' to agent_templates. INFO:app.db.migrate:Adding column 'max_rework_attempts' to 'agent_templates' table... INFO:app.db.migrate:Successfully added 'max_rework_attempts' to agent_templates. INFO:app.db.migrate:Adding column 'total_runs' to 'agent_instances' table... INFO:app.db.migrate:Successfully added 'total_runs' to agent_instances. INFO:app.db.migrate:Adding column 'successful_runs' to 'agent_instances' table... INFO:app.db.migrate:Successfully added 'successful_runs' to agent_instances. INFO:app.db.migrate:Adding column 'total_tokens_accumulated' to 'agent_instances' table... INFO:app.db.migrate:Successfully added 'total_tokens_accumulated' to agent_instances. INFO:app.db.migrate:Adding column 'total_input_tokens' to 'agent_instances' table... INFO:app.db.migrate:Successfully added 'total_input_tokens' to agent_instances. INFO:app.db.migrate:Adding column 'total_output_tokens' to 'agent_instances' table... INFO:app.db.migrate:Successfully added 'total_output_tokens' to agent_instances. INFO:app.db.migrate:Adding column 'total_running_time_seconds' to 'agent_instances' table... INFO:app.db.migrate:Successfully added 'total_running_time_seconds' to agent_instances. INFO:app.db.migrate:Adding column 'tool_call_counts' to 'agent_instances' table... INFO:app.db.migrate:Successfully added 'tool_call_counts' to agent_instances. INFO:app.db.migrate:Adding column 'last_reasoning' to 'agent_instances' table... INFO:app.db.migrate:Successfully added 'last_reasoning' to agent_instances. INFO:app.db.migrate:Adding column 'last_error' to 'agent_instances' table... INFO:app.db.migrate:Successfully added 'last_error' to agent_instances. INFO:app.db.migrate:Adding column 'evaluation_status' to 'agent_instances' table... INFO:app.db.migrate:Successfully added 'evaluation_status' to agent_instances. INFO:app.db.migrate:Adding column 'current_rework_attempt' to 'agent_instances' table... INFO:app.db.migrate:Successfully added 'current_rework_attempt' to agent_instances. INFO:app.db.migrate:Adding column 'latest_quality_score' to 'agent_instances' table... INFO:app.db.migrate:Successfully added 'latest_quality_score' to agent_instances. INFO:app.db.migrate:Database migrations complete. INFO:app.core.services.node_registry:[NodeRegistry] Reset all DB node statuses to 'offline'. INFO:app.core.grpc.services.grpc_server:๐ CORTEX gRPC Orchestrator starting on [::]:50051 INFO:app.app:[M6] Agent Orchestrator gRPC server started on port 50051. INFO:app.core.orchestration.scheduler:[Scheduler] Agent background services (Zombie Sweeper & CRON) started. INFO:app.core.skills.bootstrap:Checking for system skills bootstrapping... INFO:app.core.skills.bootstrap:System skills bootstrap completed. INFO:app.core.orchestration.scheduler:[Scheduler] CRON WAKEUP: Triggering Agent cb0fe6f9-0329-40df-a864-4bd7488f882c (Cron: 30) INFO: Application startup complete. ERROR:app.core.grpc.services.grpc_server:[๐โ ๏ธ] Mirror Cleanup Thread Error: (sqlite3.OperationalError) no such column: sessions.auto_clear_history [SQL: SELECT sessions.id AS sessions_id, sessions.user_id AS sessions_user_id, sessions.title AS sessions_title, sessions.provider_name AS sessions_provider_name, sessions.stt_provider_name AS sessions_stt_provider_name, sessions.tts_provider_name AS sessions_tts_provider_name, sessions.feature_name AS sessions_feature_name, sessions.created_at AS sessions_created_at, sessions.is_archived AS sessions_is_archived, sessions.is_cancelled AS sessions_is_cancelled, sessions.sync_workspace_id AS sessions_sync_workspace_id, sessions.attached_node_ids AS sessions_attached_node_ids, sessions.node_sync_status AS sessions_node_sync_status, sessions.sync_config AS sessions_sync_config, sessions.restrict_skills AS sessions_restrict_skills, sessions.allowed_skill_names AS sessions_allowed_skill_names, sessions.system_prompt_override AS sessions_system_prompt_override, sessions.is_locked AS sessions_is_locked, sessions.auto_clear_history AS sessions_auto_clear_history FROM sessions WHERE sessions.is_archived = 0 AND sessions.sync_workspace_id IS NOT NULL] (Background on this error at: https://sqlalche.me/e/20/e3q8) ERROR:app.app:[๐๐งน] Ghost Mirror periodic cleanup fail: (sqlite3.OperationalError) no such column: sessions.auto_clear_history [SQL: SELECT sessions.id AS sessions_id, sessions.user_id AS sessions_user_id, sessions.title AS sessions_title, sessions.provider_name AS sessions_provider_name, sessions.stt_provider_name AS sessions_stt_provider_name, sessions.tts_provider_name AS sessions_tts_provider_name, sessions.feature_name AS sessions_feature_name, sessions.created_at AS sessions_created_at, sessions.is_archived AS sessions_is_archived, sessions.is_cancelled AS sessions_is_cancelled, sessions.sync_workspace_id AS sessions_sync_workspace_id, sessions.attached_node_ids AS sessions_attached_node_ids, sessions.node_sync_status AS sessions_node_sync_status, sessions.sync_config AS sessions_sync_config, sessions.restrict_skills AS sessions_restrict_skills, sessions.allowed_skill_names AS sessions_allowed_skill_names, sessions.system_prompt_override AS sessions_system_prompt_override, sessions.is_locked AS sessions_is_locked, sessions.auto_clear_history AS sessions_auto_clear_history FROM sessions WHERE sessions.sync_workspace_id IS NOT NULL] (Background on this error at: https://sqlalche.me/e/20/e3q8)