mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-27 12:56:01 -06:00
fix: surface hidden-pane steer failures and demote per-turn gateway log noise (#124560)
* fix(ui): surface hidden-pane steer terminal failures globally Three terminal branches in steer-lifecycle.ts (transport null result, failed queue-row restore, failed queue-row removal) still gated their error on itemStillVisible, so a steer that failed after the operator navigated away parked the error on the queue row with no visible outcome — the exact invariant #124473 introduced surfaceChatDeliveryFailure() to protect. Route all three through the canonical helper and delete the divergent visibility-only branches. Regression test fails pre-fix (stash-verified): steer transport failure with the pane hidden now surfaces the session-named global toast. * fix(logging): demote per-turn gateway log noise to debug Live campaign evidence showed three lines dominating operator logs at info level with no per-turn diagnostic value: - 'tool policy removed N tool(s)': the policy pipeline runs on every turn, so this repeated 42x in one session. Demote to debug and delete the now-dead toolPolicyAuditLogLevel/auditLogLevel plumbing that only existed to lower diagnostic probes to the level that is now the default (net -13 production LOC). - 'codex app-server one-shot cleanup checked shared client retirement': routine per-attempt teardown detail; demote to debug. - 'codex trajectory capture requires the SQLite host recorder': static config condition warned per attempt; warn once per process. Skipped: the [model-fetch] info carve-out in model-transport-debug.ts is a named contract (docs/logging.md, #89648) — always-info by design. * fix(codex): drop test-only trajectory warn-once reset export Knip's production unused-export gate rejects resetCodexTrajectoryRecorderWarningForTest — it was a test-only seam in production code. Reset the process-wide warn-once flag via vi.resetModules() + fresh dynamic import in the test instead. * test(cron): wait for backoff re-arm instead of fixed sleep The 0ms retry timer arms only after async watcher-state persistence, so 'await delay(5)' races it on loaded CI workers (flaked on checks-node-compact-large-2: spawn called 1 time, expected 2). Replace both fixed-sleep re-arm waits with vi.waitFor on the spawn count. The remaining delay(5) guards a negative no-further-spawn assertion after cancel, where a bounded sleep is the correct shape. * fix(codex): scope trajectory recorder warn dedupe to session ClawSweeper P2: the host recorder factory returns null for per-session target-mapping conflicts, not only static config, so a process-wide warn-once flag silenced a later distinct session's recorder loss. Warn once per session (bounded set, cleared past 64 entries) so retries stay quiet but each newly affected session records its loss. Regression covers a later distinct session still warning.
This commit is contained in:
committed by
GitHub
parent
243f51d314
commit
7173aeb663
@@ -375,10 +375,10 @@ describe("doctor runtime tool schema checks", () => {
|
||||
"Disable or update the offending plugin/tool so its parameters are a JSON object schema, then rerun doctor.",
|
||||
});
|
||||
expect(mocks.createOpenClawCodingTools).toHaveBeenCalledWith(
|
||||
expect.objectContaining({ agentId: "main", toolPolicyAuditLogLevel: "debug" }),
|
||||
expect.objectContaining({ agentId: "main" }),
|
||||
);
|
||||
expect(mocks.createOpenClawCodingTools).toHaveBeenCalledWith(
|
||||
expect.objectContaining({ agentId: "worker", toolPolicyAuditLogLevel: "debug" }),
|
||||
expect.objectContaining({ agentId: "worker" }),
|
||||
);
|
||||
expect(mocks.loadModelCatalog).toHaveBeenCalledTimes(2);
|
||||
expect(mocks.loadModelCatalog).toHaveBeenNthCalledWith(
|
||||
|
||||
@@ -841,7 +841,6 @@ function collectBundleMcpRuntimeToolSchemaFindings(params: {
|
||||
modelId: params.modelRef.model,
|
||||
}),
|
||||
warn: () => {},
|
||||
toolPolicyAuditLogLevel: "debug",
|
||||
});
|
||||
return collectNormalizedToolSchemaFindings({
|
||||
agentId: params.agentId,
|
||||
@@ -904,7 +903,6 @@ function collectAgentRuntimeToolSchemaFindings(params: {
|
||||
modelContextWindowTokens: params.model.contextWindow,
|
||||
allowGatewaySubagentBinding: true,
|
||||
emitBeforeToolCallDiagnostics: false,
|
||||
toolPolicyAuditLogLevel: "debug",
|
||||
});
|
||||
} catch (error) {
|
||||
return [agentRuntimeToolLoadFailureFinding({ agentId: params.agentId, error })];
|
||||
@@ -1054,7 +1052,6 @@ function shouldReportBundleMcpRuntimeDiagnostic(params: {
|
||||
modelId: params.modelRef.model,
|
||||
}),
|
||||
warn: () => {},
|
||||
toolPolicyAuditLogLevel: "debug",
|
||||
}).length > 0
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user