@vzn/vx 0.0.28 → 0.0.29
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vzn/vx",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.29",
|
|
4
4
|
"description": "An open, extensible monorepo task runner.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"node": ">=18"
|
|
18
18
|
},
|
|
19
19
|
"optionalDependencies": {
|
|
20
|
-
"@vzn/vx-linux-x64": "0.0.
|
|
21
|
-
"@vzn/vx-linux-arm64": "0.0.
|
|
22
|
-
"@vzn/vx-darwin-x64": "0.0.
|
|
23
|
-
"@vzn/vx-darwin-arm64": "0.0.
|
|
20
|
+
"@vzn/vx-linux-x64": "0.0.29",
|
|
21
|
+
"@vzn/vx-linux-arm64": "0.0.29",
|
|
22
|
+
"@vzn/vx-darwin-x64": "0.0.29",
|
|
23
|
+
"@vzn/vx-darwin-arm64": "0.0.29"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@anthropic-ai/sandbox-runtime": "^0.0.76"
|
|
@@ -277,7 +277,10 @@ export async function applyScheduleHooks(
|
|
|
277
277
|
* `admit` stage, built once per run into the predicate the scheduler asks
|
|
278
278
|
* at every local dispatch: every plugin that answers must admit. A plugin
|
|
279
279
|
* that throws is reported once and admits from then on — a policy never
|
|
280
|
-
* breaks a run —
|
|
280
|
+
* breaks a run — and one that refuses while nothing local is running is
|
|
281
|
+
* overridden with a word, since only a completion asks again: that
|
|
282
|
+
* refusal stalled the run for good (item 1023). So the predicate is never
|
|
283
|
+
* the reason a task hangs.
|
|
281
284
|
* Undefined when no plugin answers, which keeps the scheduler on its
|
|
282
285
|
* count-only path.
|
|
283
286
|
*/
|
|
@@ -290,6 +293,7 @@ export function buildAdmission(
|
|
|
290
293
|
const answering = plugins.filter((p) => p.admit !== undefined)
|
|
291
294
|
if (answering.length === 0) return undefined
|
|
292
295
|
const broken = new Set<VxPlugin>()
|
|
296
|
+
const overridden = new Set<VxPlugin>()
|
|
293
297
|
return (id, running) => {
|
|
294
298
|
// The scheduler asks only about ids in this same map, so the lookup
|
|
295
299
|
// always lands: an unknown-id arm here was deleted with the whole core
|
|
@@ -302,7 +306,14 @@ export function buildAdmission(
|
|
|
302
306
|
for (const plugin of answering) {
|
|
303
307
|
if (broken.has(plugin)) continue
|
|
304
308
|
try {
|
|
305
|
-
if (plugin.admit!(task, ctx)
|
|
309
|
+
if (plugin.admit!(task, ctx) !== false) continue
|
|
310
|
+
if (running.size > 0) return false
|
|
311
|
+
if (!overridden.has(plugin)) {
|
|
312
|
+
overridden.add(plugin)
|
|
313
|
+
warn(
|
|
314
|
+
`plugin '${plugin.name}' refused ${id} in admit with nothing running; admitting it, since no completion would ask again`,
|
|
315
|
+
)
|
|
316
|
+
}
|
|
306
317
|
} catch (err) {
|
|
307
318
|
broken.add(plugin)
|
|
308
319
|
const m = err instanceof Error ? err.message : String(err)
|