fix(gateway): 修复 local finalize 与 usage 聚合相关测试失败

- 修正内存 usage 仓库的时间单位处理,恢复 stats/monitoring/dashboard/wallet/pool 聚合结果
- 允许 openai:compact 走 CLI 响应转换与本地 finalize cross-format 路径
- 更新 cross-format 测试夹具,显式启用 enable_format_conversion
- 调整 failover 测试优先级,消除候选平局导致的顺序不稳定
- 补齐 ai_pipeline 架构断言所需导入并清理残留 runtime 空目录
This commit is contained in:
AAEE86
2026-04-10 18:27:02 +08:00
parent 82c3c33610
commit b1f6fff0a5
9 changed files with 27 additions and 32 deletions

View File

@@ -10,16 +10,6 @@ use super::{
};
use crate::DataLayerError;
const MILLIS_PER_SECOND: u64 = 1000;
fn unix_secs_to_ms(unix_secs: u64) -> u64 {
unix_secs.saturating_mul(MILLIS_PER_SECOND)
}
fn unix_ms_to_secs(unix_ms: u64) -> u64 {
unix_ms / MILLIS_PER_SECOND
}
#[derive(Debug, Default)]
pub struct InMemoryUsageReadRepository {
by_request_id: RwLock<BTreeMap<String, StoredRequestUsageAudit>>,
@@ -90,12 +80,12 @@ impl UsageReadRepository for InMemoryUsageReadRepository {
.values()
.filter(|item| {
if let Some(created_from_unix_secs) = query.created_from_unix_secs {
if item.created_at_unix_ms < unix_secs_to_ms(created_from_unix_secs) {
if item.created_at_unix_ms < created_from_unix_secs {
return false;
}
}
if let Some(created_until_unix_secs) = query.created_until_unix_secs {
if item.created_at_unix_ms >= unix_secs_to_ms(created_until_unix_secs) {
if item.created_at_unix_ms >= created_until_unix_secs {
return false;
}
}
@@ -210,7 +200,7 @@ impl UsageReadRepository for InMemoryUsageReadRepository {
entry
.last_used_at_unix_secs
.unwrap_or(0)
.max(unix_ms_to_secs(item.created_at_unix_ms)),
.max(item.created_at_unix_ms),
);
}
Ok(summaries)