P5 前端:权限档位选择器 + 卡片徽标 + 对话页改档

前端完整实现:
- types: Session/HumanSession/Mail/Contact 加 permission_mode + permission_enforcement 字段
- api/client: sendMail 支持 permission_mode 参数;新增 updateSessionPermission API
- PermissionChip 组件:plan=蓝/只读, workspace=绿/目录内, full=橙/全权
  native 实心点=平台强制, advisory 空心点=仅提示;hover 显示 tooltip
- ComposePage: 新建会话时显示三档按钮(plan/workspace/full),传入 sendMail
- MailView: 会话头部加 PermissionEditor(点击徽标展开三档选择,点保存调 API 改档)
- WorkCard: 卡片底部与 BudgetChip 并排显示 PermissionChip(compact 模式)
- sessionStore: 新增 setPermissionMode action
- 177 前端测试全过,gateway 8 包全绿,已部署
This commit is contained in:
2026-09-06 21:24:41 +08:00
parent 36f1099c02
commit be61724314
7 changed files with 222 additions and 10 deletions

View File

@ -57,6 +57,10 @@ export interface Session {
*/
max_rounds?: number;
used_rounds?: number;
/** 权限档位:plan / workspace / full */
permission_mode?: string;
/** 档位实际强制力:native / advisory */
permission_enforcement?: string;
}
/** 会话往返预算快照 */
@ -118,6 +122,8 @@ export interface Mail {
from_human: boolean;
/** 收件方是人类用户而不是 Agent */
to_human: boolean;
permission_mode?: string;
permission_enforcement?: string;
}
/**
@ -183,6 +189,8 @@ export interface Contact {
/** 本任务的往返预算(0 = 不限) */
max_rounds: number;
used_rounds: number;
permission_mode?: string;
permission_enforcement?: string;
/** 最后一封邮件的发件人与正文摘要(服务端已按字符截断) */
last_from: string;
last_preview: string;
@ -219,6 +227,8 @@ export interface HumanSession {
/** 本任务的往返预算(0 = 不限) */
max_rounds?: number;
used_rounds?: number;
permission_mode?: string;
permission_enforcement?: string;
}
export type SuggestKind = 'name' | 'path' | 'session';