mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-26 04:15:48 -06:00
fix(status): hide healthy plugin summary (#100143)
* fix(status): hide healthy plugin summary * fix(status): hide healthy plugin summary
This commit is contained in:
committed by
GitHub
parent
194d85e891
commit
4d181b62a9
@@ -31,6 +31,7 @@ Docs: https://docs.openclaw.ai
|
||||
|
||||
### Fixes
|
||||
|
||||
- **Status signal:** omit the redundant `Plugins: OK` row from compact `/status` output while retaining actionable plugin-health warnings and detailed plugin status.
|
||||
- **Control UI terminal rendering:** adopt the shared `@openclaw/libterminal` browser lifecycle and add Nerd Font fallbacks so icon-enabled shell listings render their glyphs when a compatible local font is installed.
|
||||
- **Control UI chat history:** hide redundant channel-final delivery mirrors when the preceding app-server assistant reply already shows the same text.
|
||||
- **Control UI chat spacing:** keep the first message comfortably clear of the topbar with a responsive minimum transcript inset.
|
||||
|
||||
@@ -14,8 +14,8 @@ const emptySnapshot: StatusPluginHealthSnapshot = {
|
||||
};
|
||||
|
||||
describe("plugin health status formatting", () => {
|
||||
it("shows a tiny OK line when there are no plugin health problems", () => {
|
||||
expect(formatCompactPluginHealthLine(emptySnapshot)).toBe("🔌 Plugins: OK");
|
||||
it("omits the compact line when there are no plugin health problems", () => {
|
||||
expect(formatCompactPluginHealthLine(emptySnapshot)).toBeUndefined();
|
||||
});
|
||||
|
||||
it("summarizes plugin errors and context engine quarantines in the compact line", () => {
|
||||
@@ -119,7 +119,7 @@ describe("plugin health status formatting", () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
).toBe("🔌 Plugins: OK");
|
||||
).toBeUndefined();
|
||||
});
|
||||
|
||||
it("merges runtime health into installed plugin snapshots for detailed status", () => {
|
||||
|
||||
@@ -224,7 +224,9 @@ function formatCount(count: number, noun: string): string {
|
||||
return `${count} ${noun}${count === 1 ? "" : "s"}`;
|
||||
}
|
||||
|
||||
export function formatCompactPluginHealthLine(snapshot: StatusPluginHealthSnapshot): string {
|
||||
export function formatCompactPluginHealthLine(snapshot: StatusPluginHealthSnapshot):
|
||||
| string
|
||||
| undefined {
|
||||
const loadErrors = snapshot.plugins.filter((plugin) => plugin.status === "error").length;
|
||||
const dependencyIssues = snapshot.plugins.filter(hasDependencyIssue).length;
|
||||
const diagnosticErrors = countProblemDiagnostics(getReportableDiagnostics(snapshot)).errors;
|
||||
@@ -243,7 +245,7 @@ export function formatCompactPluginHealthLine(snapshot: StatusPluginHealthSnapsh
|
||||
diagnosticErrors > 0 ? formatCount(diagnosticErrors, "diagnostic error") : null,
|
||||
].filter((part): part is string => Boolean(part));
|
||||
|
||||
return parts.length === 0 ? "🔌 Plugins: OK" : `⚠️ Plugins: ${parts.join(" · ")}`;
|
||||
return parts.length === 0 ? undefined : `⚠️ Plugins: ${parts.join(" · ")}`;
|
||||
}
|
||||
|
||||
function formatPluginList(ids: readonly string[], limit: number): string {
|
||||
@@ -323,7 +325,7 @@ export function formatDetailedPluginHealth(snapshot: StatusPluginHealthSnapshot)
|
||||
byLocale(left.configuredId, right.configuredId) || byLocale(left.source, right.source),
|
||||
);
|
||||
const lines = [
|
||||
formatCompactPluginHealthLine(snapshot),
|
||||
formatCompactPluginHealthLine(snapshot) ?? "🔌 Plugins: OK",
|
||||
`Loaded: ${loaded.length}${loaded.length > 0 ? ` (${formatPluginList(loaded, 8)})` : ""}`,
|
||||
`Disabled: ${disabled}`,
|
||||
];
|
||||
|
||||
@@ -274,7 +274,7 @@ function buildStatusUptimeLine(): string {
|
||||
return `⏱️ Uptime: gateway ${formatStatusUptimeDuration(gatewayUptimeMs)} · system ${formatStatusUptimeDuration(systemUptimeMs)}`;
|
||||
}
|
||||
|
||||
async function resolveRuntimePluginHealthLine(): Promise<string> {
|
||||
async function resolveRuntimePluginHealthLine(): Promise<string | undefined> {
|
||||
try {
|
||||
const { collectRuntimePluginHealthSnapshot } = await loadStatusPluginHealthRuntime();
|
||||
return formatCompactPluginHealthLine(collectRuntimePluginHealthSnapshot());
|
||||
|
||||
Reference in New Issue
Block a user