diff --git a/src/lib/quota-command-format.ts b/src/lib/quota-command-format.ts index bf200d8..c643fae 100644 --- a/src/lib/quota-command-format.ts +++ b/src/lib/quota-command-format.ts @@ -8,8 +8,9 @@ */ import type { QuotaToastEntry, QuotaToastError, SessionTokensData } from "./entries.js"; +import type { PercentDisplayMode } from "./types.js"; import { isValueEntry } from "./entries.js"; -import { bar, clampInt, padRight } from "./format-utils.js"; +import { bar, clampInt, formatDisplayedPercentLabel, padRight } from "./format-utils.js"; import { formatGroupedHeader } from "./grouped-header-format.js"; import { groupQuotaEntries } from "./grouped-entry-normalization.js"; import { renderPlainTextReport, type ReportDocument, type ReportSection } from "./report-document.js"; @@ -46,6 +47,7 @@ function buildQuotaCommandDocument(params: { errors: QuotaToastError[]; sessionTokens?: SessionTokensData; generatedAtMs?: number; + percentDisplayMode?: PercentDisplayMode; }): ReportDocument { const groups = groupQuotaEntries(params.entries, "quota"); const normalizedEntries = groups.flatMap((group) => group.entries); @@ -72,7 +74,8 @@ function buildQuotaCommandDocument(params: { } const pct = clampInt(row.percentRemaining, 0, 100); - lines.push(` ${labelCol} ${bar(pct, barWidth)} ${pct}% left${suffix}`); + const pctLabel = formatDisplayedPercentLabel(row.percentRemaining, params.percentDisplayMode); + lines.push(` ${labelCol} ${bar(pct, barWidth)} ${pctLabel}${suffix}`); } return { id: `group-${index}`, @@ -116,6 +119,7 @@ export function formatQuotaCommand(params: { errors: QuotaToastError[]; sessionTokens?: SessionTokensData; generatedAtMs?: number; + percentDisplayMode?: PercentDisplayMode; }): string { return renderPlainTextReport(buildQuotaCommandDocument(params)); } diff --git a/src/plugin.ts b/src/plugin.ts index cac56e1..185cbf5 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -1626,6 +1626,7 @@ export const QuotaToastPlugin: Plugin = async ({ client }) => { formatQuotaCommand({ ...reportData, generatedAtMs, + percentDisplayMode: runtime.config.percentDisplayMode, }), ); } diff --git a/tests/plugin.quota-command.test.ts b/tests/plugin.quota-command.test.ts index 4101980..643fec5 100644 --- a/tests/plugin.quota-command.test.ts +++ b/tests/plugin.quota-command.test.ts @@ -320,8 +320,8 @@ describe("/quota command behavior", () => { expect(client.session.prompt).toHaveBeenCalledTimes(1); const injected = getPromptText(client); - expect(injected).toContain("81% left"); - expect(injected).not.toContain("19% left"); + expect(injected).toContain("19% used"); + expect(injected).not.toContain("81% left"); }); it("rewrites default_agent only when one zero-width-normalized key matches", async () => {