feat(FN-4733): complete Step 1 — add chat auto-cleanup setting

Fusion-Task-Id: FN-4733
Fusion-Task-Lineage: 38495ced-c7a0-40aa-be22-7f02fe958806
This commit is contained in:
Fusion (runfusion.ai)
2026-05-16 08:35:02 -07:00
committed by gsxdsm
parent c6daa5e1a7
commit 7ec2711aa8
3 changed files with 10 additions and 0 deletions

View File

@@ -90,6 +90,12 @@ describe("settings key parity", () => {
expect(isGlobalSettingsKey("autoClaimCandidatesInPrompt")).toBe(false); expect(isGlobalSettingsKey("autoClaimCandidatesInPrompt")).toBe(false);
}); });
it("defaults chatAutoCleanupDays to off and keeps it project-scoped", () => {
expect(DEFAULT_PROJECT_SETTINGS.chatAutoCleanupDays).toBe(0);
expect(isProjectSettingsKey("chatAutoCleanupDays")).toBe(true);
expect(isGlobalSettingsKey("chatAutoCleanupDays")).toBe(false);
});
it("keeps heartbeatScopeDiscipline project-scoped with strict default", () => { it("keeps heartbeatScopeDiscipline project-scoped with strict default", () => {
expect(DEFAULT_PROJECT_SETTINGS.heartbeatScopeDiscipline).toBe("strict"); expect(DEFAULT_PROJECT_SETTINGS.heartbeatScopeDiscipline).toBe("strict");
expect(isProjectSettingsKey("heartbeatScopeDiscipline")).toBe(true); expect(isProjectSettingsKey("heartbeatScopeDiscipline")).toBe(true);

View File

@@ -347,6 +347,7 @@ export const DEFAULT_PROJECT_SETTINGS = {
reflectionAfterTask: true, reflectionAfterTask: true,
reviewHandoffPolicy: "disabled", reviewHandoffPolicy: "disabled",
showQuickChatFAB: false, showQuickChatFAB: false,
chatAutoCleanupDays: 0,
chatRoomRecentVerbatimMessages: 12, chatRoomRecentVerbatimMessages: 12,
chatRoomCompactionFetchLimit: 80, chatRoomCompactionFetchLimit: 80,
chatRoomSummaryMaxChars: 1_500, chatRoomSummaryMaxChars: 1_500,

View File

@@ -3027,6 +3027,9 @@ export interface ProjectSettings {
* When false, the FAB is hidden but chat remains accessible via the More menu. * When false, the FAB is hidden but chat remains accessible via the More menu.
* Default: false. */ * Default: false. */
showQuickChatFAB?: boolean; showQuickChatFAB?: boolean;
/** Number of days of chat inactivity before old chat sessions/rooms are auto-cleaned.
* Allowed values: 0 (off, default), 7, 14, 30, 60, 90. Uses updatedAt inactivity age. */
chatAutoCleanupDays?: number;
/** Number of most-recent chat-room messages kept verbatim in the responder transcript. /** Number of most-recent chat-room messages kept verbatim in the responder transcript.
* Older messages are compacted into a summary block. Default: 12. */ * Older messages are compacted into a summary block. Default: 12. */
chatRoomRecentVerbatimMessages?: number; chatRoomRecentVerbatimMessages?: number;