fix: honest costs in streams, oracle-sized timeouts, history & log cleanup
Cost showed $0 for every streamed request: the X-Cortiq-Cost-USD header is written before generation, when the cost cannot be known. The gateway now ships the final number in a closing SSE event (`cortiq_cost_usd`, alongside the token estimate when the provider sent no usage), and the console prefers it over the header. Money renders with 4 decimals, the last two in a smaller font — $0.0006 stays readable instead of collapsing to $0. Timeouts, both ends: the router default was 800 ms, silently degrading every prompt the hosted router escalates to its oracle (~10 s) — now 15 s. Provider clients had NO timeout at all (a dead OpenRouter host hung requests forever) — now a 10 s connect timeout, with no overall cap so long generations and streams are never cut. Benchmark history: per-run × and a Clear-all button. Logs view: a clear button backed by DELETE /admin/api/logs.
This commit is contained in:
+6
-1
@@ -185,7 +185,7 @@ pub fn api_routes(admin_token: String) -> Router<SharedState> {
|
||||
.route("/admin/api/requests", get(get_requests))
|
||||
.route("/admin/api/test", post(run_test))
|
||||
.route("/admin/api/test/stream", post(run_test_stream))
|
||||
.route("/admin/api/logs", get(get_logs))
|
||||
.route("/admin/api/logs", get(get_logs).delete(clear_logs))
|
||||
.route("/admin/api/system", get(get_system))
|
||||
.route("/admin/api/restart", post(restart_gateway))
|
||||
.route("/admin/api/bench", get(bench_list).post(bench_start))
|
||||
@@ -2113,6 +2113,11 @@ async fn get_logs(Query(q): Query<RecentQuery>) -> ApiResult {
|
||||
ok(json!({ "lines": crate::logbuf::snapshot(limit) }))
|
||||
}
|
||||
|
||||
async fn clear_logs() -> ApiResult {
|
||||
crate::logbuf::clear();
|
||||
ok(json!({ "ok": true }))
|
||||
}
|
||||
|
||||
/// Host metrics snapshot: CPU, RAM, free disk at the models dir, gateway RSS.
|
||||
async fn get_system(State(state): State<SharedState>) -> ApiResult {
|
||||
let snap = state.sysmon.snapshot();
|
||||
|
||||
Reference in New Issue
Block a user