feat(FN-2862): merge fusion/fn-2862

This commit is contained in:
gsxdsm
2026-04-28 08:04:00 -07:00
parent 38933c770a
commit 596982dd75
11 changed files with 488 additions and 6 deletions

View File

@@ -317,7 +317,7 @@ describe("GlobalSettingsStore", () => {
// After clear, reading back gives the default value
// (either undefined on disk with default applied, or default written directly)
const settings = await store.getSettings();
expect(settings.ntfyEvents).toEqual(["in-review", "merged", "failed", "awaiting-approval", "awaiting-user-review", "planning-awaiting-input"]);
expect(settings.ntfyEvents).toEqual(["in-review", "merged", "failed", "awaiting-approval", "awaiting-user-review", "planning-awaiting-input", "gridlock"]);
});
it("handles concurrent updates safely via locking", async () => {

View File

@@ -22,7 +22,7 @@ export const DEFAULT_GLOBAL_SETTINGS = {
ntfyEnabled: false,
ntfyTopic: undefined,
ntfyBaseUrl: undefined,
ntfyEvents: ["in-review", "merged", "failed", "awaiting-approval", "awaiting-user-review", "planning-awaiting-input"],
ntfyEvents: ["in-review", "merged", "failed", "awaiting-approval", "awaiting-user-review", "planning-awaiting-input", "gridlock"],
ntfyDashboardHost: undefined,
defaultProjectId: undefined,
setupComplete: undefined,

View File

@@ -152,7 +152,7 @@ export interface WorkflowStep {
/** Input for creating a new workflow step. */
/** Event types that can trigger ntfy notifications */
export type NtfyNotificationEvent = "in-review" | "merged" | "failed" | "awaiting-approval" | "awaiting-user-review" | "planning-awaiting-input";
export type NtfyNotificationEvent = "in-review" | "merged" | "failed" | "awaiting-approval" | "awaiting-user-review" | "planning-awaiting-input" | "gridlock";
export interface WorkflowStepInput {
/** Built-in template source ID when creating a concrete step from a template. */