移动端自动化体验优化
围绕 Issue #57:移动端报告展示、链接上下文补齐与自动修改仓库(PR闭环)
优化移动端报告头栏、链接上下文与自动提PR
移动端UX报告生成上下文检索链接解析GitHub自动化
TL;DR
- 移动端报告页顶部栏建议改为“下滑隐藏、上滑出现”,显著增加可读区域,并保留返回/目录等关键入口(具体实现需结合现有前端栈,当前无法在线核验)。
- 报告质量问题的核心是“未抓取链接内容 + 未注入任务上下文”:应新增服务端 URL 解析/抽取(OG/Readability/GitHub API),并把来源片段以可追溯方式喂给生成器。
- 从“只产出报告”升级为“产出报告 + 提PR”:让系统在分支上自动落地可验证的改动(lint/test通过后开PR),默认人工审核合并,降低风险。
Key Insights
- 顶部栏常驻在移动端会挤占首屏与滚动阅读空间;“scroll down hide / scroll up show”是成熟模式,但需处理抖动、回弹(iOS Safari)、以及 safe-area-inset-top。
- “未获取到对应链接的信息”往往不是模型问题,而是抓取链路缺失或放在前端导致 CORS/权限受限;最佳实践是服务端抓取 + 缓存 + 超时控制,并对域名做 allowlist 防 SSRF。
- “没有结合上下文”需要把任务相关的 repo/issue/历史决策做成 context bundle:不仅拼接文本,还要保留来源(URL/文件路径/commit/时间戳)以便审计与回溯。
- “自动操作修改仓库”属于工程自动化与安全问题:应先明确允许改动类型、分支保护与CI基线;在无法在线核验现有规则的前提下,建议从低风险文件(文档/配置)试点。
Playbook
- 移动端顶部栏:实现基于滚动方向的显隐(transform: translateY + requestAnimationFrame/节流),支持“轻触显示/滚动隐藏”,并处理 iOS 安全区与地址栏收缩带来的 viewport 变化。
- 链接信息获取:落地“URL unfurl 服务”(输入URL→输出title/description/image/正文摘录/站点名),优先 OpenGraph,其次 Readability 抽取;对 GitHub 链接走 GitHub API(issue/PR/文件内容)拿结构化数据。
- 上下文注入:构建 context pack(任务描述、相关链接摘要、repo相关文件片段、最近变更/相关issue摘要),用“检索→去重→压缩→引用标注”的流水线喂给生成;报告中展示“信息来源卡片/引用列表”。
- 自动改仓库:把生成分成“计划(plan)→补丁(patch)→验证(validate)→提交PR(publish)”,在隔离环境跑格式化/lint/测试;失败则退化为“建议diff + 手动应用”。
Diagrams
Options
- 顶部栏显隐:方案A 用 headroom.js/react-headroom 快速落地;方案B 自研滚动方向检测(更可控但需处理边界);方案C 仅在阅读模式隐藏(交互更简单但收益较小)。
- 链接解析深度:方案A 只做 OG/标题/摘要(快、稳定);方案B 加 Readability 正文抽取(信息更全但耗时、失败率更高);方案C 针对 GitHub/Notion/语雀等做专用适配器(效果最佳但开发成本高)。
- 上下文构建:方案A 规则拼接(路径/关键词/最近变更)快速起步;方案B 引入向量检索(Qdrant/pgvector)覆盖大仓库;方案C 建“上下文清单/manifest”让任务显式声明所需资料(最可控)。
- 自动改仓库:方案A 只输出可应用 diff;方案B 自动建分支+开PR(推荐,风险可控);方案C 自动合并(仅适合强约束、强测试覆盖的场景)。
Expert Views
- 移动端前端工程师(paraphrase):优先使用成熟的 scroll 处理方案或最小 JS,避免频繁 setState 造成掉帧;动画用 transform,事件监听要 passive,并在 iOS 上验证回弹与地址栏收缩场景。
- LLM 应用工程师(paraphrase):报告缺上下文时模型会“合理化补全”,应把链接抓取与 repo 片段作为可追溯证据注入;生成时强制“仅基于提供材料”并输出引用,减少幻觉。
- DevOps/平台工程师(paraphrase):自动改仓库要把权限与执行环境做成可审计流水线,建议用 GitHub App/Actions+最小权限 token,只开PR不直推主分支,并强制CI通过。
- 安全/合规负责人(paraphrase):URL 抓取必须防 SSRF/内网探测,做域名 allowlist、DNS/IP 校验、超时与大小限制;对第三方内容存储与展示要注意版权与合规边界。
Evidence & Confidence
- “下滑隐藏/上滑出现”顶部栏能改善移动阅读面积与沉浸感:high(业界常见模式,技术实现成熟)。
- 服务端 unfurl(OG/Readability)能补齐链接信息并提升报告相关性:medium(收益明确,但受链接类型、反爬、超时与抽取成功率影响)。
- 通过 context pack / RAG 注入 repo 与历史上下文可降低无关输出与幻觉:medium(需要检索策略与提示词约束,且要评估token成本)。
- 自动提PR闭环整体可行但落地成本取决于现有CI、分支保护与权限策略:medium(当前无法在线核验仓库/流水线现状,需PoC验证)。
Next Steps
- 明确验收标准:顶部栏隐藏/显示阈值、动画时长、返回/目录入口保留方式;确定是否需“阅读模式”。
- 先做链接解析 MVP:后端新增 URL unfurl 接口(缓存、超时、allowlist、SSRF防护),优先支持普通网页OG与GitHub链接;报告里展示来源卡片与抓取时间。
- 上下文打包试点:用 GitHub API 拉取 issue/PR/相关文件片段,形成 context pack;生成时要求“逐条引用来源”,并把引用落在报告末尾。
- PR 自动化试点:选“文档/配置类”改动打通分支+PR流程(生成patch、运行lint/test、创建PR、回链issue),默认人工review合并,并记录审计日志。
Details (Optional)
Details
TL;DR
- 移动端报告页顶部栏建议改为“下滑隐藏、上滑出现”,显著增加可读区域,并保留返回/目录等关键入口(具体实现需结合现有前端栈,当前无法在线核验)。
- 报告质量问题的核心是“未抓取链接内容 + 未注入任务上下文”:应新增服务端 URL 解析/抽取(OG/Readability/GitHub API),并把来源片段以可追溯方式喂给生成器。
- 从“只产出报告”升级为“产出报告 + 提PR”:让系统在分支上自动落地可验证的改动(lint/test通过后开PR),默认人工审核合并,降低风险。
Key Insights
- 顶部栏常驻在移动端会挤占首屏与滚动阅读空间;“scroll down hide / scroll up show”是成熟模式,但需处理抖动、回弹(iOS Safari)、以及 safe-area-inset-top。
- “未获取到对应链接的信息”往往不是模型问题,而是抓取链路缺失或放在前端导致 CORS/权限受限;最佳实践是服务端抓取 + 缓存 + 超时控制,并对域名做 allowlist 防 SSRF。
- “没有结合上下文”需要把任务相关的 repo/issue/历史决策做成 context bundle:不仅拼接文本,还要保留来源(URL/文件路径/commit/时间戳)以便审计与回溯。
- “自动操作修改仓库”属于工程自动化与安全问题:应先明确允许改动类型、分支保护与CI基线;在无法在线核验现有规则的前提下,建议从低风险文件(文档/配置)试点。
Playbook
- 移动端顶部栏:实现基于滚动方向的显隐(transform: translateY + requestAnimationFrame/节流),支持“轻触显示/滚动隐藏”,并处理 iOS 安全区与地址栏收缩带来的 viewport 变化。
- 链接信息获取:落地“URL unfurl 服务”(输入URL→输出title/description/image/正文摘录/站点名),优先 OpenGraph,其次 Readability 抽取;对 GitHub 链接走 GitHub API(issue/PR/文件内容)拿结构化数据。
- 上下文注入:构建 context pack(任务描述、相关链接摘要、repo相关文件片段、最近变更/相关issue摘要),用“检索→去重→压缩→引用标注”的流水线喂给生成;报告中展示“信息来源卡片/引用列表”。
- 自动改仓库:把生成分成“计划(plan)→补丁(patch)→验证(validate)→提交PR(publish)”,在隔离环境跑格式化/lint/测试;失败则退化为“建议diff + 手动应用”。
Expert Views
- 移动端前端工程师(paraphrase):优先使用成熟的 scroll 处理方案或最小 JS,避免频繁 setState 造成掉帧;动画用 transform,事件监听要 passive,并在 iOS 上验证回弹与地址栏收缩场景。
- LLM 应用工程师(paraphrase):报告缺上下文时模型会“合理化补全”,应把链接抓取与 repo 片段作为可追溯证据注入;生成时强制“仅基于提供材料”并输出引用,减少幻觉。
- DevOps/平台工程师(paraphrase):自动改仓库要把权限与执行环境做成可审计流水线,建议用 GitHub App/Actions+最小权限 token,只开PR不直推主分支,并强制CI通过。
- 安全/合规负责人(paraphrase):URL 抓取必须防 SSRF/内网探测,做域名 allowlist、DNS/IP 校验、超时与大小限制;对第三方内容存储与展示要注意版权与合规边界。
Options
- 顶部栏显隐:方案A 用 headroom.js/react-headroom 快速落地;方案B 自研滚动方向检测(更可控但需处理边界);方案C 仅在阅读模式隐藏(交互更简单但收益较小)。
- 链接解析深度:方案A 只做 OG/标题/摘要(快、稳定);方案B 加 Readability 正文抽取(信息更全但耗时、失败率更高);方案C 针对 GitHub/Notion/语雀等做专用适配器(效果最佳但开发成本高)。
- 上下文构建:方案A 规则拼接(路径/关键词/最近变更)快速起步;方案B 引入向量检索(Qdrant/pgvector)覆盖大仓库;方案C 建“上下文清单/manifest”让任务显式声明所需资料(最可控)。
- 自动改仓库:方案A 只输出可应用 diff;方案B 自动建分支+开PR(推荐,风险可控);方案C 自动合并(仅适合强约束、强测试覆盖的场景)。
Evidence & Confidence
- “下滑隐藏/上滑出现”顶部栏能改善移动阅读面积与沉浸感:high(业界常见模式,技术实现成熟)。
- 服务端 unfurl(OG/Readability)能补齐链接信息并提升报告相关性:medium(收益明确,但受链接类型、反爬、超时与抽取成功率影响)。
- 通过 context pack / RAG 注入 repo 与历史上下文可降低无关输出与幻觉:medium(需要检索策略与提示词约束,且要评估token成本)。
- 自动提PR闭环整体可行但落地成本取决于现有CI、分支保护与权限策略:medium(当前无法在线核验仓库/流水线现状,需PoC验证)。
Next Steps
- 明确验收标准:顶部栏隐藏/显示阈值、动画时长、返回/目录入口保留方式;确定是否需“阅读模式”。
- 先做链接解析 MVP:后端新增 URL unfurl 接口(缓存、超时、allowlist、SSRF防护),优先支持普通网页OG与GitHub链接;报告里展示来源卡片与抓取时间。
- 上下文打包试点:用 GitHub API 拉取 issue/PR/相关文件片段,形成 context pack;生成时要求“逐条引用来源”,并把引用落在报告末尾。
- PR 自动化试点:选“文档/配置类”改动打通分支+PR流程(生成patch、运行lint/test、创建PR、回链issue),默认人工review合并,并记录审计日志。
Sources
- Headroom.js / react-headroom(滚动隐藏头部):https://github.com/WickyNilliams/headroom.js https://github.com/KyleAMathews/react-headroom
- MDN:Scroll 事件与最佳实践 / IntersectionObserver / position: sticky:https://developer.mozilla.org/docs/Web/API/Document/scroll_event https://developer.mozilla.org/docs/Web/API/Intersection_Observer_API https://developer.mozilla.org/docs/Web/CSS/position
- Open Graph 协议与元数据抓取工具:https://ogp.me/ https://github.com/microlinkhq/metascraper https://github.com/mozilla/readability
- GitHub REST API:创建PR/更新文件内容:https://docs.github.com/en/rest/pulls/pulls#create-a-pull-request https://docs.github.com/en/rest/repos/contents#create-or-update-file-contents
Sources
- Headroom.js / react-headroom(滚动隐藏头部):https://github.com/WickyNilliams/headroom.js https://github.com/KyleAMathews/react-headroom
- MDN:Scroll 事件与最佳实践 / IntersectionObserver / position: sticky:https://developer.mozilla.org/docs/Web/API/Document/scroll_event https://developer.mozilla.org/docs/Web/API/Intersection_Observer_API https://developer.mozilla.org/docs/Web/CSS/position
- Open Graph 协议与元数据抓取工具:https://ogp.me/ https://github.com/microlinkhq/metascraper https://github.com/mozilla/readability
- GitHub REST API:创建PR/更新文件内容:https://docs.github.com/en/rest/pulls/pulls#create-a-pull-request https://docs.github.com/en/rest/repos/contents#create-or-update-file-contents
Closing Summary
- 结论:优化移动端报告头栏、链接上下文与自动提PR
- 下一步:先补齐现有前端与生成管线信息,再按“UI体验→链接/上下文→自动改仓库”三阶段迭代落地。
One next action
先补齐现有前端与生成管线信息,再按“UI体验→链接/上下文→自动改仓库”三阶段迭代落地。