@zgeoff/atc 2.26.4 → 2.26.6

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": "@zgeoff/atc",
3
- "version": "2.26.4",
3
+ "version": "2.26.6",
4
4
  "description": "Terminal control tower for coding-agent sessions",
5
5
  "homepage": "https://github.com/zgeoff/atc#readme",
6
6
  "bugs": "https://github.com/zgeoff/atc/issues",
@@ -302,8 +302,11 @@ export class ImpProvider implements ExecutionProvider {
302
302
 
303
303
  // oxlint-disable-next-line prefer-readonly-parameter-types -- archive bytes have no readonly form
304
304
  readonly transferArchive = async (archive: Uint8Array, dir: string, host?: string) => {
305
+ // The archive records the daemon host's owners. Commands in an imp run as
306
+ // root, and root's tar keeps those owners, which git there then refuses
307
+ // as dubious ownership, so the unpacked files take the guest user's owner.
305
308
  const result = await this.runOnHost(host, {
306
- argv: ['sh', '-c', 'mkdir -p "$1" && tar -x -f - -C "$1"', 'sh', dir],
309
+ argv: ['sh', '-c', 'mkdir -p "$1" && tar -x --no-same-owner -f - -C "$1"', 'sh', dir],
307
310
  stdin: archive,
308
311
  });
309
312
 
@@ -646,10 +649,11 @@ interface ImpHost {
646
649
  }
647
650
 
648
651
  function buildImpSessionName(sessionID: string): string {
652
+ // The prefix plus 28 chars stays inside the 32-char session limit.
649
653
  return `atc-${sessionID
650
654
  .toLowerCase()
651
655
  .replaceAll(/[^a-z0-9]/g, '')
652
- .slice(0, 32)}`;
656
+ .slice(0, 28)}`;
653
657
  }
654
658
 
655
659
  // Short enough that the socket's path stays inside a unix socket's limit.