Skip to content

fix: separate Omo from Recallo and restore validated experience - #39

Draft
MaxHan7 wants to merge 58 commits into
mainfrom
codex/omo-independent-app
Draft

fix: separate Omo from Recallo and restore validated experience#39
MaxHan7 wants to merge 58 commits into
mainfrom
codex/omo-independent-app

Conversation

@MaxHan7

@MaxHan7 MaxHan7 commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

变更摘要

  • 保留团队最新后端、PostgreSQL、staging 与知识库改动,并恢复已验收的 Omo 首页、刮刮乐和三档滑动自评交互。
  • 修复真实首张截图上传后首页近乎全部不可点击的问题:空库、处理中、失败与通知叠卡状态都保留菜单、知识库和上传入口。
  • 建立可恢复的异步截图任务:快速接收、Postgres 持久化、状态轮询、明确失败、同 ID 重试、幂等去重、worker lease / heartbeat / attempt fencing。
  • 保留 Omo 独立身份 com.maxhan.omo;只部署 Railway staging,并发布独立 Omo TestFlight 1.0 (2)

根因

此前 Simulator 验收依赖预置卡片,没有走真实空库上传分支。真实 AI 同步请求超时后没有生成卡片,而空库收藏夹本身不是 Button、上传又被全局 isCreating 锁住、处理状态只存在内存,因此用户看到“正在处理”后几乎所有入口失效,杀 App 后任务又静默消失。

范围与非目标

  • 范围:Omo iOS 核心入口、上传任务生命周期、失败恢复、知识库任务状态、UI 自动化、staging migration / worker、独立 TestFlight 发布。
  • 非目标:不修改 Railway production;不修改或分发旧 Recallo;不合并到 main;不提交密钥、IPA 或用户截图。
  • Share Extension 的首次 AI 授权跳转仍是 PRD 待产品确认边界,本次不以错误身份或假成功方式实现。

合同与迁移

  • 新增 POST /api/screenshot-jobs、任务列表/详情和同 ID retry;旧 /api/sources/image-flow 继续保留兼容。
  • 新增 migration 003-create-screenshot-jobs.sql;Railway staging 在启动部署前自动执行 migration。
  • 截图只在任务执行与可重试期间保存;成功后服务端和客户端都会清理原图,公开任务响应不返回原图或 attempt token。
  • worker 只有持有当前 attempt token 才能完成任务,并用 heartbeat 延长 lease,避免旧 worker 覆盖重试结果。

验证证据

  • 后端:npm run check && npm run test:all,59 通过、0 失败、1 项仅因本机没有真实 Postgres 测试地址而跳过。
  • 文档:26 个 Markdown、187 个 wiki links 全部通过;git diff --check 通过。
  • iOS:49 项 XCTest / UI Test 通过、0 失败、0 跳过;包含空库、处理中、失败、刮开、自评和持久入口 5 条 UI Test。
  • 真实 staging:migration 001/002/003、readiness 和异步截图 API 通过;提供的截图成功生成过 canonical 卡片,测试卡随后删除。
  • 真实失败恢复:App 上传遇到模型 60 秒超时后显示可重试;点击重试回到处理中,菜单/知识库/上传仍可点;杀 App 后任务仍存在。
  • Release:1.0 (2) Archive 与 App Store 导出通过;IPA 审计为 Bundle com.maxhan.omo、staging URL、正式签名、get-task-allow=false
  • TestFlight:Omo App ID 6799407458,build a387a603-dc77-4dda-b0a3-862e1d490936VALID / IN_BETA_TESTING,只加入独立 Omo 内部组并开启自动通知。

当前剩余验收

  • 分支内实现、自动化、staging 与 Release 发布已经完成。
  • 临时计划 plans/codex-omo-independent-app.md 已标记为 blocked(98%):等待产品方在实体手机安装 build 2,按 PRD 完成 TestFlight 手势验收,并确认 Share Extension 首次授权流程;收到反馈后恢复计划。

安全边界

  • Railway production 保持无服务,未部署也未修改。
  • 旧 Recallo App、Build、测试组和测试员均未触碰。
  • 代码仅位于 codex/omo-independent-app,PR 继续面向 main,未直接修改主分支。
  • 合并要求:使用 merge commit,不使用 squash merge,以保留计划生命周期与验证提交。
    \n\n### Release 验收补充\n\n- 当前分支同一套 49 项已在 Release 优化配置下再次通过,0 失败、0 跳过。\n- 普通 Release 构建已确认不包含 OMO_TESTING Fixture 或 localhost 回退。\n- 8 张空库、处理中、失败、知识库、刮开和自评关键状态截图已保存在 docs/assets/core-interaction-release/,索引见 docs/core-interaction-release-validation.md

starvingarc and others added 30 commits July 29, 2026 21:11
Preserve the existing upload, detail, store, and active-recall flows while replacing the former system list with the approved Figma knowledge-library UI. Add complete-card browsing, adaptive measured pagination, text and voice search contracts, explicit Debug fixtures, production-safe unavailable adapter, recovery states, accessibility behavior, tests, PRD, and Simulator evidence.
MaxHan7 added 28 commits August 8, 2026 02:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants