@thehammer/danx-dashboard-mcp 0.1.337 → 0.1.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.
|
@@ -115,7 +115,7 @@ export class PlanEventRelay {
|
|
|
115
115
|
lastActivityAt = 0;
|
|
116
116
|
heartbeat = null;
|
|
117
117
|
reporter = null;
|
|
118
|
-
/** DX-5415: the
|
|
118
|
+
/** DX-5415: the chain of every reporter stop still storing held finals (a suspend's and a transcript switch's); null when none is pending. Never rejects (see `chainSettling`). */
|
|
119
119
|
settling = null;
|
|
120
120
|
/** DX-5415: set by `close()` (the server's shutdown) and never cleared: a call paused across the close, or made after it, answers empty and starts nothing. */
|
|
121
121
|
closed = false;
|
|
@@ -176,6 +176,8 @@ export class PlanEventRelay {
|
|
|
176
176
|
this.start(cursor);
|
|
177
177
|
if (this.buffer.length > 0)
|
|
178
178
|
return this.answer();
|
|
179
|
+
// DX-5415 / DX-4233: supersede where the waiter is installed, not before the pauses: calls resume in call order, so the newest always holds the slot and an older one that resumed late cannot orphan the waiter beneath it.
|
|
180
|
+
this.supersedeWaiter();
|
|
179
181
|
return new Promise((resolve) => {
|
|
180
182
|
const onAbort = () => this.supersedeWaiter();
|
|
181
183
|
signal?.addEventListener("abort", onAbort, { once: true });
|
|
@@ -308,7 +310,11 @@ export class PlanEventRelay {
|
|
|
308
310
|
forceReconnect: () => this.run?.forceReconnect?.(),
|
|
309
311
|
}, transcriptPath ?? null);
|
|
310
312
|
}
|
|
311
|
-
/**
|
|
313
|
+
/**
|
|
314
|
+
* DX-5415: the one settle chain: the last settle and `stopping` both finish before it clears itself.
|
|
315
|
+
* `stopping` never rejects (a reporter's stop settles its own failures), so `settling` never rejects and
|
|
316
|
+
* every waiter on it resumes; do not add a swallowing fallback here.
|
|
317
|
+
*/
|
|
312
318
|
chainSettling(stopping) {
|
|
313
319
|
const settling = Promise.all([this.settling, stopping]).then(() => {
|
|
314
320
|
if (this.settling === settling)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thehammer/danx-dashboard-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.338",
|
|
4
4
|
"description": "Stdio MCP server fronting danxbot's dashboard API for agents (operator sessions and dispatched workers alike): the generic danxbot_api/danxbot_api_list/danxbot_api_spec tools reach any route the caller's credential may call, plus dedicated agent-specific tools (plan_connect, request_permission, attach_file, and danxbot_slack_reply) (DX-3465, PLN-11 R-25).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|