muse-crew 0.6.1 → 0.6.2
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 +1 -1
- package/workflows/bugfix.js +18 -7
- package/workflows/chore.js +18 -7
- package/workflows/standard.js +18 -7
package/package.json
CHANGED
package/workflows/bugfix.js
CHANGED
|
@@ -323,8 +323,14 @@ function buildVisualCapturePlan(taskTitle, taskDescription, kind, captureTargets
|
|
|
323
323
|
// opt-in — a missing or garbled line degrades to "unknown", which callers
|
|
324
324
|
// treat as non-experiential. The task is never parked on a garbled line.
|
|
325
325
|
async function resolveExperiential() {
|
|
326
|
-
|
|
327
|
-
|
|
326
|
+
// Triage notes are immutable within a run: cache the resolved outcome —
|
|
327
|
+
// yes, no, AND unknown — so the dashboard lookup runs at most once per
|
|
328
|
+
// run. Without the unknown branch a missing experiential marker would
|
|
329
|
+
// re-fire the same "resolve-experiential-<taskId>" agent key on every
|
|
330
|
+
// Capture/Map entry and throw a duplicate replay key error.
|
|
331
|
+
if (experientialResolved !== null) return experientialResolved;
|
|
332
|
+
if (isExperiential === true) return (experientialResolved = "yes");
|
|
333
|
+
if (isExperiential === false) return (experientialResolved = "no");
|
|
328
334
|
var expCheck = null;
|
|
329
335
|
try {
|
|
330
336
|
expCheck = await agent(
|
|
@@ -340,12 +346,14 @@ async function resolveExperiential() {
|
|
|
340
346
|
);
|
|
341
347
|
} catch (e) {
|
|
342
348
|
log("resolveExperiential: agent call failed (" + (e && e.message ? e.message : e) + ") — treating as unknown");
|
|
343
|
-
|
|
349
|
+
experientialResolved = "unknown";
|
|
350
|
+
return experientialResolved;
|
|
344
351
|
}
|
|
345
352
|
var marker = extractExperiential(expCheck && expCheck.experiential_line ? expCheck.experiential_line : "");
|
|
346
|
-
if (marker === true)
|
|
347
|
-
if (marker === false)
|
|
348
|
-
|
|
353
|
+
if (marker === true) experientialResolved = "yes";
|
|
354
|
+
else if (marker === false) experientialResolved = "no";
|
|
355
|
+
else experientialResolved = "unknown";
|
|
356
|
+
return experientialResolved;
|
|
349
357
|
}
|
|
350
358
|
// Baseline evidence status: reads the task's note events for the exact
|
|
351
359
|
// protocol prefixes (explicit state, never English matching). Returns
|
|
@@ -456,6 +464,9 @@ let mapperSpec = "";
|
|
|
456
464
|
// plan, and the Map-gate bounce counter (keeps agent stable-keys unique when
|
|
457
465
|
// a Map-gate bounce re-runs Capture/Map in the same run).
|
|
458
466
|
let isExperiential = null;
|
|
467
|
+
// Caches all three resolveExperiential() outcomes (yes/no/unknown); Triage
|
|
468
|
+
// notes are immutable within a run, so the lookup runs at most once.
|
|
469
|
+
let experientialResolved = null;
|
|
459
470
|
let captureTargets = "";
|
|
460
471
|
let mapGateBounceCount = 0;
|
|
461
472
|
// Merge-time versioning: the release decision is extracted deterministically
|
|
@@ -544,7 +555,7 @@ while (i < STEPS.length) {
|
|
|
544
555
|
"Find the task with id \"" + taskId + "\" in the returned tasks array.\n" +
|
|
545
556
|
"Return exactly { \"project\": \"<the task's project field, or empty string if absent>\" } and nothing else.",
|
|
546
557
|
{
|
|
547
|
-
key: "project-check-" + step.name + (totalReworkCount > 0 ? "-r" + totalReworkCount : ""),
|
|
558
|
+
key: "project-check-" + step.name + (totalReworkCount > 0 ? "-r" + totalReworkCount : "") + (mapGateBounceCount > 0 ? "-g" + mapGateBounceCount : ""),
|
|
548
559
|
label: "Checking project before " + step.name,
|
|
549
560
|
schema: { type: "object", properties: { project: { type: "string" } }, required: ["project"] }
|
|
550
561
|
}
|
package/workflows/chore.js
CHANGED
|
@@ -321,8 +321,14 @@ function buildVisualCapturePlan(taskTitle, taskDescription, kind, captureTargets
|
|
|
321
321
|
// opt-in — a missing or garbled line degrades to "unknown", which callers
|
|
322
322
|
// treat as non-experiential. The task is never parked on a garbled line.
|
|
323
323
|
async function resolveExperiential() {
|
|
324
|
-
|
|
325
|
-
|
|
324
|
+
// Triage notes are immutable within a run: cache the resolved outcome —
|
|
325
|
+
// yes, no, AND unknown — so the dashboard lookup runs at most once per
|
|
326
|
+
// run. Without the unknown branch a missing experiential marker would
|
|
327
|
+
// re-fire the same "resolve-experiential-<taskId>" agent key on every
|
|
328
|
+
// Capture/Map entry and throw a duplicate replay key error.
|
|
329
|
+
if (experientialResolved !== null) return experientialResolved;
|
|
330
|
+
if (isExperiential === true) return (experientialResolved = "yes");
|
|
331
|
+
if (isExperiential === false) return (experientialResolved = "no");
|
|
326
332
|
var expCheck = null;
|
|
327
333
|
try {
|
|
328
334
|
expCheck = await agent(
|
|
@@ -338,12 +344,14 @@ async function resolveExperiential() {
|
|
|
338
344
|
);
|
|
339
345
|
} catch (e) {
|
|
340
346
|
log("resolveExperiential: agent call failed (" + (e && e.message ? e.message : e) + ") — treating as unknown");
|
|
341
|
-
|
|
347
|
+
experientialResolved = "unknown";
|
|
348
|
+
return experientialResolved;
|
|
342
349
|
}
|
|
343
350
|
var marker = extractExperiential(expCheck && expCheck.experiential_line ? expCheck.experiential_line : "");
|
|
344
|
-
if (marker === true)
|
|
345
|
-
if (marker === false)
|
|
346
|
-
|
|
351
|
+
if (marker === true) experientialResolved = "yes";
|
|
352
|
+
else if (marker === false) experientialResolved = "no";
|
|
353
|
+
else experientialResolved = "unknown";
|
|
354
|
+
return experientialResolved;
|
|
347
355
|
}
|
|
348
356
|
// Baseline evidence status: reads the task's note events for the exact
|
|
349
357
|
// protocol prefixes (explicit state, never English matching). Returns
|
|
@@ -414,6 +422,9 @@ let mapperSpec = "";
|
|
|
414
422
|
// a Map-gate bounce re-runs Capture/Map in the same run). Chore has no QA
|
|
415
423
|
// phase, so there is no visual-verdict function — Capture only.
|
|
416
424
|
let isExperiential = null;
|
|
425
|
+
// Caches all three resolveExperiential() outcomes (yes/no/unknown); Triage
|
|
426
|
+
// notes are immutable within a run, so the lookup runs at most once.
|
|
427
|
+
let experientialResolved = null;
|
|
417
428
|
let captureTargets = "";
|
|
418
429
|
let mapGateBounceCount = 0;
|
|
419
430
|
// Merge-time versioning: the release decision is extracted deterministically
|
|
@@ -502,7 +513,7 @@ while (i < STEPS.length) {
|
|
|
502
513
|
"Find the task with id \"" + taskId + "\" in the returned tasks array.\n" +
|
|
503
514
|
"Return exactly { \"project\": \"<the task's project field, or empty string if absent>\" } and nothing else.",
|
|
504
515
|
{
|
|
505
|
-
key: "project-check-" + step.name + (reworkCount > 0 ? "-r" + reworkCount : ""),
|
|
516
|
+
key: "project-check-" + step.name + (reworkCount > 0 ? "-r" + reworkCount : "") + (mapGateBounceCount > 0 ? "-g" + mapGateBounceCount : ""),
|
|
506
517
|
label: "Checking project before " + step.name,
|
|
507
518
|
schema: { type: "object", properties: { project: { type: "string" } }, required: ["project"] }
|
|
508
519
|
}
|
package/workflows/standard.js
CHANGED
|
@@ -323,8 +323,14 @@ function buildVisualCapturePlan(taskTitle, taskDescription, kind, captureTargets
|
|
|
323
323
|
// opt-in — a missing or garbled line degrades to "unknown", which callers
|
|
324
324
|
// treat as non-experiential. The task is never parked on a garbled line.
|
|
325
325
|
async function resolveExperiential() {
|
|
326
|
-
|
|
327
|
-
|
|
326
|
+
// Triage notes are immutable within a run: cache the resolved outcome —
|
|
327
|
+
// yes, no, AND unknown — so the dashboard lookup runs at most once per
|
|
328
|
+
// run. Without the unknown branch a missing experiential marker would
|
|
329
|
+
// re-fire the same "resolve-experiential-<taskId>" agent key on every
|
|
330
|
+
// Capture/Map entry and throw a duplicate replay key error.
|
|
331
|
+
if (experientialResolved !== null) return experientialResolved;
|
|
332
|
+
if (isExperiential === true) return (experientialResolved = "yes");
|
|
333
|
+
if (isExperiential === false) return (experientialResolved = "no");
|
|
328
334
|
var expCheck = null;
|
|
329
335
|
try {
|
|
330
336
|
expCheck = await agent(
|
|
@@ -340,12 +346,14 @@ async function resolveExperiential() {
|
|
|
340
346
|
);
|
|
341
347
|
} catch (e) {
|
|
342
348
|
log("resolveExperiential: agent call failed (" + (e && e.message ? e.message : e) + ") — treating as unknown");
|
|
343
|
-
|
|
349
|
+
experientialResolved = "unknown";
|
|
350
|
+
return experientialResolved;
|
|
344
351
|
}
|
|
345
352
|
var marker = extractExperiential(expCheck && expCheck.experiential_line ? expCheck.experiential_line : "");
|
|
346
|
-
if (marker === true)
|
|
347
|
-
if (marker === false)
|
|
348
|
-
|
|
353
|
+
if (marker === true) experientialResolved = "yes";
|
|
354
|
+
else if (marker === false) experientialResolved = "no";
|
|
355
|
+
else experientialResolved = "unknown";
|
|
356
|
+
return experientialResolved;
|
|
349
357
|
}
|
|
350
358
|
// Baseline evidence status: reads the task's note events for the exact
|
|
351
359
|
// protocol prefixes (explicit state, never English matching). Returns
|
|
@@ -455,6 +463,9 @@ let mapperSpec = "";
|
|
|
455
463
|
// plan, and the Map-gate bounce counter (keeps agent stable-keys unique when
|
|
456
464
|
// a Map-gate bounce re-runs Capture/Map in the same run).
|
|
457
465
|
let isExperiential = null;
|
|
466
|
+
// Caches all three resolveExperiential() outcomes (yes/no/unknown); Triage
|
|
467
|
+
// notes are immutable within a run, so the lookup runs at most once.
|
|
468
|
+
let experientialResolved = null;
|
|
458
469
|
let captureTargets = "";
|
|
459
470
|
let mapGateBounceCount = 0;
|
|
460
471
|
// Merge-time versioning: the release decision is extracted deterministically
|
|
@@ -543,7 +554,7 @@ while (i < STEPS.length) {
|
|
|
543
554
|
"Find the task with id \"" + taskId + "\" in the returned tasks array.\n" +
|
|
544
555
|
"Return exactly { \"project\": \"<the task's project field, or empty string if absent>\" } and nothing else.",
|
|
545
556
|
{
|
|
546
|
-
key: "project-check-" + step.name + (totalReworkCount > 0 ? "-r" + totalReworkCount : ""),
|
|
557
|
+
key: "project-check-" + step.name + (totalReworkCount > 0 ? "-r" + totalReworkCount : "") + (mapGateBounceCount > 0 ? "-g" + mapGateBounceCount : ""),
|
|
547
558
|
label: "Checking project before " + step.name,
|
|
548
559
|
schema: { type: "object", properties: { project: { type: "string" } }, required: ["project"] }
|
|
549
560
|
}
|