Skip to content

feat(buddy): 补齐内置浏览器基础体验 - #243

Closed
QAyong wants to merge 1 commit into
useLexora:masterfrom
QAyong:codex/feature-builtin-browser
Closed

QAyong wants to merge 1 commit into
useLexora:masterfrom
QAyong:codex/feature-builtin-browser

Conversation

@QAyong

@QAyong QAyong commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

背景与关联 / Context and related issue

  • 问题或目标 / Problem or goal: 在内置浏览器里打开视频站点后点击视频无法进入页面。静态检查发现新窗口、下载、文件选择与网站权限请求被统一拦截,没有区分用户主动操作与 AI 操作,正常网页功能会表现成"点了没反应",而且拦截之后界面上看不到原因和重试入口。
  • 关联 Issue / Related issue: N/A

主要改动 / Changes

  • 变更 / Change:
    • 弹窗与新窗口:区分用户手势与 AI 操作,用户点击触发的窗口按原来源重放,其余拦截并给出可见提示。
    • 文件上传与下载:用户手势下的文件选择、下载写盘、开始/完成/取消/失败提示;AI 操作仍拦截并提示。
    • 网页对话框:接管页面之前抑制 alert/confirm 并提示,避免页面被对话框卡住。
    • 响应式预览:新增视口宽高与缩放控制、设备尺寸预设与自定义尺寸校验,画布自动适配,可退出预览回到常规布局。
    • 状态与提示:桌面浏览器状态扩展 favicon、viewport、openedFrom、documentVersion、download;新增统一提示与重试入口,区分加载失败、网页进程退出、无响应与证书错误。
    • 新增 E2E 用例(浏览边界、弹窗导航、响应式预览、浏览完成度)与单元测试(地址栏、工具栏菜单、提示、视口)。

验证 / Verification

  • 自动检查 / Automated checks: buddy 的 unit/runtime 新增用例;.playwright/scripts/__tests__/browser*.e2e.mjs 端到端用例。
  • 手动验证 / Manual verification: 在内置浏览器打开视频站点点击播放、点击外链观察弹窗、上传文件、下载文件、切换响应式预览并调整尺寸。
  • 未执行 / Not run: 完整发布预检与安装包验收未做;完整 pnpm lint 未执行。

兼容与风险 / Compatibility and risks

  • 浏览器状态与 schema 的新增字段都是可选的,前后端版本不一致时保持向后兼容。
  • 安全策略默认仍拦截 AI 发起的敏感动作,只对可识别的用户手势放开;拦截一律给出可见原因,避免出现"无反应"。

界面变更 / UI changes

  • 浏览器工具栏新增响应式预览与缩放入口;页面内新增下载、上传、弹窗与加载状态提示。

@QAyong

QAyong commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

先关闭这个 PR,说明原因,避免留一个无法编译的 PR 占用审阅时间。

本改动依赖同批次尚未提交的"浏览器元素引用/选区引用"代码(BrowserElementPicker、browserSelection、documentVersion 与 invalidateElementReferences 等),单独基于 master 无法自洽:它会引用到上游不存在的符号。这不是上游的问题,是我这一侧提交顺序没安排好。

后续计划:先合入引用体系相关的 PR,再把内置浏览器这部分作为独立 PR 重新提交(届时基点是包含引用代码的最新 master)。给维护者带来额外噪音,抱歉。

@QAyong QAyong closed this Oct 8, 2026
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.

1 participant