fix: quiet logs progress output (#1472) (thanks @czekaj)

This commit is contained in:
Peter Steinberger 2026-01-23 01:29:09 +00:00
parent 8bf1af35de
commit b72a3674a7
4 changed files with 21 additions and 3 deletions

View File

@ -25,6 +25,7 @@ Docs: https://docs.clawd.bot
### Fixes
- BlueBubbles: stop typing indicator on idle/no-reply. (#1439) Thanks @Nicell.
- CLI: suppress progress spinner noise for `logs --follow` and JSON output. (#1472) Thanks @czekaj.
- Auto-reply: only report a model switch when session state is available. (#1465) Thanks @robbyczgw-cla.
- Control UI: resolve local avatar URLs with basePath across injection + identity RPC. (#1457) Thanks @dlauer.
- Agents: surface concrete API error details instead of generic AI service errors.

View File

@ -25,7 +25,7 @@ export async function callGatewayFromCli(
params?: unknown,
extra?: { expectFinal?: boolean; progress?: boolean },
) {
const showProgress = extra?.progress ?? opts.json !== true;
const showProgress = (extra?.progress ?? true) && opts.json !== true;
return await withProgress(
{
label: `Gateway ${method}`,

View File

@ -82,4 +82,21 @@ describe("logs cli", () => {
expect(stderrWrites.join("")).toContain("output stdout closed");
});
it("disables progress spinner in json mode", async () => {
callGatewayFromCli.mockResolvedValueOnce({
file: "/tmp/clawdbot.log",
lines: [],
});
const { registerLogsCli } = await import("./logs-cli.js");
const program = new Command();
program.exitOverride();
registerLogsCli(program);
await program.parseAsync(["logs", "--json"], { from: "user" });
const extra = callGatewayFromCli.mock.calls[0]?.[3];
expect(extra).toEqual({ progress: false });
});
});

View File

@ -196,8 +196,8 @@ export function registerLogsCli(program: Command) {
while (true) {
let payload: LogsTailPayload;
// Show progress spinner only on first fetch, not during follow polling
const showProgress = first && !opts.follow;
// Show progress spinner only on first fetch for non-follow, non-JSON output.
const showProgress = first && !opts.follow && !jsonMode;
try {
payload = await fetchLogs(opts, cursor, showProgress);
} catch (err) {