docs(plan): v0.2 adds Pi subagents and scheduled-jobs board

Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
rootandClaude Fable 5.1 committed 2026-09-28 02:09:39 +08:00
1 parent b839ed4056
commit 16ab2a6c84
97 files changed
+592 -648

No files matched your search

@@ -31,7 +31,7 @@ const ALIAS_KIND: Record<z.infer<typeof AliasKind>, string> = {
};
const AliasForm = z.object({
alias: z.string().trim().min(1, "请填写别名").max(200, "最多 200 字"),
alias: z.string().trim().min(1, "填写别名").max(200, "最多 200 字"),
kind: AliasKind,
language: z
.string()
@@ -171,7 +171,7 @@ export function AliasesPanel() {
</Button>
}
title={`删除别名「${a.alias}」?`}
description="删除后该别名不再参与模糊召回;已确认的身份映射不受影响。"
description="删除后不再用这个别名匹配作品,已确认的外部身份不受影响。"
confirmLabel="删除"
destructive
onConfirm={async () => {
@@ -190,7 +190,7 @@ export function AliasesPanel() {
return (
<div className="space-y-4">
<Panel title="按作品管理" description="选中作品后可新增别名;不选则按关键字检索全部别名" bodyClassName="space-y-3">
<Panel title="按作品管理" description="选中作品后可添加别名" bodyClassName="space-y-3">
<div className="grid gap-3 sm:grid-cols-2">
<EntityPicker value={entity} onChange={setEntity} />
<FilterBar search={{ value: q, onChange: setQ, placeholder: "按别名关键字过滤" }} className="mb-0" />
@@ -206,7 +206,7 @@ export function AliasesPanel() {
onRetry={() => list.refetch()}
empty={{
title: entity ? `「${entity.title}」还没有别名` : "没有匹配的别名",
description: "别名用于从原始标题、译名、简称找回作品。",
description: "别名用于按原始标题、译名、简称匹配作品。",
}}
hasMore={list.hasNextPage}
onLoadMore={() => list.fetchNextPage()}