Skip to content

sandbox create --from fails on build context files with paths longer than 100 bytes #705

@raktes

Description

@raktes

Agent Diagnostic

  • Loaded openshell-cli skill, reproduced the failure with a build context containing files with paths > 100 bytes
  • Traced the error to crates/openshell-bootstrap/src/build.rs:196create_build_context_tar() uses Header::set_path() which on GNU headers only supports paths ≤ 100 bytes (the name field size)
  • Confirmed with a standalone reproducer using tar = "0.4" that Builder::append_data() handles longer paths correctly via GNU LongName extensions
  • Checked git history: build.rs has had no functional changes since initial creation — bug is present on all versions through current main
  • Agent cannot resolve this — requires a code change in openshell-bootstrap

Description

openshell sandbox create --from <dir> fails when the build context contains files with paths longer than 100 bytes.

Reproduction Steps

mkdir -p ctx/a/deeply/nested/directory/path/that/exceeds/one/hundred/bytes/total/from/the/build/context/root/to/the/filename
echo test > ctx/a/deeply/nested/directory/path/that/exceeds/one/hundred/bytes/total/from/the/build/context/root/to/the/filename/f.txt
echo "FROM ubuntu:24.04" > ctx/Dockerfile
openshell sandbox create --from ctx/ --name test

Environment

  • OpenShell: 0.0.19 (also confirmed on current main)
  • OS: Linux aarch64 / macOS
  • Docker Engine 27.x

Logs

Error:   × failed to set tar entry path: a/deeply/nested/directory/path/that/exceeds/
  │ one/hundred/bytes/total/from/the/build/context/root/to/the/filename/f.txt
  ╰─▶ provided value is too long when setting path for a/deeply/nested/
      directory/path/that/exceeds/one/hundred/bytes/total/from/the/build/
      context/root/to/

Agent-First Checklist

  • I pointed my agent at the repo and had it investigate this issue
  • I loaded relevant skills (e.g., debug-openshell-cluster, debug-inference, openshell-cli)
  • My agent could not resolve this — the diagnostic above explains why

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions