@intentic/machine 1.343.0 → 1.345.0
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/README.md +134 -29
- package/dist/autostart/autostart.d.ts +0 -1
- package/dist/autostart/autostart.d.ts.map +1 -1
- package/dist/autostart/autostart.js +3 -9
- package/dist/autostart/autostart.js.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +4 -21
- package/dist/commands.js.map +1 -1
- package/dist/device/commands.d.ts +2 -1
- package/dist/device/commands.d.ts.map +1 -1
- package/dist/device/commands.js +4 -2
- package/dist/device/commands.js.map +1 -1
- package/dist/device/connection.d.ts.map +1 -1
- package/dist/device/connection.js +27 -9
- package/dist/device/connection.js.map +1 -1
- package/dist/device/grant.d.ts +259 -0
- package/dist/device/grant.d.ts.map +1 -1
- package/dist/device/mcp.d.ts.map +1 -1
- package/dist/device/mcp.js +25 -8
- package/dist/device/mcp.js.map +1 -1
- package/dist/device/router.d.ts +484 -225
- package/dist/device/router.d.ts.map +1 -1
- package/dist/device/router.js +18 -10
- package/dist/device/router.js.map +1 -1
- package/dist/device/sandbox-rounds/keeper.d.ts +4 -1
- package/dist/device/sandbox-rounds/keeper.d.ts.map +1 -1
- package/dist/device/sandbox-rounds/keeper.js +12 -6
- package/dist/device/sandbox-rounds/keeper.js.map +1 -1
- package/dist/device/sandbox-rounds/sleep.d.ts +15 -2
- package/dist/device/sandbox-rounds/sleep.d.ts.map +1 -1
- package/dist/device/sandbox-rounds/sleep.js +68 -13
- package/dist/device/sandbox-rounds/sleep.js.map +1 -1
- package/dist/device/tools/agent.d.ts +15 -0
- package/dist/device/tools/agent.d.ts.map +1 -1
- package/dist/device/tools/agent.js +75 -19
- package/dist/device/tools/agent.js.map +1 -1
- package/dist/device/tools/android.d.ts +1 -1
- package/dist/device/tools/android.d.ts.map +1 -1
- package/dist/device/tools/android.js +17 -8
- package/dist/device/tools/android.js.map +1 -1
- package/dist/device/tools/browser.d.ts.map +1 -1
- package/dist/device/tools/browser.js +3 -5
- package/dist/device/tools/browser.js.map +1 -1
- package/dist/device/tools/ic-binary.d.ts +1 -1
- package/dist/device/tools/ic-binary.d.ts.map +1 -1
- package/dist/device/tools/ic-binary.js +6 -4
- package/dist/device/tools/ic-binary.js.map +1 -1
- package/dist/device/tools/programs/app-wait-tools.d.ts +12 -0
- package/dist/device/tools/programs/app-wait-tools.d.ts.map +1 -0
- package/dist/device/tools/programs/app-wait-tools.js +60 -0
- package/dist/device/tools/programs/app-wait-tools.js.map +1 -0
- package/dist/device/tools/programs/app-wait.d.ts +19 -0
- package/dist/device/tools/programs/app-wait.d.ts.map +1 -0
- package/dist/device/tools/programs/app-wait.js +89 -0
- package/dist/device/tools/programs/app-wait.js.map +1 -0
- package/dist/device/tools/programs/file-changes.d.ts +2 -0
- package/dist/device/tools/programs/file-changes.d.ts.map +1 -0
- package/dist/device/tools/programs/file-changes.js +19 -0
- package/dist/device/tools/programs/file-changes.js.map +1 -0
- package/dist/device/tools/programs/programs.d.ts +12 -0
- package/dist/device/tools/programs/programs.d.ts.map +1 -1
- package/dist/device/tools/programs/programs.js +13 -12
- package/dist/device/tools/programs/programs.js.map +1 -1
- package/dist/device/tools/programs/stop-all.d.ts +10 -0
- package/dist/device/tools/programs/stop-all.d.ts.map +1 -0
- package/dist/device/tools/programs/stop-all.js +52 -0
- package/dist/device/tools/programs/stop-all.js.map +1 -0
- package/dist/device/tools/sandboxes.d.ts +1 -0
- package/dist/device/tools/sandboxes.d.ts.map +1 -1
- package/dist/device/tools/sandboxes.js +4 -1
- package/dist/device/tools/sandboxes.js.map +1 -1
- package/dist/device/tools/shell.d.ts +1 -1
- package/dist/device/tools/shell.d.ts.map +1 -1
- package/dist/install.d.ts +6 -0
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +7 -2
- package/dist/install.js.map +1 -1
- package/dist/keyring/app-commands.d.ts +15 -0
- package/dist/keyring/app-commands.d.ts.map +1 -0
- package/dist/keyring/app-commands.js +247 -0
- package/dist/keyring/app-commands.js.map +1 -0
- package/dist/keyring/commands.d.ts +1 -1
- package/dist/keyring/commands.d.ts.map +1 -1
- package/dist/keyring/commands.js +26 -32
- package/dist/keyring/commands.js.map +1 -1
- package/dist/keyring/git-helper.d.ts +8 -0
- package/dist/keyring/git-helper.d.ts.map +1 -0
- package/dist/keyring/git-helper.js +60 -0
- package/dist/keyring/git-helper.js.map +1 -0
- package/dist/keyring/keyring-status.d.ts +8 -1
- package/dist/keyring/keyring-status.d.ts.map +1 -1
- package/dist/keyring/keyring-status.js +39 -4
- package/dist/keyring/keyring-status.js.map +1 -1
- package/dist/keyring/native-host-install.d.ts +28 -0
- package/dist/keyring/native-host-install.d.ts.map +1 -0
- package/dist/keyring/native-host-install.js +99 -0
- package/dist/keyring/native-host-install.js.map +1 -0
- package/dist/keyring/relay.d.ts +5 -1
- package/dist/keyring/relay.d.ts.map +1 -1
- package/dist/keyring/relay.js +16 -0
- package/dist/keyring/relay.js.map +1 -1
- package/dist/keyring/sandbox-push.d.ts +4 -0
- package/dist/keyring/sandbox-push.d.ts.map +1 -0
- package/dist/keyring/sandbox-push.js +21 -0
- package/dist/keyring/sandbox-push.js.map +1 -0
- package/dist/keyring/service.d.ts +11 -5
- package/dist/keyring/service.d.ts.map +1 -1
- package/dist/keyring/service.js +34 -51
- package/dist/keyring/service.js.map +1 -1
- package/dist/resident/resident.d.ts +1 -0
- package/dist/resident/resident.d.ts.map +1 -1
- package/dist/resident/resident.js +9 -0
- package/dist/resident/resident.js.map +1 -1
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +22 -1
- package/dist/status.js.map +1 -1
- package/dist/sync/attach-commands.d.ts.map +1 -1
- package/dist/sync/attach-commands.js +2 -1
- package/dist/sync/attach-commands.js.map +1 -1
- package/dist/sync/binary/mutagen-binary.d.ts +4 -0
- package/dist/sync/binary/mutagen-binary.d.ts.map +1 -0
- package/dist/sync/binary/mutagen-binary.js +65 -0
- package/dist/sync/binary/mutagen-binary.js.map +1 -0
- package/dist/sync/commands.d.ts +2 -1
- package/dist/sync/commands.d.ts.map +1 -1
- package/dist/sync/commands.js +29 -64
- package/dist/sync/commands.js.map +1 -1
- package/dist/sync/config.d.ts +19 -1
- package/dist/sync/config.d.ts.map +1 -1
- package/dist/sync/config.js +19 -4
- package/dist/sync/config.js.map +1 -1
- package/dist/sync/exec.d.ts +17 -0
- package/dist/sync/exec.d.ts.map +1 -1
- package/dist/sync/exec.js +56 -2
- package/dist/sync/exec.js.map +1 -1
- package/dist/sync/forget-command.js +1 -1
- package/dist/sync/forget-command.js.map +1 -1
- package/dist/sync/git-bridge.d.ts +35 -3
- package/dist/sync/git-bridge.d.ts.map +1 -1
- package/dist/sync/git-bridge.js +201 -16
- package/dist/sync/git-bridge.js.map +1 -1
- package/dist/sync/gone-watch.d.ts +1 -0
- package/dist/sync/gone-watch.d.ts.map +1 -1
- package/dist/sync/gone-watch.js +20 -7
- package/dist/sync/gone-watch.js.map +1 -1
- package/dist/sync/low-disk.d.ts +25 -0
- package/dist/sync/low-disk.d.ts.map +1 -0
- package/dist/sync/low-disk.js +91 -0
- package/dist/sync/low-disk.js.map +1 -0
- package/dist/sync/mirror.d.ts +2 -0
- package/dist/sync/mirror.d.ts.map +1 -1
- package/dist/sync/mirror.js +76 -27
- package/dist/sync/mirror.js.map +1 -1
- package/dist/sync/mutagen-env.d.ts +9 -0
- package/dist/sync/mutagen-env.d.ts.map +1 -0
- package/dist/sync/mutagen-env.js +25 -0
- package/dist/sync/mutagen-env.js.map +1 -0
- package/dist/sync/mutagen-move.d.ts +53 -0
- package/dist/sync/mutagen-move.d.ts.map +1 -0
- package/dist/sync/mutagen-move.js +207 -0
- package/dist/sync/mutagen-move.js.map +1 -0
- package/dist/sync/mutagen.d.ts +13 -10
- package/dist/sync/mutagen.d.ts.map +1 -1
- package/dist/sync/mutagen.js +60 -113
- package/dist/sync/mutagen.js.map +1 -1
- package/dist/sync/project/project-commands.d.ts.map +1 -1
- package/dist/sync/project/project-commands.js +2 -1
- package/dist/sync/project/project-commands.js.map +1 -1
- package/dist/sync/project/project-delivery.d.ts.map +1 -1
- package/dist/sync/project/project-delivery.js +2 -1
- package/dist/sync/project/project-delivery.js.map +1 -1
- package/dist/sync/project/project-remote.d.ts.map +1 -1
- package/dist/sync/project/project-remote.js +2 -1
- package/dist/sync/project/project-remote.js.map +1 -1
- package/dist/sync/report.d.ts.map +1 -1
- package/dist/sync/report.js +15 -4
- package/dist/sync/report.js.map +1 -1
- package/dist/sync/uninstall.d.ts +9 -0
- package/dist/sync/uninstall.d.ts.map +1 -0
- package/dist/sync/uninstall.js +76 -0
- package/dist/sync/uninstall.js.map +1 -0
- package/dist/uninstall/command.d.ts +3 -0
- package/dist/uninstall/command.d.ts.map +1 -0
- package/dist/uninstall/command.js +40 -0
- package/dist/uninstall/command.js.map +1 -0
- package/dist/uninstall/distros.d.ts +8 -0
- package/dist/uninstall/distros.d.ts.map +1 -0
- package/dist/uninstall/distros.js +103 -0
- package/dist/uninstall/distros.js.map +1 -0
- package/dist/uninstall/plan.d.ts +23 -0
- package/dist/uninstall/plan.d.ts.map +1 -0
- package/dist/uninstall/plan.js +71 -0
- package/dist/uninstall/plan.js.map +1 -0
- package/dist/uninstall/purge.d.ts +3 -0
- package/dist/uninstall/purge.d.ts.map +1 -0
- package/dist/uninstall/purge.js +79 -0
- package/dist/uninstall/purge.js.map +1 -0
- package/dist/uninstall/steps.d.ts +12 -0
- package/dist/uninstall/steps.d.ts.map +1 -0
- package/dist/uninstall/steps.js +200 -0
- package/dist/uninstall/steps.js.map +1 -0
- package/dist/uninstall/sweep.d.ts +12 -0
- package/dist/uninstall/sweep.d.ts.map +1 -0
- package/dist/uninstall/sweep.js +90 -0
- package/dist/uninstall/sweep.js.map +1 -0
- package/dist/uninstall/tally.d.ts +14 -0
- package/dist/uninstall/tally.d.ts.map +1 -0
- package/dist/uninstall/tally.js +25 -0
- package/dist/uninstall/tally.js.map +1 -0
- package/dist/upkeep/login.d.ts +0 -9
- package/dist/upkeep/login.d.ts.map +1 -1
- package/dist/upkeep/login.js +12 -59
- package/dist/upkeep/login.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-bridge.js","sourceRoot":"","sources":["../../src/sync/git-bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git-bridge.js","sourceRoot":"","sources":["../../src/sync/git-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export interface FateSeams {
|
|
|
7
7
|
readonly releaseForwards: (sandboxId: string) => Promise<unknown>;
|
|
8
8
|
readonly say: Log;
|
|
9
9
|
}
|
|
10
|
+
export declare const goneLingers: (pairings: readonly Pairing[], sandboxId: string) => boolean;
|
|
10
11
|
export declare const sandboxSaidGone: (seams: FateSeams, sandboxId: string, by: GoneWitness, now?: number) => Promise<void>;
|
|
11
12
|
export declare const sandboxAnswered: (seams: FateSeams, sandboxId: string) => Promise<void>;
|
|
12
13
|
export declare const localSlugsOf: (pairing: Pick<Pairing, "sandboxUrl" | "icSlug" | "container">) => string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gone-watch.d.ts","sourceRoot":"","sources":["../../src/sync/gone-watch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EACH,KAAK,WAAW,EAEhB,KAAK,OAAO,EAOf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,KAAK,cAAc,EAAsB,MAAM,sBAAsB,CAAC;AAU/E,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"gone-watch.d.ts","sourceRoot":"","sources":["../../src/sync/gone-watch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EACH,KAAK,WAAW,EAEhB,KAAK,OAAO,EAOf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,KAAK,cAAc,EAAsB,MAAM,sBAAsB,CAAC;AAU/E,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CACrB;AAyCD,eAAO,MAAM,WAAW,aAAc,SAAS,OAAO,EAAE,aAAa,MAAM,KAAG,OAC8D,CAAC;AAS7I,eAAO,MAAM,eAAe,UAAiB,SAAS,aAAa,MAAM,MAAM,WAAW,QAAO,MAAM,KAAgB,OAAO,CAAC,IAAI,CAqBlI,CAAC;AAKF,eAAO,MAAM,eAAe,UAAiB,SAAS,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CAkBvF,CAAC;AAIF,eAAO,MAAM,YAAY,YAAa,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC,KAAG,MAAM,EAMlG,CAAC;AAkBF,eAAO,MAAM,aAAa,UACf,SAAS,YACN,SAAS,OAAO,EAAE,SACrB,WAAW,CAAC,MAAM,CAAC,SACpB,MAAM,OAAO,CAAC,cAAc,CAAC,cACxB,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,KAC1C,OAAO,CAAC,IAAI,CA6Bd,CAAC;AAKF,eAAO,MAAM,eAAe,UACjB,SAAS,YACN,SAAS,OAAO,EAAE,aACjB,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,qBAItC;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,cAAc,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAA;CAAE,KAC7F,OAAO,CAAC,IAAI,CAcd,CAAC"}
|
package/dist/sync/gone-watch.js
CHANGED
|
@@ -15,13 +15,18 @@ const pauseFor = async (seams, pairing, reason) => {
|
|
|
15
15
|
};
|
|
16
16
|
const liftPauses = async (seams, pairings, reasons) => {
|
|
17
17
|
let lifted = 0;
|
|
18
|
+
let waiting = 0;
|
|
18
19
|
for (const pairing of pairings.filter((held) => held.fileSyncPausedFor !== undefined && reasons.includes(held.fileSyncPausedFor))) {
|
|
19
|
-
resumeWatcherPausedSync(seams.mutagen, pairing)
|
|
20
|
+
if (!(await resumeWatcherPausedSync(seams.mutagen, pairing))) {
|
|
21
|
+
waiting += 1;
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
20
24
|
await setFileSyncPausedFor(pairingKey(pairing), undefined);
|
|
21
25
|
lifted += 1;
|
|
22
26
|
}
|
|
23
|
-
return lifted;
|
|
27
|
+
return { lifted, waiting };
|
|
24
28
|
};
|
|
29
|
+
export const goneLingers = (pairings, sandboxId) => pairings.some((pairing) => pairing.sandboxId === sandboxId && (pairing.goneSince !== undefined || pairing.fileSyncPausedFor === "gone"));
|
|
25
30
|
const pairingsOf = async (sandboxId) => (await readState()).pairings.filter((pairing) => pairing.sandboxId === sandboxId);
|
|
26
31
|
export const sandboxSaidGone = async (seams, sandboxId, by, now = Date.now()) => {
|
|
27
32
|
const pairings = await pairingsOf(sandboxId);
|
|
@@ -45,12 +50,20 @@ export const sandboxSaidGone = async (seams, sandboxId, by, now = Date.now()) =>
|
|
|
45
50
|
export const sandboxAnswered = async (seams, sandboxId) => {
|
|
46
51
|
const pairings = await pairingsOf(sandboxId);
|
|
47
52
|
const first = pairings[0];
|
|
48
|
-
if (first === undefined || !pairings
|
|
53
|
+
if (first === undefined || !goneLingers(pairings, sandboxId)) {
|
|
49
54
|
return;
|
|
50
55
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
56
|
+
const marked = pairings.some((pairing) => pairing.goneSince !== undefined);
|
|
57
|
+
if (marked) {
|
|
58
|
+
await setSandboxGone(first.sandboxId, undefined);
|
|
59
|
+
}
|
|
60
|
+
const { lifted, waiting } = await liftPauses(seams, pairings, ["gone"]);
|
|
61
|
+
if (marked) {
|
|
62
|
+
seams.say(`${first.sandboxId}: answers again, so it is not gone after all; ${waiting === 0 ? "its file sync is resumed" : "its file sync is resumed as soon as Mutagen takes it"} and its ports come back with this pass.`);
|
|
63
|
+
}
|
|
64
|
+
else if (lifted > 0) {
|
|
65
|
+
seams.say(`${first.sandboxId}: its file sync, held while it was said to be gone, is resumed.`);
|
|
66
|
+
}
|
|
54
67
|
};
|
|
55
68
|
export const localSlugsOf = (pairing) => [
|
|
56
69
|
...new Set([
|
|
@@ -108,7 +121,7 @@ export const checkContainers = async (seams, pairings, answering, { state = cont
|
|
|
108
121
|
const followContainer = async (seams, sandbox, container, { answering, askIc }) => {
|
|
109
122
|
const { sandboxId, held, docker } = sandbox;
|
|
110
123
|
if (container === "serves") {
|
|
111
|
-
if ((await liftPauses(seams, held, ["container-missing", "container-trashed"])) > 0) {
|
|
124
|
+
if ((await liftPauses(seams, held, ["container-missing", "container-trashed"])).lifted > 0) {
|
|
112
125
|
seams.say(`${sandboxId}: ${sandbox.container} runs as this sandbox again; its file sync is resumed.`);
|
|
113
126
|
}
|
|
114
127
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gone-watch.js","sourceRoot":"","sources":["../../src/sync/gone-watch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAEH,gBAAgB,EAEhB,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,cAAc,GAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAuB,UAAU,EAAE,QAAQ,EAAqB,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAClH,OAAO,EAAuB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAe/C,MAAM,MAAM,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAK/E,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAgB,EAAE,OAAgB,EAAE,MAAoB,EAAoB,EAAE;IAClG,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QACvF,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"gone-watch.js","sourceRoot":"","sources":["../../src/sync/gone-watch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Log } from "@intentic/local-agent";
|
|
2
|
+
import { type LowDiskPause, type Pairing } from "./config.js";
|
|
3
|
+
export declare const FLOOR_MIN_BYTES: number;
|
|
4
|
+
export declare const FLOOR_MAX_BYTES: number;
|
|
5
|
+
export declare const RESUME_MARGIN_BYTES: number;
|
|
6
|
+
export interface DiskReading {
|
|
7
|
+
readonly freeBytes: number;
|
|
8
|
+
readonly totalBytes: number;
|
|
9
|
+
}
|
|
10
|
+
export declare const diskFloor: (totalBytes: number) => number;
|
|
11
|
+
export type LowDiskStep = "pause" | "resume" | "hold" | "none";
|
|
12
|
+
export declare const lowDiskStep: (reading: DiskReading | undefined, paused: boolean) => LowDiskStep;
|
|
13
|
+
export declare const readDisk: (dir: string) => Promise<DiskReading | undefined>;
|
|
14
|
+
export declare const writesToDisk: (pairing: Pairing) => pairing is Pairing & {
|
|
15
|
+
readonly localDir: string;
|
|
16
|
+
};
|
|
17
|
+
export interface LowDiskSeams {
|
|
18
|
+
readonly read: (dir: string) => Promise<DiskReading | undefined>;
|
|
19
|
+
readonly pause: (pairing: Pairing) => readonly string[] | undefined;
|
|
20
|
+
readonly resume: (names: readonly string[]) => Promise<boolean>;
|
|
21
|
+
readonly resumeAll: (pairing: Pairing) => Promise<boolean>;
|
|
22
|
+
readonly record: (key: string, pause: LowDiskPause | undefined) => Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
export declare const guardDisks: (mutagen: string, pairings: readonly Pairing[], tick: number, say: Log, seams?: LowDiskSeams) => Promise<ReadonlySet<string>>;
|
|
25
|
+
//# sourceMappingURL=low-disk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"low-disk.d.ts","sourceRoot":"","sources":["../../src/sync/low-disk.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAoB,KAAK,YAAY,EAAE,KAAK,OAAO,EAAoD,MAAM,aAAa,CAAC;AAYlI,eAAO,MAAM,eAAe,QAAU,CAAC;AACvC,eAAO,MAAM,eAAe,QAAW,CAAC;AACxC,eAAO,MAAM,mBAAmB,QAAU,CAAC;AAM3C,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,SAAS,eAAgB,MAAM,KAAG,MAAwF,CAAC;AAExI,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAK/D,eAAO,MAAM,WAAW,YAAa,WAAW,GAAG,SAAS,UAAU,OAAO,KAAG,WAS/E,CAAC;AAIF,eAAO,MAAM,QAAQ,QAAe,MAAM,KAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAY3E,CAAC;AAIF,eAAO,MAAM,YAAY,YAAa,OAAO,KAAG,OAAO,IAAI,OAAO,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAIlB,CAAC;AAU/E,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAEjE,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAEpE,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhE,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpF;AAyDD,eAAO,MAAM,UAAU,YACV,MAAM,YACL,SAAS,OAAO,EAAE,QACtB,MAAM,OACP,GAAG,UACD,YAAY,KACpB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAS7B,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { statfs } from "node:fs/promises";
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
import { errnoCode } from "@intentic/base/errors";
|
|
4
|
+
import { isProjectPairing, pairingKey, projectDirection, setFileSyncLowDisk } from "./config.js";
|
|
5
|
+
import { pauseRunningSessions, resumeNamedSessions, resumeWatcherPausedSync } from "./mutagen.js";
|
|
6
|
+
const GIB = 1024 ** 3;
|
|
7
|
+
const FLOOR_SHARE = 0.02;
|
|
8
|
+
export const FLOOR_MIN_BYTES = 5 * GIB;
|
|
9
|
+
export const FLOOR_MAX_BYTES = 20 * GIB;
|
|
10
|
+
export const RESUME_MARGIN_BYTES = 2 * GIB;
|
|
11
|
+
const REASSERT_EVERY_TICKS = 12;
|
|
12
|
+
export const diskFloor = (totalBytes) => Math.min(Math.max(totalBytes * FLOOR_SHARE, FLOOR_MIN_BYTES), FLOOR_MAX_BYTES);
|
|
13
|
+
export const lowDiskStep = (reading, paused) => {
|
|
14
|
+
if (reading === undefined) {
|
|
15
|
+
return paused ? "hold" : "none";
|
|
16
|
+
}
|
|
17
|
+
const floor = diskFloor(reading.totalBytes);
|
|
18
|
+
if (!paused) {
|
|
19
|
+
return reading.freeBytes < floor ? "pause" : "none";
|
|
20
|
+
}
|
|
21
|
+
return reading.freeBytes >= floor + RESUME_MARGIN_BYTES ? "resume" : "hold";
|
|
22
|
+
};
|
|
23
|
+
export const readDisk = async (dir) => {
|
|
24
|
+
for (let at = dir;; at = dirname(at)) {
|
|
25
|
+
try {
|
|
26
|
+
const stats = await statfs(at);
|
|
27
|
+
return { freeBytes: stats.bavail * stats.bsize, totalBytes: stats.blocks * stats.bsize };
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
if (errnoCode(error) !== "ENOENT" || dirname(at) === at) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
export const writesToDisk = (pairing) => pairing.mode === "sync" &&
|
|
37
|
+
pairing.localDir !== undefined &&
|
|
38
|
+
pairing.projectsHost !== true &&
|
|
39
|
+
!(isProjectPairing(pairing) && projectDirection(pairing) === "to-sandbox");
|
|
40
|
+
const otherwiseHeld = (pairing) => pairing.fileSyncAutoPaused === true || pairing.fileSyncSwapPaused === true || pairing.fileSyncPausedFor !== undefined;
|
|
41
|
+
const gigabytes = (bytes) => `${(bytes / GIB).toFixed(1)} GB`;
|
|
42
|
+
const mutagenSeams = (mutagen) => ({
|
|
43
|
+
read: readDisk,
|
|
44
|
+
pause: (pairing) => pauseRunningSessions(mutagen, pairing),
|
|
45
|
+
resume: async (names) => await resumeNamedSessions(mutagen, names),
|
|
46
|
+
resumeAll: async (pairing) => await resumeWatcherPausedSync(mutagen, pairing),
|
|
47
|
+
record: setFileSyncLowDisk,
|
|
48
|
+
});
|
|
49
|
+
const guardOne = async (seams, pairing, tick, say) => {
|
|
50
|
+
const key = pairingKey(pairing);
|
|
51
|
+
const reading = await seams.read(pairing.localDir);
|
|
52
|
+
const held = pairing.fileSyncLowDisk;
|
|
53
|
+
const step = lowDiskStep(reading, held !== undefined);
|
|
54
|
+
if (step === "pause" && reading !== undefined) {
|
|
55
|
+
const paused = seams.pause(pairing) ?? [];
|
|
56
|
+
await seams.record(key, { since: Date.now(), ...reading, paused });
|
|
57
|
+
say(` ${key}: the drive holding ${pairing.localDir} has ${gigabytes(reading.freeBytes)} free, under its floor of ${gigabytes(diskFloor(reading.totalBytes))}; paused file sync and the git bridge until it has room again.`);
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
if (step === "resume" && reading !== undefined) {
|
|
61
|
+
const lifted = { ...pairing, fileSyncLowDisk: undefined };
|
|
62
|
+
const resumed = otherwiseHeld(lifted) || (held?.paused === undefined ? await seams.resumeAll(lifted) : await seams.resume(held.paused));
|
|
63
|
+
if (!resumed) {
|
|
64
|
+
say(` ${key}: the drive holding ${pairing.localDir} has room again, but Mutagen did not take the resume of its file sync; trying again.`);
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
await seams.record(key, undefined);
|
|
68
|
+
say(` ${key}: the drive holding ${pairing.localDir} has ${gigabytes(reading.freeBytes)} free again; file sync and the git bridge carry on.`);
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
if (step === "hold") {
|
|
72
|
+
if (tick % REASSERT_EVERY_TICKS === 0 && held !== undefined) {
|
|
73
|
+
const added = (seams.pause(pairing) ?? []).filter((name) => held.paused?.includes(name) !== true);
|
|
74
|
+
if (added.length > 0 && held.paused !== undefined) {
|
|
75
|
+
await seams.record(key, { ...held, paused: [...held.paused, ...added] });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
81
|
+
};
|
|
82
|
+
export const guardDisks = async (mutagen, pairings, tick, say, seams = mutagenSeams(mutagen)) => {
|
|
83
|
+
const held = new Set();
|
|
84
|
+
for (const pairing of pairings.filter(writesToDisk)) {
|
|
85
|
+
if (await guardOne(seams, pairing, tick, say)) {
|
|
86
|
+
held.add(pairingKey(pairing));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return held;
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=low-disk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"low-disk.js","sourceRoot":"","sources":["../../src/sync/low-disk.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/mirror.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Log } from "@intentic/local-agent";
|
|
2
2
|
import { type PortSummary } from "@intentic/sandbox-contract/schemas/ports";
|
|
3
3
|
import { type MirroredPort, type Pairing, type SkippedPort } from "./config.js";
|
|
4
|
+
import type { SwapRecord } from "../device/sandbox-rounds/swap-records.js";
|
|
4
5
|
import { type PublishedPorts } from "./docker-ports.js";
|
|
5
6
|
export declare const shouldAutoPauseFileSync: (unreachableForMs: number) => boolean;
|
|
6
7
|
export declare const pollBackoffMs: (unreachableForMs: number) => number;
|
|
@@ -37,6 +38,7 @@ export declare const reportCarriers: <T extends {
|
|
|
37
38
|
export declare const unpreparedSetups: (pairings: readonly Pairing[], prepared: ReadonlySet<string>) => Pairing[];
|
|
38
39
|
export declare const markPrepared: (prepared: Set<string>, pairing: Pairing) => void;
|
|
39
40
|
export declare const readyToPrepare: (setups: readonly Pairing[], firstCopyAhead: (pairing: Pairing) => boolean, announce: (pairing: Pairing) => Promise<boolean>) => Promise<Pairing[]>;
|
|
41
|
+
export declare const holdSyncDuringSwaps: (mutagen: string, pairings: readonly Pairing[], unreachable: ReadonlyMap<string, Unreachable>, say: Log, read?: () => Promise<readonly SwapRecord[]>) => Promise<ReadonlySet<string>>;
|
|
40
42
|
export declare const pollingPairings: (pairings: readonly Pick<Pairing, "sandboxId" | "key">[]) => ReadonlySet<string>;
|
|
41
43
|
export declare const WATCHER_STALL_MS: number;
|
|
42
44
|
export declare const watcherStalled: (progress: number, now: number) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mirror.d.ts","sourceRoot":"","sources":["../../src/sync/mirror.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,0CAA0C,CAAC;AAC7F,OAAO,EAGH,KAAK,YAAY,EACjB,KAAK,OAAO,EASZ,KAAK,WAAW,EAEnB,MAAM,aAAa,CAAC;AAQrB,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"mirror.d.ts","sourceRoot":"","sources":["../../src/sync/mirror.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/mirror.js
CHANGED
|
@@ -9,12 +9,15 @@ import { pairingEndpoint } from "./endpoint.js";
|
|
|
9
9
|
import { runProcess, runProcessSync } from "./exec.js";
|
|
10
10
|
import { candidateBases, createDaemonBases, dialedPairings } from "../daemon-base.js";
|
|
11
11
|
import { answeredGone, goneStep, SandboxGoneError } from "./gone.js";
|
|
12
|
-
import { checkContainers, checkKeptHere, sandboxAnswered, sandboxSaidGone } from "./gone-watch.js";
|
|
12
|
+
import { checkContainers, checkKeptHere, goneLingers, sandboxAnswered, sandboxSaidGone } from "./gone-watch.js";
|
|
13
13
|
import { retireSandbox } from "./retire.js";
|
|
14
14
|
import { readSwaps } from "../device/sandbox-rounds/ic-swaps.js";
|
|
15
15
|
import { publishedPortsReader } from "./docker-ports.js";
|
|
16
16
|
import { realBridgeExec, runGitBridge } from "./git-bridge.js";
|
|
17
|
-
import {
|
|
17
|
+
import { guardDisks } from "./low-disk.js";
|
|
18
|
+
import { ensureSyncSession, existingSyncSessions, forwardedPorts, forwardSessionName, healDerivedConflicts, MUTAGEN_CALL_TIMEOUT_MS, mutagenForwardArgs, ourForwardSessions, pauseRunningSync, relabelBudget, retireOrphanSessions, resumeAutoPausedSync, resumeSwapPausedSync, runMutagenAsync, sayDaemonEventsTo, sessionLabels, startMutagenDaemon, syncMode, syncSessionNames, } from "./mutagen.js";
|
|
19
|
+
import { ensureMutagen } from "./binary/mutagen-binary.js";
|
|
20
|
+
import { moveOffSharedMutagen } from "./mutagen-move.js";
|
|
18
21
|
import { quieted } from "./repeats.js";
|
|
19
22
|
import { deviceReport, scopedReport } from "./report.js";
|
|
20
23
|
import { pairingSshConfig, writeManagedSshConfig } from "./ssh.js";
|
|
@@ -334,6 +337,39 @@ const pauseIfLongUnreachable = async (mutagen, pairing, unreachableForMs, log) =
|
|
|
334
337
|
log(` ${pairingKey(pairing)}: unreachable for one hour; paused its Mutagen sessions to stop permanent reconnect/scanning load. They resume automatically when it returns.`);
|
|
335
338
|
return true;
|
|
336
339
|
};
|
|
340
|
+
const startBridge = (tracking, pairing, tick, say) => {
|
|
341
|
+
const id = pairing.sandboxId;
|
|
342
|
+
if (tracking.bridges.has(id)) {
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
const stop = new AbortController();
|
|
346
|
+
const known = tick % REPO_LIST_EVERY_TICKS === 0 ? undefined : tracking.repos.get(id);
|
|
347
|
+
const done = guard(say, `${id}: git bridge`, async () => {
|
|
348
|
+
const listed = await runGitBridge(realBridgeExec, pairing, say, known, { signal: stop.signal });
|
|
349
|
+
if (listed === undefined) {
|
|
350
|
+
tracking.repos.delete(id);
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
tracking.repos.set(id, listed);
|
|
354
|
+
}
|
|
355
|
+
}).then(() => {
|
|
356
|
+
if (tracking.bridges.get(id)?.stop === stop) {
|
|
357
|
+
tracking.bridges.delete(id);
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
tracking.bridges.set(id, { stop, done });
|
|
361
|
+
};
|
|
362
|
+
const stopBridge = (tracking, sandboxId) => {
|
|
363
|
+
tracking.bridges.get(sandboxId)?.stop.abort();
|
|
364
|
+
tracking.bridges.delete(sandboxId);
|
|
365
|
+
};
|
|
366
|
+
const stopBridges = (tracking, pairings) => {
|
|
367
|
+
for (const id of tracking.bridges.keys()) {
|
|
368
|
+
if (pairings === undefined || !pairings.some((held) => held.sandboxId === id)) {
|
|
369
|
+
stopBridge(tracking, id);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
};
|
|
337
373
|
const absorbPairingFailure = async (error, mutagen, pairing, tracking, fate, log) => {
|
|
338
374
|
if (error instanceof SandboxGoneError) {
|
|
339
375
|
await sandboxSaidGone(fate, pairing.sandboxId, "edge");
|
|
@@ -443,8 +479,8 @@ const retryPendingSessions = async (mutagen, pairings, sessionsPending, tick, re
|
|
|
443
479
|
}
|
|
444
480
|
}
|
|
445
481
|
};
|
|
446
|
-
const holdSyncDuringSwaps = async (mutagen, pairings, unreachable, say) => {
|
|
447
|
-
const records = await
|
|
482
|
+
export const holdSyncDuringSwaps = async (mutagen, pairings, unreachable, say, read = readSwaps) => {
|
|
483
|
+
const records = await read();
|
|
448
484
|
const now = Date.now();
|
|
449
485
|
const held = new Set();
|
|
450
486
|
for (const pairing of pairings) {
|
|
@@ -459,29 +495,34 @@ const holdSyncDuringSwaps = async (mutagen, pairings, unreachable, say) => {
|
|
|
459
495
|
say(` ${pairingKey(pairing)}: its sandbox is being swapped on this machine; file sync is paused until the new version has held.`);
|
|
460
496
|
}
|
|
461
497
|
else if (step === "resume") {
|
|
462
|
-
resumeSwapPausedSync(mutagen, pairing)
|
|
463
|
-
|
|
464
|
-
|
|
498
|
+
if (await resumeSwapPausedSync(mutagen, pairing)) {
|
|
499
|
+
await setFileSyncSwapPaused(pairingKey(pairing), false);
|
|
500
|
+
say(` ${pairingKey(pairing)}: its sandbox's swap is settled; file sync resumed.`);
|
|
501
|
+
}
|
|
502
|
+
else if (pairing.fileSyncLowDisk === undefined) {
|
|
503
|
+
say(` ${pairingKey(pairing)}: its sandbox's swap is settled, but Mutagen did not take the resume of its file sync; trying again.`);
|
|
504
|
+
}
|
|
465
505
|
}
|
|
466
506
|
}
|
|
467
507
|
return held;
|
|
468
508
|
};
|
|
469
509
|
const runPairingPass = async (context, pairing, base) => {
|
|
470
510
|
const { mutagen, tick, claimedBy, holding, tracking, bases, swapHeld, fate, say } = context;
|
|
471
|
-
const { rejectedPolls, unreachable
|
|
511
|
+
const { rejectedPolls, unreachable } = tracking;
|
|
472
512
|
const swapping = swapHeld.has(pairing.sandboxId);
|
|
513
|
+
const short = context.diskHeld.has(pairingKey(pairing));
|
|
473
514
|
let pausedThisPass = false;
|
|
474
515
|
try {
|
|
475
516
|
const mirrored = await servePairing(context, pairing, base);
|
|
476
517
|
rejectedPolls.delete(pairing.sandboxId);
|
|
477
518
|
unreachable.delete(pairing.sandboxId);
|
|
478
|
-
if (context.pairings
|
|
519
|
+
if (goneLingers(context.pairings, pairing.sandboxId)) {
|
|
479
520
|
await sandboxAnswered(fate, pairing.sandboxId);
|
|
480
521
|
}
|
|
481
522
|
if (context.pairings.some((held) => held.sandboxId === pairing.sandboxId && held.unreachableSince !== undefined)) {
|
|
482
523
|
await setUnreachableSince(pairing.sandboxId, undefined);
|
|
483
524
|
}
|
|
484
|
-
if (!swapping && resumeAutoPausedSync(mutagen, pairing)) {
|
|
525
|
+
if (!swapping && !short && (await resumeAutoPausedSync(mutagen, pairing))) {
|
|
485
526
|
await setFileSyncAutoPaused(pairingKey(pairing), false);
|
|
486
527
|
say(` ${pairingKey(pairing)}: reachable again; resumed its automatically paused file sync`);
|
|
487
528
|
}
|
|
@@ -504,23 +545,12 @@ const runPairingPass = async (context, pairing, base) => {
|
|
|
504
545
|
pausedThisPass = outcome.paused;
|
|
505
546
|
say(` ${pairingKey(pairing)}: reconcile skipped: ${errorMessage(error)}`);
|
|
506
547
|
}
|
|
507
|
-
if (pairing.fileSyncAutoPaused === true || pairing.fileSyncPausedFor !== undefined || pausedThisPass || swapping) {
|
|
548
|
+
if (pairing.fileSyncAutoPaused === true || pairing.fileSyncPausedFor !== undefined || pausedThisPass || swapping || short) {
|
|
549
|
+
stopBridge(tracking, pairing.sandboxId);
|
|
508
550
|
return;
|
|
509
551
|
}
|
|
510
552
|
await healPairing(mutagen, pairing, tick, say);
|
|
511
|
-
|
|
512
|
-
const known = tick % REPO_LIST_EVERY_TICKS === 0 ? undefined : repos.get(pairing.sandboxId);
|
|
513
|
-
const listed = await runGitBridge(realBridgeExec, pairing, say, known);
|
|
514
|
-
if (listed === undefined) {
|
|
515
|
-
repos.delete(pairing.sandboxId);
|
|
516
|
-
}
|
|
517
|
-
else {
|
|
518
|
-
repos.set(pairing.sandboxId, listed);
|
|
519
|
-
}
|
|
520
|
-
}
|
|
521
|
-
catch (error) {
|
|
522
|
-
say(` ${pairing.sandboxId}: git bridge skipped: ${errorMessage(error)}`);
|
|
523
|
-
}
|
|
553
|
+
startBridge(tracking, pairing, tick, say);
|
|
524
554
|
};
|
|
525
555
|
export const pollingPairings = (pairings) => {
|
|
526
556
|
const polling = new Set();
|
|
@@ -540,8 +570,9 @@ const followSandbox = async (context, pairing) => {
|
|
|
540
570
|
}
|
|
541
571
|
const down = tracking.unreachable.get(pairing.sandboxId)?.since ?? pairing.unreachableSince;
|
|
542
572
|
const swapping = swapHeld.has(pairing.sandboxId);
|
|
573
|
+
const short = context.diskHeld.has(pairingKey(pairing));
|
|
543
574
|
if (down === undefined) {
|
|
544
|
-
if (!swapping && resumeAutoPausedSync(mutagen, pairing)) {
|
|
575
|
+
if (!swapping && !short && (await resumeAutoPausedSync(mutagen, pairing))) {
|
|
545
576
|
await setFileSyncAutoPaused(pairingKey(pairing), false);
|
|
546
577
|
say(` ${pairingKey(pairing)}: reachable again; resumed its automatically paused file sync`);
|
|
547
578
|
}
|
|
@@ -549,7 +580,7 @@ const followSandbox = async (context, pairing) => {
|
|
|
549
580
|
else if (await pauseIfLongUnreachable(mutagen, pairing, Date.now() - down, say)) {
|
|
550
581
|
return;
|
|
551
582
|
}
|
|
552
|
-
if (pairing.fileSyncAutoPaused === true || swapping) {
|
|
583
|
+
if (pairing.fileSyncAutoPaused === true || swapping || short) {
|
|
553
584
|
return;
|
|
554
585
|
}
|
|
555
586
|
await healPairing(mutagen, pairing, tick, say);
|
|
@@ -676,18 +707,29 @@ const startWatch = async (log, generation) => {
|
|
|
676
707
|
const mutagen = await ensureMutagen();
|
|
677
708
|
const say = quieted(log);
|
|
678
709
|
sayDaemonEventsTo(say);
|
|
710
|
+
await guard(say, "moving off Mutagen's shared data directory", async () => await moveOffSharedMutagen(mutagen, say));
|
|
679
711
|
const initial = await readState();
|
|
680
712
|
if (initial.pairings.length === 0) {
|
|
681
713
|
log("no sandboxes are paired: nothing to mirror. Enable it from a sandbox's Desktop sync card.");
|
|
682
714
|
return undefined;
|
|
683
715
|
}
|
|
716
|
+
if (!startMutagenDaemon(mutagen)) {
|
|
717
|
+
say("Mutagen's daemon did not start; trying again as the watcher asks after its sessions.");
|
|
718
|
+
}
|
|
684
719
|
const sshConfig = pairingSshConfig(initial.pairings);
|
|
685
720
|
await guard(say, "refreshing the ssh configuration", async () => await writeManagedSshConfig(sshConfig));
|
|
686
721
|
const tunnels = createTunnelPool(say, generation.signal);
|
|
687
722
|
generation.stopTransports = tunnels.stopAll;
|
|
688
723
|
const bases = createDaemonBases(say);
|
|
689
724
|
await guard(say, "opening the sync transports", async () => await tunnels.reconcile(tunnelTargets(await dialedPairings(initial.pairings, bases))));
|
|
690
|
-
const tracking = {
|
|
725
|
+
const tracking = {
|
|
726
|
+
rejectedPolls: new Map(),
|
|
727
|
+
unreachable: new Map(),
|
|
728
|
+
repos: new Map(),
|
|
729
|
+
sessionsPending: new Set(),
|
|
730
|
+
bridges: new Map(),
|
|
731
|
+
};
|
|
732
|
+
generation.signal.addEventListener("abort", () => stopBridges(tracking), { once: true });
|
|
691
733
|
const reportUnsupported = new Set();
|
|
692
734
|
const fate = { mutagen, releaseForwards: async (sandboxId) => await retirePairingMirror(mutagen, sandboxId), say };
|
|
693
735
|
const gone = async (pairing) => await sandboxSaidGone(fate, pairing.sandboxId, "edge");
|
|
@@ -728,6 +770,7 @@ const watchTick = async (watch, tick) => {
|
|
|
728
770
|
return "next";
|
|
729
771
|
}
|
|
730
772
|
if (state.pairings.length === 0) {
|
|
773
|
+
stopBridges(tracking);
|
|
731
774
|
await watch.tunnels.stopAll();
|
|
732
775
|
watch.log("no sandboxes are paired any more: sync stopping. Re-enable from a sandbox's Desktop sync card.");
|
|
733
776
|
return "stop";
|
|
@@ -751,6 +794,11 @@ const watchTick = async (watch, tick) => {
|
|
|
751
794
|
await guard(say, "holding file sync still during swaps", async () => {
|
|
752
795
|
swapHeld = await holdSyncDuringSwaps(mutagen, state.pairings, tracking.unreachable, say);
|
|
753
796
|
});
|
|
797
|
+
let diskHeld = new Set();
|
|
798
|
+
await guard(say, "measuring the drives synced folders are on", async () => {
|
|
799
|
+
diskHeld = await guardDisks(mutagen, state.pairings, tick, say);
|
|
800
|
+
});
|
|
801
|
+
stopBridges(tracking, state.pairings);
|
|
754
802
|
const context = {
|
|
755
803
|
mutagen,
|
|
756
804
|
tick,
|
|
@@ -759,6 +807,7 @@ const watchTick = async (watch, tick) => {
|
|
|
759
807
|
tracking,
|
|
760
808
|
bases: watch.bases,
|
|
761
809
|
swapHeld,
|
|
810
|
+
diskHeld,
|
|
762
811
|
holders: watch.holders,
|
|
763
812
|
fate,
|
|
764
813
|
relabels,
|