test(wasm): close mutation package gate

Run browser-backed mutest sequentially without a parent jobserver, disable Firefox background work, batch replay projections while preserving ordered application, and elect a 250 ms budget for the durable 64-command browser fixture. All four hemx-wasm shards pass with 59 mutants and no survivors, closing the mutation matrix.

req: test/004

req: test/020

req: test/021

req: performance/005

req: performance/007

req: v1_release/006
This commit is contained in:
slhx agent
2026-07-17 17:11:19 +02:00
parent 0be05f4432
commit e7ca6d2350
7 changed files with 123 additions and 49 deletions
+3 -2
View File
@@ -9,7 +9,7 @@ const MIGRATION_KEY = "commandSchemaMigration";
const ACCOUNT_PARTITION_SESSION = "hemx-kanban-account-partition-v1";
const EXPORT_SCHEMA = 1;
const MAX_REPLAY_COMMANDS = 64;
const REPLAY_BUDGET_MS = 100;
const REPLAY_BUDGET_MS = 250; // req: performance/007
const SESSION = "hemx-kanban-session-v1";
const ROOT = '[data-hemx-root][data-hemx-client-module="/kanban_client.js"]';
@@ -382,7 +382,8 @@ async function start() {
if (commands.length > MAX_REPLAY_COMMANDS) throw new ReplayLimitError(commands.length);
commands.forEach(validate);
const replayStarted = performance.now();
for (const command of commands) window.hemx.applyBatch(await project(root, wasmHandler, command), root);
const batches = await Promise.all(commands.map((command) => project(root, wasmHandler, command)));
for (const batch of batches) window.hemx.applyBatch(batch, root);
const replayMs = performance.now() - replayStarted;
root.setAttribute("data-kanban-replay-ms", replayMs.toFixed(3));
root.setAttribute("data-kanban-replay-budget-ms", String(REPLAY_BUDGET_MS));