auto-sync: 2026-05-22 13:08:09
This commit is contained in:
@@ -98,15 +98,25 @@ status="pending",
|
|||||||
|
|
||||||
**注意**:inform 类型邮件的 Agent spawn prompt 需要引导 Agent 快速确认(不需要复杂执行),在 spawner 的 spawn message 中根据 task_type 区分。
|
**注意**:inform 类型邮件的 Agent spawn prompt 需要引导 Agent 快速确认(不需要复杂执行),在 spawner 的 spawn message 中根据 task_type 区分。
|
||||||
|
|
||||||
### P1-1:Tab badge 改用实际未处理邮件数
|
### P1-1:Tab badge + mailUnread 计算逻辑修正
|
||||||
|
|
||||||
**问题**:Tab badge 用 `sseEvents`,不是 mail API 的实际未读数。
|
**问题**:
|
||||||
|
- Tab badge 用 `sseEvents`,不是 mail API 的实际未读数
|
||||||
|
- `store.ts` 的 `mailUnread` 按 `!m.is_read` 计算,但废弃 is_read 后语义不对
|
||||||
|
- failed 的邮件 is_read 仍为 false,会被误计为 unread
|
||||||
|
|
||||||
**修复**:改用 `useStore.getState().mailUnread`(loadMails 已算出)。
|
**修复**:
|
||||||
|
|
||||||
**文件**:`src/frontend/src/App.tsx`
|
**文件 1**:`src/frontend/src/store.ts`(mailUnread 计算逻辑)
|
||||||
|
```typescript
|
||||||
|
// 之前:
|
||||||
|
mailUnread: mails.filter(m => !m.is_read).length,
|
||||||
|
|
||||||
**改动**:
|
// 之后:按 status 计算,unread = 需要处理的邮件数
|
||||||
|
mailUnread: mails.filter(m => !['done', 'failed', 'cancelled'].includes(m.status)).length,
|
||||||
|
```
|
||||||
|
|
||||||
|
**文件 2**:`src/frontend/src/App.tsx`(Tab badge 取值)
|
||||||
```typescript
|
```typescript
|
||||||
// 之前:
|
// 之前:
|
||||||
const unread = ((useStore.getState().sseEvents || []) as any[])
|
const unread = ((useStore.getState().sseEvents || []) as any[])
|
||||||
@@ -116,7 +126,7 @@ const unread = ((useStore.getState().sseEvents || []) as any[])
|
|||||||
const unread = useStore.getState().mailUnread || 0;
|
const unread = useStore.getState().mailUnread || 0;
|
||||||
```
|
```
|
||||||
|
|
||||||
**预估**:1 行
|
**预估**:2 行
|
||||||
|
|
||||||
### P1-2:废弃 is_read / mark_executed,统一用 done
|
### P1-2:废弃 is_read / mark_executed,统一用 done
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user