feat: ASRX hybrid pipeline, identity history, worker fixes, checkpoint system
This commit is contained in:
@@ -5,7 +5,7 @@ use tokio::time::timeout;
|
||||
use tower_http::cors::{Any, CorsLayer};
|
||||
|
||||
use crate::core::cache::{MongoCache, RedisCache};
|
||||
use crate::core::db::{Database, PostgresDb};
|
||||
use crate::core::db::{Database, PostgresDb, QdrantDb};
|
||||
use crate::Embedder;
|
||||
|
||||
use super::agent_api;
|
||||
@@ -14,7 +14,6 @@ use super::auth;
|
||||
use super::docs;
|
||||
use super::files;
|
||||
use super::five_w1h_agent_api;
|
||||
use super::processing;
|
||||
use super::health;
|
||||
use super::identities;
|
||||
use super::identity_agent_api;
|
||||
@@ -22,18 +21,18 @@ use super::identity_api;
|
||||
use super::identity_binding;
|
||||
use super::media_api;
|
||||
use super::middleware::unified_auth;
|
||||
use super::processing;
|
||||
use super::scan;
|
||||
use super::search::search_routes;
|
||||
use super::tmdb_api;
|
||||
use super::trace_agent_api;
|
||||
use super::types::AppState;
|
||||
use super::universal_search::universal_search_routes;
|
||||
use super::visual_search;
|
||||
|
||||
pub async fn start_server(host: &str, port: u16) -> anyhow::Result<()> {
|
||||
health::init_server_state(host, port);
|
||||
|
||||
let embedder = std::sync::Arc::new(Embedder::new("nomic-embed-text-v2-moe:latest".to_string()));
|
||||
let embedder = std::sync::Arc::new(Embedder::new("embeddinggemma-300m".to_string()));
|
||||
|
||||
// ── ⚠️ WARNING: DO NOT move MongoCache::init() back to critical path ──
|
||||
//
|
||||
@@ -57,6 +56,9 @@ pub async fn start_server(host: &str, port: u16) -> anyhow::Result<()> {
|
||||
let redis_cache = RedisCache::new()?;
|
||||
let db = PostgresDb::init().await?;
|
||||
|
||||
// Run migrations (create identity_history table if not exists)
|
||||
PostgresDb::run_migrations(db.pool()).await?;
|
||||
|
||||
let schema_health = health::check_schema_migrations(db.pool()).await;
|
||||
if schema_health.ok {
|
||||
tracing::info!(
|
||||
@@ -89,8 +91,10 @@ pub async fn start_server(host: &str, port: u16) -> anyhow::Result<()> {
|
||||
let db = std::sync::Arc::new(db);
|
||||
let api_state = super::middleware::ApiState { db: db.clone() };
|
||||
|
||||
let qdrant = std::sync::Arc::new(QdrantDb::new());
|
||||
let state = AppState {
|
||||
db,
|
||||
qdrant,
|
||||
embedder,
|
||||
embedder_model: "nomic-embed-text-v2-moe:latest".to_string(),
|
||||
mongo_cache,
|
||||
@@ -129,7 +133,6 @@ pub async fn start_server(host: &str, port: u16) -> anyhow::Result<()> {
|
||||
.merge(auth::auth_routes())
|
||||
.merge(health::health_routes())
|
||||
.merge(docs::doc_routes())
|
||||
.merge(visual_search::visual_search_routes())
|
||||
.merge(protected_routes)
|
||||
.layer(cors)
|
||||
.with_state(state);
|
||||
|
||||
Reference in New Issue
Block a user