C1: 新增轻量任务看板/board(按状态分列只读视图)

- board/components.tsx: BOARD_COLUMNS(4列:生成中/待审核/已通过/已打回)+TaskCard(只读点击进详情)+BoardColumn+BoardSkeleton
- board/page.tsx: 复用 GET /api/v1/tasks?status=...(跟随角色不写前端权限),failed/archived不进看板
- Sidebar: 加「任务看板」📋入口;顺修两项同href的重复key warning(改key=label)
- 卡片跳转:进行中/待审核→confirm,已通过/打回→images(路由均已存在)

独立agent交叉复核6项全过(状态全覆盖/多status参数与history一致/无前端权限/无死链/字段判空/边界安全),无must-fix

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
yangqianqian
2026-06-22 10:10:33 +08:00
parent ff21116ff8
commit 2ca6ac2e48
3 changed files with 181 additions and 1 deletions

View File

@@ -21,6 +21,7 @@ interface NavItem {
// 故落到 /history,每行提供"去排图"入口,不造无 task-id 的死链);裂变扩散=独立裂变页。
const NAV_ITEMS: NavItem[] = [
{ label: '工作台', href: '/dashboard', icon: '🏠' },
{ label: '任务看板', href: '/board', icon: '📋' },
{ label: '文案创作', href: '/tasks/new', icon: '✏️' },
{ label: '图片排版', href: '/history', icon: '🖼️' },
{ label: '裂变扩散', href: '/fission', icon: '🌱' },
@@ -47,7 +48,7 @@ export function Sidebar() {
const active = pathname === item.href || pathname.startsWith(item.href + '/');
return (
<Link
key={item.href}
key={item.label}
href={item.href}
aria-label={item.label}
aria-current={active ? 'page' : undefined}