feat(FN-5034): complete Step 3 — wire stale paused todo types settings exports

Fusion-Task-Id: FN-5034
Fusion-Task-Lineage: 1e315656-30d8-41d2-9802-0d9e155f0ba8
This commit is contained in:
Fusion (runfusion.ai)
2026-05-18 15:09:49 -07:00
committed by gsxdsm
parent 8e1ee3efa0
commit b35843c2ea
3 changed files with 14 additions and 0 deletions

View File

@@ -247,6 +247,11 @@ export {
DEFAULT_STALE_PAUSED_REVIEW_THRESHOLD_MS,
} from "./stale-paused-review.js";
export type { StalePausedReviewCode, StalePausedReviewSignal } from "./stale-paused-review.js";
export {
getStalePausedTodoSignal,
DEFAULT_STALE_PAUSED_TODO_THRESHOLD_MS,
} from "./stale-paused-todo.js";
export type { StalePausedTodoCode, StalePausedTodoSignal } from "./stale-paused-todo.js";
export {
getTaskAgeStalenessSignal,
DEFAULT_TASK_AGE_STALENESS_THRESHOLDS,

View File

@@ -285,6 +285,7 @@ export const DEFAULT_PROJECT_SETTINGS = {
taskStuckTimeoutMs: 600_000,
inReviewStallDeadlockThreshold: 3,
stalePausedReviewThresholdMs: 24 * 60 * 60_000,
stalePausedTodoThresholdMs: 24 * 60 * 60_000,
pausedScopeDecayMs: 30 * 60_000,
metaTaskStallAutoCloseMs: 2 * 60 * 60_000,
metaTaskActiveExecutionGraceMs: 30 * 60_000,

View File

@@ -1,5 +1,6 @@
import type { InReviewStallSignal } from "./in-review-stall.js";
import type { StalePausedReviewSignal } from "./stale-paused-review.js";
import type { StalePausedTodoSignal } from "./stale-paused-todo.js";
import type { StalledReviewSignal } from "./stalled-review-detector.js";
import type { TaskAgeStalenessSignal } from "./task-age-staleness.js";
@@ -1596,6 +1597,9 @@ export interface Task {
/** Server-computed stale paused review diagnostic signal. Undefined when no rule matches.
* Diagnostic-only: must not trigger automatic state mutation. */
stalePausedReview?: StalePausedReviewSignal;
/** Server-computed stale paused todo diagnostic signal. Undefined when no rule matches.
* Diagnostic-only: must not trigger automatic state mutation. */
stalePausedTodo?: StalePausedTodoSignal;
/** Heuristic stalled-review diagnostic signal (legacy compatibility contract). */
stalledReview?: StalledReviewSignal;
/** Durable aggregate token usage totals for the task. Undefined when no usage has been recorded yet. */
@@ -2971,6 +2975,10 @@ 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;
/** Threshold in milliseconds for surfacing paused todo tasks as stale.
* Age is measured from columnMovedAt when present, otherwise updatedAt.
* Default: 86400000 (24 hours). Set to 0 or undefined to disable surfacing. */
stalePausedTodoThresholdMs?: 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.