| 1 | # 整页管理中心 |
| 2 | |
| 3 | 回收站、自动化、设置保留独立入口,共用 `ManagementPageShell`。管理页占满当前应用窗口,不改变系统全屏、最大化或关闭窗口策略。页面代码首次访问时懒加载;加载失败可返回工作区或重试。 |
| 4 | |
| 5 | ## 导航与工作区 |
| 6 | |
| 7 | `useAppNavigationStore` 是主页面的唯一状态来源:工作区、设置(分类与目标定位)、回收站、自动化。设置保留上次分类,旧 `providers` 分类映射到 `models`。临时菜单、命令面板与确认框仍由浮层状态管理。 |
| 8 | |
| 9 | 工作区始终保持挂载和布局尺寸;管理页打开时设置 `inert`,聊天、项目树、文件面板、状态栏不可交互。返回不会重新激活当前会话或重新加载聊天,也不会增加聊天滚动位置写入者。进入页聚焦“返回工作区”,返回恢复入口焦点。后台任务继续运行。 |
| 10 | |
| 11 | Escape 只关闭子菜单、子弹窗。管理页中“关闭标签页”快捷键返回工作区;工作区侧栏、终端、数字会话切换等快捷键暂停。命令面板、设置和明确的新会话导航仍可用。自动化关联会话打开成功后显示“返回自动化”;打开失败保持原页;较早请求不得覆盖后来的导航。主动切换项目或会话会清除临时返回入口。 |
| 12 | |
| 13 | ## 回收站 |
| 14 | |
| 15 | 宽窗口采用左侧搜索、范围与时间筛选、分组列表,右侧只读预览。系统恢复数据独立折叠。普通历史记录继续使用原弹窗,复用同一列表与预览内容。 |
| 16 | |
| 17 | 选择使用稳定路径身份;筛选后尽量保持选择,删除后选择相邻条目。预览以请求序号隔离,迟到结果不能替换当前预览。列表读取、预览读取、恢复、永久删除均显示明确错误。 |
| 18 | |
| 19 | 永久删除有单独确认,默认焦点在取消。清空始终针对全部普通会话,包含筛选隐藏项,排除系统恢复数据;确认时固定目标集合,逐条执行并继续处理失败后的其他项。完成后汇总数量,重试只处理失败项。成功操作后的列表刷新失败单独提示,不能诱导重复提交成功操作。 |
| 20 | |
| 21 | 注册表墓碑是永久删除的提交点。提交前恢复可以先胜出并使旧删除请求失效;提交后 |
| 22 | 恢复和预览保持禁用,只允许同一请求继续完成文件清理。旧版 `prepared` 删除记录在 |
| 23 | 注册表写锁内分类:会话仍归档且代际未变化时可以推进到墓碑;已被恢复或被更新 |
| 24 | 生命周期淘汰时,只清理旧记录,不触碰会话正文。打开或刷新回收站本身不会推进删除。 |
| 25 | |
| 26 | 生命周期请求在仍有可重试工作时保留原 `operationId`、完整目标集合和观察到的 |
| 27 | generation。`state_conflict` 对本次请求是终态:回收站刷新列表并提示用户重新操作, |
| 28 | 不能用自动刷新的新代际替旧请求取得删除权限。混合批次只重试可重试失败项;成功项 |
| 29 | 和已确定不可重试项沿用持久化结果。 |
| 30 | |
| 31 | 永久删除在打开确认框之前固定完整目标、operationId 和观察到的 generation。后台刷新 |
| 32 | 只更新列表,不改变待确认请求;取消或离开页面不提交。网络结果未知时重试完整原请求, |
| 33 | 包含已成功和终态冲突项,列表刷新不移除重试入口。有效旧准备记录若在启动恢复时遇到 |
| 34 | writer 占用,释放后可以通过普通删除按钮继续;不增加确认步骤。 |
| 35 | |
| 36 | ## 自动化草稿 |
| 37 | |
| 38 | `useAutomationDraftStore` 在当前应用进程内按任务 ID 保存正式基线、编辑字段、频率类型、详情页签、冲突和请求版本。切任务、筛选、收起详情、切管理页、返回工作区、查看关联会话均保留草稿。未保存新任务单独显示;已有修改标注“未保存”。刷新网页或结束应用进程会清除草稿,隐藏到托盘或最小化不会。 |
| 39 | |
| 40 | 保存后才更新正式调度配置,保存失败保留输入。保存中只锁定对应任务,允许查看其他任务;完成结果不改变当前选择。放弃修改恢复最新基线,新草稿则移除。立即运行只使用正式配置;启停只提交 enabled,不夹带草稿。删除任务确认后停止未来调度,已有会话保留。 |
| 41 | |
| 42 | 继续使用原串行修改队列及 revision/etag。运行字段更新直接合并;不同配置字段的外部修改合并进入草稿;同字段冲突暂停普通保存,提供加载最新或另存为暂停的新任务。外部删除保留本地草稿,不能无意恢复原 ID。新草稿 ID 冲突重新分配 ID。保存、启停、运行结果按任务和版本处理。 |
| 43 | |
| 44 | ## 布局与平台 |
| 45 | |
| 46 | macOS 标题区域 44px,Windows 48px、窗口控制按钮各 46px。标题区域可拖动,内容和按钮不可拖动。960px 起回收站、自动化使用双栏,列表至少 280px、详情至少 420px;更窄时切换列表/详情,保留选择和输入。回收站默认列表 34%,自动化优先恢复合法宽度偏好,否则 40%。各区域独立滚动,主要操作固定。 |
| 47 | |
| 48 | 新增管理页文案集中在 `managementLocale.ts`,覆盖简体中文、繁体中文、英文;布局使用现有主题变量。无配置迁移,不改变模型请求、提示词、工具定义或提示缓存协议。 |
| 49 | |
| 50 | ## 验证记录(2026-09-05) |
| 51 | |
| 52 | - 隔离组件测试:导航代际、草稿合并/冲突/外部删除、保存中切任务、失败保留输入、快捷键隔离、预览竞态、清空范围、部分失败与重试、成功后的刷新失败。 |
| 53 | - 264 个前端测试套件(包含 heartbeat、history、settings)全部通过,另运行 `pnpm test:transcript`;类型检查、Hooks、CSS、层级、主题、WAAPI 和单一滚动写入检查。 |
| 54 | - 浏览器:Windows 预览,1280×900 与 800×800,设置分类/模型页、回收站确认取消、自动化草稿与列表/详情切换。未删除真实会话,未执行真实自动化任务。 |
| 55 | - macOS 原生:隔离 `REASONIX_HOME` 构建并启动,自动化进入、Escape、⌘W 返回、最小化/恢复、窗口缩放和原生关闭窗口保留后台运行已检查。 |
| 56 | - Windows 原生:ARM64 构建通过,并已在 Win11 独立测试目录启动、显示模型连接引导。原生点击流程及 100%/125%/150% DPI 验证尚未通过,不能用浏览器预览替代。 |
| 57 | - 首屏 JavaScript gzip 约 465.4 KiB,raw JavaScript/CSS 约 2480.9 KiB;仅相应阈值调整到 465.5/2481.7 KiB,编辑器和预览仍懒加载,其余包体积约束保留。 |
| 58 | |
| 59 | 合并最新主分支后,首屏 gzip/原始体积为 465.4/2480.9 KiB,同工具链主分支为 464.7/2481.7 KiB;原始体积保留主分支的 2481.7 KiB 上限,繁体中文分包上限取 61.7 KiB。macOS 独立原生构建已验证标题栏双击最大化、再次双击恢复原尺寸。未保存密钥的模型发现使用临时能力解析器,不写入正式能力缓存。 |
| 60 |