feat(console): CHV production-grade frontend — worker availability, attachment guard, queue hint, build:console fix, vitest
This commit is contained in:
1 parent
036323e620
commit
003ea357f9
13 files changed
+474
-55
No files matched your search
@@ -1,6 +1,7 @@
|
||||
import { useConsole } from "../context";
|
||||
import { shortId } from "../api/client";
|
||||
import { firstChar, durationOf, tokenOf } from "../api/taskMeta";
|
||||
import { chvAvailability, chvQueueHint } from "../api/chv";
|
||||
|
||||
// 任务列表行 meta:首字 / 总耗时 / token,计算见 api/taskMeta.ts,
|
||||
// 与任务详情共用同一口径。
|
||||
@@ -14,6 +15,7 @@ import { firstChar, durationOf, tokenOf } from "../api/taskMeta";
|
||||
// blue-grey background (#ddf4ff), not a bubble.
|
||||
export default function TaskListSection({ onNew }: { onNew: () => void }) {
|
||||
const ctx = useConsole();
|
||||
const chvAvail = chvAvailability(ctx.workers, ctx.workersSummary, ctx.workersError);
|
||||
return (
|
||||
<div>
|
||||
<div className="search-box">
|
||||
@@ -75,6 +77,9 @@ export default function TaskListSection({ onNew }: { onNew: () => void }) {
|
||||
{(t.status === "failed" || t.status === "interrupted" || t.status === "merge-failed") && t.error_text ? (
|
||||
<div className="issue-meta" title={t.error_text}>{/503|Service Unavailable/.test(t.error_text) ? "上游 503:模型服务暂时不可用" : t.error_text.replace(/\s+/g, " ").slice(0, 60)}</div>
|
||||
) : null}
|
||||
{chvQueueHint(t.executor, t.status, chvAvail) ? (
|
||||
<div className="issue-meta" title={chvQueueHint(t.executor, t.status, chvAvail)}>{chvQueueHint(t.executor, t.status, chvAvail)}</div>
|
||||
) : null}
|
||||
</span>
|
||||
</li>
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user