Skip to content

修复移动端 Web 控件可访问性问题#122

Merged
xintaofei merged 1 commit intoxintaofei:mainfrom
pia:fix/121-mobile-web-ui-controls
Apr 27, 2026
Merged

修复移动端 Web 控件可访问性问题#122
xintaofei merged 1 commit intoxintaofei:mainfrom
pia:fix/121-mobile-web-ui-controls

Conversation

@pia
Copy link
Copy Markdown
Contributor

@pia pia commented Apr 26, 2026

变更内容

  • 将 workspace 外壳固定到视口,避免移动端浏览器把整个应用外壳滚出屏幕。
  • 给消息滚动容器增加 overscroll-contain,减少滚动链传递到页面本身。
  • 让侧边栏项目目录的新建会话 + 按钮在无 hover 的触摸设备上保持可见,并增大触摸区域。

Fixes #121

验证

  • pnpm build
  • pnpm eslint src/app/workspace/layout.tsx src/components/conversations/sidebar-conversation-list.tsx src/components/message/virtualized-message-thread.tsx
  • cargo build --bin codeg-server --no-default-features

备注:当前 Windows 工作区全量 pnpm eslint . 会被既有 CRLF 换行符触发的 Prettier Delete ␍ 报错卡住,和本次改动逻辑无关。

@pia pia marked this pull request as ready for review April 27, 2026 00:12
@xintaofei
Copy link
Copy Markdown
Owner

感谢佬的pr

@xintaofei xintaofei merged commit 38952be into xintaofei:main Apr 27, 2026
xintaofei added a commit that referenced this pull request Apr 27, 2026
- feat(acp): persist in-flight session state across tab close/reopen, browser refresh, and reconnects. The streaming reply, active tool calls, pending permission prompts, plan updates, modes and usage all rehydrate from a backend snapshot, with `seq`-based deduplication against the live event stream.
- feat(acp): harden the connection lifecycle with an idle sweep, spawn deduplication mutex, serialized prompt sends, and a close-error state machine; sends are cancelled on failure and stuck spawns no longer wedge the session.
- feat(acp): keep open conversation tabs alive via a frontend keepalive so connections aren't reaped while the user is still looking at them.
- feat(acp): create the conversation row on the first prompt and emit a `conversation_linked` event, eliminating duplicate rows when the same prompt is sent twice in quick succession.
- fix(web-server): release the listening port reliably on shutdown and surface stale-port state instead of silently failing to restart.
- fix(web): fall back to a clipboard shim on non-secure contexts so copy actions work over plain HTTP.
- fix(workspace-state): apply the cold-scan snapshot after stream restarts and catch up missed deltas when re-acquiring within the shutdown grace window.
- fix(mobile-web): improve mobile web UI control accessibility. Thanks to @pia for contributing this fix in #122.

-----------------------------
# 发布版本 0.11.0

- 新增(ACP):会话进行中关闭/重开标签页、浏览器刷新或重连后,流式回复、进行中的工具调用、待确认的权限请求、计划更新、模式与用量信息均可从后端快照恢复,并通过 `seq` 与实时事件流去重对账,不再丢失现场;
- 新增(ACP):连接生命周期加固,引入空闲清理、spawn 去重锁、Prompt 串行发送和关闭错误状态机;发送失败时自动取消,避免 spawn 阻塞导致会话卡死;
- 新增(ACP):前端为打开中的会话标签维持 keepalive,避免用户仍在查看时连接被回收;
- 新增(ACP):首次发送 Prompt 时由后端创建会话行并发出 `conversation_linked` 事件,消除短时间内重复触发产生的重复会话;
- 修复(Web 服务器):关闭时可靠释放监听端口,并对端口残留状态给出明确反馈,避免静默重启失败;
- 修复(Web):在非安全上下文(如纯 HTTP)下使用兜底剪贴板实现,确保复制功能可用;
- 修复(工作区状态):流重启后应用冷扫描快照,并在关闭宽限期内重新接入时补齐遗漏的增量;
- 修复(移动端 Web):改善移动端 Web 控件的可访问性,感谢 @pia#122 中贡献此修复。
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.

移动端 Web UI 控件可访问性问题

2 participants