{endpoint}
+
+ {errorMessage}
+
+ + {t("bypassed", { reason: t(`bypassReasons.${reason}`) })} +
+ )} ++ {t("summary", { rounds, attempts: attemptCount, maxActive })} +
+{endpoint}
+
+ {errorMessage}
+
+ + {t("stickyBindingTtlDesc")} +
+{t("discoveryWindowDesc")}
> ) : null} diff --git a/src/app/[locale]/settings/config/page.tsx b/src/app/[locale]/settings/config/page.tsx index d80019bd0..a918cb98c 100644 --- a/src/app/[locale]/settings/config/page.tsx +++ b/src/app/[locale]/settings/config/page.tsx @@ -1,6 +1,7 @@ import { getTranslations } from "next-intl/server"; import { Suspense } from "react"; import { Section } from "@/components/section"; +import { getEnvConfig } from "@/lib/config/env.schema"; import { getSystemSettings } from "@/repository/system-config"; import { SettingsPageHeader } from "../_components/settings-page-header"; import { AutoCleanupForm } from "./_components/auto-cleanup-form"; @@ -34,6 +35,7 @@ export default async function SettingsConfigPage({ async function SettingsConfigContent({ locale }: { locale: string }) { const t = await getTranslations({ locale, namespace: "settings" }); const settings = await getSystemSettings(); + const sessionTtlSeconds = Math.max(1, Math.floor(getEnvConfig().SESSION_TTL)); return ( <> @@ -44,6 +46,7 @@ async function SettingsConfigContent({ locale }: { locale: string }) { variant="default" >