fix: clarify doctor auto-enable hint
This commit is contained in:
@@ -13,7 +13,7 @@ describe("applyPluginAutoEnable", () => {
|
||||
|
||||
expect(result.config.plugins?.entries?.slack?.enabled).toBe(true);
|
||||
expect(result.config.plugins?.allow).toEqual(["telegram", "slack"]);
|
||||
expect(result.changes.join("\n")).toContain('Enabled plugin "slack"');
|
||||
expect(result.changes.join("\n")).toContain("Slack configured, not enabled yet.");
|
||||
});
|
||||
|
||||
it("respects explicit disable", () => {
|
||||
@@ -74,8 +74,8 @@ describe("applyPluginAutoEnable", () => {
|
||||
|
||||
expect(result.config.plugins?.entries?.bluebubbles?.enabled).toBe(true);
|
||||
expect(result.config.plugins?.entries?.imessage?.enabled).toBeUndefined();
|
||||
expect(result.changes.join("\n")).toContain('Enabled plugin "bluebubbles"');
|
||||
expect(result.changes.join("\n")).not.toContain('Enabled plugin "imessage"');
|
||||
expect(result.changes.join("\n")).toContain("bluebubbles configured, not enabled yet.");
|
||||
expect(result.changes.join("\n")).not.toContain("iMessage configured, not enabled yet.");
|
||||
});
|
||||
|
||||
it("keeps imessage enabled if already explicitly enabled (non-destructive)", () => {
|
||||
@@ -108,7 +108,7 @@ describe("applyPluginAutoEnable", () => {
|
||||
|
||||
expect(result.config.plugins?.entries?.bluebubbles?.enabled).toBe(false);
|
||||
expect(result.config.plugins?.entries?.imessage?.enabled).toBe(true);
|
||||
expect(result.changes.join("\n")).toContain('Enabled plugin "imessage"');
|
||||
expect(result.changes.join("\n")).toContain("iMessage configured, not enabled yet.");
|
||||
});
|
||||
|
||||
it("allows imessage auto-enable when bluebubbles is in deny list", () => {
|
||||
@@ -136,7 +136,7 @@ describe("applyPluginAutoEnable", () => {
|
||||
});
|
||||
|
||||
expect(result.config.plugins?.entries?.imessage?.enabled).toBe(true);
|
||||
expect(result.changes.join("\n")).toContain('Enabled plugin "imessage"');
|
||||
expect(result.changes.join("\n")).toContain("iMessage configured, not enabled yet.");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -335,6 +335,16 @@ function enablePluginEntry(cfg: ClawdbotConfig, pluginId: string): ClawdbotConfi
|
||||
};
|
||||
}
|
||||
|
||||
function formatAutoEnableChange(entry: PluginEnableChange): string {
|
||||
let reason = entry.reason.trim();
|
||||
const channelId = normalizeChatChannelId(entry.pluginId);
|
||||
if (channelId) {
|
||||
const label = getChatChannelMeta(channelId).label;
|
||||
reason = reason.replace(new RegExp(`^${channelId}\\b`, "i"), label);
|
||||
}
|
||||
return `${reason}, not enabled yet.`;
|
||||
}
|
||||
|
||||
export function applyPluginAutoEnable(params: {
|
||||
config: ClawdbotConfig;
|
||||
env?: NodeJS.ProcessEnv;
|
||||
@@ -362,7 +372,7 @@ export function applyPluginAutoEnable(params: {
|
||||
if (alreadyEnabled && !allowMissing) continue;
|
||||
next = enablePluginEntry(next, entry.pluginId);
|
||||
next = ensureAllowlisted(next, entry.pluginId);
|
||||
changes.push(`Enabled plugin "${entry.pluginId}" (${entry.reason}).`);
|
||||
changes.push(formatAutoEnableChange(entry));
|
||||
}
|
||||
|
||||
return { config: next, changes };
|
||||
|
||||
Reference in New Issue
Block a user