# viaim 真实截图任务手册

更新：2026-10-23。**用途：应用市场设备 UI 截图，不是功能测试。** 用户只需提供入口参考图、版本／设备要求及内容变化，其余由执行者处理，不要求用户填写 JSON。本文件同时包含 iOS、iPad 与 Android 的入口、内容、换包和验收规则，是新聊天唯一默认必读入口。

## 0. 默认执行流程：先中文，再日英

1. **识别入口**：看参考图，用第 3 节定位页面与可见状态；已知入口不全仓库搜索。只询问会改变结果且尚未明确的信息。
2. **核对变化**：同聊天、同版本续作复用已验包、入口和归属设备，只检查变化；新代码／包按第 4 节一次核对。
3. **准备中文**：默认取同目录 [viaim-文案库.xlsx](viaim-文案库.xlsx) 的对应场景；本次明确指定的参考文字优先。校验事实、完整正文、长度和设备身份，不回退旧会议。
4. **真实代码渲染**：用 Debug 内存展示数据进入真实宿主；按设备锁启动／切场景。已安装匹配包不重装；外部文案、语言变化通常不编译。
5. **验图即交付**：等指定可见正文完整、稳定，再拍原始 PNG；逐张按第 2.2 节检查，通过立即交付，不等长报告，仅重跑失败项。
6. **中文确认后连续日英**：依据用户确认冻结中文事实与内容哈希；一次准备两种业务译文，复用包和设备，功能文案取代码。中文内容改变后重新确认。

同页、同版本、已验证语种的热续作以双语 **3 分钟**为内部目标；2 分钟无可读首图报告具体卡点，5 分钟无通过图退出快路径、保存现场并定向诊断。新入口约 10 分钟无正确首图也报告卡点。目标不是已测保证；阶段命令耗时不等于请求到交付耗时。同一失败无新证据不反复重试。

## 1. 设备与系统栏

参考图默认决定手机／iPad及可确认的方向，用户明确要求优先；裁切图和营销外框不当作设备原图。平台不明才问，已明确的不重复确认。

| 默认设备／方向 | 逻辑尺寸 | 原始 PNG |
| --- | --- | --- |
| iPhone 18 Pro 竖屏 | 402×874 pt，3× | 1206×2622 px |
| iPad Air 13 M4 横屏 | 1366×1024 pt，2× | 2732×2048 px |
| iPad Air 13 M4 竖屏 | 1024×1366 pt，2× | 2048×2732 px |
| Android 手机竖屏 | 393×852 dp，density 480，fontScale 1.0 | 1179×2556 px |

回读实际型号、OS、方向、逻辑尺寸和 PNG 像素；不能换机型标签或后期缩放冒充。新设备重新核对配置。iPad 使用真实多栏／导航容器，每个方向另验侧栏、选中项、正文宽度与安全区；不能旋转手机图，也不能用直接详情页替代参考要求的列表＋详情。

**系统顶栏：9:41、8 月 21 日、80%、非充电，年份为执行当年。手机最终导出图默认不包含顶部黑色灵动岛；即使参考图带有灵动岛也不沿用，只有用户对本次图片明确要求保留时才显示。** 去除灵动岛不能裁掉正文、改变目标像素尺寸、拉伸画面或后贴一套系统栏；验图时和时间、电量一起检查。原生日期随语种显示，手机没有日期就不添加；不改变业务日期、录音时长。手机只切 App 语言；iPad 须核对系统与 App 语种，系统语种不符暂停本项，单独设置并验证，capture 不改系统偏好或重启设备。

## 2. 不可省略的真实性与文案规则

- 100% 使用本次指定版本的真实组件、图标、主题、字号和系统容器；不脑补重绘、不缩字拉伸、不贴系统栏。
- 只看 UI，不核验后端、AI、账号、数据库、蓝牙、麦克风、支付或真实连接；模拟展示状态不写生产数据。
- 默认 Excel 按场景／语言／字段取值；延续 iPad 13 页任务时取“iPad截图清单”及素材。旧清单的方向和行号不覆盖本次要求。记录内容来源，冻结本批数据，人物、事件、时间、地点、数字和结论跨页／跨语种一致。
- 纯文字转写用足量自然段，不额外加入图片、图表、标题或列表；时间戳、说话人和原文／译文沿用真实设置及参考状态。
- 输入长度与显示换行／截断分别核对。iOS 已核对快照：项目名 ≤20 个 Swift Character；项目会话／GLOBAL 小万标题 ≤40 个 Unicode scalar。项目生产组件普通字号允许两行，但本系列要求单行：用合法短名并验图，**不改生产 lineLimit**。新版本、Android重读自身规则。
- 设备名称取硬件类别＋销售地区的代码映射，不按语言猜。本系列 pro2：国内 **Pro 2**，海外产品名 **viaim RecDot**、胶囊 **RecDot**，不是 Pro 2／RecDot 2；本系列日英明确展示海外设备。记录 category、salesRegion、device title、collapsedTitle，核对图标、名称、展示连接状态与电量；新设备查代码，仍不明才问。**历史失误门禁：曾出现日英已切海外场景，但只切语言、未同步 salesRegion／标题字段，成图仍显示 Pro 2。以后海外 pro2 图若出现 `Pro 2` 或 `RecDot 2` 直接拒收；国内图若出现 `RecDot` 也拒收。语言切换不能代替销售地区切换。** **Rise 顶部设备胶囊在中／日／英统一显示 `viaim Rise`**：已核对 Android `DeviceBindHelper` 的 AURA 名称和 `DeviceStatusView.collapsedDeviceName`，Rise 不在省略品牌前缀的名单中。截图注入字段也须使用完整名称，不得自行缩为 `Rise`；正文中既有功能句里的 Rise 不作批量替换。

### 2.1 功能文案来源：三平台共用

业务标题、转写、摘要可翻译；**功能文字必须取本次平台、代码版本、语种与销售地区的正式资源**。包括页面／Tab、按钮、菜单、占位、状态／错误／空态、单位／复数、语言及设备名称；保留资源原文、大小写、标点和格式参数。

由执行者核对当前可见功能文字的“资源键／代码定义 → 文件 → 语种值／参数”，包含原生、H5和注入字段，并绑定源码／包身份。不得自行翻译、用新增 Debug 翻译冒充正式资源、搬另一平台文案或从参考图覆盖功能名。缺失／错误回退／来源不明时停止该语种交付，报告缺失键，其他合格项可继续。

**默认优先使用本次确认的 Android 包或 iOS 构建中该语种已有的正式语言资源。** 某条资源缺失时按应用实际回退行为记录并报告，不自行补译或伪装成语言包内容；“存在该语种资源目录”不代表所有文案均已翻译。用户明确指定截图专用译文后，按该授权范围处理并标注来源。

同版本、页面、语种且资源与适配输入未变，复用已有来源依据；换包只复核变更及覆盖关系。目视通顺、locale 回读、字符串命中均不能单独证明资源合规；目前工具未自动覆盖全部来源检查。

### 2.2 交付检查：每张实际看图

只需在本批记录一次包／设备身份与资源来源，逐图记录以下视觉结论；不重复撰写环境审计：

- **对入口**：页面、Tab、展开／收起、总结状态、键盘、iPad 栏位与参考要求一致。
- **对文字**：功能资源合规；业务事实一致；标题长度、换行、截断正确；指定可见正文完整稳定，无旧内容回退、占位、错误或 Debug 标识。
- **对设备**：地区设备名、系统栏、语言、方向和原图尺寸正确。
- **交付原图**：通过后保存本聊天 outputs 并立即提供可查看文件。准备完成、构建成功、截图保存、视觉通过分别记录，不能互相冒充。

窗口布局 ready 只是候选，不证明正文／流式显现已完成；不交付中间帧，不为避动画改生产 UI。若用户明确要加载状态，则按该状态验图。

## 3. 常用入口索引：按平台集中查，不重复找

以下编号用于识别，**不是 App page 参数**；基于 iOS 3.0.0 快照（96bfa0b515b81ba61de9863fab05cdef7e9bb330），新版本核对符号与状态，不长期固定旧 SHA。源文件位于新源码的 iFLYBUDS/ 下；按符号在对应模块内查找，改名才扩到相邻模块，不搜索模拟会议标题。

| 编号／参考特征 | 真实组件定位锚点 | 截图路由／关键边界 |
| --- | --- | --- |
| IOS-01 已完成录音→转写：播放条、时间戳、输入框 | Features/RecordDetail：VIRecordDetailNativeDestination → VIRecordDetailView／PageContainer → VIRecordDetailTranscriptView | transcript；selectedIndex=1；不是正在录音。仍是旧固定夹具，完整动态正文未接通，旧 15 Pro 图不能作通过基准 |
| IOS-02 录音详情→文档→智能摘要：标题、章节、编辑按钮 | 同一详情宿主＋VIRecordDetailAIContentView／AIContentState | review，selectedIndex=0；真实原生＋H5，非聊天 Markdown。携带完整 summaryMarkdown、时间／时长／地点，不只 title／overview；旧 summary 路由不等价 |
| IOS-03 现场录音中：红点、00:09:03、语言条、黑色底部、红停止键 | Features/Recording/RecordingSession：VIRecordingCommonView＋VIRecordingSessionStore，OptionsView／ToolbarView | mic-recording-live；recording＋transcript，功能区展开、实时摘要关、问答开；时长 543000ms |
| IOS-04 我的项目：设备胶囊、11 项、第一项展开两条会话 | Features/Space/Root/VISpaceViews.swift：VISpaceNavigationRoot／HomeView＋HomeStore；ProjectContentView；Features/DeviceCapsule/VIDeviceCapsule.swift | projects；项目根页，不是项目详情；总数与可见数独立；核对短标题、图标、地区设备身份 |
| IOS-05 和小万对话：Q3 标题、云身份、用户气泡＋两项回复 | Features/Vitana：VITabVitanaChatView＋VITabVitanaStore；VIVitanaGatewayChannelTitle | vitana-chat；entrySource=tabBar、GLOBAL、无键盘，不是项目／录音内小万；只在该任务冻结工具登记，中央 catalog 尚未接通 |

Debug 装配从 App/VIAIMApp.swift／VIAppRootView.swift 查找。中央 Apple catalog 目前登记录音／review／projects；小万专用适配只用于匹配包和设备，不接管其他聊天 UDID。iPhone 入口不等于 iPad 多栏或 Android 已验。

需要旧内容／原图证据时再查 /Users/zkj/Documents/Codex/2026-10-12/new-chat/outputs：live-recording-*-content.json、research-summary-*-content.json（中文完整体另见 research-summary-zh-base.json）、projects-*-content.json、vitana-chat-*-content.json。iOS 项目日英旧图设备名有误，只用 v2 作历史参考；历史文件不代替本次包与验图。

### 3.1 iOS 3.0.0／22875146：本轮已登记入口

本轮源码为 `228751467ba2b3601a8d79c0f40109460fcf65f2`；当前预览清单最新 Build 为 `1792633968`，较早页面的回执仍记录其实际使用的历史 Build，不得批量改写成最新值。全部使用 iPhone 18 Pro、浅色模式，普通截图为 `1206×2622 px`。这些 Build 是本轮 Debug 展示包身份，不等于以后新包的产品 Build。内容、脚本和回执保存在：

`/Users/zkj/Documents/Codex/2026-10-12/new-chat/work/market-screenshot-sessions/ios-22875146-emma/`

| 编号／最终画面 | `capture-home.mjs` 模式 | 内容文件 | 真实代码入口与冻结状态 |
| --- | --- | --- | --- |
| IOS-06 Rise 感知首页 | `zh`／`ja`／`en` | `home-*-content.json` | `VIMainTabRootView` → `VIHomeStore`／真实首页；Emma、viaim Rise 已连接、倾听中、三条最近记录 |
| IOS-07 记录列表 | `records-zh`／`records-ja`／`records-en` | `records-*-content.json` | `VIMainTabRootView` 选中 record → `VIHomeStore`／真实记录卡；无角标，国内 Pro 2、海外 RecDot |
| IOS-08 现场录音＋内嵌图片 | `live-zh`／`live-ja`／`live-en` | `live-*-content.json` | `VIScreenshotLiveRecordingView` → `VIRecordingCommonView`；00:09:03、原文＋译文、ROI 图片在第一轮后、第二轮露出 3–5 行、底部功能区展开 |
| IOS-09 文档总结＋多摘要 | `review-zh`／`review-ja`／`review-en` | `review-*-content.json` | `VIScreenshotReviewDetailView` → `VIRecordDetailNativeDestination`；“智能摘要”后同时有“要点速览”“会议记录整理” |
| IOS-10 小万跨应用工具调用 | `vitana-zh`／`vitana-ja`／`vitana-en` | `vitana-*-content.json` | `VIScreenshotVitanaProcessView` → 真实 `VITabVitanaChatView` 过程组件；标题“跨应用跟进会议事项”，4 次调用、思考展开、完整回复、输入草稿 |
| IOS-11 小万委派 WorkBuddy | `vitana-workbuddy-zh`／`-ja`／`-en` | `vitana-workbuddy-*-content.json` | 同一小万宿主，`mode=workbuddy-delegation`；真实委派任务卡、成功状态、结果文件链接和下一步对话 |
| IOS-12 小万两轮回答＋来源 | `vitana-sources-zh`／`-ja`／`-en` | `vitana-sources-*-content.json` | 同一小万宿主，`mode=source-grounded-answer`；海外版本增长复盘两轮问答，每轮 `来源 +3`，不显示遮罩／弹窗 |
| IOS-13 来源遮罩＋底部弹窗 | `vitana-sources-sheet-zh`／`-ja`／`-en` | 复用 `vitana-sources-*-content.json` | 与 IOS-12 同内容；执行器只把 `showSourceSheet` 覆盖为 true，显示遮罩和真实来源 Sheet，不另维护一份正文 |
| IOS-14 WorkBuddy Excel 下一级预览 | `spreadsheet-preview-zh` | `spreadsheet-preview-zh-content.json`＋真实 `客户合作跟进表.xlsx` | 小万 Markdown 文件链接的产品路径是 `VIVitanaMarkdownContentView` → `VISafariBrowserSheet`；原始 xlsx 在 iOS Safari 只显示文件类型与“用其他方式打开”的中转页。需要应用市场画面直接展示表格时，后端链接必须指向在线预览页，App 端仍复用真实 Safari 容器；本轮预览含 3 条跟进事项、负责人、截止时间、优先级、来源和状态。该页是展示态，不宣称 App 内置 Excel 编辑器。 |
| IOS-15 小万邮件发送确认卡 | `capture-vitana-content.mjs follow-up-email` | `vitana-content-follow-up-email-zh.json` | 同一小万宿主，`mode=email-action`；真实 `VIAgentInteractionCardView`＋`VIAgentApprovalPreview`，行动类型 `feishu_mail_send`、状态 `WAITING_APPROVAL`。显示发件人、收件人、主题、正文及“拒绝／确认发送”，只注入待确认展示态，不调用飞书或发送邮件。 |
| IOS-16 小万内容能力长对话 | `capture-vitana-showcase-long.mjs`＋`stitch-vitana-showcase-long.mjs` | 复用 IOS-15 及渠道表格／反馈追问／增长图表内容 | 标题“海外版本增长复盘与跟进”；同一业务链展示 Markdown 表格、引用、列表、3 个推荐追问、Markdown 图片、来源入口和真实邮件确认卡。长图不是重绘 UI：按同一 iPhone 18 Pro 设备和标题分别渲染真实原生组件，仅裁去重复状态栏／导航栏／输入栏后纵向拼接；最终中文 `1206×8502 px`。不验证后端，不实际发送邮件。 |
| IOS-17 录音详情→转写 | `capture-related-transcript-agent.mjs` | `record-transcript-followup-zh-content.json` | `VIScreenshotReviewDetailView` → `VIRecordDetailNativeDestination` → 真实 `VIRecordDetailTranscriptView`，`selectedTab=transcript`。标题“海外渠道合作沟通”，50:36、8 月 21 日 14:00、上海市；Emma／Sophie／Alen 的 8 段转写围绕报价、样机、培训售后、首批 200 套和月度补货。夹具已支持 `transcript[]` 动态段落，不再只能使用旧固定正文。 |
| IOS-18 转写关联 WorkBuddy Agent | `capture-related-transcript-agent.mjs` | `vitana-agent-followup-zh-content.json` | 同一事实链进入真实 `VITabVitanaChatView`，`mode=workbuddy-delegation`；用户把本次转写和“客户合作沟通群”交给已连接 WorkBuddy。显示真实委派任务卡、已完成状态、4 项跟进事项与“客户合作跟进表.xlsx”；仅展示界面，不验证群消息、文件生成或保存。 |

#### 2026-10-20～22 新增入口与页面状态

以下入口沿用同一源码会话，但不是每项都已复制到 `outputs/`。表中“最终 PNG 已在 outputs”才可直接交付；“原始 capture／回执已留存”只表示入口和内容证据可复用，换包后仍须重新构建、出图和验收。

| 编号／最终画面 | 执行器与内容 | 必须保留的真实状态 | 当前证据 |
| --- | --- | --- | --- |
| IOS-19 首页入口 1：历史对话 | `capture-home-secondary.mjs entry-1 <lang>`；`home-entry-1-*-content.json` | 首页左上菜单进入历史对话列表；沿用“跨应用跟进会议事项”等既有人物与事实链，不出现灵动岛 | 三语回执已留存；最终 PNG 未在当前 outputs，换包重出 |
| IOS-20 首页入口 2：Rise 设备详情长页 | `capture-home-secondary.mjs entry-2-{top,sound,control,ai,more}`；`stitch-home-entry-2.mjs`；`home-entry-2-zh-content.json` | 左上返回、白色 viaim Rise、真实设备详情分区；长图背景连续、无拼接分割 | 中文五段、日英三段原始 capture 已留存；最终长图未在当前 outputs，换包补齐日英分段并重出 |
| IOS-21 首页入口 3：通知 | `capture-home-secondary.mjs entry-3 <lang>`；`home-entry-3-*-content.json` | 内容丰富的通知页，事项、负责人、状态和时间与海外版本／客户合作事实链一致 | 三语回执已留存；最终 PNG 未在当前 outputs，换包重出 |
| IOS-22 首页入口 4：现在／倾听时间轴 | `capture-home-secondary.mjs entry-4 <lang>`；`home-entry-4-*-content.json` | Rise 正在倾听、日期时间轴与三场会议卡；保留返回、设置、结束倾听等真实控件 | 三语回执已留存；最终 PNG 未在当前 outputs，换包重出 |
| IOS-23 首页入口 5：添加记录 Sheet | `capture-home-secondary.mjs entry-5 <lang>`；`home-entry-5-*-content.json` | Rise 首页遮罩＋添加记录底部 Sheet；开始倾听、启动录音、导入音频及对应说明 | 三语最终 PNG 已在 outputs |
| IOS-24 侧栏全局搜索 | `capture-drawer-pages.mjs search <lang>`；`drawer-search-*-content.json` | 搜索 TikTok／产品团队相关内容；5 条结果覆盖电话、现场会议、导入音频、倾听记录等不同类型 | 三语最终 PNG 已在 outputs |
| IOS-25 侧栏设置长页 | `capture-drawer-pages.mjs settings-{top,bottom,end} <lang>`；`stitch-drawer-settings.mjs`；`drawer-settings-*-content.json` | Emma、账号／语言／外观／通知／存储等真实设置分区；长图只裁重叠区域并无缝拼接 | 三语最终长图已在 outputs |
| IOS-26 小万默认新对话／Agent 选择 | `vitana-empty-*-content.json`＋对应 capture 回执 | 未开始对话、正文为空；顶部必须可切换 Agent，不得沿用已有会话固定标题 | 三语原始 capture／回执已留存；未复制到当前 outputs |
| IOS-27 Pro 3 加号页＋探索长页 | `capture-pro3-create-and-explore.mjs <lang>`；`pro3-create-*-content.json`、`explore-long-*-content.json` | 加号页连接 Pro 3；探索页保留该设备下真实底栏和完整分区，不把 Rise 底栏硬套过来 | 两类页面三语最终 PNG 已在 outputs |
| IOS-28 我的项目＋项目更多菜单 | `capture-projects.mjs`／`capture-projects-localized.mjs`；`project-*-content.json` | viaim Rise 已连接、11 项、首组展开；菜单含新对话、资料库、置顶、编辑、项目设置、协作成员、删除 | 两类页面三语最终 PNG 已在 outputs；名称遵守 ≤20 Swift Character，目标单行不改生产 `lineLimit` |
| IOS-29 Rise 探索长页 | `capture-explore-rise-long.mjs <lang>`；`explore-rise-long-*-content.json` | 顶部 `viaim Rise`；底栏为首页／记录／探索和独立加号；全页分区完整、背景连续 | 三语 `1206×3112` 最终 PNG 已在 outputs |
| IOS-30 记忆列表长页 | `capture-memory-library-frames.mjs`＋`stitch-memory-library.mjs`；`memory-library-*-content.json` | 全部／项目／人物／承诺／偏好／规则；内容与 Emma、Sophie、Alen、海外增长及客户合作事实链一致 | 三语最终 PNG 已在 outputs |
| IOS-31 记忆详情 | `capture-memory-detail.mjs <lang>`；`memory-detail-*-content.json` | 从 IOS-30 同一条记忆进入；显示类型、标题、当前理解、适用范围、来源依据和“纠正这条记忆” | 三语最终 PNG 已在 outputs |
| IOS-32 任务中心 | `capture-task-center.mjs <lang>`；`task-center-*-content.json` | WorkBuddy 任务覆盖已完成、执行中、等待；负责人、截止时间及事项与既有角色一致 | 三语最终 PNG 已在 outputs |
| IOS-33 自动倾听计划 | `capture-automatic-listening-schedule.mjs <lang>`；`automatic-listening-schedule-*-content.json` | 节假日开关、工作日和周末时段、关注客户需求／忽略闲聊 | 三语最终 PNG 已在 outputs |
| IOS-34 添加倾听计划 | `capture-automatic-listening-schedule-add.mjs <lang>`；`automatic-listening-schedule-add-*-content.json` | 09:00–12:00、上午、周一／周二／周四／周五选中、底部保存按钮 | 三语最终 PNG 已在 outputs |
| IOS-35 详情页“要点速览”选中 | `review-highlights-*-overlay.json`＋对应回执 | 与智能摘要同一录音来源，仅切换 AI 模板和摘要重点；不是另一场会议 | 三语原始 capture／回执已留存；未复制到当前 outputs |
| IOS-36 详情页“转写”Tab | `review-transcript-*-content.json`＋对应回执 | 产品团队会议；Emma／Sophie／Alen 角色连续，时间戳和逐段发言使用真实转写组件 | 三语原始 capture／回执已留存；未复制到当前 outputs |
| IOS-37 录音中相机页面 | `recording-camera` 回执及 meeting photo 资产 | 相机拍摄产品团队会议现场；最终版本不保留旧 ROI 缩略图，照片进入真实相机浮层 | 三语原始 capture／回执已留存；未复制到当前 outputs，换包先核对最终资产状态 |

最终 PNG 位于 `/Users/zkj/Documents/Codex/2026-10-12/new-chat/outputs/`，文件主体名依次为：

- `rise-home-{zh,ja,en}.png`
- `records-{zh,ja,en}.png`
- `live-recording-{zh,ja,en}-optimized.png`（只认 optimized；同名无 optimized 的是旧候选）
- `review-multi-summary-{zh,ja,en}.png`
- `cross-app-follow-up-{zh,ja,en}.png`
- `workbuddy-follow-up-{zh,ja,en}.png`
- `customer-follow-up-sources-{zh,ja,en}.png`（文件名沿用历史命名，当前正文是“海外版本增长复盘”）
- `customer-follow-up-sources-sheet-{zh,ja,en}.png`
- `workbuddy-excel-preview-zh.png`
- `vitana-follow-up-email-zh.png`
- `vitana-content-showcase-long-zh.png`
- `record-transcript-followup-zh.png`
- `vitana-agent-followup-zh.png`
- `home-entry-5-create-{zh,en,ja}.png`
- `drawer-search-{zh,en,ja}.png`
- `drawer-settings-long-{zh,en,ja}.png`
- `home-add-record-{zh,en,ja}.png`
- `home-explore-{zh,en,ja}.png`
- `projects-{zh,en,ja}.png`
- `projects-more-{zh,en,ja}.png`
- `home-explore-rise-{zh,en,ja}.png`
- `memory-library-{zh,en,ja}.png`
- `memory-detail-{zh,en,ja}.png`
- `task-center-{zh,en,ja}.png`
- `automatic-listening-schedule-{zh,en,ja}.png`
- `automatic-listening-schedule-add-{zh,en,ja}.png`

#### 换包后的最短复用路径

1. 先固定新包／源码的版本、Build、SHA和工作区，不运行本轮旧 App 冒充新包。
2. 在新源码只查四个稳定锚点：`VIAIM_MARKET_HOME`、`SCREENSHOT_CONTENT_BASE64`、`VIScreenshotHomeData`、`VIScreenshotVitanaProcessFixture`。再按上表核对 `VIScreenshotLiveRecordingView`／`VIScreenshotReviewDetailView` 和真实宿主是否仍存在；锚点未改时不重新搜索业务标题。
3. 对比本节实际要用入口的内容 JSON 字段合同；IOS-12／13共用一组内容。字段兼容就复用内容并更新批准中文哈希，字段变化才修改一次适配层。不要把旧会话的全部内容文件无差别复制到新包。
4. 集中构建一次新 Debug 展示包；按本次清单先各取一张中文首图，只有发生变化的入口需要定向修正。中文通过后连续切日语、英语，不逐图编译、安装或重建模拟器。
5. 每张仍要看正文完整、来源弹窗状态、内嵌图片位置和语言资源；旧 PNG、旧回执与旧 Build 只作定位参考，不作新包通过证据。

本轮 Debug 入口由 `App/VIAIMApp.swift` 的 `VIScreenshotHomeData` 解析进程参数，再由 `App/VIAppRootView.swift` 分发到首页／记录、review、现场录音或小万宿主；小万过程、委派、来源与外部行动四类状态的截图模拟数据在 `Features/Vitana/Views/VITabVitanaChatView.swift`。新包优先核对这些文件和符号，不全仓库搜索会议标题。

这里的“截图模拟数据（内容夹具）”是只在 Debug 截图入口使用的一组可重复数据：负责标题、对话、时间、任务、来源、状态等内容；页面布局、图标、主题、字号、弹层和交互容器仍来自产品真实代码。它不写入生产账号，也不证明真实 Agent、蓝牙、后端或文件保存成功。

### 3.2 本系列 iPad：13 个构图入口与换包复拍目录

对应 `new-chat-2` 系列，与上述 iPhone 环境隔离。同页日英不另算入口；编号用于查找和验收，不是 App 参数。这里是 iPad 入口的唯一维护位置，不再要求另读入口索引。

#### 3.2.1 当前证据、画布与边界

- 2026-10-22 静态盘点使用的旧包源码快照：iOS 3.0.0，SHA `228751467ba2b3601a8d79c0f40109460fcf65f2`，Preview Build `1792633968`，Bundle `com.vision.intelligence.viaim.simulator-preview`，截图适配指纹 `f31f603ce6b12e5a758626be45ae7497885af270430b8cee76ae06f6b3bb3469`。该工作树含截图夹具修改，只作迁移证据，禁止整树复制到新包。
- 当前用户确认的横屏交付规格是 **iPad Air 13 M4，1366×1024 pt，@2x 原图 2732×2048 px**；竖屏对应 1024×1366 pt、2048×2732 px。禁止旋转、拉伸或把其他画布缩放成该尺寸。
- IPAD-07～11 的旧候选来自 2752×2064 iPad Pro 画布：可证明入口和内容合同曾存在，不能作为 2732×2048 Air 成图或新包通过证据。
- IPAD-12、13 已有 2732×2048 Air 13 M4 的中／英／日旧包成图并完成内部视觉检查；换包后仍须重新构建、截图、验图，不能直接沿用旧 PNG 冒充新包。
- “入口已定位”“构建成功”“截图完成”“内部视觉通过”“用户接受”分开记录；candidate、ready signal、旧图哈希均不能替代用户验收。

#### 3.2.2 新包优先核对的稳定锚点

| 范围 | 优先定位符号／文件 | 复核重点 |
| --- | --- | --- |
| Debug 参数与数据 | `App/VIAIMApp.swift`：`VIScreenshotHomeData`、`VIAIM_MARKET_HOME`、`SCREENSHOT_CONTENT_BASE64`、`usesProjectFixture`、`isProjectChatPage`、`isExploreCurrentPlanPage`、`membershipPreviewUsage` | 参数名、字段解码、项目／套餐路由是否仍兼容；这些不是 Release 公共 deep link |
| 根路由 | `App/VIAppRootView.swift` | list、review、live-recording、vitana-process、explore-current-plan 是否仍由真实宿主承载 |
| 主分栏 | `App/MainTab/VIMainTabRootView.swift`、`VIMainTabStore.swift`、`UI/Adaptive/VIAdaptiveLayoutContext.swift` | 1366×1024 pt 下真实侧栏和详情栏边界；禁止用覆盖层伪造衔接或把列表改成瀑布流 |
| 记录与详情 | `Features/RecordDetail/View/Structure/VIRecordDetailNativeDestination.swift`、`View/Content/VIRecordDetailAIContentView.swift` | 文档／转写、多个摘要 Tab、选中记录与正文一致 |
| 项目 | `Features/Space/Root/VISpaceViews.swift` | 项目数、展开子会话、选中项目、右侧对话必须来自同一内容夹具 |
| 小万／外部 Agent | `Features/Vitana/Views/VITabVitanaChatView.swift` | `project-research-agent`、工具调用、WorkBuddy／ResearchBuddy 卡片、来源引用和历史列表状态 |
| 探索／套餐 | `Features/Mine/Scene/VIMineRootView.swift`、`VIMembershipPage.swift`、`VIMembershipQuotaView.swift`、`VISubscriptionRouteDestination.swift` | 探索 Tab 选中、Rise 已连接、套餐和额度数据正确 |
| 本地化 | `Resources/Localize/{en,ja}.lproj/Localizable.strings` 及页面实际覆盖层 | 功能文案读资源；业务标题、对话和摘要读对应语言 JSON，不按中文逐字硬翻 |

#### 3.2.3 入口、内容合同与当前证据

本轮旧包夹具与执行器根目录：`/Users/zkj/Documents/Codex/2026-10-12/new-chat/work/market-screenshot-sessions/ios-22875146-emma/`。下表文件名均相对此目录；换包时只迁移本次要用入口的 JSON 和必要适配，不整包复制旧工作树。

| 编号／页面 | 方向／page 或 mode | 内容与执行器 | 必须保留的真实状态 | 当前证据与换包动作 |
| --- | --- | --- | --- | --- |
| IPAD-01 记录列表 | 横屏／`list` | 旧 `VIScreenshotHomeData` 记录 fixture | `VIMainTabRootView` → `VIHomeContentView`；部分记录含图片，第二栏是按日期分组的**列表**，不是瀑布流 | 旧入口；新包核对动态数据合同并重拍 |
| IPAD-02 选中评审会＋右侧详情 | 横屏／`review` | 旧 review fixture | 同一主 Tab 分栏；6 张记录卡、Rise 已连接、选中海外评审会；顶部智能摘要模板保留 | 旧 Air 历史证据；新包重拍并核对选中态和正文删减规则 |
| IPAD-03 现场录音中 | 竖屏／`mic-recording-live` | 旧 portrait live-recording 内容和脚本 | `VIRecordingCommonView`；00:09:03、原文／译文、图片、底部功能区展开、录音中；不出现实时概要 | 旧竖屏 Air 历史证据；新包重拍 |
| IPAD-04 评审会文档详情 | 竖屏／`review-portrait` | 旧 review detail 内容和脚本 | 直接 `VIRecordDetailNativeDestination`，不是列表＋详情；文档选中、多个摘要模板可见 | 旧竖屏 Air 历史证据；新包重拍 |
| IPAD-05 项目列表＋项目内容 | 竖屏／`projects` | 旧 projects 内容和脚本 | `VISpaceNavigationRoot／HomeView／DetailView`；真实宽度分栏，首项目和右侧研究内容一致 | 旧竖屏 Air 历史证据；新包重拍 |
| IPAD-06 小万 Q3 待办对话 | 竖屏／`vitana-chat` | 旧 Vitana Q3 内容和脚本 | 主 Tab＋历史栏＋`VITabVitanaChatView`；7 条历史、回答中、原生停止生成按钮；不发送真实 AI 请求 | 旧竖屏 Air 历史证据；新包重拍 |
| IPAD-07 Rise 倾听时间轴 | 横屏／`rise-listening` | `ipad-listening-{zh,en,ja}-content.json`；`capture-ipad-listening.mjs`、`capture-ipad-listening-localized.mjs` | Rise 已连接；4 个日程活动；`currentActivity` 存在；左栏首页和右侧 Now 时间轴同时完整 | 入口已定位；旧图 2752×2064，不可交付；新包按 Air 2732×2048 重拍 |
| IPAD-08 评审记录＋多摘要详情 | 横屏／`review-split` | `review-{lang}-content.json`＋`review-split-records-{lang}.json`；`capture-ipad-review-split-zh.mjs`、`capture-ipad-review-split-localized.mjs` | 6 条记录；第 2 条选中；右侧至少 2 个摘要 Tab；连接设备为黑色 Pro 2 | 入口已定位；旧图 2752×2064，不可交付；换包重拍 |
| IPAD-09 记录首页列表＋详情 | 横屏／`home-review-split` | `home-{lang}-content.json`＋`review-{lang}-content.json`；`capture-ipad-home-review-split.mjs` | 左侧按日期分组的列表、选中记录高亮；右侧详情含多个智能摘要；默认连接 Rise | 入口已定位；旧图 2752×2064，不可交付；重点回归列表而非瀑布流 |
| IPAD-10 横版仅录音 | 横屏／`live-recording` | `live-recording-{lang}-content.json`；`capture-ipad-live-recording.mjs` | 录音时长 543000 ms；6 段对话、2 张图片；画面只呈现录音／转写，不显示实时概要 | 入口已定位；旧图 2752×2064，不可交付；换包重拍 |
| IPAD-11 历史对话＋小万多状态 | 横屏／`vitana-process` | 默认：`vitana-{lang}-content.json`；委派：`vitana-workbuddy-{lang}-content.json`；来源：`vitana-sources-{lang}-content.json`；执行器 `capture-ipad-vitana-history-installed.mjs`、`capture-ipad-vitana-workbuddy-history.mjs`、`capture-ipad-vitana-sources-history.mjs` | 左侧 5 条相关历史；真实工具过程 4 次调用；WorkBuddy 完成卡；来源回答 2 轮且每轮 3 个引用 | 入口已定位；旧图 2752×2064，不可交付；换包重拍 |
| IPAD-12 项目列表＋ResearchBuddy | 横屏／`vitana-process`＋`leftPane=projects`＋`mode=project-research-agent` | `project-{lang}-content.json`＋`project-research-agent-{lang}-content.json`；`capture-ipad-project-and-plan-zh.mjs`、`capture-ipad-project-localized.mjs` | Rise 已连接；11 个项目；首项目含 2 个子项并选中；右侧 2～3 轮对话，含表格、3 个引用来源和 ResearchBuddy 外部 Agent 完成过程 | 中／英／日 2732×2048 已内部视觉通过；新包仍重拍 |
| IPAD-13 探索＋当前套餐 | 横屏／`explore-current-plan` | `explore-current-plan-{lang}-content.json`；中文 `capture-ipad-project-and-plan-zh.mjs`，日英 `capture-ipad-current-plan-localized.mjs` | 探索 Tab 选中；顶部 Rise 已连接；极致会员；2026/11/19 重置；AI 转写不限；智能体 2000/2000、已用 0 | 中／英／日 2732×2048 已内部视觉通过；新包仍重拍 |

#### 3.2.4 可作视觉基准的 Air 13 M4 成图

以下六张仅作为旧包构图、内容和本地化参考；新包不能复用其通过状态。目录为 `/Users/zkj/Documents/Codex/2026-10-12/new-chat-2/outputs/`。

| 入口 | 文件 | SHA-256 |
| --- | --- | --- |
| IPAD-12 中文 | `viaim-ipad-project-research-chat-agent-zh-2732x2048.png` | `2667271ceea10073137cd5d44d8f444eb39eede6f3cce4adef2a207e7434b433` |
| IPAD-12 英文 | `viaim-ipad-project-research-chat-agent-en-2732x2048.png` | `723a051f3d388864c50ecd0cf0c66fa09ee0a9d7a13f723f0061265003f5e6dc` |
| IPAD-12 日文 | `viaim-ipad-project-research-chat-agent-ja-2732x2048.png` | `7a6e6ff859e7dc63c559af9088f6baa5ad1c1e3ccca6170f3d0b05692613d901` |
| IPAD-13 中文 | `viaim-ipad-explore-current-plan-rise-zh-2732x2048.png` | `0fb2f993298c57892d954796376aeac64b16a2ba083acf6ff7cb45fdb0839678` |
| IPAD-13 英文 | `viaim-ipad-explore-current-plan-rise-en-2732x2048.png` | `6c94f2bcc02d32a36324d829d6ba78eaa5c0d015f18b57760f5d5cc173ec68a1` |
| IPAD-13 日文 | `viaim-ipad-explore-current-plan-rise-ja-2732x2048.png` | `64aca3d71f4e25049856692c2fea5980fec6ef2dd56d3e54af20c7d239bd05bd` |

#### 3.2.5 换新代码包后的最短复用路径

1. 先报告并等待用户确认：分支、精确 SHA、作者、提交时间、提交标题，以及与默认分支的关系；批准后固定该 SHA。旧包 Build、APK／App、PNG、回执和哈希只作定位参考。
2. 为新包使用独立 checkout／worktree、依赖缓存、DerivedData、模拟器租约和输出目录；不复制当前 dirty 工作树，不复用不明归属设备或旧安装包。
3. 只核对 3.2.2 的稳定锚点和本次所需 IPAD 编号的数据合同。字段兼容时复用相应 JSON；字段或真实宿主变化时只修改一次适配层，不把整批旧夹具搬入新包。
4. 取得明确构建／运行授权后，集中构建并安装一次匹配的新 Debug 展示包。每个入口先出中文首图；中文布局、数据和设备状态通过后，同包连续切日语、英语，避免逐图重编译。
5. 逐张保存原始 PNG 并核对像素：横屏必须为 2732×2048，竖屏必须为 2048×2732。拒绝任何由 2752×2064 缩放而来的 Air 成图。
6. 每张记录：IPAD 编号、源码 SHA／Build、输入内容哈希、页面参数、设备与语言、PNG 路径／尺寸／哈希、内部视觉结论和用户接受状态。准备完成、构建成功、截图完成、视觉通过分别记录。

偏离与假设：本轮把 IPAD-07～11 归为“入口可迁移、成图不可复用”，因为旧证据使用 iPad Pro 2752×2064 画布；IPAD-12、13 归为“旧包视觉基准”，不是新包验收。未预判未知新包的符号变化，也未在整理过程中构建、启动或占用模拟器。

### 3.3 Android：入口、工具、旧包证据与换包规则已合并

本节已合并原《Viaim Android 截图执行细则》和《Viaim Android 已通过截图复刻索引》中下一次执行真正需要的内容。新聊天默认只读本手册；两个旧文件保留作历史证据和旧链接兼容，不再是必读前置。

#### 3.3.1 当前来源与不可跨包继承的结论

- 当前登记的普通源码是国内 `dev_inland_3_0_0`：`caadb440d766942d121a12240b0d0a9348672185`，来源指针 `work/android-active-source.json`，普通体验 APK 与收据在 `outputs/android-apk-caadb440/`。它已构建、签名和版本校验，但**截图专用入口尚未整体迁移或验收**。
- 丰富页面、三语 PNG、截图模拟数据和适配器的历史基线是 `c2b8b17ec32f20871ac8c5186f25d1ead34aaa5b`。它只证明旧包曾可复现这些画面，不能用其 APK、PNG、哈希或“视觉通过”冒充 `caadb440` 或用户接下来提供的新包。
- 2026-10-23 本次用户确认复用的现成包只用于 AND-04h：`dev_inland_3_0_0`，`7c620dfd750d74f3486e7c90bda50050c0aa70d4`，liuda，2026-10-22 14:06:34 +08:00，提交“[fix]（倾听）统一时间轴与活动详情为24小时制「无」”；已验包 versionName `3.0.0`／versionCode `2100000000`，APK SHA-256 `17d6206733b28ad67231928c304ba5f3e2dd976b1727037e721bb3352ac4aa80`，sourceInputs SHA-256 `4a5aa369cc0eadd4cf0467e32697853272819b3bf33818022fb76e2aa9bea7ce`。本地复用包和收据在 `work/android-vitana-7c620dfd/`。这只证明 AND-04h 在该包的页面级表现，不代表它是后续默认包，也不把这份用户确认推广成别的入口的确认。
- 固定画布为 `393×852 dp`、density `480`、fontScale `1.0`，普通原始 PNG 为 `1179×2556 px`；长页保持宽度和密度，按真实滚动帧裁去重叠区域后拼接，不能缩放、拉伸或制造断层。
- 工具根目录：`/Users/zkj/Documents/Codex/2026-10-13/users-zkj-documents-codex-2026-07/tools/`。普通页面入口为 `android_screenshot.py`，长设置页为 `android_settings_capture.py`，具体入口以新包执行器 `--help` 和本表为准。

#### 3.3.2 已登记页面与状态

中／英／日是同一入口的语言变体，不重复找页面。`当前证据`只描述旧 `c2b8b17e` 目录现状；换包后全部重新核对组件、资源、包身份和截图。

| 编号／用户叫法 | 入口／驱动 | 必须保留的 Android 原生状态 | `c2b8b17e` 当前证据 |
| --- | --- | --- | --- |
| AND-01a 详情／单摘要 | `--page detail` | 已完成录音→文档→智能摘要；标题、概述、正文和生产原生＋H5 容器 | 三语原图 |
| AND-01b 详情／多摘要 | `--page detail` | 同一来源的三个摘要模板，不把不同模板误写成不同会议 | 三语原图 |
| AND-01c 详情／要点速览 | `--page detail` | 选中要点速览；与智能摘要同源，只改变总结重点 | 三语原图 |
| AND-01d 详情／转写 | `--page detail` | 选中转写 Tab；说话人、时间戳、复制／分享使用 Android 原生组件 | 三语原图；中文以 v2 为准 |
| AND-02 我的项目＋更多菜单 | `--page projects` | 11 项、首项展开、viaim Rise；菜单含新对话、资料库、置顶、编辑、项目设置、协作成员、删除 | 三语两状态原图；中文以 v2 为准 |
| AND-03 录音中／实时转写 | `--page recording` | 00:09:03、原文＋译文、底部操作区展开；需要无总结时整个总结区关闭；图片按记录元数据插入正文 | ROI 无总结三语、相机会议三语原图；相机版无旧 ROI 缩略图 |
| AND-04a 小万生成中 | `--page vitana-chat` | GLOBAL 对话；用户气泡＋部分回复、停止键、正确输入框 | 三语原图 |
| AND-04b 小万工具调用完成／展开 | `--page vitana-chat` | `answering=false`、4 次真实 Gateway 过程、完成回答操作栏和输入草稿；展开态保留调用明细 | 完成态、展开态三语原图 |
| AND-04c 小万 WorkBuddy 跟进表 | `--page vitana-chat` | WorkBuddy 卡片、Excel 结果文件和下一步草稿；仅展示，不证明真实生成／保存 | 三语原图 |
| AND-04d 小万两轮回答＋来源 | `--page vitana-chat` | 两轮问答，每条回复有来源胶囊，第二轮不被弹层遮挡 | 三语原图 |
| AND-04e 来源弹层 | `--page vitana-chat` | 在第二轮来源入口打开生产弹层，三个来源标题和 URL 与正文一致 | 三语原图 |
| AND-04f 小万空白新对话＋Agent 目录 | `--page vitana-chat` 后由 `android_agent_catalog_capture.py` 进入目录 | 未开始对话时顶部可切 Agent；目录展示可选 Agent，不沿用固定会话标题 | 两页三语原图 |
| AND-04g 客户合作跟进表预览 | 生产 `WebActivity`＋参考 HTML | 四项跟进内容；是网页预览视觉，不宣称 App 内置 Excel 编辑 | 三语原图 |
| AND-04h 小万两轮对话：结合项目、偏好、人物与承诺记忆 | `--page vitana-chat`；`work/android-vitana-7c620dfd/fixtures/vitana-memory-synthesis-{zh,ja,en}.json` | 两轮问答；第一轮自然带出既定目标与使用场景偏好，第二轮落实 Sophie／Mia 跟进与复盘指标；不加来源胶囊、不写具体国家。中文／英文：7c620dfd 新包原生组件图已内部视觉通过；日文由于该包 `vitana_ai_reply_disclaimer_desc` 缺少 `values-ja` 翻译而回退中文，图已标记不可交付，等待用户决定 | `outputs/android-vitana-7c620dfd/`；中文、英文仅内部视觉通过，用户验收待定 |
| AND-05 记录列表 | `--page records` | 默认批次中文国内黑色 Pro 2、日英海外黑色 RecDot；整段 Tab 隐藏，保留日期分组、图片数、地点、时长和底栏。**2026-10-22 特定变体**：按用户指定中英日均用国内黑色 Pro 2；首张无图片、所有卡片无地点，第三张保留 2 张图片标记；截图宿主只按 `location` 是否为空传 `showLocation` | 默认批次三语原图；特定变体中英日原图已内部视觉通过，位于 `outputs/android-records-c2b8b17e/viaim-android-records-pro2-no-first-image-no-location-{zh,en,ja}-393x852-3x.png` |
| AND-06a Rise 感知首页 | `--page agent-home` | `viaim Rise` 已连接、100%、快捷控制、倾听中、最近记录及 Android 固有“待我确认” | 三语原图 |
| AND-06b 首页侧栏 | `android_secondary_capture.py`＋`secondary-drawer-*.json` | Rise 首页打开原生侧栏；最近会话单行省略，不照搬 iOS 抽屉布局 | 三语原图 |
| AND-06c Rise 设备详情长页 | `android_secondary_capture.py`＋`secondary-device-*.json` | 白色 Rise、三项 80% 电量、手机已连／电脑未连、音频与更多设置；原生渐变连续 | 三语长图 |
| AND-06d 通知 | `android_secondary_capture.py`＋`secondary-notifications-*.json` | 三项关注和截止时间完整，描述沿用原生两行省略 | 三语原图 |
| AND-06e 现在／倾听时间轴 | `android_secondary_capture.py`＋`secondary-listening-*.json` | 三场会议、时间轴、会议分类、日历浮钮和底部实时倾听卡片 | 三语原图 |
| AND-06f 首页加号／添加记录 | `android_secondary_capture.py`＋`secondary-create-*.json` | Rise 首页遮罩＋原生添加记录 Sheet | 三语原图 |
| AND-07 全局搜索 | `--page search` | TikTok／产品内容；结果类型丰富、命中高亮正确，不全部伪装为电话录音 | 三语原图 |
| AND-08 设置长页 | `android_settings_capture.py` | Emma、账号、语言、外观、通知、存储等完整分区；真实滚动长图无接缝 | 三语长图 |
| AND-09 Pro 2／RecDot 加号录音模式 | `--page record-modes` | 中文国内 Pro 2；日英海外 RecDot；保留 Android `HomeRecordModeFragment` | 三语原图；日文以 v2 为准 |
| AND-10 自动倾听计划 | `--page listening-schedule` | 节假日开关、两个时段、倾听偏好 | 三语原图 |
| AND-11 添加倾听计划 | `--page listening-schedule-editor` | 09:00–12:00、上午、周一／二／四／五、保存 | 三语原图 |
| AND-12 任务中心 | `--page task-center`；侧栏“任务”→真实 `TaskCenterScreen` | WorkBuddy 三项任务，已完成／执行中／等待；保留 Android 标题、筛选入口、等待状态色和原生截断 | 三语原图；日英已于 2026-10-22 导出并内部视觉通过 |
| AND-13 记忆列表长页 | `android_memory_capture.py`；侧栏“记忆”→`AgentNavigation`→`AgentMemoryActivity`→`LongMemoryScreen` | 全部分类、五组十条记忆；项目／人物原生分组色，其他组沿用 Android 灰色；标题一行、内容两行省略；顶部横向分类条 | 三语长图 `1179×6346 px`；中文以 `-v2` 为准；均已内部视觉通过 |
| AND-14 项目记忆详情 | `--page memory-detail`；AND-13 点击首条项目记忆→真实 `LongMemoryDetail` | 项目标题、当前理解、状态、适用范围、有效期、关联记忆、来源依据及固定编辑按钮；来源区随原生排版位于首屏下方，不缩字硬塞 | 三语原图 `1179×2556 px`；均已内部视觉通过，日文不再暂缓 |

#### 3.3.3 Android 固定规则

- **项目名称**：输入限制按旧包代码为 20 个 UTF-16 单位；列表 `Text` 未设置单行省略。本系列用 6～13 单位短名达到单行目标，不修改生产布局。新包重新读代码判断。
- **设备名称和销售地区**：中文国内 Pro 2；已明确的海外日英为 RecDot；Rise 三语均显示 `viaim Rise`。pro2 截图模拟数据必须同时写明 `category=pro2`、`salesRegion`、device title 和 `collapsedTitle`：domestic → `Pro 2`，overseas → `viaim RecDot`／胶囊 `RecDot`。截图就绪门禁同时设置 required／forbidden 设备名，防止再次出现“日英海外图仍显示 Pro 2”。语言不等于销售地区，设备状态、颜色和图标分别冻结。
- **语言来源**：先查新包 Android 正式资源。旧包缺少部分日文键时，曾按用户对指定页面的授权把同产品 iOS 同功能键写进 Debug，并保存 provenance；该授权和旧映射不能自动覆盖新包新增正式翻译，也不能据此宣称生产资源完整。
- **跨平台参考**：iOS 图只提供场景、人物和业务事实，不复制 iOS 布局、底栏、设备名或功能词。Android 保留自己的真实 Activity／Fragment／Compose／H5 容器与交互状态。
- **截图模拟数据**：`work/android-<sha>/` 下 JSON 只提供可重复的业务内容和展示状态；`tools/android-*-adapter/<sha>-v*/` 保存与指定旧快照匹配的适配模板。不得删除 SHA 门禁后硬套新源码。

#### 3.3.4 Android 换包最短路径

1. 按用户要求先报告并确认分支、准确 SHA、作者、时间、提交主题及与默认分支关系；固定批准 SHA 后才构建。
2. 首次建立本聊天独立源码、Gradle 缓存、AVD／ADB serial、锁和 outputs；同聊天换包优先复用归属已核实的现有 AVD，不因换包或换语言重建整套环境。回读 serial 对应 AVD 名称，禁止借用另一聊天的可写目录。
3. 只按本次页面清单核对上表真实宿主、状态字段、H5、设备映射、项目截断和正式语言资源；复制旧适配器时保留其 SHA 门禁并做差异迁移。
4. 先构建、验签、安装和回读新 APK 的版本／Build／包哈希；每类先取中文首图。页面稳定后再切 App 语言连续出日英，不逐张重建。
5. 每张检查入口、状态、功能词来源、业务事实、设备名、像素、正文完整度和视觉回执。准备完成、构建成功、截图保存、内部视觉通过、用户接受分别记录。

历史 PNG、详细哈希和旧调试过程仍可在同目录 `android-*-c2b8b17e/`、`viaim-Android截图复刻索引.json` 及两个归档 Markdown 中追溯；它们只在需要审计旧证据时读取，不再参与日常入口发现。

#### 3.3.5 2026-10-21～22 续作定位表

以下文件相对于本任务根目录。`*` 为 `zh`／`en`／`ja`，内容在 `work/android-c2b8b17e/`；这里只登记现有内容与入口，换包仍按 3.3.4 迁移，不把旧 SHA 改成新 SHA 就直接运行。

| 页面 | 可复用内容文件 | 驱动／成图目录（相对 tools／outputs） |
| --- | --- | --- |
| 要点速览／转写 | `detail-highlights-*.json`／`detail-transcript-review-*.json` | `android_screenshot.py --page detail`；`android-detail-c2b8b17e/` |
| 录音相机场景 | `recording-camera-meeting-*.json` | `android_screenshot.py --page recording`；`android-recording-c2b8b17e/`；相机适配与素材依据在 `android-recording-adapter/c2b8b17e-v1/` |
| 空白小万／Agent 列表 | `vitana-empty-*.json`／`agent-catalog-*.json` | `android_screenshot.py --page vitana-chat`／`android_agent_catalog_capture.py`；`android-vitana-c2b8b17e/`／`android-agent-catalog-c2b8b17e/` |
| 小万记忆综合两轮对话（新包复用证据） | `work/android-vitana-7c620dfd/fixtures/vitana-memory-synthesis-{zh,ja,en}.json` | `android_screenshot.py --page vitana-chat`；`outputs/android-vitana-7c620dfd/`；版本／来源见 3.3.1；日文因正式提示资源缺失暂不可交付 |
| 搜索／设置长页 | `search-tiktok-*.json`／`settings-*.json` | `android_screenshot.py --page search`／`android_settings_capture.py`；`android-search-c2b8b17e/`／`android-settings-c2b8b17e/` |
| 合作跟进表二级预览 | `spreadsheet-preview/entry-*-v2.json` 及同目录 HTML | `android_spreadsheet_preview_capture.py`；`android-spreadsheet-preview-c2b8b17e/` |
| 项目列表／菜单 | `projects-rise-*.json` | `android_screenshot.py --page projects`＋`android-projects-adapter/c2b8b17e-v1/android_projects_menu_capture.py`；`android-projects-rise-c2b8b17e/` |
| 记录列表特定变体 | `records-content-pro2-no-first-image-no-location-{zh,en,ja}.json` | `android_screenshot.py --page records`；`android-records-c2b8b17e/viaim-android-records-pro2-no-first-image-no-location-{zh,en,ja}-393x852-3x.png`；中英日均显示 Pro 2 |
| 黑色 Pro 2／RecDot 加号页 | `record-modes-pro2-zh.json`／`record-modes-recdot-en.json`／`record-modes-recdot-ja.json` | `android_screenshot.py --page record-modes`；`android-record-modes-c2b8b17e/`；海外日文旧版修正图为 `viaim-android-recdot-plus-ja-v2-393x852-3x.png` |
| 自动倾听计划／添加计划 | `listening-schedule-*.json`／`listening-schedule-editor-*.json` | `android_screenshot.py --page listening-schedule`／`--page listening-schedule-editor`；对应 `android-listening-schedule-c2b8b17e/`／`android-listening-schedule-editor-c2b8b17e/` |
| 任务中心 | `task-center-*.json` | `android_screenshot.py --page task-center`；`android-task-center-c2b8b17e/viaim-android-task-center-*-393x852-3x.png` |
| 记忆列表 | `memory-list-*.json` | `android_memory_capture.py`；`android-memory-c2b8b17e/viaim-android-memory-list-*-393dp-3x.png`，中文文件末尾为 `-3x-v2.png` |
| 记忆详情 | `memory-detail-*.json` | `android_screenshot.py --page memory-detail`；`android-memory-c2b8b17e/viaim-android-memory-detail-*-393x852-3x.png` |

**任务／记忆的快速续作**：普通详情沿用 `android_screenshot.py capture --session work/android-c2b8b17e/session.json --page memory-detail --content work/android-c2b8b17e/memory-detail-ja.json --out <本聊天输出.png>`。列表沿用 `android_memory_capture.py --content work/android-c2b8b17e/memory-list-ja.json --out <本聊天输出.png>`；该旧驱动绑定当前会话，换包须迁移会话与 SHA 门禁，不能直接指向别的聊天设备。长图驱动需要带 Pillow 的 Python；本机已用运行时为 `/Users/zkj/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/bin/python3`。

记忆适配模板、六份列表／详情内容、日文资源及 provenance 保存于 `tools/android-memory-list-adapter/c2b8b17e-v1/`；真实宿主在 `app/src/debug/kotlin/tws/viaim/ui/agent/ScreenshotMemoryListActivity.kt`。生产 `LongMemoryScreen` 只增加可选 `LazyListState` 接口，默认状态与分类切换行为保留；详情没有挂载列表状态，ready 不能等待列表 `scrollBy`。Debug 内存模型不写生产数据库；关联 ID 必须解析为同批记忆标题，不能在图里露出内部 ID。

**长图验证**：记忆列表每语种由四张真实帧拼接，保留原始帧、UI XML、滚动偏移、32 px 重叠一致性和最终 PNG 哈希。只能选择像素一致的接缝，不修补／涂抹／缩放截图；连续渐变页另外检查接缝，不能套固定白底拼接。失败的初版中文只留诊断帧，不交付；三语最终图和元数据均为 `visual_review_passed`，用户验收仍单独记录。

**本轮确认的日文补充**：正式 Android 资源缺失时，本用户已允许参考 iOS；记忆详情额外批准 `long_memory_detail=メモリーの詳細`、`long_memory_status_active=有効`、`long_memory_scope=適用範囲`、`long_memory_until=有効期限`、`long_memory_no_until=無期限`、`long_memory_related=関連するメモリー`。只写 Debug 截图资源并记录来源，新包正式译文优先；这不代表整页所有未显示字段都已有日文。Agent 列表的 Android 独有提示已批准：“最初のメッセージを送信する前に切り替えられます。送信が受け付けられると、選択した実行先に固定されます。”同样不冒充生产资源。

**安装空间故障避免重复**：匹配包不重装；更新前分别检查宿主磁盘与 AVD `/data`，APK 大小不等于覆盖安装峰值。2026-10-22 的约 340 MB APK 在 `/data` 余量约 1.0 GB 时仍无法覆盖安装；清理已授权七个应用的编译缓存仅释放约 101 MB，截图应用再次清理为 0，不能把“清理过”当作空间充足。优先正常 `install -r`；只有确认是旧包与新包并存空间问题、已备份并校验回滚 APK 和应用数据后，才采用保留数据替换，失败回装旧包。本次保留数据替换成功，不需清理其他应用或重建 AVD。不得直接删除应用数据、扩大清理范围或反复重试无效清理。

## 4. 复用优先：同包续作与换包分开

- **同包只换内容／语言**：复用已验入口、资源映射、匹配包和本聊天设备；不重复找页面、不复制整套环境、不新建模拟器、不自动重装。
- **新源码／新包**：确认来源、版本／Build、准确 SHA 和未提交改动；保留旧快照，隔离新源码及可写依赖／构建缓存。按上表一次核对要用的宿主、状态、字段、语言／H5资源与截断规则，仅适配变化项，按已有授权集中构建一次，不一张一编译。
- **缓存依据**：实际构建输入（源码／资源／依赖／工程／脚本／适配）＋工具链／SDK／配置，不能只看文件名或 SHA。记录请求 SHA、实际构建 SHA、输入哈希、包哈希及版本／Build；匹配成品可复制复用，不共享正在写的缓存。Android 当前保守指纹与 SHA 门禁按第 3.3 节执行，不假设已支持跨版本免编译。
- **只有普通 IPA／App**：先确认真实手动入口或对应源码与适配；Release 未必支持 Debug 注入。不能运行旧截图包冒充新包。新包每类先验中文，已通过的其他项不重复重拍。

源码、可写依赖、DerivedData／Gradle缓存、场景和输出按聊天隔离；不覆盖用户改动，不用可写硬链接／依赖软链接借用另一任务。只共享只读资源与已发布成品。新版本准备成本单列，不摊入每张热截图后称为正常耗时。

## 5. 运行与故障：只管理本聊天设备

优先复用明确归属的设备。Apple 身份是 device set＋UDID，默认 set 的不同 UDID 也可独立；Android 是专属 AVD＋ADB serial，回读名称防端口复用。普通新 session、换语言／包不新建设备。

Apple 使用 simulator_queue.py／simulator-lease.mjs，显式传设备身份；Android按 serial 加锁。**同设备串行，不同设备可并行；故障只停本项。** Booted 不代表被占用。没有合适设备时单独准备；已绑定 Shutdown 设备在已有运行授权下最多启动一次，超时／状态变化不反复启停。

截图中禁止自动 kill／kickstart、adb kill-server、shutdown all、删锁、清缓存、改系统语种或要求重启 Mac。共享服务恢复必须另行诊断、协调、授权并取得全机独占锁；不把截图任务扩大成基础设施修复。

## 6. 按需查技术资料，不把历史塞回流程

日常只读本手册一次；已核对且条件未变不重复读。首次使用 Apple 执行器、新入口／新容器或遇故障时，再查 [Apple 技术细则](viaim-截图执行细则.md)，不要混用平台工具。Apple 单设备锁见细则第 9 节。Android 的日常入口、状态、换包、语种和证据边界已合并到第 3.3 节；旧 Android Markdown 仅在追溯历史命令或哈希时打开。

Apple 入口：/Users/zkj/Documents/Codex/2026-07-28/viaim-ios-poc-ios-1-2/tools/market_screenshots.mjs；Android 入口：/Users/zkj/Documents/Codex/2026-10-13/users-zkj-documents-codex-2026-07/tools/android_screenshot.py。运行前核对当前能力与本任务 session，不照抄旧裸命令／固定 Build。

当前边界：iOS 原生正文终态自动门禁仍未完成，必须验图；中央 Apple catalog 尚未统一接管所有小万与二级页面入口，本轮源码内截图模拟数据和路由换包须核对或迁移。Android 的丰富入口历史基线是 `c2b8b17e`，普通源码登记为 `caadb440`；本次只按用户确认复用 `7c620dfd` 并重新验证 AND-04h，不能将这项确认扩展为其他页面／后续包的批准。AND-04h 中文、英文图已内部视觉通过，用户验收待定；日文因正式提示资源缺失而阻止交付，旧日文缺失键曾按指定页面授权写入 Debug 资源，只对当次证据成立；**日文项目 recdot-v2、日文录音 v3 因功能文案自译已撤回通过**，不能据旧图恢复其通过状态。新语种、平板、方向各自验收，不能跨平台继承结论。

**维护原则**：主手册只留影响下一次执行的规则、默认规格和稳定入口；同一规则写一次。旧耗时、错误日志、测试项、修复过程留在现有细则／复盘，不再作为日常必读；新增硬规则时合并旧条目，不不断追加“更新／纠错”。仅改文档不能宣称自动化已实现或速度已实测提升。本目录为唯一维护入口，旧目录兼容手册同步。
