Skip to content

Conversation

@RhysSullivan
Copy link
Collaborator

No description provided.

Introduces ChannelPageLoader and fetchChannelPageHeaderData to decouple header and thread data loading for channel pages. Adds getChannelPageHeaderData and getChannelPageThreads queries, updates affected pages to use the new loader, and moves relative time formatting to a dedicated component. Improves code modularity and enables thread list to be loaded asynchronously.
Added a formatRelativeTime function to show human-readable relative time (e.g., '2m ago', 'just now') in the RelativeTime component. Also added a left margin to the timestamp in DiscordMessage for improved spacing.
Consolidates user page and comments loading logic into a new UserPageLoader component, replacing multiple client components. Moves user posts and comments queries from public to private API, adds new header data query, and updates related database functions. Simplifies page components and improves data fetching structure for user-related pages.
Removed CustomDomainConfigurator component and integrated custom domain logic directly into the settings page using the CustomDomain component. Simplified props and API usage for domain status and updates, and improved environment variable naming in Vercel domain actions. UI now shows valid configuration status with a badge and streamlines domain management for servers.
Changed the 'next' devDependency in typescript-config to use 'catalog:' instead of a specific version. This aligns dependency management with the catalog source and removes direct version pinning.
Introduces a new Convex function for storing Discord tokens. Updates code block rendering in the UI to use DOMPurify for sanitization, improving security. Updates dependencies and types for markdown and DOMPurify support. Includes minor fixes and dependency upgrades across packages.
Added jsdom to dependencies in package.json for improved DOM manipulation in tests or server-side rendering. Updated RelativeTime component to include a biome-ignore comment for the dangerouslySetInnerHTML usage, clarifying its necessity for hydration.
Introduces attachment migration scripts and schema to support exporting attachments to Convex. Adds new UI components and enhancements: message timestamp component, bot badge display, improved embed rendering with markdown support, and updates to global styles for consistent coloring. Also updates scripts and environment usage in package.json files.
Introduces a ReplyBar component to display referenced messages in ThinMessage, including handling deleted references. Updates message enrichment logic to include reference data. Replaces 'isomorphic-dompurify' with 'dompurify' in UI components and dependencies. Removes unnecessary 'prefetch' props from Link usages for cleaner code.
Refactored search pages for both domain and general search to use new SearchInput and ThreadCard components, improving UI consistency and user experience. Enhanced ConvexInfiniteList with initial loader count and empty state support. Removed unused loading file and updated next-env.d.ts import path.
Eliminates dompurify and @types/dompurify dependencies from the UI package and codebase. Updates code and markdown rendering components to no longer sanitize HTML output with dompurify, returning raw HTML instead. Also updates Next.js route types import and ensures NextLink always uses scroll={true}.
commit 7bbab645d46afa4aeb18ac7004ebc7755e320684
Author: Rhys Sullivan <39114868+RhysSullivan@users.noreply.github.com>
Date:   Tue Dec 9 21:39:43 2025 -0800

    encode cursor to shorten it

commit a9db498978a90b18fe9928118881c21c608c62bc
Author: Rhys Sullivan <39114868+RhysSullivan@users.noreply.github.com>
Date:   Tue Dec 9 21:30:17 2025 -0800

    infinite scroll fixes

commit 4c9f7bede6e842abded88d0e64d480941695330f
Author: Rhys Sullivan <39114868+RhysSullivan@users.noreply.github.com>
Date:   Tue Dec 9 20:49:49 2025 -0800

    Add cursor-based pagination to channel pages

    Refactored channel page components and data loaders to support cursor-based pagination for threads. Updated metadata generation to set robots meta tag based on cursor presence. Enhanced ConvexInfiniteList and hooks to handle initial cursors and paginated queries with cursors.

commit 7d38e9695114e6bf980703cc10496c06a9abd955
Author: Rhys Sullivan <39114868+RhysSullivan@users.noreply.github.com>
Date:   Tue Dec 9 20:24:57 2025 -0800

    Implement paginated threads list for channel page

    Refactor channel threads fetching to use paginated queries and infinite scrolling. Update ConvexInfiniteList to support initial data and pagination state. Add ChannelThreadCardSkeleton for improved loading UI. Update backend to return paginated results for getChannelPageThreads.

commit 3a50b4f4834daaf1c0e20efda5e1ce272f78302c
Author: Rhys Sullivan <39114868+RhysSullivan@users.noreply.github.com>
Date:   Tue Dec 9 20:18:35 2025 -0800

    Move getChannelPageThreads to public API

    Refactored getChannelPageThreads from private to public API for improved accessibility. Updated all references in frontend components and loader logic to use the new public endpoint, and adjusted type imports accordingly.
Migrates user and message pages to use new public Convex API endpoints for posts and replies, supporting cursor-based pagination. Removes comments pages and related tabs, updates metadata generation to handle pagination, and refactors components to use infinite lists for loading posts and replies. Adds new public API functions for fetching user posts and message replies, and updates function type generation to deduplicate entries.
Improved the RepliesSkeleton and ReplyMessageSkeleton components for better visual consistency and code reuse. Simplified and clarified the loading and 'Load More' button logic in ConvexInfiniteList, separating the display of loading skeletons, sentinel, and button for improved readability and maintainability.
Introduces a SuspenseClientOnly component to wrap code and code block rendering, ensuring proper suspense handling and client-only rendering. Updates usages in discord-message/code.tsx and markdown/render/code-block.tsx to improve SSR/CSR compatibility and user experience.
Moved and consolidated code rendering components into packages/ui/src/components/code.tsx, including CodeBlock, InlineCode, and Code. Updated imports throughout the codebase to use the new unified code component. Removed the now-redundant discord-message/code.tsx file and updated relevant exports and usage in Discord message components. This improves maintainability and consistency for code rendering across the UI package.
Introduces HydrationProvider and useIsHydrationRender to manage hydration state. Updates providers.tsx to wrap app in HydrationProvider and refactors code.tsx to use hydration context for client-only rendering. Adjusts convex-infinite-list.tsx to improve intersection observer and loading logic.
Deleted functions and constants related to extracting JWT from cookies, which are no longer used in convex-client-live.ts. This cleanup simplifies the file and removes unnecessary code.
Enhanced error handling in message update and creation events by reporting errors with context. Integrated Sentry error capturing in batched queue processing to improve observability of batch failures.
Introduced and applied new error handling helpers (catchAllWithReport, catchAllSilentWithReport, catchAllSucceedNullWithReport, catchAllCauseWithReport, catchAllDefectWithReport) across Discord bot commands, interactions, and services to standardize error reporting and improve observability. Updated .gitignore to exclude personal-notes/. Adjusted message batching for non-production environments. Minor robustness improvements in server sync embed generation.
Introduces a VANITY_INVITE_OVERRIDES map to allow custom vanity invite codes for certain guild IDs when mapping Discord guilds to AOServer objects. This ensures correct invite codes are used for specified servers.
This reverts commit 4cd27e1.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants