指南
发布与导出更改
了解自动发布、冲突、压缩和宿主机导出格式。
自动发布
调用 exec_command 时不提供 workspace_session_id,会创建 finalize 策略为 publish_then_destroy 的自动会话。最后一个命令进入终态后,运行时捕获文件系统增量、尝试发布,然后销毁会话。
sandbox-runtime-cli --sandbox-id eos-abc exec_command "printf 'ready\n' > status.txt"
sandbox-runtime-cli --sandbox-id eos-abc file_read --path status.txt未指定会话的文件写入和编辑也会直接发布为一个带操作归因的层。未指定会话的读取始终投影最新已发布快照。
显式会话
命令和文件操作可以按 ID 指向现有工作区会话。此类会话会跨操作保留私有更改,并且不使用自动 finalize。其生命周期和 teardown 操作属于内部协调接口,因此本文档不会把它们呈现为公开 CLI 或 MCP 命令。
拆除显式管理的会话会丢弃未发布更改。集成接口必须拥有会话生命周期,并决定何时应当捕获和发布。
捕获与冲突
捕获把私有 upper 目录变成候选增量。发布会将该增量与更新的持久历史进行解决,然后要么添加一个不可变层,要么拒绝整个更改集。它并不是最后写入者胜出的文件复制。
发布被拒绝时,请检查最新快照,从新的基础状态重新执行工作,并在预期更改出现在已发布层栈之前避免导出。工作区协调章节解释全量成功或全量拒绝的路径。
压缩层历史
压缩会用等价的扁平层替换每个符合条件的已发布区段,并把活动会话在线重新挂载到更短的层链。它保留可见文件系统结果;这是维护操作,不是发布。
sandbox-manager-cli squash_layerstacks --sandbox-id eos-abc
sandbox-observability-cli layerstack --sandbox-id eos-abc导出到宿主机
export_changes 使用新值优先、理解 whiteout 的语义折叠基础层以上的全部已发布层。目录格式把增量应用到宿主机绝对目标;tar 格式写入归档文件。
sandbox-manager-cli export_changes --sandbox-id eos-abc --dest /absolute/path/to/destination
sandbox-manager-cli export_changes --sandbox-id eos-abc --dest /tmp/delta.tar --format tar
sandbox-manager-cli export_changes --sandbox-id eos-abc --dest /tmp/delta.tar.zst --format tar-zst内部 export_layerstack 和 read_export_chunk 请求是管理器操作使用的实现细节,并非公开工具。只导出到确实要应用已发布层栈增量的目标。
