@amalgm/shell 0.1.35 → 0.1.37

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.
@@ -1 +1 @@
1
- {"version":3,"file":"materialized-graph.js","sourceRoot":"","sources":["../src/materialized-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"materialized-graph.js","sourceRoot":"","sources":["../src/materialized-graph.ts"],"names":[],"mappings":"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"}
package/dist/pty-host.js CHANGED
@@ -23,7 +23,7 @@ export function createPtyHost(config) {
23
23
  randomHex: (bytes) => randomBytes(bytes).toString("hex"),
24
24
  isAbsolutePath: isAbsolute,
25
25
  defaultCwd: config.env.AMALGM_DEFAULT_CWD || config.defaultCwd,
26
- shell: config.env.SHELL || (platform() === "win32" ? "powershell.exe" : "/bin/zsh"),
26
+ shell: hostShell(config.env),
27
27
  env: config.env,
28
28
  });
29
29
  const api = createPtyApi(manager);
@@ -60,17 +60,47 @@ export function createPtyHost(config) {
60
60
  },
61
61
  close() {
62
62
  manager.closeAll();
63
+ for (const client of wss.clients)
64
+ client.terminate();
65
+ wss.close();
63
66
  },
64
67
  };
65
68
  }
69
+ function hostShell(env) {
70
+ if (env.SHELL)
71
+ return env.SHELL;
72
+ if (platform() === "win32")
73
+ return env.ComSpec || env.COMSPEC || "cmd.exe";
74
+ return "/bin/zsh";
75
+ }
66
76
  function adaptProcess(proc) {
77
+ let released = false;
78
+ const release = () => {
79
+ if (released)
80
+ return;
81
+ released = true;
82
+ try {
83
+ proc.kill();
84
+ }
85
+ catch {
86
+ // A process may have completed before native teardown reaches it.
87
+ }
88
+ };
67
89
  return {
68
90
  pid: proc.pid,
69
91
  write: (data) => proc.write(data),
70
92
  resize: (cols, rows) => proc.resize(cols, rows),
71
- kill: () => proc.kill(),
93
+ kill: release,
72
94
  onData: (listener) => proc.onData(listener),
73
- onExit: (listener) => proc.onExit(listener),
95
+ onExit: (listener) => proc.onExit((event) => {
96
+ try {
97
+ listener(event);
98
+ }
99
+ finally {
100
+ if (platform() === "win32")
101
+ release();
102
+ }
103
+ }),
74
104
  };
75
105
  }
76
106
  function adaptPeer(ws) {
@@ -1 +1 @@
1
- {"version":3,"file":"pty-host.js","sourceRoot":"","sources":["../src/pty-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pty-host.js","sourceRoot":"","sources":["../src/pty-host.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@ export async function callRuntimeCommand(input, path, body) {
41
41
  headers: {
42
42
  "content-type": "application/json",
43
43
  "x-amalgm-runtime-token": token,
44
+ "connection": "close",
44
45
  },
45
46
  body: JSON.stringify(body),
46
47
  });
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-command-host.js","sourceRoot":"","sources":["../src/runtime-command-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-command-host.js","sourceRoot":"","sources":["../src/runtime-command-host.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ interface GroundRow {
20
20
  readonly modifiedTimeMs: number | null;
21
21
  readonly changedTimeMs: number | null;
22
22
  readonly filesystemMode: number | null;
23
+ readonly contentVerifiedAtMs: number | null;
23
24
  }
24
25
  export interface DetectScanEvidence {
25
26
  readonly rootId: string;
@@ -194,9 +194,9 @@ export class UserGroundHost {
194
194
  }
195
195
  }
196
196
  async activateRuntimeTunnel(gatewayPort, runtimeToken) {
197
- await this.flush();
198
- this.wire.configureRuntime({ gatewayPort, runtimeToken });
199
- await this.wire.open();
197
+ // Files convergence and Watch/Detect own ground currency. Advertising an
198
+ // HTTP tunnel must never trigger or wait for a second filesystem pass.
199
+ await this.wire.advertiseRuntime({ gatewayPort, runtimeToken });
200
200
  }
201
201
  async stopRuntimeTunnel() {
202
202
  this.wire.configureRuntime({});
@@ -220,16 +220,16 @@ export class UserGroundHost {
220
220
  if (this.rescanTimer)
221
221
  clearTimeout(this.rescanTimer);
222
222
  this.rescanTimer = null;
223
- await this.flushObservedChanges();
223
+ // Full suspicion already contains every callback that could still be
224
+ // queued. Retire physical coverage before the final observation so native
225
+ // backends cannot continuously widen a finite shutdown pass. Changes
226
+ // after this cutoff belong to the next startup blind interval.
224
227
  this.watchHost.close();
225
- if (this.rescanTimer)
226
- clearTimeout(this.rescanTimer);
227
- this.rescanTimer = null;
228
228
  await this.flushObservedChanges();
229
229
  await this.wire.close();
230
230
  }
231
231
  userRoot(identity) {
232
- return scopedAmalgmDir(this.options.amalgmRoot, identity.userEmail);
232
+ return resolve(scopedAmalgmDir(this.options.amalgmRoot, identity.userEmail));
233
233
  }
234
234
  cacheDir(identity) {
235
235
  return join(liveMachineStateDir(this.userRoot(identity), identity.deviceId), "content");
@@ -759,6 +759,7 @@ function initializeDatabase(file) {
759
759
  modified_time_ms REAL,
760
760
  changed_time_ms REAL,
761
761
  filesystem_mode INTEGER,
762
+ content_verified_at_ms REAL,
762
763
  UNIQUE(resource_id, root_uuid, relative_path)
763
764
  );
764
765
  CREATE TABLE IF NOT EXISTS cloud_outbox (
@@ -779,6 +780,7 @@ function initializeDatabase(file) {
779
780
  ["modified_time_ms", "REAL"],
780
781
  ["changed_time_ms", "REAL"],
781
782
  ["filesystem_mode", "INTEGER"],
783
+ ["content_verified_at_ms", "REAL"],
782
784
  ];
783
785
  for (const [name, type] of fingerprintColumns) {
784
786
  if (!currentEntityColumns.has(name))
@@ -798,7 +800,8 @@ function readRows(file) {
798
800
  relative_path AS relativePath, absolute_path AS absolutePath,
799
801
  device_number AS deviceNumber, inode,
800
802
  byte_size AS byteSize, modified_time_ms AS modifiedTimeMs,
801
- changed_time_ms AS changedTimeMs, filesystem_mode AS filesystemMode
803
+ changed_time_ms AS changedTimeMs, filesystem_mode AS filesystemMode,
804
+ content_verified_at_ms AS contentVerifiedAtMs
802
805
  FROM entities ORDER BY uuid
803
806
  `).all();
804
807
  }
@@ -852,8 +855,8 @@ function persistRows(file, identity, resourceId, rootUUID, rows, previousRows =
852
855
  INSERT INTO entities(
853
856
  uuid, resource_id, root_uuid, type, parent_uuid, name, status, version, payload_version,
854
857
  transport_version, relative_path, absolute_path, device_number, inode
855
- , byte_size, modified_time_ms, changed_time_ms, filesystem_mode
856
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
858
+ , byte_size, modified_time_ms, changed_time_ms, filesystem_mode, content_verified_at_ms
859
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
857
860
  ON CONFLICT(uuid) DO UPDATE SET
858
861
  resource_id = excluded.resource_id,
859
862
  root_uuid = excluded.root_uuid,
@@ -871,7 +874,8 @@ function persistRows(file, identity, resourceId, rootUUID, rows, previousRows =
871
874
  byte_size = excluded.byte_size,
872
875
  modified_time_ms = excluded.modified_time_ms,
873
876
  changed_time_ms = excluded.changed_time_ms,
874
- filesystem_mode = excluded.filesystem_mode
877
+ filesystem_mode = excluded.filesystem_mode,
878
+ content_verified_at_ms = excluded.content_verified_at_ms
875
879
  `);
876
880
  const remove = database.prepare("DELETE FROM entities WHERE uuid = ? AND resource_id = ? AND root_uuid = ?");
877
881
  const previousByUuid = new Map(previousRows.map((row) => [row.uuid, row]));
@@ -895,7 +899,8 @@ function persistRows(file, identity, resourceId, rootUUID, rows, previousRows =
895
899
  || old.byteSize !== row.byteSize
896
900
  || old.modifiedTimeMs !== row.modifiedTimeMs
897
901
  || old.changedTimeMs !== row.changedTimeMs
898
- || old.filesystemMode !== row.filesystemMode;
902
+ || old.filesystemMode !== row.filesystemMode
903
+ || old.contentVerifiedAtMs !== row.contentVerifiedAtMs;
899
904
  });
900
905
  const replace = database.transaction(() => {
901
906
  replaceIdentity.run(identity.userId, identity.userEmail, identity.deviceId);
@@ -904,7 +909,7 @@ function persistRows(file, identity, resourceId, rootUUID, rows, previousRows =
904
909
  remove.run(old.uuid, resourceId, rootUUID);
905
910
  }
906
911
  for (const row of changed)
907
- upsert.run(row.record.uuid, resourceId, rootUUID, row.record.type, row.record.parentUUID, row.record.name, row.record.status, row.record.version, row.record.payloadVersion, row.record.transportVersion, row.relativePath, row.absolutePath, row.deviceNumber, row.inode, row.byteSize, row.modifiedTimeMs, row.changedTimeMs, row.filesystemMode);
912
+ upsert.run(row.record.uuid, resourceId, rootUUID, row.record.type, row.record.parentUUID, row.record.name, row.record.status, row.record.version, row.record.payloadVersion, row.record.transportVersion, row.relativePath, row.absolutePath, row.deviceNumber, row.inode, row.byteSize, row.modifiedTimeMs, row.changedTimeMs, row.filesystemMode, row.contentVerifiedAtMs);
908
913
  });
909
914
  replace();
910
915
  }
@@ -999,6 +1004,13 @@ function sameStatFingerprint(row, stats) {
999
1004
  && row.changedTimeMs === stats.ctimeMs
1000
1005
  && row.filesystemMode === stats.mode;
1001
1006
  }
1007
+ function reusableDuringCompleteCatchUp(row, stats) {
1008
+ if (!sameStatFingerprint(row, stats))
1009
+ return false;
1010
+ if (row.type === "workspace" || row.type === "folder" || row.type === "repo.git")
1011
+ return true;
1012
+ return row.contentVerifiedAtMs !== null && stats.mtimeMs < row.contentVerifiedAtMs;
1013
+ }
1002
1014
  /** The binding is the durable machine-local declaration of an external root.
1003
1015
  * Registration and Watch both derive their roots from this one inventory, so
1004
1016
  * correctness never depends on receiving the reference-rendering OS event. */
@@ -1147,6 +1159,7 @@ function scanRoot(input) {
1147
1159
  modifiedTimeMs: row.modifiedTimeMs,
1148
1160
  changedTimeMs: row.changedTimeMs,
1149
1161
  filesystemMode: row.filesystemMode,
1162
+ contentVerifiedAtMs: row.contentVerifiedAtMs,
1150
1163
  })),
1151
1164
  referenceWorkspaceIds: existingRows
1152
1165
  .filter((row) => row.type === "reference" && row.payloadVersion && UUID.test(row.payloadVersion))
@@ -1167,6 +1180,7 @@ function scanRoot(input) {
1167
1180
  absolutePath: rootPath,
1168
1181
  payloadVersion: null,
1169
1182
  transportVersion: null,
1183
+ contentVerifiedAtMs: null,
1170
1184
  ...statFingerprint(rootStats),
1171
1185
  });
1172
1186
  const touchesSuspicion = (path) => suspects === null
@@ -1211,7 +1225,7 @@ function scanRoot(input) {
1211
1225
  const uuid = existing?.uuid || randomUUID();
1212
1226
  const stableDuringCompleteCatchUp = suspects === null
1213
1227
  && existing !== undefined
1214
- && sameStatFingerprint(existing, stats);
1228
+ && reusableDuringCompleteCatchUp(existing, stats);
1215
1229
  const observe = existing === undefined
1216
1230
  || (suspects === null ? !stableDuringCompleteCatchUp : touchesSuspicion(relativePath));
1217
1231
  if (!observe && suspects === null)
@@ -1236,7 +1250,8 @@ function scanRoot(input) {
1236
1250
  : undefined;
1237
1251
  let type;
1238
1252
  let payloadVersion = null;
1239
- if (!observe && existing) {
1253
+ let contentVerifiedAtMs = existing?.contentVerifiedAtMs ?? null;
1254
+ if (!observe && existing && !stats.isDirectory()) {
1240
1255
  type = existing.type;
1241
1256
  payloadVersion = existing.payloadVersion;
1242
1257
  if (type === "reference" && payloadVersion && UUID.test(payloadVersion)) {
@@ -1294,6 +1309,8 @@ function scanRoot(input) {
1294
1309
  else {
1295
1310
  continue;
1296
1311
  }
1312
+ if (observe && !stats.isDirectory())
1313
+ contentVerifiedAtMs = Date.now();
1297
1314
  entries.push({
1298
1315
  uuid,
1299
1316
  type,
@@ -1303,6 +1320,7 @@ function scanRoot(input) {
1303
1320
  absolutePath,
1304
1321
  payloadVersion,
1305
1322
  transportVersion: null,
1323
+ contentVerifiedAtMs,
1306
1324
  ...statFingerprint(stats),
1307
1325
  });
1308
1326
  if (stats.isDirectory() && !stats.isSymbolicLink()) {
@@ -1355,6 +1373,7 @@ function scanRoot(input) {
1355
1373
  modifiedTimeMs: entry.modifiedTimeMs,
1356
1374
  changedTimeMs: entry.changedTimeMs,
1357
1375
  filesystemMode: entry.filesystemMode,
1376
+ contentVerifiedAtMs: entry.contentVerifiedAtMs,
1358
1377
  };
1359
1378
  });
1360
1379
  const persistCurrentRows = () => {
@@ -1709,6 +1728,8 @@ async function materializeRecords(input) {
1709
1728
  record,
1710
1729
  relativePath,
1711
1730
  absolutePath,
1731
+ contentVerifiedAtMs: ["file.text", "file.binary", "link", "reference"]
1732
+ .includes(record.type) ? Date.now() : null,
1712
1733
  ...statFingerprint(stats),
1713
1734
  };
1714
1735
  });
@@ -1750,6 +1771,7 @@ function installCloudWorkspaceReferences(input) {
1750
1771
  record: reference,
1751
1772
  relativePath: slashPath(relative(userRoot, link.referencePath)),
1752
1773
  absolutePath: link.referencePath,
1774
+ contentVerifiedAtMs: Date.now(),
1753
1775
  ...statFingerprint(stats),
1754
1776
  },
1755
1777
  });
@@ -1796,6 +1818,7 @@ function installCloudWorkspaceReferences(input) {
1796
1818
  },
1797
1819
  relativePath: parent.relativePath,
1798
1820
  absolutePath: parent.absolutePath,
1821
+ contentVerifiedAtMs: null,
1799
1822
  ...statFingerprint(stats),
1800
1823
  };
1801
1824
  });