@moxt-ai/mobius 0.0.337 → 0.0.338
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/dist/cli.js +1087 -1037
- package/dist/cli.js.map +4 -4
- package/dist/daemon/upgrades/upgrade.d.ts.map +1 -1
- package/dist/daemon/upgrades/upgrade.js +25 -2
- package/dist/daemon/upgrades/upgrade.js.map +1 -1
- package/dist/runtime.js +860 -830
- package/dist/runtime.js.map +4 -4
- package/dist/session/turn/runtime-turn-activity.d.ts +12 -1
- package/dist/session/turn/runtime-turn-activity.d.ts.map +1 -1
- package/dist/session/turn/runtime-turn-activity.js +52 -26
- package/dist/session/turn/runtime-turn-activity.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/daemon/upgrades/upgrade.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAG3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAG9F,OAAO,EAAE,KAAK,wBAAwB,EAAmD,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/daemon/upgrades/upgrade.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAG3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAG9F,OAAO,EAAE,KAAK,wBAAwB,EAAmD,MAAM,wBAAwB,CAAC;AAaxH,wBAAsB,+BAA+B,CACjD,IAAI,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,EAC5C,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAID,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAehH;AAED,MAAM,MAAM,2BAA2B,GACjC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,0BAA0B,GAChC,OAAO,CAAC,wBAAwB,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,GACvD,OAAO,CAAC,wBAAwB,EAAE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC;AAKjE,wBAAsB,2BAA2B,CAC7C,cAAc,EAAE,qBAAqB,EACrC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,2BAA2B,CAAC,CAOtC;AAuBD,wBAAsB,wBAAwB,CAC1C,cAAc,EAAE,qBAAqB,EACrC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,0BAA0B,CAAC,CA+BrC"}
|
|
@@ -64,6 +64,10 @@ import { DaemonReleaseUpgradeError, findNewDaemonReleaseVersion, installDaemonRe
|
|
|
64
64
|
// A switch may consume the new worker's startup budget and the rollback restart.
|
|
65
65
|
const SWITCH_COMPLETION_MILLISECONDS = 300_000;
|
|
66
66
|
const SWITCH_POLL_MILLISECONDS = 200;
|
|
67
|
+
// An automatic switch disconnects every client for tens of seconds. Wait until the
|
|
68
|
+
// Runtime has been idle long enough that the user has likely stepped away.
|
|
69
|
+
const UPGRADE_QUIET_MILLISECONDS = 30 * 60_000;
|
|
70
|
+
const UPGRADE_QUIET_CHECK_MILLISECONDS = 60_000;
|
|
67
71
|
export async function reportDaemonUpgradeAvailability(send, signal) {
|
|
68
72
|
if (!process.connected) {
|
|
69
73
|
return;
|
|
@@ -175,6 +179,22 @@ export async function awaitDaemonReleaseSwitch(stateDirectory, id, signal) {
|
|
|
175
179
|
}
|
|
176
180
|
return outcome;
|
|
177
181
|
}
|
|
182
|
+
async function reserveWhenQuiet(activity, signal) {
|
|
183
|
+
for (;;) {
|
|
184
|
+
await activity.whenIdle(signal);
|
|
185
|
+
// Idle has begun; check until it has lasted the quiet period or work resumes.
|
|
186
|
+
for await (const _tick of setInterval(UPGRADE_QUIET_CHECK_MILLISECONDS, undefined, { signal })) {
|
|
187
|
+
const reservation = activity.reserveIfQuiet(UPGRADE_QUIET_MILLISECONDS);
|
|
188
|
+
if (reservation !== null) {
|
|
189
|
+
return reservation;
|
|
190
|
+
}
|
|
191
|
+
if (activity.count() > 0) {
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
signal.throwIfAborted();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
178
198
|
async function checkDaemonReleaseUpgrade(signal, activity) {
|
|
179
199
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
180
200
|
try {
|
|
@@ -189,15 +209,18 @@ async function checkDaemonReleaseUpgrade(signal, activity) {
|
|
|
189
209
|
return;
|
|
190
210
|
}
|
|
191
211
|
const launch = await installDaemonReleaseVersion(version, signal);
|
|
192
|
-
|
|
212
|
+
let reservation = activity.reserveIfQuiet(UPGRADE_QUIET_MILLISECONDS);
|
|
213
|
+
if (reservation === null) {
|
|
193
214
|
new RuntimeDiagnosticLog(control.stateDirectory).record(`Mobius daemon diagnostic ${JSON.stringify({
|
|
194
215
|
timestamp: new Date().toISOString(),
|
|
195
216
|
event: "daemon_upgrade_deferred",
|
|
196
217
|
version,
|
|
197
218
|
activeWork: activity.count(),
|
|
219
|
+
...activity.describe(),
|
|
198
220
|
})}`);
|
|
221
|
+
reservation = await reserveWhenQuiet(activity, signal);
|
|
199
222
|
}
|
|
200
|
-
const _reservation = __addDisposableResource(env_1,
|
|
223
|
+
const _reservation = __addDisposableResource(env_1, reservation, false);
|
|
201
224
|
signal.throwIfAborted();
|
|
202
225
|
await requestInstalledDaemonReleaseSwitch(control.stateDirectory, launch, signal);
|
|
203
226
|
// The manager now owns the switch. Hold admission until it stops this worker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/daemon/upgrades/upgrade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAA6B,MAAM,8BAA8B,CAAC;AAC3F,OAAO,eAAe,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAGrF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAiC,4BAA4B,EAAqB,MAAM,wBAAwB,CAAC;AACxH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAEnH,iFAAiF;AACjF,MAAM,8BAA8B,GAAG,OAAO,CAAC;AAC/C,MAAM,wBAAwB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/daemon/upgrades/upgrade.ts"],"names":[],"mappings":"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"}
|