fix(FN-3829): recover stale merging status and align chat sidebar search styling
- Add self-healing recovery for stale in-review merging statuses when no active merger owns the task - Skip merge re-enqueue for tasks already marked with transient merging statuses and add regression coverage - Wire active merge task ID provider through project runtime for safer stale-status detection - Use chat-sidebar-search-container in ChatView with matching CSS padding - Normalize fusion-plugin-reports test script to use local vitest and add changeset for @runfusion/fusion patch Fusion-Task-Id: FN-3829
This commit is contained in:
@@ -118,6 +118,7 @@ export class InProcessRuntime
|
||||
* before `start()` via `setMergeEnqueuer`.
|
||||
*/
|
||||
private mergeEnqueuer?: (taskId: string) => void;
|
||||
private activeMergeTaskIdProvider?: () => string | null;
|
||||
/** Tracks whether startup recovery was intentionally deferred due to pause state. */
|
||||
private startupRecoveryDeferred = false;
|
||||
/** Prevent duplicate unpause recovery dispatches from racing each other. */
|
||||
@@ -621,6 +622,7 @@ export class InProcessRuntime
|
||||
getPlanningTaskIds: () => this.triageProcessor?.getProcessingTaskIds() ?? new Set<string>(),
|
||||
evictStaleTriageProcessing: () => this.triageProcessor?.evictStaleProcessing() ?? new Set<string>(),
|
||||
enqueueMerge: this.mergeEnqueuer ? (taskId: string) => this.mergeEnqueuer?.(taskId) : undefined,
|
||||
getActiveMergeTaskId: () => this.activeMergeTaskIdProvider?.() ?? null,
|
||||
});
|
||||
this.selfHealingManager.start();
|
||||
this.stuckTaskDetector.start();
|
||||
@@ -857,6 +859,10 @@ export class InProcessRuntime
|
||||
this.mergeEnqueuer = enqueueMerge;
|
||||
}
|
||||
|
||||
setActiveMergeTaskIdProvider(getActiveMergeTaskId: () => string | null): void {
|
||||
this.activeMergeTaskIdProvider = getActiveMergeTaskId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resume executor/self-healing activity after an unpause transition.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user