@mutmutco/codex-plugin 4.5.101 → 4.5.102
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 +31 -10
- package/cli/package.json +1 -1
- package/package.json +1 -1
package/cli/dist/main.cjs
CHANGED
|
@@ -6327,6 +6327,24 @@ function parseRateLimitHeaders(out) {
|
|
|
6327
6327
|
};
|
|
6328
6328
|
return { remaining: first("remaining"), limit: first("limit"), resetSec: first("reset") };
|
|
6329
6329
|
}
|
|
6330
|
+
function describeRefusal(out) {
|
|
6331
|
+
const header = (name) => new RegExp(`^${name}:\\s*(.+?)\\s*$`, "im").exec(out)?.[1];
|
|
6332
|
+
let message2 = "";
|
|
6333
|
+
const body = out.slice(out.search(/\r?\n\r?\n/) + 1).trim();
|
|
6334
|
+
try {
|
|
6335
|
+
message2 = String(JSON.parse(body).message ?? "");
|
|
6336
|
+
} catch {
|
|
6337
|
+
message2 = body;
|
|
6338
|
+
}
|
|
6339
|
+
const parts = [
|
|
6340
|
+
["resource", header("x-ratelimit-resource")],
|
|
6341
|
+
["remaining", header("x-ratelimit-remaining")],
|
|
6342
|
+
["reset", header("x-ratelimit-reset")],
|
|
6343
|
+
["retry-after", header("retry-after")]
|
|
6344
|
+
].filter(([, v]) => v !== void 0).map(([k, v]) => `${k}=${v}`);
|
|
6345
|
+
const text = message2.replace(/\s+/g, " ").slice(0, 160);
|
|
6346
|
+
return [parts.join(" "), text ? `"${text}"` : ""].filter(Boolean).join(" ") || "no rate-limit headers or message";
|
|
6347
|
+
}
|
|
6330
6348
|
var etagCache = /* @__PURE__ */ new Map();
|
|
6331
6349
|
function appPoolDetail() {
|
|
6332
6350
|
const guard = appPollGuardSnapshot();
|
|
@@ -6360,7 +6378,7 @@ async function defaultGhApi(args) {
|
|
|
6360
6378
|
}
|
|
6361
6379
|
if (source === "app" && appToken && (status === 403 || status === 429)) {
|
|
6362
6380
|
noteAppPollResponse(parseRateLimitHeaders(errOut), true, Date.now());
|
|
6363
|
-
console.warn(`poll credential: App pool refused the read (HTTP ${status}, ${appPoolDetail()}) \u2014 REST poll reads switch to the ambient user token until the App pool resets (#7843)`);
|
|
6381
|
+
console.warn(`poll credential: App pool refused the read (HTTP ${status}, ${appPoolDetail()}; response: ${describeRefusal(errOut)}) \u2014 REST poll reads switch to the ambient user token until the App pool resets (#7843)`);
|
|
6364
6382
|
lastPollSource = "user";
|
|
6365
6383
|
source = "user";
|
|
6366
6384
|
continue;
|
|
@@ -17604,10 +17622,10 @@ var rollout_plan_default = {
|
|
|
17604
17622
|
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)."
|
|
17605
17623
|
},
|
|
17606
17624
|
baseline: {
|
|
17607
|
-
version: "4.5.
|
|
17608
|
-
tag: "v4.5.
|
|
17609
|
-
commit: "
|
|
17610
|
-
npm: "@mutmutco/cli@4.5.
|
|
17625
|
+
version: "4.5.102",
|
|
17626
|
+
tag: "v4.5.102",
|
|
17627
|
+
commit: "69ad9c05771f",
|
|
17628
|
+
npm: "@mutmutco/cli@4.5.102"
|
|
17611
17629
|
},
|
|
17612
17630
|
exitCriterion: "fleet-n-of-n",
|
|
17613
17631
|
hubOnlyShortcut: "forbidden",
|
|
@@ -17624,14 +17642,14 @@ var rollout_plan_default = {
|
|
|
17624
17642
|
repo: "mutmutco/mmi-hub",
|
|
17625
17643
|
role: "canary",
|
|
17626
17644
|
schedule: "train",
|
|
17627
|
-
v3Target: "v4.5.
|
|
17645
|
+
v3Target: "v4.5.102"
|
|
17628
17646
|
}
|
|
17629
17647
|
],
|
|
17630
17648
|
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.",
|
|
17631
17649
|
rollback: {
|
|
17632
17650
|
independent: true,
|
|
17633
|
-
mechanism: "npm dist-tag latest -> 4.5.
|
|
17634
|
-
v3Target: "v4.5.
|
|
17651
|
+
mechanism: "npm dist-tag latest -> 4.5.102 and redeploy the Hub Lambda from tag v4.5.102 (69ad9c05771f); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
|
|
17652
|
+
v3Target: "v4.5.102 (@mutmutco/cli@4.5.102, tag commit 69ad9c05771f \u2014 last known-good release carrying the repo-index v4-only contract)"
|
|
17635
17653
|
}
|
|
17636
17654
|
},
|
|
17637
17655
|
{
|
|
@@ -46588,8 +46606,11 @@ function trainApplyDeps() {
|
|
|
46588
46606
|
// Hub-App-authority dispatch of the central tenant-control.yml (#1717) — the Hub fires the
|
|
46589
46607
|
// workflow_dispatch with its App token. Never throws for an expected rejection: it returns the dispatch
|
|
46590
46608
|
// outcome so runTenantControl can map a 5xx (transport-failed, retryable) vs a 4xx (rejected) vs ok.
|
|
46591
|
-
|
|
46592
|
-
|
|
46609
|
+
// #7961: forward every SET field rather than re-listing them, so a new option (e.g. `edge`) cannot be
|
|
46610
|
+
// dropped silently. Unset/false fields are omitted: the route rejects e.g. `edge` on a non-logs action.
|
|
46611
|
+
dispatchTenantControl: async (input) => {
|
|
46612
|
+
const payload = Object.fromEntries(Object.entries(input).filter(([, v]) => v != null && v !== "" && v !== false));
|
|
46613
|
+
const res = await tenantControl(payload, registryClientDeps(await loadConfig()));
|
|
46593
46614
|
if (res.ok) return { ok: true };
|
|
46594
46615
|
const body = res.body;
|
|
46595
46616
|
return { ok: false, category: body?.category, error: body?.error ?? res.error };
|
package/cli/package.json
CHANGED