impel-cli 0.19.0 → 0.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "impel-cli",
3
- "version": "0.19.0",
3
+ "version": "0.19.1",
4
4
  "description": "Prepare isolated Claude and Codex workspaces for every accessible Impel tenant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -40,6 +40,14 @@ function writePrivate(filePath, contents) {
40
40
  try { fs.chmodSync(filePath, 0o600); } catch { /* Best effort on Windows. */ }
41
41
  }
42
42
 
43
+ function localTarEnvironment() {
44
+ // macOS libarchive serializes extended attributes into AppleDouble `._*`
45
+ // entries unless copyfile metadata is explicitly disabled. Those synthetic
46
+ // files make a clean transferred repository appear dirty on Linux even when
47
+ // tar's --no-xattrs option is present.
48
+ return { ...process.env, COPYFILE_DISABLE: "1" };
49
+ }
50
+
43
51
  export function inspectRepository(requestedPath = process.cwd()) {
44
52
  const requested = path.resolve(requestedPath);
45
53
  const candidate = fs.realpathSync(requested);
@@ -98,7 +106,7 @@ export function createRepositoryTransfer(state, repository) {
98
106
  "--no-xattrs",
99
107
  "--null",
100
108
  "-T", paths.fileList,
101
- ], { cwd: repository.root });
109
+ ], { cwd: repository.root, env: localTarEnvironment() });
102
110
  return paths;
103
111
  }
104
112
 
@@ -278,7 +286,7 @@ export function transferSessionCheckpoint(state, { provider, sessionId, tenantId
278
286
  try {
279
287
  runCapture(process.env.IMPEL_REMOTE_TAR_BIN || "tar", [
280
288
  "-cf", checkpointArchive, "--no-xattrs", "--null", "-T", checkpointList,
281
- ], { cwd: localRoot });
289
+ ], { cwd: localRoot, env: localTarEnvironment() });
282
290
  sshCapture(state, `mkdir -p ${remoteRoot}`);
283
291
  runInteractive(process.env.IMPEL_REMOTE_SSH_BIN || "ssh", sshArgs(state, `tar -xf - -C ${remoteRoot}`), {
284
292
  inputFile: checkpointArchive,