diff --git a/apps/nextjs/src/app/[locale]/_client-providers/query-cache-persister.ts b/apps/nextjs/src/app/[locale]/_client-providers/query-cache-persister.ts index 7a36e611a..1b9a011aa 100644 --- a/apps/nextjs/src/app/[locale]/_client-providers/query-cache-persister.ts +++ b/apps/nextjs/src/app/[locale]/_client-providers/query-cache-persister.ts @@ -3,7 +3,6 @@ import { createAsyncStoragePersister } from "@tanstack/query-async-storage-persi import { fetchApi } from "@homarr/api/client"; import { getActiveQueryCacheBoardId, queryCacheStoragePrefix } from "@homarr/api/query-cache"; -// ponytail: write-only persister — restore is SSR-only via QueryCacheHydration const queryCacheStorage = { getItem: (_key: string) => null as string | null, async setItem(_key: string, value: string) { diff --git a/packages/analytics/src/send-server-analytics.ts b/packages/analytics/src/send-server-analytics.ts index 2a961d94c..b851f86ec 100644 --- a/packages/analytics/src/send-server-analytics.ts +++ b/packages/analytics/src/send-server-analytics.ts @@ -36,8 +36,6 @@ const logger = createLogger({ module: "analytics" }); type AnalyticsResult = "sent" | "disabled" | "failed"; -// ponytail: no DB-level lock; concurrent calls may both generate an ID, but the last write wins -// and the ID stabilizes after the first successful run. Upgrade path: use DB upsert with WHERE instanceId IS NULL. const getOrCreateInstanceId = async ( analyticsSettings: Awaited>>, ): Promise => { diff --git a/packages/api/src/router/icons.ts b/packages/api/src/router/icons.ts index 4f0e59d33..6758dd012 100644 --- a/packages/api/src/router/icons.ts +++ b/packages/api/src/router/icons.ts @@ -30,8 +30,6 @@ export const iconsRouter = createTRPCRouter({ columns: { id: true, name: true, url: true }, where: whereCondition, orderBy: (table, { asc, sql }) => { - // ponytail: SVG first, then alphabetical; with a search term, - // prepend a relevance tier (exact > prefix > substring). const svgFirst = sql`CASE WHEN ${table.name} LIKE '%.svg' THEN 0 ELSE 1 END`; const nameAsc = asc(table.name); if (term.length === 0) { diff --git a/packages/api/src/router/widgets/firewall.ts b/packages/api/src/router/widgets/firewall.ts index d4ef1b68e..08951da7c 100644 --- a/packages/api/src/router/widgets/firewall.ts +++ b/packages/api/src/router/widgets/firewall.ts @@ -12,7 +12,6 @@ import { createTRPCRouter, publicProcedure } from "../../trpc"; const firewallMiddleware = createManyIntegrationMiddleware("query", ...getIntegrationKindsByCategory("firewall")); -// ponytail: can't extract a generic factory here because each handler returns a different data type const queryFirewall = < THandler extends { handler: (integration: any, input: any) => { getDataAsync: () => Promise<{ data: any; timestamp: Date }> }; diff --git a/packages/forms-collection/src/icon-picker/icon-picker.tsx b/packages/forms-collection/src/icon-picker/icon-picker.tsx index 43006ae60..058e75bd0 100644 --- a/packages/forms-collection/src/icon-picker/icon-picker.tsx +++ b/packages/forms-collection/src/icon-picker/icon-picker.tsx @@ -55,8 +55,6 @@ export const IconPicker = ({ const [value, setValue] = useUncontrolled({ value: propsValue, onChange }); const [query, setQuery] = useState(""); - // ponytail: reset the typed query when the committed value changes - // externally (form reset, parent re-render) so the input reverts to the URL. useEffect(() => { setQuery(""); }, [value]); @@ -65,13 +63,8 @@ export const IconPicker = ({ const tCommon = useScopedI18n("common"); const [debouncedQuery] = useDebouncedValue(query, 100); - // ponytail: only search when the typed query differs from the committed - // value. On mount the input shows the existing URL (edit mode), which - // would never match the bare filenames in the icon table. const searchText = (debouncedQuery !== (value ?? "") && debouncedQuery) || ""; - // ponytail: not useSuspenseQuery — an above Suspense boundary would - // trigger on every keystroke and the dropdown flash is bad UX. const { data, isLoading, isError, refetch } = clientApi.icon.findIcons.useQuery( { searchText }, { placeholderData: (prev) => prev }, @@ -123,11 +116,8 @@ export const IconPicker = ({ ); }); - // ponytail: show the typed query if non-empty, else fall back to the URL. const inputValue = query || value || ""; - // ponytail: show the existing icon as a left-section preview. const leftSection = shouldShowPreview(value) && ; - // ponytail: prop override -> real count -> loading text. const placeholderText = placeholder || (data && tCommon("iconPicker.header", { countIcons: String(data.countIcons) })) ||