Remove Ask/Execute modes and general product tool approvals so requests use the selected runtime, enabled capabilities, and execution account permissions. Migrate retired application metadata while preserving user content. Retire the Results page while retaining conversation images and stored artifacts. Add local and remote workspace file imports, timestamps and sorting, improve image discovery and saving, and refine workspace navigation and supervision responsiveness. Include the accompanying web-search changes, tests, probes, and product documentation. Remote imports require an updated Agent. Existing artifacts are not automatically copied into project directories. Validation evidence and outstanding failures remain documented in feature progress files; no full test suite or real-model calls were rerun for this commit. Release note: Run requests without switching work modes, import files into a selected local or remote workspace folder, sort workspace files by date, and keep using conversation images after removal of the Results page.
4.3 KiB
工作区文件导入与时间
产品与交互
FR-WF1:工作区展示当前项目执行目录内的实际文件。成果页、工作栏注册项和独立成果导入入口
已移除。旧布局只过滤 results 实例,保留其他实例、目标、展开状态和宽度;若活动实例被移除,
按现有布局规则选择第一个保留实例。
FR-WF2:文件页提供“导入文件”。初始目标为项目根目录;点击树中的目录后以该目录为目标, 点击文件后以其父目录为目标,“浏览此目录”同时更新目标。目标路径常显,打开选择器后固定 本次项目与目标,不因切换会话或项目改变写入位置。本机从选定文件复制字节,远程上传到所选 Host 的项目目录。支持二进制和空文件,不调用文档解析器,也不创建 artifact 数据库记录。
同名文件不覆盖。批次逐项处理,失败后继续其余文件;成功数量、目标和失败原因通过应用通知 显示。写入失败时尝试移除本次新建的部分文件,清理失败则报告残留路径。取消文件选择不写入, 导入期间禁用重复提交。完成后刷新目录。当前不提供传输中取消或进度百分比。
FR-WF3:名称默认升序。名称、修改时间和有可用数据时的创建时间列均可点击切换排序;首次
选择时间列按最新优先。每一级目录独立排序且目录优先,缺失时间放在同类条目末尾,显示 -。
每目录沿用最多 500 条的读取上限,排序只覆盖已读取条目,截断提示保留。窄栏横向滚动仅发生在
文件视口,工具栏保持可见。
US-WF1:选中子目录后导入二进制及空文件,目录刷新后可见,原文件不变。同名项失败而已有 内容保留;成功项仍落在所选目录。
US-WF2:切换排序后文件按真实文件系统时间显示;不支持创建时间的文件系统不显示创建时间列, 混合数据中缺失值保留为空。Linux 的 inode 状态变更时间不冒充创建时间。
US-WF3:升级前会话图片在聊天和重新打开应用后仍可读取;打开工作区不会把会话图片或附件复制 到项目目录。生成的普通文件由 Runtime 文件工具写入工作区并出现在同一目录列表。
存储与实现
WorkspaceFilesPanel → preload workspace.importFiles(projectId, path) → Main
workspace:import-files 验证发送方与共享路径契约,固定项目执行空间并打开原生文件选择器。
importWorkspaceFiles 使用已有 WorkspaceAccess.manage,先独占创建目标,再以 256 KiB
块读取和写入;每次写入检查目标大小与偏移。内存不随文件总大小增长。文件大小受磁盘和权限
约束,不沿用旧成果导入的预览类型与大小限制。
远程复用 RemoteWorkspaceAccess、ProtocolRemoteWorkspaceTransport 和 Agent
workspace/manage。新增 importFile 动作的 Base64 块受共享 schema 限制,完整请求低于
1 MiB 控制帧上限。该动作需要含本次源码的新 Agent;旧 Agent 会拒绝新动作并报告失败,
不能声称旧版已支持上传。文件读取和既有管理操作仍走原通路。
本机目录按条目读取 lstat,远程复用 Agent 已有目录元数据;两端传递 mtime 和有效正值
birthtime。缺失 birthtime 时省略 createdAt,从不回退为 ctime。Renderer 不逐文件发 IPC。
现有 artifacts 表包含 createImageArtifact 保存的内联图片、会话上传源图引用以及旧导入
内容,并非项目文件索引。移除成果页不迁移、不删除这些记录;artifacts.get/list、消息
artifactIds、图片恢复与编辑读取保留。图片生成结果继续作为会话图片保存;需要实际图片文件
时由 save_image 使用会话图片 ID 显式保存到 Runtime 主机的指定路径,远程项目写到远程 Host,
不需要成果页。引用发现与保存契约见图片保存工具。
不会自动给旧图片批量创建文件,也不会把聊天附件
复制到项目。图片工具仍接受其既有路径契约,本次未修改生成或保存工具的运行权限。
验收命令与实际验证边界记录在进度。