# 个人卡片、设置与录音入口调整

## 用户确认的布局（2026-09-20）

- 第一栏底部：会员标识在头像上方；头像仍是个人卡片的触发点，不扩大第一栏宽度。
- 个人卡片：头像昵称右侧是「我的世界」，下一行是会员状态，再显示四行用量摘要；底部仅保留单行「数据管理」「设置」。
- 「我的世界」明确进入当前账号的 mine 范围。第一栏「世界」仍进入公开 all 范围；重复点击个人入口也会重新选择 mine。
- 用量摘要直达「设置 → 用量与额度」，位于「我的账户」之后；额外充值余额与月度 Token 继续分开，不折算或合并。
- 「声纹管理」迁入录音日历下的工具区，详情可「返回录音」。声纹页面属于第一栏录音选中态；录音所有者仍在外层，不因页面切换而停止。未改声纹授权或识别逻辑。

## 数据管理的已实现范围

复用 Flutter 桌面端的三个入口，不改手机端或后端：

1. 最近删除：只在进入时读取最多 50 条；展开查看文字，用户先点恢复，再明确确认后才调用恢复接口。浏览不会惰性清除过期记录，不提供永久删除。超过本次读取范围的记录指引至手机端，不把 50 当作总数。
2. 导入数据：打开 Flutter 即我端同一个 `https://jiwo.cc/import` 页面。需要在那里登录同一账号；不在链接中传递登录凭证，不自动上传文件。
3. 导出数据：读取现有导出条件、快记/媒体统计和最近导出时间。**完整文件打包下载尚未移植到本插件**，页面明确指引手机端或原 Flutter 桌面端导出。此处不创建导出会话、不消耗导出次数。并非后端没有导出接口。

## 现有接口

| 插件操作 | 后端接口 | 边界 |
| --- | --- | --- |
| `data.deleted` | `/api/v1/records/deleted/list` | `limit: 50`，只读 |
| `data.recover` | `/api/v1/records/recover` | 确认后的 `record_uid` 和 `version` |
| `data.export.preflight` | `/api/v1/records/export/session/preflight` | `order_kind: 1`、隐藏隐私锁快记 |
| 同上 | `/api/v1/records/export/session/latest` | 只读最近导出信息 |

所有请求验证环境和用户组成的账号作用域；读取完成后复核。前端在切换账号或离开页面时取消读取，不展示旧账号的迟到结果。缺失/异常字段显示错误，不伪装成零用量或空回收站。

## 最近删除过滤修复（2026-09-20）

- 已确认的移植遗漏：原 Web 解析器未检查 `record_core.status`，正常记录也会被展示为最近删除。原测试数据也缺少状态字段。Flutter 的 `loadDeletedRecords` 已有删除状态与有效期过滤。
- 补齐明确删除状态校验，排除正常、已恢复、已清除及过期记录。优先使用接口明确给出的恢复截止时间，缺省时沿用移动端的更新时间加 30 天规则；状态、版本或有效期无法确认的记录不提供恢复，并提示有未能确认的记录被隐藏。
- 用户确认恢复后，先重新读取当前账号最近删除列表，核对记录标识、版本和有效期，再提交恢复。记录已变化、已超出本次列表范围或无法确认时安全拒绝，要求刷新，不猜测恢复资格。
- 浏览时不调用恢复或永久清除接口。测试使用模拟数据覆盖正常记录混入、未知状态、过期边界、版本变化及账号切换。
- 尚未取得用户原异常条目的云端原始状态，不能由这个前端缺陷断言存在串号，或把作者不是当前用户等同于不是当前用户删除。
- 本轮 5 个相关测试文件共 46 项通过，正式构建通过；已登录 3098 预览的列表接口返回成功。本批数据经校验后无可恢复项且可能还有后续记录，页面明确限定为「本次读取范围」，不宣称整个回收站为空。真实恢复和删除调用为零。
- 浏览器回归另捕获了原有嵌入页面尺寸回调的 `defaultView` 为空报错（`harness-surface-viewport.ts`，9 月 16 日已有代码），不属于删除状态解析路径。用户再次确认后补上失效页面和已关闭观察者的保护；新增两项用例先在旧代码上复现失败，修复后与相关用例一起 7 个文件、61 项通过，不改变布局。
- 最终构建及部署后，已登录最近删除列表、关于页中英文与缩放回归再次通过，页面运行错误为零；恢复、删除、资料写入等真实操作为零。已安装 Arkme 客户端进程保持不变。

## 验证与预览隔离

- 14 个相关测试文件、224 项测试通过，覆盖菜单与会员位置、世界范围、设置跳转、账号隔离、导出契约、恢复确认，以及原会员/用量/录音/声纹回归。
- 已登录独立 Web 预览读取到了最近删除列表和导出统计，未调用恢复或清除，也未创建导出任务、订单或录音。
- 浏览器验证包含明暗主题、500px 高度窗口、我的世界请求范围、设置导航顺序、声纹入口及返回。
- 最终构建通过；已登录浏览器实测第一栏会员标识位于头像上方、卡片会员栏位于头像昵称下方。卡片高约 338px，四行用量与底部入口在 500px 高度窗口内无溢出；无页面运行错误。
- 预览只使用 3098。构建资源仅同步到 `.codex-artifacts/call-invite-web-0918` 下的独立预览安装目录；不修改 `/Applications/arkme.app` 或其客户端进程。
- 恢复操作只进行了自动化模拟测试，未恢复用户真实数据；录音连续性为所有者结构检查，未在本轮开启麦克风录音。
