paths

Scripts should use stored_path so the same relative name resolves on the machine the run starts from and on workers.

  • If DISTRIBUTED_OUTPUT_DIR is set (go slot / drive result root), that join wins when the file exists, and is the default for new writes
  • Otherwise the path is under the project root. setup --rsync copies the Manifest directory, which can be a parent of that project root on a workspace member (minus .distsshkit/)

cache_file stores a blob at .distsshkit/cache/sha256/<sha256> keyed by file_sha256. Identical contents share one file. Project setup --rsync still excludes .distsshkit/. Call push_cache! to rsync those blobs onto SSH hosts (no --delete; extra remote hashes stay). Optional hashes= limits the list. Empty local cache is a no-op success.

Also: go, drive, stored_path.