feat: automate extension updates across Windows hosts

This commit is contained in:
inman committed 2026-09-03 15:54:22 +08:00
1 parent 500034bb63
commit f08aac0c9e
36 files changed
+2996 -71

No files matched your search

+5 -3
View File
@@ -317,7 +317,7 @@ test('control plane requires the latest durable task-outcome migration before re
const { readFile } = await import('node:fs/promises');
const db = await readFile(new URL('../src/db.ts', import.meta.url), 'utf8');
const server = await readFile(new URL('../src/server.ts', import.meta.url), 'utf8');
assert.equal(REQUIRED_SCHEMA_VERSION, '018_agentbus_account_workers');
assert.equal(REQUIRED_SCHEMA_VERSION, '019_extension_host_updates');
assert.match(db, /schema_migrations/);
assert.match(db, /databaseReadiness/);
assert.match(db, /assertDatabaseSchema/);
@@ -1364,8 +1364,10 @@ test('operator page has a login gate and uses the durable task API', async () =>
assert.match(app, /window\.addEventListener\('focus',[\s\S]+refreshBackgroundState\(\)/);
assert.match(app, /async function autoDispatchReadyTasks\(\{ force = false \} = \{\}\)/);
assert.match(app, /if \(!force && retryAt > Date\.now\(\)\) continue/);
assert.match(app, /const bridgeReadyForDispatch = !wasBridgeConnected/);
assert.match(app, /autoDispatchReadyTasks\(\{ force: bridgeReadyForDispatch \}\)/);
assert.match(app, /extensionUpdateBlocksExecution = extensionUpdateIsBlocking\(extensionUpdate\)/);
assert.match(app, /function extensionUpdateIsBlocking\(update = \{\}\) \{[\s\S]+!\['current', 'disabled', 'no_release'\]\.includes/);
assert.match(app, /if \(!authUser \|\| autoHandoffInProgress \|\| extensionUpdateBlocksExecution\) return/);
assert.match(app, /autoDispatchReadyTasks\(\{ force: true \}\)/);
const autoDispatchSource = app.slice(
app.indexOf('async function autoDispatchReadyTasks'),
app.indexOf('function taskStateClass')