refactor: 拆分 gateway 单体为独立 crate,新增 systemd 部署方案

将 gateway 内部的 model-fetch、provider-transport、scheduler-core、
usage-runtime、video-tasks-core 模块提取为独立 crate;重构 gateway
内部模块结构(state/router/cache/data/query 等);移除大量遗留模块
文件;新增 systemd 二进制部署骨架及相关文档;更新前端 usage 相关
API 和组件。
This commit is contained in:
fawney19
2026-04-05 20:23:16 +08:00
parent cbc811f6ce
commit 763ff03a7b
777 changed files with 42659 additions and 21469 deletions

View File

@@ -1,4 +1,5 @@
use aether_http::{build_http_client, jittered_delay_for_retry, HttpClientConfig, HttpRetryConfig};
use aether_runtime::summarize_text_payload;
use reqwest::{Client, StatusCode};
use serde::{Deserialize, Serialize};
use tokio::time::sleep;
@@ -132,7 +133,13 @@ impl AetherClient {
let status = resp.status();
if !status.is_success() {
let text = resp.text().await.unwrap_or_default();
anyhow::bail!("register failed (HTTP {}): {}", status, text);
let summary = summarize_text_payload(&text);
anyhow::bail!(
"register failed (HTTP {}): response body redacted (bytes={}, sha256={})",
status,
summary.bytes,
summary.sha256
);
}
let data: RegisterResponse = resp.json().await?;
@@ -167,9 +174,21 @@ impl AetherClient {
Ok(())
}
Ok(r) => {
let status = r.status();
let text = r.text().await.unwrap_or_default();
error!(body = %text, "unregister failed");
anyhow::bail!("unregister failed: {}", text);
let summary = summarize_text_payload(&text);
error!(
status = %status,
body_bytes = summary.bytes,
body_sha256 = %summary.sha256,
"unregister failed"
);
anyhow::bail!(
"unregister failed (HTTP {}): response body redacted (bytes={}, sha256={})",
status,
summary.bytes,
summary.sha256
);
}
Err(e) => {
// Best-effort during shutdown