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

+12 -12
View File
@@ -17,7 +17,7 @@ import { errorMessage } from "~/lib/api.ts";
import { engineRunLabel, formatDuration, formatRelative, spanSec as runDurationSec } from "~/lib/labels.ts";
import { formatDateTime } from "~/lib/utils.ts";
export const meta = () => [{ title: "Run 详情 · 工作流引擎" }];
export const meta = () => [{ title: "运行详情 · 工作流引擎" }];
const KIND_LABEL: Record<string, string> = {
function: "函数",
@@ -102,7 +102,7 @@ export default function EngineRunPage() {
className={buttonVariants({ variant: "ghost", size: "sm", className: "-ml-2 mb-2" })}
>
<ArrowLeft />
返回 runs
返回列表
</Link>
);
@@ -118,7 +118,7 @@ export default function EngineRunPage() {
return (
<>
{back}
<ErrorState title="加载 run 失败" error={q.error} onRetry={() => q.refetch()} />
<ErrorState title="加载失败" error={q.error} onRetry={() => q.refetch()} />
</>
);
}
@@ -150,19 +150,19 @@ export default function EngineRunPage() {
trigger={
<Button variant="destructive" size="sm">
<Ban />
取消 run
取消运行
</Button>
}
title="取消这个 run?"
description="先标记业务侧取消,再通知引擎停止;正在执行的步骤会在下一个检查点退出。"
confirmLabel="取消 run"
title="取消这次运行?"
description="正在执行的步骤会在下一个检查点退出。"
confirmLabel="取消运行"
cancelLabel="不取消"
destructive
onConfirm={async () => {
try {
const res = await cancel.mutateAsync({ id: r.id, reason: "控制台手动取消" });
if (res.canceled) toast.success("已取消");
else toast.warning("run 已结束,无需取消");
else toast.warning("运行已结束");
} catch (err) {
toast.error(errorMessage(err, "取消失败"));
throw err;
@@ -177,8 +177,8 @@ export default function EngineRunPage() {
重跑
</Button>
}
title="重跑这个 run?"
description="按原任务名和原始输入新建一个 run(新的幂等键),原 run 保持不变。已完成的文件操作由任务自己的操作账本去重。"
title="重跑这次运行?"
description="用原始输入新建一次运行,原记录不变。已完成的文件操作不会重复执行。"
confirmLabel="重跑"
cancelLabel="不重跑"
onConfirm={async () => {
@@ -226,7 +226,7 @@ export default function EngineRunPage() {
<section className="pg-slab rounded-xl p-5">
<DetailSection title={`信号(${r.signals.length})`}>
{r.signals.length === 0 ? (
<p className="text-caption text-muted-foreground">没有投递到这个 run 的信号。</p>
<p className="text-caption text-muted-foreground">没有信号。</p>
) : (
<ul className="space-y-3">
{r.signals.map((sg) => (
@@ -246,7 +246,7 @@ export default function EngineRunPage() {
<section className="pg-slab min-w-0 rounded-xl p-5">
<DetailSection title={`步骤尝试(${r.stepAttempts.length})`}>
{r.stepAttempts.length === 0 ? (
<EmptyState plain title="还没有执行任何步骤" className="py-8" />
<EmptyState plain title="还没有步骤" className="py-8" />
) : (
<Timeline items={stepItems(r.stepAttempts)} />
)}