From b2d080022cd009dc5bcf00ac94eec7d7ba8e8d14 Mon Sep 17 00:00:00 2001 From: Chunai-Bboy <128912240+Chunai-Bboy@users.noreply.github.com> Date: Thu, 1 Oct 2026 13:18:18 +0800 Subject: [PATCH] fix(app): restore queued follow-up (Queue/Steer) setting Since ae7e2eb ('chore(app): remove queued follow-ups for now'), the web app hard-wires follow-up delivery to steer: a migration effect coerces a stored 'queue' to 'steer', the getter maps 'queue' to 'steer', and setFollowup maps 'queue' to 'steer' on write. The Queue/Steer settings row was deleted from both the legacy and v2 settings dialogs, so there is no way to pick a mode at all. The queue machinery itself was never removed: the per-session persisted queue store, the flush-when-idle effect, the queued-messages dock (session.followupDock.* strings are still present in every locale), and the composer shouldQueue/onQueue wiring in pages/session.tsx all still work as soon as the stored value can be 'queue' again. This reverts the coercion to its pre-ae7e2eb shape and restores the settings row in both settings UIs, reusing the existing i18n keys. Default stays 'steer', so behavior is unchanged for users who never touch the setting. Refs #44108, #48203 --- .../app/src/components/settings-general.tsx | 23 +++++++++++++++++++ .../src/components/settings-v2/general.tsx | 23 +++++++++++++++++++ packages/app/src/context/settings.tsx | 12 ++-------- 3 files changed, 48 insertions(+), 10 deletions(-) diff --git a/packages/app/src/components/settings-general.tsx b/packages/app/src/components/settings-general.tsx index 8adaa1f0fdf9..9e0868d47b02 100644 --- a/packages/app/src/components/settings-general.tsx +++ b/packages/app/src/components/settings-general.tsx @@ -209,6 +209,11 @@ export const SettingsGeneral: Component = () => { { value: "dark", label: language.t("theme.scheme.dark") }, ]) + const followupOptions = createMemo((): { value: "queue" | "steer"; label: string }[] => [ + { value: "queue", label: language.t("settings.general.row.followup.option.queue") }, + { value: "steer", label: language.t("settings.general.row.followup.option.steer") }, + ]) + const languageOptions = createMemo(() => language.locales.map((locale) => ({ value: locale, @@ -382,6 +387,24 @@ export const SettingsGeneral: Component = () => { /> + + +