chore(usage): drop Hermes Agent tracking integration

Hermes aggregates all in-process API calls into a single sessions row
with the `model` field locked to the initial model, so the usage
dashboard cannot cleanly surface per-call billing context. Two rounds
of UI workarounds (raw mapping, then `<model> @ <host>` display) did
not resolve the user-facing confusion, so the whole tracking
integration is dropped for now.

Removes session_usage_hermes service (and its 17 tests), sync wiring
in commands/usage.rs and lib.rs, _hermes_session/hermes_session
entries in usage_stats SQL (provider_name_coalesce CASE and
effective_usage_log_filter IN clause), frontend Tab/banner/dropdown/
icon entries, and four i18n keys per locale.

Hermes app integration outside usage tracking (proxy routing,
session manager, config) is preserved. Pre-existing hermes rows in
proxy_request_logs are left as orphans — filtered out by the
updated SQL and never surfaced in the UI.
This commit is contained in:
Jason
2026-04-30 09:16:18 +08:00
parent 7b667f7a44
commit 518d945eb8
12 changed files with 8 additions and 932 deletions
-13
View File
@@ -220,19 +220,6 @@ pub fn sync_session_usage(
}
}
// 同步 Hermes 使用数据
match crate::services::session_usage_hermes::sync_hermes_usage(&state.db) {
Ok(hermes_result) => {
result.imported += hermes_result.imported;
result.skipped += hermes_result.skipped;
result.files_scanned += hermes_result.files_scanned;
result.errors.extend(hermes_result.errors);
}
Err(e) => {
result.errors.push(format!("Hermes 同步失败: {e}"));
}
}
Ok(result)
}