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:
rootandClaude Opus 5.5 committed 2026-09-28 20:09:29 +08:00
1 parent 9b017906cf
commit 52402864d6
143 files changed
+985 -606

No files matched your search

+1 -1
View File
@@ -19,5 +19,5 @@ export function revealFirstError(root?: HTMLElement | null) {
export function formErrorSummary(errors: Record<string, string>): string {
const msgs = Object.values(errors).filter(Boolean);
if (msgs.length === 0) return "表单有错误";
return msgs.length === 1 ? `需要修改:${msgs[0]}` : `有 ${msgs.length} 处需要修改:${msgs[0]}`;
return msgs.length === 1 ? `需要修改:${msgs[0]}` : `有 ${msgs.length} 处需要修改:${msgs[0]}`;
}
+2 -2
View File
@@ -86,8 +86,8 @@ export const agentRunLabel = (v: string | null | undefined) => pick(AGENT_RUN, v
const ENGINE_RUN: Record<string, Labeled> = {
pending: { label: "待执行", tone: "neutral" },
running: { label: "运行中", tone: "neutral" },
sleeping: { label: "休眠(旧)", tone: "neutral" },
succeeded: { label: "完成(旧)", tone: "success" },
sleeping: { label: "休眠(旧)", tone: "neutral" },
succeeded: { label: "完成(旧)", tone: "success" },
completed: { label: "完成", tone: "success" },
failed: { label: "失败", tone: "destructive" },
canceled: { label: "已取消", tone: "warning" },