feat(FN-5091): complete Step 2 — wire settings and exports
Fusion-Task-Id: FN-5091 Fusion-Task-Lineage: f59dc7dd-abc2-4d1d-a755-1fe446314131
This commit is contained in:
committed by
gsxdsm
parent
e97efc9f3c
commit
8e3e71744b
@@ -206,6 +206,32 @@ describe("settings key parity", () => {
|
||||
expect(isGlobalSettingsKey("backlogPressureAlertCooldownMs")).toBe(false);
|
||||
});
|
||||
|
||||
it("keeps dependency-blocked todo report settings project-scoped with documented defaults", () => {
|
||||
expect(DEFAULT_PROJECT_SETTINGS.dependencyBlockedTodoReportEnabled).toBe(true);
|
||||
expect(DEFAULT_PROJECT_SETTINGS.dependencyBlockedTodoFreshAgeMs).toBe(30 * 60_000);
|
||||
expect(DEFAULT_PROJECT_SETTINGS.dependencyBlockedTodoStaleAgeMs).toBe(4 * 60 * 60_000);
|
||||
expect(DEFAULT_PROJECT_SETTINGS.dependencyBlockedTodoMinCount).toBe(1);
|
||||
expect(DEFAULT_PROJECT_SETTINGS.dependencyBlockedTodoReportCooldownMs).toBe(6 * 60 * 60_000);
|
||||
|
||||
expect(PROJECT_SETTINGS_KEYS).toContain("dependencyBlockedTodoReportEnabled");
|
||||
expect(PROJECT_SETTINGS_KEYS).toContain("dependencyBlockedTodoFreshAgeMs");
|
||||
expect(PROJECT_SETTINGS_KEYS).toContain("dependencyBlockedTodoStaleAgeMs");
|
||||
expect(PROJECT_SETTINGS_KEYS).toContain("dependencyBlockedTodoMinCount");
|
||||
expect(PROJECT_SETTINGS_KEYS).toContain("dependencyBlockedTodoReportCooldownMs");
|
||||
|
||||
expect(isProjectSettingsKey("dependencyBlockedTodoReportEnabled")).toBe(true);
|
||||
expect(isProjectSettingsKey("dependencyBlockedTodoFreshAgeMs")).toBe(true);
|
||||
expect(isProjectSettingsKey("dependencyBlockedTodoStaleAgeMs")).toBe(true);
|
||||
expect(isProjectSettingsKey("dependencyBlockedTodoMinCount")).toBe(true);
|
||||
expect(isProjectSettingsKey("dependencyBlockedTodoReportCooldownMs")).toBe(true);
|
||||
|
||||
expect(isGlobalSettingsKey("dependencyBlockedTodoReportEnabled")).toBe(false);
|
||||
expect(isGlobalSettingsKey("dependencyBlockedTodoFreshAgeMs")).toBe(false);
|
||||
expect(isGlobalSettingsKey("dependencyBlockedTodoStaleAgeMs")).toBe(false);
|
||||
expect(isGlobalSettingsKey("dependencyBlockedTodoMinCount")).toBe(false);
|
||||
expect(isGlobalSettingsKey("dependencyBlockedTodoReportCooldownMs")).toBe(false);
|
||||
});
|
||||
|
||||
it("keeps github tracking keys in expected scopes with documented defaults", () => {
|
||||
expect(DEFAULT_PROJECT_SETTINGS.githubTrackingEnabledByDefault).toBe(false);
|
||||
expect(DEFAULT_PROJECT_SETTINGS.githubTrackingDefaultRepo).toBeUndefined();
|
||||
|
||||
@@ -298,6 +298,11 @@ export const DEFAULT_PROJECT_SETTINGS = {
|
||||
backlogPressureRatioThreshold: 10,
|
||||
backlogPressureMinTodoCount: 5,
|
||||
backlogPressureAlertCooldownMs: 24 * 60 * 60_000,
|
||||
dependencyBlockedTodoReportEnabled: true,
|
||||
dependencyBlockedTodoFreshAgeMs: 30 * 60_000,
|
||||
dependencyBlockedTodoStaleAgeMs: 4 * 60 * 60_000,
|
||||
dependencyBlockedTodoMinCount: 1,
|
||||
dependencyBlockedTodoReportCooldownMs: 6 * 60 * 60_000,
|
||||
staleHighFanoutBlockerAgeThresholdMs: 2 * 60 * 60 * 1000,
|
||||
staleInProgressWarningMs: 4 * 60 * 60_000,
|
||||
staleInProgressCriticalMs: 24 * 60 * 60_000,
|
||||
|
||||
@@ -3034,6 +3034,20 @@ export interface ProjectSettings {
|
||||
/** Minimum cooldown in milliseconds between backlog-pressure alerts.
|
||||
* Default: 24 * 60 * 60_000. */
|
||||
backlogPressureAlertCooldownMs?: number;
|
||||
/** Enables dependency-blocked todo backlog-health reporting. Default: true. */
|
||||
dependencyBlockedTodoReportEnabled?: boolean;
|
||||
/** Blocker age in milliseconds below which dependency-blocked todo groups are fresh.
|
||||
* Default: 30 * 60_000 (30 minutes). */
|
||||
dependencyBlockedTodoFreshAgeMs?: number;
|
||||
/** Blocker age in milliseconds at or above which dependency-blocked todo groups are stale.
|
||||
* Default: 4 * 60 * 60_000 (4 hours). */
|
||||
dependencyBlockedTodoStaleAgeMs?: number;
|
||||
/** Minimum dependency-blocked todo count required to include a blocker group.
|
||||
* Default: 1. */
|
||||
dependencyBlockedTodoMinCount?: number;
|
||||
/** Minimum cooldown in milliseconds between dependency-blocked todo insight emissions.
|
||||
* Default: 6 * 60 * 60_000. */
|
||||
dependencyBlockedTodoReportCooldownMs?: number;
|
||||
/** TTL in milliseconds for persisted AI planning/subtask/mission interview sessions.
|
||||
* Sessions older than this cutoff are expired by the dashboard session cleanup loop.
|
||||
* Valid range: 600000 (10 minutes) to 2592000000 (30 days).
|
||||
|
||||
Reference in New Issue
Block a user