@mutmutco/cli 4.0.7 → 4.0.9
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/dist/main.cjs +16 -12
- package/package.json +1 -1
package/dist/main.cjs
CHANGED
|
@@ -8266,6 +8266,10 @@ var DECLARED_ENTRIES = [
|
|
|
8266
8266
|
// #4118: Listening + systemd-active ≠ GitHub online after acquirejob 503. restart.conf cannot see
|
|
8267
8267
|
// it; an Actions workflow on mmi-live cannot heal it when half the fleet is offline. Root cron.
|
|
8268
8268
|
{ name: "mmi-runner-online-reconcile (mmi-runner)", cadence: "*/5 * * * *", executor: "box cron.d", llm: "no", resolved: "declared", source: "/etc/cron.d/mmi-runner-online \u2192 /opt/mmi-control/runner-online-reconcile.sh; API-offline + _diag acquirejob, max 2 restarts/tick (verify: mmi-cli devops runtime box get mmi-runner --ssh)" },
|
|
8269
|
+
// #5292: a lane that holds a dispatched JOB but produces zero output past the budget honestly
|
|
8270
|
+
// reports "busy", so the online reconcile never fires and GitHub will not re-dispatch while the
|
|
8271
|
+
// run holds the assignment. This tick cancels + re-triggers those runs (max 1/tick, debounced).
|
|
8272
|
+
{ name: "mmi-runner-jobwedge-reconcile (mmi-runner)", cadence: "*/5 * * * *", executor: "box cron.d", llm: "no", resolved: "declared", source: "/etc/cron.d/mmi-runner-jobwedge \u2192 /opt/mmi-control/runner-jobwedge-reconcile.sh; in_progress job silent past 10 min on our lanes \u2192 cancel + rerun, max 1 heal/tick (verify: mmi-cli devops runtime box get mmi-runner --ssh)" },
|
|
8269
8273
|
// #3852: the runner /tmp sweep — daily inode hygiene (03:41 UTC), deliberately the one clutter path the
|
|
8270
8274
|
// out-of-band disk-relief script must never touch. Verified installed 2026-08-18: the cron.d file and
|
|
8271
8275
|
// flock line match scripts/runner-tmp-sweep.cron exactly.
|
|
@@ -10823,10 +10827,10 @@ var rollout_plan_default = {
|
|
|
10823
10827
|
note: "The v4.0.0 stamp happens at cut time (D6e #4463); until then the candidate is the origin/development head artifacts (built cli/dist + npm pack), identity proven by dist content hash (D6a)."
|
|
10824
10828
|
},
|
|
10825
10829
|
baseline: {
|
|
10826
|
-
version: "4.0.
|
|
10827
|
-
tag: "v4.0.
|
|
10828
|
-
commit: "
|
|
10829
|
-
npm: "@mutmutco/cli@4.0.
|
|
10830
|
+
version: "4.0.9",
|
|
10831
|
+
tag: "v4.0.9",
|
|
10832
|
+
commit: "ed837f90a7da",
|
|
10833
|
+
npm: "@mutmutco/cli@4.0.9"
|
|
10830
10834
|
},
|
|
10831
10835
|
exitCriterion: "fleet-n-of-n",
|
|
10832
10836
|
hubOnlyShortcut: "forbidden",
|
|
@@ -10843,14 +10847,14 @@ var rollout_plan_default = {
|
|
|
10843
10847
|
repo: "mutmutco/mmi-hub",
|
|
10844
10848
|
role: "canary",
|
|
10845
10849
|
schedule: "train",
|
|
10846
|
-
v3Target: "v4.0.
|
|
10850
|
+
v3Target: "v4.0.9"
|
|
10847
10851
|
}
|
|
10848
10852
|
],
|
|
10849
10853
|
rollbackTrigger: "Any red inside the post-contract soak window: `devops train gate` FAIL attributable to the v4 doors, Hub endpoint health probe failure, a pre-v4 client admitted instead of receiving actionable HTTP 426, or npm consumer install/doctor failure on the v4-only dist.",
|
|
10850
10854
|
rollback: {
|
|
10851
10855
|
independent: true,
|
|
10852
|
-
mechanism: "npm dist-tag latest -> 4.0.
|
|
10853
|
-
v3Target: "v4.0.
|
|
10856
|
+
mechanism: "npm dist-tag latest -> 4.0.9 and redeploy the Hub Lambda from tag v4.0.9 (ed837f90a7da); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
|
|
10857
|
+
v3Target: "v4.0.9 (@mutmutco/cli@4.0.9, tag commit ed837f90a7da \u2014 last known-good release carrying the repo-index v4-only contract)"
|
|
10854
10858
|
}
|
|
10855
10859
|
},
|
|
10856
10860
|
{
|
|
@@ -23581,12 +23585,12 @@ async function probeRepoIndexV4ReadinessCloud(queries, deps) {
|
|
|
23581
23585
|
if (!token) return { ok: false, error: "no Hub session token (run `gh auth login`)" };
|
|
23582
23586
|
const baseUrl = deps.baseUrl.replace(/\/$/, "");
|
|
23583
23587
|
const headers = { ...clientVersionHeaders(), Authorization: ["Bearer", token].join(" "), "content-type": "application/json" };
|
|
23584
|
-
const shadowPass = async () => {
|
|
23588
|
+
const shadowPass = async (readinessProbe) => {
|
|
23585
23589
|
for (const query of queries) {
|
|
23586
23590
|
const res = await fetchWithRetry(deps.fetch ?? fetch, `${baseUrl}/repo-index/v4/shadow`, {
|
|
23587
23591
|
method: "POST",
|
|
23588
23592
|
headers,
|
|
23589
|
-
body: JSON.stringify({ q: query.query, mode: query.mode, readinessProbe
|
|
23593
|
+
body: JSON.stringify({ q: query.query, mode: query.mode, readinessProbe })
|
|
23590
23594
|
}, { attempts: RETRY_ATTEMPTS2, timeoutMs: 12e4, sleep: deps.retrySleep });
|
|
23591
23595
|
const body = await res.json().catch(() => ({}));
|
|
23592
23596
|
if (!res.ok) return { ok: false, error: `${query.id}: ${body.error ?? `v4 readiness probe HTTP ${res.status}`}${body.errorClass ? ` (${body.errorClass})` : ""}`, status: res.status };
|
|
@@ -23594,9 +23598,9 @@ async function probeRepoIndexV4ReadinessCloud(queries, deps) {
|
|
|
23594
23598
|
return { ok: true };
|
|
23595
23599
|
};
|
|
23596
23600
|
try {
|
|
23597
|
-
const warmup = await shadowPass();
|
|
23601
|
+
const warmup = await shadowPass(false);
|
|
23598
23602
|
if (!warmup.ok) return warmup;
|
|
23599
|
-
const verdict = await shadowPass();
|
|
23603
|
+
const verdict = await shadowPass(true);
|
|
23600
23604
|
if (!verdict.ok) return verdict;
|
|
23601
23605
|
const res = await fetchWithRetry(deps.fetch ?? fetch, `${baseUrl}/repo-index/status`, {
|
|
23602
23606
|
method: "GET",
|
|
@@ -34612,7 +34616,7 @@ function checkRepoIndexCloud(probe) {
|
|
|
34612
34616
|
...Object.entries(readiness.modes).sort(([a], [b]) => a.localeCompare(b)).flatMap(([mode, result]) => {
|
|
34613
34617
|
const errors = Object.entries(result.errors).map(([kind, count]) => `${kind}:${count}`).join(",") || "none";
|
|
34614
34618
|
return [
|
|
34615
|
-
`v4 ${mode}: ${result.verdict} \u2014 evidence=${result.evidenceCount}/${result.goldenCount} relevance=${percent(result.expectedTop10CitationRelevance)} citations=${percent(result.citationValidity)} embeddings=${percent(result.embeddingCoverage)}
|
|
34619
|
+
`v4 ${mode}: ${result.verdict} \u2014 evidence=${result.evidenceCount}/${result.goldenCount} relevance=${percent(result.expectedTop10CitationRelevance)} citations=${percent(result.citationValidity)} embeddings=${percent(result.embeddingCoverage)} median=${result.medianV4Ms ?? "n/a"}ms errorRate=${percent(result.errorRate)} errors=${errors}`,
|
|
34616
34620
|
`v4 ${mode} ceilings relevance>=${percent(result.ceilings.minimumExpectedTop10CitationRelevance)} citations>=${percent(result.ceilings.minimumCitationValidity)} embeddings>=${percent(result.ceilings.minimumEmbeddingCoverage)} p95<=${result.ceilings.maximumP95Ms}ms errorRate<=${percent(result.ceilings.maximumErrorRate)}`
|
|
34617
34621
|
];
|
|
34618
34622
|
}),
|
package/package.json
CHANGED