@mutmutco/codex-plugin 4.5.148 → 4.5.149
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/.codex-plugin/plugin.json +1 -1
- package/cli/dist/main.cjs +12 -8
- package/cli/package.json +1 -1
- package/package.json +1 -1
package/cli/dist/main.cjs
CHANGED
|
@@ -18666,10 +18666,10 @@ var rollout_plan_default = {
|
|
|
18666
18666
|
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)."
|
|
18667
18667
|
},
|
|
18668
18668
|
baseline: {
|
|
18669
|
-
version: "4.5.
|
|
18670
|
-
tag: "v4.5.
|
|
18671
|
-
commit: "
|
|
18672
|
-
npm: "@mutmutco/cli@4.5.
|
|
18669
|
+
version: "4.5.149",
|
|
18670
|
+
tag: "v4.5.149",
|
|
18671
|
+
commit: "b6fc6812e054",
|
|
18672
|
+
npm: "@mutmutco/cli@4.5.149"
|
|
18673
18673
|
},
|
|
18674
18674
|
exitCriterion: "fleet-n-of-n",
|
|
18675
18675
|
hubOnlyShortcut: "forbidden",
|
|
@@ -18686,14 +18686,14 @@ var rollout_plan_default = {
|
|
|
18686
18686
|
repo: "mutmutco/mmi-hub",
|
|
18687
18687
|
role: "canary",
|
|
18688
18688
|
schedule: "train",
|
|
18689
|
-
v3Target: "v4.5.
|
|
18689
|
+
v3Target: "v4.5.149"
|
|
18690
18690
|
}
|
|
18691
18691
|
],
|
|
18692
18692
|
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.",
|
|
18693
18693
|
rollback: {
|
|
18694
18694
|
independent: true,
|
|
18695
|
-
mechanism: "npm dist-tag latest -> 4.5.
|
|
18696
|
-
v3Target: "v4.5.
|
|
18695
|
+
mechanism: "npm dist-tag latest -> 4.5.149 and redeploy the Hub Lambda from tag v4.5.149 (b6fc6812e054); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
|
|
18696
|
+
v3Target: "v4.5.149 (@mutmutco/cli@4.5.149, tag commit b6fc6812e054 \u2014 last known-good release carrying the repo-index v4-only contract)"
|
|
18697
18697
|
}
|
|
18698
18698
|
},
|
|
18699
18699
|
{
|
|
@@ -26425,6 +26425,7 @@ async function runTrainDoctor(input) {
|
|
|
26425
26425
|
const emitters = (workflows ?? []).filter((f) => parseWorkflowJobIds(f.body).some((id) => required.some((context) => contextMatchesJobId(id, context))));
|
|
26426
26426
|
const gateFiles = emitters.length ? emitters : (workflows ?? []).filter((f) => isGateWorkflowPath(f.path));
|
|
26427
26427
|
const gates = gateFiles.length ? gateFiles.map((f) => f.path.split("/").pop()) : ["gate"];
|
|
26428
|
+
const tagGateAwaitsPush = new Set(gateFiles.filter((f) => f.body.includes("scripts/gate-tag-reuse.mjs")).map((f) => f.path.split("/").pop()));
|
|
26428
26429
|
try {
|
|
26429
26430
|
const tip = await git3(["rev-parse", "--verify", "--quiet", `refs/remotes/origin/${startBranch}`]);
|
|
26430
26431
|
for (const workflow of gates) {
|
|
@@ -26432,7 +26433,8 @@ async function runTrainDoctor(input) {
|
|
|
26432
26433
|
let lastUrl = run.runUrl;
|
|
26433
26434
|
let elapsed = 0;
|
|
26434
26435
|
const startedAt = Date.now();
|
|
26435
|
-
|
|
26436
|
+
const awaitsPush = tagGateAwaitsPush.has(workflow);
|
|
26437
|
+
while (input.refuse && !awaitsPush && run.read === "found" && run.conclusion === "pending" && elapsed < CANDIDATE_PUSH_GATE_WAIT_MS) {
|
|
26436
26438
|
train.warn?.(`candidate push gate ${run.runUrl} still running \u2014 ${elapsed / 1e3}s elapsed (20m bound)`);
|
|
26437
26439
|
await deps.sleep(CANDIDATE_PUSH_GATE_POLL_MS);
|
|
26438
26440
|
run = await readTargetRun(train, repo, { workflow, event: "push" }, tip);
|
|
@@ -26454,6 +26456,8 @@ async function runTrainDoctor(input) {
|
|
|
26454
26456
|
} catch {
|
|
26455
26457
|
}
|
|
26456
26458
|
add({ code: "candidate-push-gate-red", severity: "blocker", source: "origin", title: `${workflow} push gate failed on ${startBranch}@${tip.slice(0, 12)} \u2014 ${url}`, remedy: `${url} \u2014 failed job(s): ${jobs}. Fix on development through a normal CI-gated PR and rerun; --heal never clears a red gate` });
|
|
26459
|
+
} else if (run.conclusion === "pending" && awaitsPush) {
|
|
26460
|
+
add({ code: "candidate-push-gate-running", severity: "info", source: "origin", title: `${workflow} push gate still running \u2014 ${url}; the tag gate waits on it (scripts/gate-tag-reuse.mjs), so the train does not`, remedy: "nothing \u2014 a red push gate still blocks; the tag gate runs its full test union if this run ends red or times out (#8318)" });
|
|
26457
26461
|
} else if (run.conclusion === "pending") {
|
|
26458
26462
|
add({ code: "candidate-push-gate-running", severity: "warning", source: "origin", title: `${workflow} push gate still running \u2014 ${url}`, remedy: "wait for the run to conclude and rerun; apply waits up to 20 minutes before refusing" });
|
|
26459
26463
|
if (input.refuse) throw new Error(`candidate push gate still running after 20 minutes \u2014 ${url}; nothing was tagged`);
|
package/cli/package.json
CHANGED