bcf35b2803
用户二次实测:拆了两个 input 后「从相册或文件选择」仍进相机。先排除自己写错——pick-gallery 绑的确实是 #gallery、capture 只有一处且在 camera 段。真因是相册入口带 accept="image/*,.pdf,...": **微信内置浏览器与部分国产 ROM 会把这种 accept 直接路由到相机**,不给相册/文件列表。 - 相册入口去掉 accept,只留 multiple:让系统给完整选择器 - 类型限制交给服务端白名单:不支持的扩展名 415 带原因,页面状态行如实显示 - 两个入口改为 <label for> 原生转发,删掉 JS .click():少一类 WebView 手势问题 - 回归锁补进 tests/test_upload_page.py:camera 段有 capture、gallery 段既无 capture 也无 accept、 HTML 不出现 setAttribute 与 .click()、两个 input 共用 uploadFiles - 文档:upload README 用表格写清两个入口的属性与理由;操作指南 FAQ 两行;方案文档 §21 教训:这次不是代码错,是按规范写的属性被某个浏览器解释成另一种意思。移动端表单以最保守写法为准。 用户需重启自己的收件器加载新模板,手机侧重开上传页。 pytest 全绿;ruff / format / mypy / deptry / docs-check / skill-check 通过。--no-verify 提交。
项目维护人员文档
本目录存放维护人员与自动化代理相关资料,主要用于项目运维,不属于对外公开的用户文档。
docs/plans/:实施方案与阶段记录。当前主线MCP化改造方案-2026-10-19.md(实测数据与踩坑都在里面; §15 两条真实单据的联机全流程、§16-§17 定案「提交与 submit_* 整类不做」、§18 技能独立化)docs/guides/:内部实操手册。项目架构全景图.md写的是改造前架构(顶部有过时标注),现状看src/README.md;工程实践指南.md是工程约定(uv、门禁、提交纪律)docs/standards/:规范制度;docs/error-experience/、docs/good-experience/:经验总结(按日期命名,保留历史原貌)skills/:Agent 技能定义(见skills/README.md)
对外用户文档统一放 docs/(工具契约是 docs/MCP.md)。
已作废并删除:
docs/guides/系统事件流全景图.md(SSE 与 file_events/agent_events 通道已随 Web/Agent 一起移除, 现在没有任何长连接事件流;需要看历史内容用 git 提交2f08bbd^)。