feat(FN-4890): complete Step 1 — settings and notification types
Fusion-Task-Id: FN-4890 Fusion-Task-Lineage: d1ae6585-7df0-481f-83c3-c7cdd45daf4f
This commit is contained in:
committed by
gsxdsm
parent
46cd63796f
commit
6624adf110
@@ -35,6 +35,7 @@ export const DEFAULT_GLOBAL_SETTINGS = {
|
||||
"message:agent-to-agent",
|
||||
"message:room",
|
||||
"gridlock",
|
||||
"board-stall-unrecovered",
|
||||
"fallback-used",
|
||||
"memory-dreams-processed",
|
||||
"token-budget",
|
||||
@@ -271,6 +272,10 @@ export const DEFAULT_PROJECT_SETTINGS = {
|
||||
taskStuckTimeoutMs: 600_000,
|
||||
inReviewStallDeadlockThreshold: 3,
|
||||
stalePausedReviewThresholdMs: 24 * 60 * 60_000,
|
||||
pausedScopeDecayMs: 30 * 60_000,
|
||||
metaTaskStallAutoCloseMs: 2 * 60 * 60_000,
|
||||
boardStallSweepWindowMs: 2 * 60 * 60_000,
|
||||
boardStallBlockedGrowthThreshold: 3,
|
||||
// Capacity risk warning default: only warn once todo is meaningfully backlogged.
|
||||
capacityRiskBannerEnabled: false,
|
||||
capacityRiskTodoThreshold: 20,
|
||||
|
||||
@@ -352,6 +352,7 @@ export type NtfyNotificationEvent =
|
||||
| "awaiting-user-review"
|
||||
| "planning-awaiting-input"
|
||||
| "gridlock"
|
||||
| "board-stall-unrecovered"
|
||||
| "fallback-used"
|
||||
| "memory-dreams-processed"
|
||||
| "token-budget"
|
||||
@@ -369,6 +370,7 @@ export const NOTIFICATION_EVENTS = [
|
||||
"awaiting-user-review",
|
||||
"planning-awaiting-input",
|
||||
"gridlock",
|
||||
"board-stall-unrecovered",
|
||||
"fallback-used",
|
||||
"memory-dreams-processed",
|
||||
"token-budget",
|
||||
@@ -2891,6 +2893,22 @@ export interface ProjectSettings {
|
||||
* Age is measured from columnMovedAt when present, otherwise updatedAt.
|
||||
* Default: 86400000 (24 hours). Set to 0 or undefined to disable surfacing. */
|
||||
stalePausedReviewThresholdMs?: number;
|
||||
/** Minimum age in milliseconds that a paused in-progress task may continue holding
|
||||
* file-scope reservation while one or more followers are blocked by it.
|
||||
* Self-healing rebounds qualifying holders to todo when this threshold is met.
|
||||
* Default: 1800000 (30 minutes). Set to 0 to disable. */
|
||||
pausedScopeDecayMs?: number;
|
||||
/** Maximum age in milliseconds a meta-task may remain blocked without its target
|
||||
* advancing before self-healing auto-archives it as superseded.
|
||||
* Default: 7200000 (2 hours). Set to 0 to disable. */
|
||||
metaTaskStallAutoCloseMs?: number;
|
||||
/** Rolling window in milliseconds for board-stall auto-recovery evaluation.
|
||||
* Default: 7200000 (2 hours). */
|
||||
boardStallSweepWindowMs?: number;
|
||||
/** Minimum blocked-edge growth within the board-stall window that qualifies as a
|
||||
* stall signal when there are zero transitions out of in-progress.
|
||||
* Default: 3. */
|
||||
boardStallBlockedGrowthThreshold?: number;
|
||||
/** Age threshold in milliseconds before a blocker with high todo fan-out is escalated.
|
||||
* Blocker age is measured from columnMovedAt when available, otherwise updatedAt.
|
||||
* Only blockers currently in in-progress or in-review are eligible. */
|
||||
|
||||
@@ -28,6 +28,7 @@ export const DEFAULT_NTFY_EVENTS: readonly NtfyNotificationEvent[] = [
|
||||
"awaiting-user-review",
|
||||
"planning-awaiting-input",
|
||||
"gridlock",
|
||||
"board-stall-unrecovered",
|
||||
"fallback-used",
|
||||
"token-budget",
|
||||
"message:agent-to-user",
|
||||
@@ -66,7 +67,7 @@ interface NtfyConfig {
|
||||
|
||||
/** Event types for task notification deduplication */
|
||||
type TaskNotificationEvent = "in-review" | "merged" | "failed" | "awaiting-approval" | "awaiting-user-review";
|
||||
type AnyNotificationEvent = TaskNotificationEvent | "gridlock" | "fallback-used";
|
||||
type AnyNotificationEvent = TaskNotificationEvent | "gridlock" | "board-stall-unrecovered" | "fallback-used";
|
||||
|
||||
/**
|
||||
* Format a task identifier for notifications.
|
||||
|
||||
Reference in New Issue
Block a user