Expose workspace-scoped restricted artifact placement and live executor activity
Show per-export placement, static eligibility blockers, bounded metadata and live pool/idle/timing diagnostics. Attach inspector updates through one private shard stream and the existing authenticated SSE hub without waking graph views or VMs. Fix packed agent preparation to use OpenSSH and the worker’s own private systemd credential.
This commit is contained in:
@@ -570,12 +570,25 @@ test("an expired frame token cannot borrow a later invocation's broker", async (
|
||||
});
|
||||
|
||||
test("idle engines evict without a graph poll and restart with fresh state", async () => {
|
||||
const f = await fixture(registry("return request.input;"), { engineIdleMs: 30 });
|
||||
const updates = [];
|
||||
const f = await fixture(registry("return request.input;"), {
|
||||
engineIdleMs: 30,
|
||||
onChange: () => updates.push(f.stats()),
|
||||
});
|
||||
try {
|
||||
f.start("first");
|
||||
assert.equal((await f.receive()).output, "first");
|
||||
await new Promise((resolve) => setTimeout(resolve, 100));
|
||||
assert.equal(f.stats().engines, 0);
|
||||
assert.ok(
|
||||
updates.some((s) => s.active > 0),
|
||||
"Inspectors observe active invocation admission",
|
||||
);
|
||||
assert.ok(
|
||||
updates.some((s) => s.idle > 0 && s.idleDeadline),
|
||||
"Idle eviction deadline is visible",
|
||||
);
|
||||
assert.equal(updates.at(-1).engines, 0, "Eviction pushes an update without a graph poll");
|
||||
f.start("second");
|
||||
assert.equal((await f.receive()).output, "second");
|
||||
assert.equal(f.stats().starts, 2);
|
||||
|
||||
Reference in New Issue
Block a user