style(copy): punctuation rules and site-wide fix with a CI check (QA U11)
- glossary: 10 punctuation rules (full-width in Chinese, CJK/Latin spacing, full-width parens around Chinese, single ellipsis, 「」 quotes, period rules) - scripts/check-copy-punctuation.mjs: checks string literals, templates and JSX text (not comments, types, keys, match/compare strings); --fix, --strict, --by-file; wired into deno task ci as check:copy in warn mode - --fix applied to web, server and contracts; files other lanes were editing (subscriptions, sites, browser, agent, auth/account, inventory) left for them - tests updated for the changed messages Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
9b017906cf
commit
52402864d6
143 files changed
+985
-606
No files matched your search
@@ -98,7 +98,7 @@ function stepItems(steps: EngineStepAttempt[], onOpenRun?: (id: string) => void)
|
||||
function businessTimeline(r: EngineRunDetail): TimelineItem[] {
|
||||
const src = sourceOf(r.business?.triggeredBy);
|
||||
const items: TimelineItem[] = [
|
||||
{ id: "created", at: r.createdAt, title: `创建${src ? `(${SOURCE_LABEL[src]}触发)` : ""}`, tone: "neutral" },
|
||||
{ id: "created", at: r.createdAt, title: `创建${src ? `(${SOURCE_LABEL[src]}触发)` : ""}`, tone: "neutral" },
|
||||
];
|
||||
if (r.startedAt)
|
||||
items.push({
|
||||
@@ -109,12 +109,17 @@ function businessTimeline(r: EngineRunDetail): TimelineItem[] {
|
||||
});
|
||||
for (const st of r.stepAttempts) {
|
||||
if (st.waitSignal && !st.finishedAt)
|
||||
items.push({ id: `w-${st.id}`, at: st.startedAt ?? st.createdAt, title: `等待:${st.stepName}`, tone: "warning" });
|
||||
items.push({
|
||||
id: `w-${st.id}`,
|
||||
at: st.startedAt ?? st.createdAt,
|
||||
title: `等待:${st.stepName}`,
|
||||
tone: "warning",
|
||||
});
|
||||
else if (st.status === "failed")
|
||||
items.push({
|
||||
id: `f-${st.id}`,
|
||||
at: st.finishedAt ?? st.startedAt ?? st.createdAt,
|
||||
title: `步骤失败:${st.stepName}`,
|
||||
title: `步骤失败:${st.stepName}`,
|
||||
description: errorText(st.error),
|
||||
tone: "destructive",
|
||||
});
|
||||
@@ -161,7 +166,7 @@ export function RunActions({
|
||||
</Button>
|
||||
}
|
||||
title="取消这个任务?"
|
||||
description="正在执行的步骤会在下一个检查点退出,已完成的步骤不回滚。"
|
||||
description="正在执行的步骤会在下一个检查点退出,已完成的步骤不回滚。"
|
||||
confirmLabel="取消任务"
|
||||
cancelLabel="不取消"
|
||||
destructive
|
||||
@@ -186,13 +191,13 @@ export function RunActions({
|
||||
</Button>
|
||||
}
|
||||
title="重跑这个任务?"
|
||||
description="用原始输入新建一条任务,原记录不变。已完成的文件操作不会重复执行。"
|
||||
description="用原始输入新建一条任务,原记录不变。已完成的文件操作不会重复执行。"
|
||||
confirmLabel="重跑"
|
||||
cancelLabel="不重跑"
|
||||
onConfirm={async () => {
|
||||
try {
|
||||
const res = await retry.mutateAsync({ id: r.id });
|
||||
toast.success(`已重新排队(第 ${res.attempt} 次重跑)`);
|
||||
toast.success(`已重新排队(第 ${res.attempt} 次重跑)`);
|
||||
onOpenRun?.(res.runId);
|
||||
} catch (err) {
|
||||
toast.error(errorMessage(err, "重跑失败"));
|
||||
|
||||
@@ -224,7 +224,8 @@ export function TaskStream({
|
||||
: tab === "failed"
|
||||
? "没有失败的任务"
|
||||
: "还没有任务",
|
||||
description: filters.source && list.hasNextPage ? "按来源筛选时一页可能较少,可加载更多继续查找。" : undefined,
|
||||
description:
|
||||
filters.source && list.hasNextPage ? "按来源筛选时一页可能较少,可加载更多继续查找。" : undefined,
|
||||
}}
|
||||
columns={[
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user