mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-01 19:02:30 +00:00
fix(agents): classify codex deactivated workspace
This commit is contained in:
@@ -858,6 +858,7 @@ Docs: https://docs.openclaw.ai
|
||||
- CLI: route `plugins list --json` through the parsed command fast path and cover it in response budgets so plugin JSON inventory avoids full CLI registration work.
|
||||
- Control UI/Overview: render recent session rows through the shared session display resolver so label/displayName priority, key-equivalent labels, and channel fallbacks stay consistent with the chat selector. (#50696) Thanks @Maple778 and @BunsDev.
|
||||
- Gateway/network: keep OpenClaw-installed undici dispatchers on HTTP/1.1 and treat destroyed HTTP/2 session errors as recoverable network teardown, preventing `ERR_HTTP2_INVALID_SESSION` from crashing active gateway turns. Fixes #81627. (#81838) Thanks @joshavant.
|
||||
- Codex/failover: classify `deactivated_workspace` as a permanent auth failure so configured fallback models can advance when a Codex workspace is deactivated.
|
||||
- Memory/daily-files: widen the daily-memory file matcher used by Dreaming, rem-backfill, rem-harness, the doctor sweep, and short-term promotion so `memory/YYYY-MM-DD-<slug>.md` files written by the bundled session-memory hook (and any future slugged variants) are discovered alongside the date-only `memory/YYYY-MM-DD.md` shape. Date extraction still uses the leading `YYYY-MM-DD` capture group, so per-day ingestion/promotion semantics are unchanged for existing date-only files; slugged files now flow through the same paths instead of being silently skipped. Fixes #69536. Thanks @jack-stormentswe.
|
||||
- macOS/Gateway: fail managed LaunchAgent stop and restart when the configured gateway port remains busy after cleanup instead of reporting success while a listener survives. Fixes #73132. Thanks @BunsDev.
|
||||
- Telegram: reuse the sticky IPv4 Bot API transport for periodic getMe health checks, so IPv4-working hosts with broken IPv6 egress stop logging repeated probe timeouts. Fixes #76852. (#76856) Thanks @SymbolStar.
|
||||
|
||||
@@ -943,6 +943,15 @@ describe("failover-error", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("Codex deactivated workspace marker returns auth_permanent", () => {
|
||||
expect(resolveFailoverReasonFromError({ message: "deactivated_workspace" })).toBe(
|
||||
"auth_permanent",
|
||||
);
|
||||
expect(resolveFailoverReasonFromError({ message: "deactivated workspace" })).toBe(
|
||||
"auth_permanent",
|
||||
);
|
||||
});
|
||||
|
||||
it("403 OpenRouter 'Key limit exceeded' returns billing (model fallback trigger)", () => {
|
||||
// GitHub: openclaw/openclaw#53849 — OpenRouter returns 403 with "Key limit exceeded"
|
||||
// when the monthly key spending limit is reached. This must trigger billing failover
|
||||
|
||||
@@ -88,6 +88,8 @@ describe("isAuthPermanentErrorMessage", () => {
|
||||
"OAuth authentication is currently not allowed for this organization",
|
||||
"API_KEY_REVOKED",
|
||||
"api_key_deleted",
|
||||
"deactivated_workspace",
|
||||
"deactivated workspace",
|
||||
],
|
||||
expected: true,
|
||||
},
|
||||
|
||||
@@ -7,6 +7,7 @@ const PERIODIC_USAGE_LIMIT_RE =
|
||||
|
||||
const HIGH_CONFIDENCE_AUTH_PERMANENT_PATTERNS = [
|
||||
/api[_ ]?key[_ ]?(?:revoked|deactivated|deleted)/i,
|
||||
/deactivated[_ ]workspace/i,
|
||||
"key has been disabled",
|
||||
"key has been revoked",
|
||||
"account has been deactivated",
|
||||
|
||||
Reference in New Issue
Block a user