Show only modification time beside file names and share its space with hover actions. Remove the creation-time column and fixed minimum tree width to keep narrow workspace panels compact. Release note: Workspace file lists now show only modification time and keep file names stable when more actions appear.
4.6 KiB
工作区文件导入与时间
产品与交互
FR-WF1:工作区展示当前项目执行目录内的实际文件。成果页、工作栏注册项和独立成果导入入口
已移除。旧布局只过滤 results 实例,保留其他实例、目标、展开状态和宽度;若活动实例被移除,
按现有布局规则选择第一个保留实例。
FR-WF2:文件页在“新建文件”后提供“导入文件”小图标按钮,悬停提示包含动作和目标目录,导入期间禁用并更新可访问名称。初始目标为项目根目录;点击树中的目录后以该目录为目标, 点击文件后以其父目录为目标,“浏览此目录”同时更新目标。目标路径常显,打开选择器后固定 本次项目与目标,不因切换会话或项目改变写入位置。本机从选定文件复制字节,远程上传到所选 Host 的项目目录。支持二进制和空文件,不调用文档解析器,也不创建 artifact 数据库记录。
同名文件不覆盖。批次逐项处理,失败后继续其余文件;成功数量、目标和失败原因通过应用通知 显示。写入失败时尝试移除本次新建的部分文件,清理失败则报告残留路径。取消文件选择不写入, 导入期间禁用重复提交。完成后刷新目录。当前不提供传输中取消或进度百分比。
FR-WF3:文件列表仅显示名称和修改时间,不显示创建时间列。名称默认升序,两列均可点击切换排序;首次
选择时间列按最新优先。每一级目录独立排序且目录优先,缺失时间放在同类条目末尾,显示 -。
每目录沿用最多 500 条的读取上限,排序只覆盖已读取条目,截断提示保留。修改时间常显月日和时分,
悬停显示完整日期时间;行悬停、键盘聚焦或菜单展开时,在时间位置显示更多操作,文件名宽度保持不变。
窄栏中文件名省略,不因时间列撑宽列表。
US-WF1:选中子目录后导入二进制及空文件,目录刷新后可见,原文件不变。同名项失败而已有 内容保留;成功项仍落在所选目录。
US-WF2:切换排序后文件按真实修改时间显示;即使文件系统提供创建时间,列表也只显示修改时间。
缺失修改时间显示 -。文件夹使用目录本身的修改时间,不递归计算子文件的最新时间。
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,
不需要成果页。引用发现与保存契约见图片保存工具。
不会自动给旧图片批量创建文件,也不会把聊天附件
复制到项目。图片工具仍接受其既有路径契约,本次未修改生成或保存工具的运行权限。
验收命令与实际验证边界记录在进度。