Skip to content

chore(impr): update default thread publicity flag | Update is_public default in thread table and centralize markdown plugins#508

Merged
AndlerRL merged 11 commits intodevelopfrom
impr-personal-chat-thread-init-state
Jun 13, 2025
Merged

chore(impr): update default thread publicity flag | Update is_public default in thread table and centralize markdown plugins#508
AndlerRL merged 11 commits intodevelopfrom
impr-personal-chat-thread-init-state

Conversation

@AndlerRL
Copy link
Member

@AndlerRL AndlerRL commented Jun 12, 2025

Summary by Sourcery

Implement KaTeX-based math rendering in markdown components, centralize and simplify markdown plugin usage, streamline hook dependencies, and update the default thread publicity flag through database migrations

New Features:

  • Render LaTeX math in markdown using KaTeX by adding remark-math, remark-rehype, and rehype-katex plugins with a preprocessor for LaTeX syntax

Enhancements:

  • Centralize markdown plugin configuration by removing per-component remark/rehype imports and using the MemoizedReactMarkdown wrapper
  • Simplify useFileAttachments hook dependencies by removing unused activeThread dependency
  • Remove hardcoded default isPublic flag in MBChatProvider to rely on database default

Build:

  • Add rehype-katex and remark-math dependencies and update rehype-mathjax version in package.json

Deployment:

  • Add Hasura migrations to change the default value of thread.is_public to false (and provide down migration)

Summary by CodeRabbit

  • New Features

    • Enhanced markdown rendering now supports math expressions using KaTeX, including improved compatibility for LaTeX delimiters.
  • Bug Fixes

    • Reduced unnecessary reloads of chat attachments when switching threads.
  • Refactor

    • Markdown rendering plugins have been consolidated and updated for consistency and improved math support across chat and blog components.
    • Removed some markdown plugins from chat message components to streamline rendering.
    • Updated default visibility settings for threads in the database schema.
    • Adjusted chat form disabling logic and thread message handling for improved chat behavior.
    • Improved handling of file attachments to prevent redundant processing and ensure up-to-date thread metadata.
    • Enhanced chat message upload flow with better async handling and refined navigation triggers.
    • Streamlined duplicate message verification logic.
    • Refined filtering of follow-up questions to handle inconsistent message ID fields.
    • Added request tracking to ensure only the latest chat attachment fetch results are used.
  • Chores

    • Updated and added dependencies related to markdown and math rendering in the package configuration.
    • Added new remote image source pattern for optimized image loading.
  • Style

    • Updated KaTeX styles for consistent math rendering appearance.

@AndlerRL AndlerRL self-assigned this Jun 12, 2025
@vercel
Copy link

vercel bot commented Jun 12, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
masterbots ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jun 13, 2025 9:01am

@sourcery-ai
Copy link

sourcery-ai bot commented Jun 12, 2025

Reviewer's Guide

This PR centralizes and upgrades Markdown rendering by replacing disparate plugin setups with a unified MemoizedReactMarkdown component that supports GitHub flavored Markdown and KaTeX math, adjusts hook and chat logic dependencies, and flips the default thread publicity flag via code removal and database migrations.

Sequence Diagram: Markdown Rendering with KaTeX in MemoizedReactMarkdown

sequenceDiagram
    participant C as Calling Component
    participant MRM as MemoizedReactMarkdown
    participant TLB as transformLatexBlocks
    participant RMD as ReactMarkdownInternal
    participant Plugins as [remarkGfm, remarkMath, rehypeKatex]

    C->>+MRM: render(markdownContent)
    MRM->>+TLB: transformLatexBlocks(markdownContent)
    TLB-->>-MRM: transformedMarkdown
    MRM->>+RMD: ReactMarkdown.render(transformedMarkdown, newPlugins)
    RMD->>Plugins: process with internal plugins
    Plugins-->>RMD: processedContent
    RMD-->>-MRM: renderedHTML
    MRM-->>-C: return renderedHTML
Loading

Entity Relationship Diagram: thread Table is_public Default Update

erDiagram
    thread {
        boolean is_public "DEFAULT false (changed from true or varied logic)"
        text other_columns
    }
Loading

File-Level Changes

Change Details Files
Centralized and enhanced Markdown rendering pipeline
  • Added remark-gfm, remark-math, remark-rehype and rehype-katex plugins
  • Implemented transformLatexBlocks to convert LaTeX delimiters
  • Refactored MemoizedReactMarkdown to apply new plugins and pass through props
apps/masterbots.ai/components/shared/markdown.tsx
Removed per-component Markdown plugin configurations
  • Deleted inline remarkPlugins and rehypePlugins in chat and browse components
  • Delegated all Markdown rendering to the updated MemoizedReactMarkdown
apps/masterbots.ai/components/routes/browse/browse-chat-message.tsx
apps/masterbots.ai/components/routes/chat/reasoning/reasoning-chat-message.tsx
apps/masterbots.ai/components/shared/short-message.tsx
apps/masterbots.ai/components/shared/thread-blog-markdown.tsx
apps/masterbots.ai/components/routes/chat/chat-message.tsx
Updated Markdown-related dependencies
  • Bumped rehype-katex and remark-math versions
  • Adjusted rehype-mathjax semver to allow patch updates
apps/masterbots.ai/package.json
Refined use-chat-attachments hook dependencies
  • Removed activeThread from useMemo dependency array
apps/masterbots.ai/lib/hooks/use-chat-attachments.ts
Removed hardcoded public flag in chat provider
  • Dropped default isPublic assignment based on chatbot name
apps/masterbots.ai/lib/hooks/use-mb-chat.tsx
Added migrations to change default thread publicity
  • Set thread.is_public default to false on up migration
  • Reverted default to true on down migration
apps/hasura/migrations/masterbots/1747434920420_alter_table_public_thread_alter_column_is_public/up.sql
apps/hasura/migrations/masterbots/1747434920420_alter_table_public_thread_alter_column_is_public/down.sql

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jun 12, 2025

Warning

Rate limit exceeded

@AndlerRL has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 3 minutes and 4 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between e39d0ab and 22b44cd.

📒 Files selected for processing (1)
  • apps/masterbots.ai/lib/hooks/use-indexed-db.ts (4 hunks)

Walkthrough

This change updates the default value of the "is_public" column in the "public.thread" table via a SQL migration. It also refactors markdown rendering in several frontend components by centralizing plugin usage within a shared component, removing redundant plugin imports elsewhere, and updating dependencies related to math and markdown processing. Additionally, minor logic adjustments were made in chat-related hooks and prompt processing.

Changes

File(s) Change Summary
apps/hasura/migrations/masterbots/1747434920420_alter_table_public_thread_alter_column_is_public/ Alters the "is_public" column default in "public.thread" table: up migration sets default to 'false', down migration to 'true'.
apps/masterbots.ai/components/routes/browse/browse-chat-message.tsx
apps/masterbots.ai/components/routes/chat/chat-message.tsx
apps/masterbots.ai/components/routes/chat/reasoning/reasoning-chat-message.tsx
apps/masterbots.ai/components/shared/short-message.tsx
apps/masterbots.ai/components/shared/thread-blog-markdown.tsx
Removes direct imports and usage of markdown and math plugins, delegating plugin handling to the shared markdown component.
apps/masterbots.ai/components/shared/markdown.tsx Refactors MemoizedReactMarkdown to include math and markdown plugins, adds KaTeX support, and preprocesses LaTeX delimiters.
apps/masterbots.ai/lib/hooks/use-chat-attachments.ts Removes useMBChat dependency and isLoading from async hook; adds request ID tracking to ignore stale attachment fetch results.
apps/masterbots.ai/lib/hooks/use-mb-chat.tsx Adds await to message upload calls; reduces navigation throttle delay; refines thread update logic; removes isPublic from optimistic thread; introduces isNewThread flag with debug logging.
apps/masterbots.ai/lib/constants/prompts.ts Updates followingQuestionsPrompt to handle messages with either messageId or id properties; deduplicates questions by these IDs.
apps/masterbots.ai/package.json Adds rehype-katex and remark-math dependencies; updates rehype-mathjax version specifier to caret version.
apps/masterbots.ai/lib/hooks/use-indexed-db.ts Adds tracking of processing attachments via a ref and localStorage to avoid duplicate processing; manages cleanup after processing.
apps/masterbots.ai/components/routes/chat/chat-list/message-pairs.tsx Expands useThread destructuring; modifies user attachment filtering to fallback on active thread attachments if needed.
apps/masterbots.ai/app/actions/ai-main-call.actions.ts Adds await to asynchronous call of convertToCoreMessages to ensure proper resolution before proceeding.
apps/masterbots.ai/components/routes/chat/chat-list/attachment-cards.tsx Adds import of useThread hook; no other changes.
apps/masterbots.ai/lib/helpers/ai-helpers.ts Simplifies verifyDuplicateMessage to return only message content, removing fallback to slug or false.
apps/masterbots.ai/next.config.js Adds storage.googleapis.com to allowed remote image sources for Next.js image optimization.
packages/mb-lib/src/jwt/jwt.lib.ts Changes token expiration logging to only log when token is expired in development mode, with fixed message.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant FrontendComponent
    participant MemoizedReactMarkdown
    participant ReactMarkdown
    participant Plugins

    User->>FrontendComponent: View chat/message content
    FrontendComponent->>MemoizedReactMarkdown: Render markdown (content)
    MemoizedReactMarkdown->>Plugins: Preprocess markdown (GFM, math, KaTeX)
    Plugins->>ReactMarkdown: Pass transformed content
    ReactMarkdown->>FrontendComponent: Rendered HTML output
Loading

Possibly related PRs

Suggested labels

chore, enhancement, backend, frontend

Poem

🐇 Hopping through code with joyful cheer,
Markdown and math now crystal clear.
Threads public by default, neat and bright,
KaTeX renders equations just right.
Plugins trimmed, dependencies new,
A bunny’s code refresh for you! ✨

✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@coderabbitai coderabbitai bot changed the title chore(impr): update default thread publicity flag | @coderabbitai chore(impr): update default thread publicity flag | Update is_public default in thread table and centralize markdown plugins Jun 12, 2025
Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @AndlerRL - I've reviewed your changes - here's some feedback:

  • In use-chat-attachments, you removed activeThread from the hook’s dependency list—ensure this doesn’t lead to stale attachment data when switching threads.
  • MemoizedReactMarkdown is still typed as FC but now only handles string children; refining its props interface to explicitly require string children would improve type safety.
  • transformLatexBlocks runs regex replacements on every render—consider memoizing the transformed markdown (e.g. with useMemo) to avoid redundant processing of large inputs.
Here's what I looked at during the review
  • 🟡 General issues: 1 issue found
  • 🟢 Security: all looks good
  • 🟢 Testing: all looks good
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🔭 Outside diff range comments (1)
apps/masterbots.ai/lib/hooks/use-chat-attachments.ts (1)

76-89: ⚠️ Potential issue

Missing activeThread in dependency array may stale attachment list

useAsync() still reads activeThread?.metadata?.attachments (line 78) but activeThread was removed from the dependency list (line 88).
If the user switches threads, the hook will not re-execute and will continue showing the attachments of the previous thread.

-}, [session?.user, mounted, isLoading])
+}, [session?.user, mounted, isLoading, activeThread])

Unless this was an intentional optimisation and the value is guaranteed never to change during a session, please add it back or refactor to avoid referencing it inside the async fn.

🧹 Nitpick comments (3)
apps/hasura/migrations/masterbots/1747434920420_alter_table_public_thread_alter_column_is_public/up.sql (1)

1-1: Use unquoted boolean literal for default and verify existing data.

Instead of set default 'false', prefer the boolean literal false (without quotes) to match the column’s type exactly. Also, changing the default only affects new rows—ensure there are no existing NULL values (or backfill them) if you expect all threads to have a defined visibility.

apps/hasura/migrations/masterbots/1747434920420_alter_table_public_thread_alter_column_is_public/down.sql (1)

1-1: Mirror the literal style and confirm rollback behavior.

Similar to the up migration, use the unquoted boolean literal true for the default in the rollback. Also confirm that reverting the default doesn’t leave unexpected NULL values or violate downstream assumptions.

apps/masterbots.ai/components/shared/markdown.tsx (1)

8-18: Transform helper converts inline math to display math

\( … \) is intended for inline equations; replacing it with $$ … $$
switches to display style, which alters layout and may break line flow.
Consider:

  • keep \( … \) as inline ($ ... $) instead of $$ … $$, or
  • let KaTeX handle the original delimiters (throwOnError: false).
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5c10f51 and bba26db.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (11)
  • apps/hasura/migrations/masterbots/1747434920420_alter_table_public_thread_alter_column_is_public/down.sql (1 hunks)
  • apps/hasura/migrations/masterbots/1747434920420_alter_table_public_thread_alter_column_is_public/up.sql (1 hunks)
  • apps/masterbots.ai/components/routes/browse/browse-chat-message.tsx (0 hunks)
  • apps/masterbots.ai/components/routes/chat/chat-message.tsx (0 hunks)
  • apps/masterbots.ai/components/routes/chat/reasoning/reasoning-chat-message.tsx (0 hunks)
  • apps/masterbots.ai/components/shared/markdown.tsx (1 hunks)
  • apps/masterbots.ai/components/shared/short-message.tsx (0 hunks)
  • apps/masterbots.ai/components/shared/thread-blog-markdown.tsx (0 hunks)
  • apps/masterbots.ai/lib/hooks/use-chat-attachments.ts (1 hunks)
  • apps/masterbots.ai/lib/hooks/use-mb-chat.tsx (0 hunks)
  • apps/masterbots.ai/package.json (1 hunks)
💤 Files with no reviewable changes (6)
  • apps/masterbots.ai/components/routes/chat/chat-message.tsx
  • apps/masterbots.ai/components/routes/browse/browse-chat-message.tsx
  • apps/masterbots.ai/lib/hooks/use-mb-chat.tsx
  • apps/masterbots.ai/components/routes/chat/reasoning/reasoning-chat-message.tsx
  • apps/masterbots.ai/components/shared/short-message.tsx
  • apps/masterbots.ai/components/shared/thread-blog-markdown.tsx
🧰 Additional context used
🧠 Learnings (2)
apps/masterbots.ai/package.json (2)
Learnt from: Bran18
PR: bitcashorg/masterbots#337
File: package.json:32-34
Timestamp: 2025-01-21T16:52:47.056Z
Learning: The markdown rendering in this codebase uses `react-markdown` with `remark-gfm` and `remark-math` plugins for standard markdown and GitHub Flavored Markdown support. Raw HTML parsing through `rehype-raw` is not needed.
Learnt from: AndlerRL
PR: bitcashorg/masterbots#0
File: :0-0
Timestamp: 2025-01-30T21:56:31.907Z
Learning: The react-markdown package version ^9.0.3 and its related dependencies (remark-gfm ^4.0.0, remark-math ^6.0.0) caused component crashes in the markdown rendering components. The packages were downgraded to react-markdown ^8.0.7, remark-gfm ^3.0.1, and remark-math ^5.1.1 to fix the issues.
apps/masterbots.ai/components/shared/markdown.tsx (1)
Learnt from: Bran18
PR: bitcashorg/masterbots#337
File: package.json:32-34
Timestamp: 2025-01-21T16:52:47.056Z
Learning: The markdown rendering in this codebase uses `react-markdown` with `remark-gfm` and `remark-math` plugins for standard markdown and GitHub Flavored Markdown support. Raw HTML parsing through `rehype-raw` is not needed.
🧬 Code Graph Analysis (1)
apps/masterbots.ai/lib/hooks/use-chat-attachments.ts (1)
apps/masterbots.ai/auth.ts (1)
  • session (174-189)
🔇 Additional comments (1)
apps/masterbots.ai/package.json (1)

79-87:

Details

❓ Verification inconclusive

Potential regression: bumped react-markdown back to v9 & mixed math renderers

  1. v9+ is pure-ESM. We previously learnt (see long-term note) that upgrading past 8.0.7 crashed several markdown components. Please confirm those issues are no longer reproducible with 9.1.0 under Next 15.
  2. remark-math is now ^6.0.0, but rehype-katex 7 still depends on remark-math@^5. Double-check for peer-dependency warnings at install time.
  3. Both rehype-katex and rehype-mathjax are listed. Keeping MathJax while moving to KaTeX bloats the bundle (~300 kB). If MathJax is no longer referenced you can safely drop it.
-    "rehype-mathjax": "^7.1.0",
+    // remove if unused

🏁 Script executed:

# Check peerDependencies for rehype-katex@7.0.1 to confirm remark-math version requirement
npm view rehype-katex@7.0.1 peerDependencies

Length of output: 157


🏁 Script executed:

#!/bin/bash
# Fetch peerDependencies for rehype-katex@7.0.1 to confirm remark-math version requirement
curl -s https://unpkg.com/rehype-katex@7.0.1/package.json | jq '.peerDependencies'

Length of output: 87


Verify React-Markdown v9 under Next.js 15 and adjust math plugins

  1. Manual runtime check: v9+ of react-markdown is pure ESM and we previously saw crashes on v9.0+ in components (long-term note). Please confirm that upgrading to 9.1.0 no longer causes rendering failures under Next.js 15.
  2. Peer-dependency check: rehype-katex@7.0.1 does not declare a remark-math peer, so you shouldn’t see install-time warnings for remark-math@^6.0.0.
  3. Bundle size: you’re including both KaTeX and MathJax renderers. If you’re no longer using MathJax anywhere, drop it to shave off ~300 kB:
-    "rehype-mathjax": "^7.1.0",
+    // remove if unused

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9f072ad and 578b740.

📒 Files selected for processing (2)
  • apps/masterbots.ai/lib/constants/prompts.ts (1 hunks)
  • apps/masterbots.ai/lib/hooks/use-mb-chat.tsx (4 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/masterbots.ai/lib/hooks/use-mb-chat.tsx

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (3)
apps/masterbots.ai/app/actions/ai-main-call.actions.ts (1)

344-346: Unnecessary await on a synchronous helper

convertToCoreMessages is a synchronous function that returns CoreMessage[].
await-ing a non-Promise value has no runtime benefit and may mislead readers into thinking the helper is asynchronous.

- const coreMessages = await convertToCoreMessages(
+ const coreMessages = convertToCoreMessages(

Removing the await keeps the intent clear and eliminates a micro-overhead.
If you plan to make convertToCoreMessages asynchronous later, consider documenting that intent with a TODO instead.

packages/mb-lib/src/jwt/jwt.lib.ts (1)

179-181: Minor: prefer console.debug over console.log in dev logging

console.debug (or a dedicated logger) keeps stdout cleaner while still surfacing the message when needed.

apps/masterbots.ai/components/routes/chat/chat-list/message-pairs.tsx (1)

64-70: Avoid mutating userMessage.content directly

Directly altering props (userMessage.content = ...) can cause subtle React bugs. Derive a local variable instead:

- if (userMessage.content.includes(...)) {
-   userMessage.content = '(continued...)'
- }
+const userContent = /continued prompt regex/.test(userMessage.content)
+  ? '(continued...)'
+  : userMessage.content
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 578b740 and 0e01e91.

📒 Files selected for processing (11)
  • apps/masterbots.ai/app/actions/ai-main-call.actions.ts (1 hunks)
  • apps/masterbots.ai/components/routes/chat/chat-list/attachment-cards.tsx (1 hunks)
  • apps/masterbots.ai/components/routes/chat/chat-list/message-pairs.tsx (2 hunks)
  • apps/masterbots.ai/components/shared/markdown.tsx (1 hunks)
  • apps/masterbots.ai/lib/constants/prompts.ts (2 hunks)
  • apps/masterbots.ai/lib/helpers/ai-helpers.ts (1 hunks)
  • apps/masterbots.ai/lib/hooks/use-chat-attachments.ts (2 hunks)
  • apps/masterbots.ai/lib/hooks/use-indexed-db.ts (3 hunks)
  • apps/masterbots.ai/lib/hooks/use-mb-chat.tsx (13 hunks)
  • apps/masterbots.ai/next.config.js (1 hunks)
  • packages/mb-lib/src/jwt/jwt.lib.ts (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • apps/masterbots.ai/components/routes/chat/chat-list/attachment-cards.tsx
  • apps/masterbots.ai/next.config.js
🚧 Files skipped from review as they are similar to previous changes (4)
  • apps/masterbots.ai/lib/hooks/use-chat-attachments.ts
  • apps/masterbots.ai/lib/constants/prompts.ts
  • apps/masterbots.ai/components/shared/markdown.tsx
  • apps/masterbots.ai/lib/hooks/use-mb-chat.tsx
🧰 Additional context used
🧬 Code Graph Analysis (4)
packages/mb-lib/src/jwt/jwt.lib.ts (1)
packages/mb-env/src/config.env.ts (1)
  • appConfig (2-58)
apps/masterbots.ai/app/actions/ai-main-call.actions.ts (1)
apps/masterbots.ai/lib/helpers/ai-helpers.ts (1)
  • convertToCoreMessages (116-179)
apps/masterbots.ai/lib/helpers/ai-helpers.ts (1)
packages/mb-drizzle/src/drizzle/schema.ts (1)
  • message (640-690)
apps/masterbots.ai/components/routes/chat/chat-list/message-pairs.tsx (2)
apps/masterbots.ai/lib/hooks/use-thread.tsx (1)
  • useThread (37-43)
apps/masterbots.ai/lib/hooks/use-chat-attachments.ts (1)
  • FileAttachment (12-24)
🔇 Additional comments (1)
apps/masterbots.ai/components/routes/chat/chat-list/message-pairs.tsx (1)

95-103: Missing activeThread in useMemo dependency array

filteredUserAttachments falls back to activeThread?.metadata?.attachments, but changes to activeThread won’t re-compute the memo. Add it to the dependency list to avoid stale attachment displays.

-], [
+], [
     messagesData.previous,
     userAttachments,
+    activeThread,

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (2)
apps/masterbots.ai/lib/hooks/use-indexed-db.ts (2)

185-190: ⚠️ Potential issue

State update may use stale snapshot (same issue raised earlier)

updatedProcessedIds is built from the captured processedAttachmentIds variable.
If another concurrent invocation of getAllItems() updates the list first, this write will silently drop the other changes.

This is the exact problem flagged in the previous review but not yet addressed.

- setProcessedAttachmentIds(updatedProcessedIds)
+ setProcessedAttachmentIds(prev => [...prev, ...remoteProcessingIds])

310-315: ⚠️ Potential issue

Same stale-state pattern reappears

updatedProcessedIds is again derived from a possibly outdated closure value. Use the functional form here as well.

- setProcessedAttachmentIds(updatedProcessedIds)
+ setProcessedAttachmentIds(prev => [...prev, ...newProcessingIds])
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0e01e91 and 86e3eb6.

📒 Files selected for processing (2)
  • apps/masterbots.ai/lib/hooks/use-chat-attachments.ts (2 hunks)
  • apps/masterbots.ai/lib/hooks/use-indexed-db.ts (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/masterbots.ai/lib/hooks/use-chat-attachments.ts

@AndlerRL AndlerRL merged commit 495d30e into develop Jun 13, 2025
1 of 2 checks passed
@AndlerRL AndlerRL deleted the impr-personal-chat-thread-init-state branch June 13, 2025 09:00
AndlerRL added a commit that referenced this pull request Jun 13, 2025
* fix: change toggler wording + util hook (#424)

* impr: makes threads open on profile page and profile tweaks (#421)

* update

* fix: update

* update

* update

* update

* update

* fix: opening threads

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: update

* fix: added back to profile page

* fix: added sticky and color

* fix: codeblock ctas refactor markdown rendering, sidebar nav, code block & clipboard hook (#425)

* fix: codeblock ctas

* fix: ts build

* fix: continue thread + allMessages sequence + mobile chat css tweak (#426)

* fix: css handleCLick condition

* fix: get latest search params, continuous thread

* fix(impr): all messages sorting

* perf(impr): sign in & up redirection tweak

* perf(impr): mobile chat css

* chore: next + react security ver upt (#427)

* refactor: use chat and continue thread + continue conversation fallback (#432)

* refactor: use chat and continue generation

* fix: uniq slug and id gen (#433)

* fix: uniq thread + msg slug gen

* style: formatting

* fix: thread user attachments state upt

* perf: impr thread component at all pages + mobile tweaks

* refactor: thread-component card

* chore: restore continue generation v1

* feat(impr): thread component card

* fix: admin panel n actions

* fix: fetch getThreads

* chore: continue conversation v1.2

* chore: continue and update thread content

* chore: add ui control continue generation state

* chore: fix infinity loop

* chore(impr): enable upt msg table permission

* fix: seo thread fetch

* chore: style formating

* fix(impr): continued thread title + thread component reusability

* chore: refactor loadings + extending sonners

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add gemini provider (#437)

* feat: add gemini provider

* chore: update icons

* feat: impr continuing thread tags + accordion first msg toggle (#435)

* feat(wip): impr continuing thread tags + accordion first msg toggle

* feat(impr): continuing thread tags + accordion at first message + header mobile tweak

* style(impr): mobile thread-component x-axis space

* perf(style): coderabbitai feedbacks

* fix: css typo

* perf: sendMessageFromResponse clicked guard + continued thread tags label tweak

* chore: user thread panel clean up

* fix: user-thread-panel infinite loader

* perf: impr shared accordion animation and ux

* style: defaultAccordionState comments loc

* fix: record type warning, hasura updateMessage

* fix: getThread user data, shared-accordion

* fix: coderabbitai observations

* fix: impr file management per llm, multimodel feat flag, chat tool labels, parent thread guard

* fix: tunningUserContent parentThread condition

* fix: feature flag typo

* feat: profile page thread popup feature flag and tweaks  (#434)

* update

* fix: update

* update

* update

* update

* update

* refactor: profile page threads pop up

* fix: update config

* fix: update

* fix: update

* fix: make profile page scroll on hero

* fix: bot make popup and scroll

* fix: make profile page sidebar scroll independently

* fix: make profile page sidebar scroll independently

* fix: check the category along the chatbot when it's not checked

* fix: check the category along the chatbot when it's not checked

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>
Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add new llm models (#444)

* feat-add-models

* feat-add-models

* feat-add-models

* chore: add model

* fix: typo

* chore: add toggler color

* perf(impr): thread llm context, last question & response + new models seeds (#447)

* feat(wip): thread llm context, prev questions

* fix: previousQuestionsString slice

* fix: clickedContentId in followingQuestionsPrompt

* feat: isContinued + model type in message table

* fix: ts typo + sendMessageFromResponse callback call

* fix: ts typo

* fix: bot profile page view (#449)

* fix(wip): bot profile thread list

* style: formatting

* fix: new chats and share + og img (#451)

* fix: new chat state reset

* fix: genql gen + share link check

* fix: og img

* fix: duplicate role permission in msg table

* feat: initial continuation logic flow (#450)

* chore: restore base version

* chore: add new logic and hooks

* chore: fix providers file

* chore: improve continuation prompt

* chore: add exlucision flag

* chore: add better handler

* chore: updated flow + experimental delay

* chore: extended time

* chore(impr): streamDelayMs experimental feat flag

* style: formatting

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* fix: profile sidebar cat opt render (#453)

* fix: profile sidebar cat opt render

* chore: clean-up

* [masterbots.ai] refactor: slug generation logic with improved uniqueness and type support (#456)

* fix: slugify fn

* chore: devMode logs

* fix: uniq slug gen fn nanoid flag typo

* feat: sentry logs in webapp (#457)

* fix(impr): llm enum data, thread creation, ts, and log behavior (#458)

* fix: slugify first request delay incr + genql ts, seeds & model migration upt

* fix: create thread & msg ts

* fix(impr): profile page bugs & tweaks v1 4/15/25 (#455)

* update

* fix: update

* update

* update

* update

* update

* fix: use the user avatar or robohash

* fix: added avater to user menu

* fix: user avatar

* fix: reset search input when filter by category or chatbot

* fix: personal chat browse provider + username chk in sign up

* chore: clean duplicated if condition signup

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* refactor: continuation flow (#460)

* impr: continuation logic flow

* impr: continuation logic flow

* chore: update createImprovementPrompt

* chore: upt logs

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat: models table, enum type, and refactor chat msg deduplication logic (#462)

* feat: models table

* style: formatting

* fix: continuation accordion content

* fix: sql + metadata typo

* fix: db migrations and messages uniqby condition (#463)

* fix: db migrations + messages uniqby condition

* fix: typo

* perf(impr): verify duplicate message return condition

* chore: upt default available models

* perf(impr): reassign continued prompt

* chore: incr fn stream max duration

* fix: mob prof sidebar + sign-up pw verif + username chk (#464)

* fix: mob prof sidebar + sign-up pw verif + username chk

* chore: upt genql gen

* perf(impr): profile navigation

* feat: model selector (#466)

* wip: model selector query

* wip: model selector query

* chore: improve funtions

* chore: add coderabbit suggestion

* chore: add hasura permissions, models table

* style: formatting

* chore: fix get model client type

* chore: add model

---------

Co-authored-by: Roberto Romero Lucas <contact@andler.dev>

* chore: impr models (#472)

* chore: fix model name and condition (#473)

* refactor: user fetching code (#471)

* refactor: profile sidebar ui, upt styling, and disable prefetch (#470)

* chore: remove prefetch on sidebar & profile navigation

* perf: impr profile sidebar

* fix: infinite scroll load more fetch

* perf(impr): google sign-in

* perf(impr): session loaders tweak

* perf: impr categoriesId obtention

* fix: tailwind typo

* chore(impr): pro user guard in model selector

* chore: category label upt to topic

* chore: rm dev mode guard (#476)

* feat: add reasoning compatibility (#480)

* feat: add resoning stable

* chore: add reasoning stable v

* chore: activate reasoning

* chore: activate reasoning

* feat: pro users whitelist (#481)

* feat(wip): whitelist pro users

* chore: add whitelist pro users + page size fetch

* perf(impr): following question impr prompt

* fix: pro whitelist users clean up

* feat: user account setting  (#468)

* update

* fix: update

* update

* update

* update

* update

* feat: imple account setting

* feat: added dialog to delete button

* feat: update user deletion func

* fix: move back exmaples files

* fix: update

* fix: user account scheduling api

* fix: user account deletion request function

* refactor: account deletion request api

* fix: user account request and thread deletion

* fix: added permission and account deletion page

* fix: update on permission

* fix: enable new col permission

* fix: profile side bar

* fix: update

* fix: function rerendering

* fix: update route

* chore(impr): preferences actions and ui tweaks

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* chore: enable twitter pixel track (#479)

* chore: enable twitter pixel track

* perf(impr): twitter ads availability + dynamic config

* feat: impr profile navigation page (#478)

* fix(wip): subscriptions page render

* feat(impr): profile navigation + page ui tweaks

* style: lintin + formatting

* style(css): nav links px on mob

* fix: goToProfile in mob prof sidebar

* fix: build

* fix: thread popup opening at nav

* chore: enable preferences nav on prod

* feat: image generation  (#486)

* feat: add image generation support - gemini provider

* chore: add mineType

* chore: add conditional checks

* chore: upt model enums & list

* chore: hasura, set icl seeds chunks (#484)

* chore: hasura, set icl seeds chunks

* chore: track backup icl seed loc to lfs

* chore(seeds): uncomment phase 3 topics & add new chatbots + icl metadata rel

* chore: upt phase 3 init config seeds, adding rel

* fix: example seeds integrity

* test: incr hasura max req body

* revert: cloudbuild og config

* chore: restore skipped seed lines

* fix: thread rendering (#487)

* fix: thread list render states

* chore: linting & format

* fix: thread pop-up on refresh

* fix: user table selection

* fix(impr): type safety for image data and refactor model enums in chat (#489)

* fix: image generation flow

* chore: impr gemini generation logic

* fix: build issue

* chore: change subscription page

* chore: change subscription page + lint

* chore: user pref disable options

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

* fix: add hotfix image generation

* chore: add more image models

* fix: models_enum values + genql upt

* feat: improved subscription section (#491)

* feat: add improved subscription section

* feat: add type

* chore: add conditional dislay

* feat: add username tags

* chore: add new order and benefits

* fix: thread empty state on user profile (#490)

* update

* fix: update

* update

* update

* update

* update

* feat: added empty state to user profile page

* feat: added empty state to user profile page

* fix: update

* fix: update

* fix: account creation slug issue

* chore: restore public models table select permissions + clean up

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>
Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat(wip): web search v2 (#494)

* feat(wip): web search

* feat(wip): thread config actions

* feat(wip): share cta impr

* chore: upt domain slugs list

* chore: comment legacy getWebSearchTool

* fix: preference insert

* wip: user preferences set

* fix: typo

* fix: updateUser data upt

* fix: pref table sel (#496)

* fix: og render + tweaks (#492)

* fix: og render + tweaks

* fix: zIndex in og

* perf: impr defaultOgImage chk

* chore: bun lock upt

* chore: next-auth patch upt

* fix: app build by mv uuidregexp loc

* fix: drizzle service actions loc + msg slug check + msg uniqueness (#499)

* [masterbots.ai] chore: standarize pop-up on profile & bot page for thread display (#500)

* update

* fix: update

* update

* update

* update

* update

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added profile link to thread share

* fix: update

* fix: chatbot page thread pop-up

* fix: update

* fix: appendMessage concurrency + getBrowseThreads admin mode chk (#505)

* feat: attachment thread metadata (#502)

* feat(wip): track thread attch data

* chore: upt drizzle & genql schemas

* feat(wip): save user attachments on load chk

* perf: file upload throughout indexed db hook

* feat(wip): gcp bucket setup

* feat: enlarge thread attachment

* fix: attachment upload loop

* fix: gcloud storage + thread metadata check & upload

* fix: bucket upload + after upload mutations

* feat: store remote thread metadata to indexeddb

* fix: read file content instead url

* fix(wip): get attachments on chat onFinish

* fix: attach new stack of files to chat

* [masterbots.ai] fix: og card dimensions and spacing + profile props (#506)

* fix: og card dimensions and spacing + profile props

* fix: og card dimensions + profile props

* perf(impr): rm long usernames + autogen num + form input control

* perf: dynamic short username number gen

* chore(impr): update default thread publicity flag + attachments concurrency & render (#508)

* chore(impr): update default thread publicity flag

* fix: default thread publicity

* fix: ai generated formulas

* fix: eslint rule, display name in markdown

* fix: eslint rule, display name in markdown

* fix: following questions prompt + isNewThread guard

* fix: attachments render && concurrency + optimistic activeThread updates

* fix: build

* perf(impr): earlier downloadedAttachments array upt

* chore(impr): clean remote processed ids, indexeddb attachments

* fix: user should be able to delete threads (#507)

* update

* fix: update

* update

* update

* update

* update

* fix: user can delete thread

* fix: delete thread messages

* fix: update

* fix: obs update

* chore: file clean up

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* [masterbots.ai] feat: image generation support (#504)

* feat: add support to image generation

* feat: add GPT-image-1 support route

* feat: fix biome lint

* feat: add edit mode

* chore: enable img gen feature flag

* style: format n lint

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* fix: bun lock

* fix: ts build

---------

Co-authored-by: Brandon Fernández <31634868+Bran18@users.noreply.github.com>
Co-authored-by: Jimoh sherifdeen <63134009+sheriffjimoh@users.noreply.github.com>
Co-authored-by: bran18 <andreyfdez18@gmail.com>
Co-authored-by: Brandon fernandez <brandonfernandez@Brandons-Mac-mini.local>
AndlerRL added a commit that referenced this pull request Jun 17, 2025
…512)

* fix: change toggler wording + util hook (#424)

* impr: makes threads open on profile page and profile tweaks (#421)

* update

* fix: update

* update

* update

* update

* update

* fix: opening threads

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: update

* fix: added back to profile page

* fix: added sticky and color

* fix: codeblock ctas refactor markdown rendering, sidebar nav, code block & clipboard hook (#425)

* fix: codeblock ctas

* fix: ts build

* fix: continue thread + allMessages sequence + mobile chat css tweak (#426)

* fix: css handleCLick condition

* fix: get latest search params, continuous thread

* fix(impr): all messages sorting

* perf(impr): sign in & up redirection tweak

* perf(impr): mobile chat css

* chore: next + react security ver upt (#427)

* refactor: use chat and continue thread + continue conversation fallback (#432)

* refactor: use chat and continue generation

* fix: uniq slug and id gen (#433)

* fix: uniq thread + msg slug gen

* style: formatting

* fix: thread user attachments state upt

* perf: impr thread component at all pages + mobile tweaks

* refactor: thread-component card

* chore: restore continue generation v1

* feat(impr): thread component card

* fix: admin panel n actions

* fix: fetch getThreads

* chore: continue conversation v1.2

* chore: continue and update thread content

* chore: add ui control continue generation state

* chore: fix infinity loop

* chore(impr): enable upt msg table permission

* fix: seo thread fetch

* chore: style formating

* fix(impr): continued thread title + thread component reusability

* chore: refactor loadings + extending sonners

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add gemini provider (#437)

* feat: add gemini provider

* chore: update icons

* feat: impr continuing thread tags + accordion first msg toggle (#435)

* feat(wip): impr continuing thread tags + accordion first msg toggle

* feat(impr): continuing thread tags + accordion at first message + header mobile tweak

* style(impr): mobile thread-component x-axis space

* perf(style): coderabbitai feedbacks

* fix: css typo

* perf: sendMessageFromResponse clicked guard + continued thread tags label tweak

* chore: user thread panel clean up

* fix: user-thread-panel infinite loader

* perf: impr shared accordion animation and ux

* style: defaultAccordionState comments loc

* fix: record type warning, hasura updateMessage

* fix: getThread user data, shared-accordion

* fix: coderabbitai observations

* fix: impr file management per llm, multimodel feat flag, chat tool labels, parent thread guard

* fix: tunningUserContent parentThread condition

* fix: feature flag typo

* feat: profile page thread popup feature flag and tweaks  (#434)

* update

* fix: update

* update

* update

* update

* update

* refactor: profile page threads pop up

* fix: update config

* fix: update

* fix: update

* fix: make profile page scroll on hero

* fix: bot make popup and scroll

* fix: make profile page sidebar scroll independently

* fix: make profile page sidebar scroll independently

* fix: check the category along the chatbot when it's not checked

* fix: check the category along the chatbot when it's not checked

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>
Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add new llm models (#444)

* feat-add-models

* feat-add-models

* feat-add-models

* chore: add model

* fix: typo

* chore: add toggler color

* perf(impr): thread llm context, last question & response + new models seeds (#447)

* feat(wip): thread llm context, prev questions

* fix: previousQuestionsString slice

* fix: clickedContentId in followingQuestionsPrompt

* feat: isContinued + model type in message table

* fix: ts typo + sendMessageFromResponse callback call

* fix: ts typo

* fix: bot profile page view (#449)

* fix(wip): bot profile thread list

* style: formatting

* fix: new chats and share + og img (#451)

* fix: new chat state reset

* fix: genql gen + share link check

* fix: og img

* fix: duplicate role permission in msg table

* feat: initial continuation logic flow (#450)

* chore: restore base version

* chore: add new logic and hooks

* chore: fix providers file

* chore: improve continuation prompt

* chore: add exlucision flag

* chore: add better handler

* chore: updated flow + experimental delay

* chore: extended time

* chore(impr): streamDelayMs experimental feat flag

* style: formatting

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* fix: profile sidebar cat opt render (#453)

* fix: profile sidebar cat opt render

* chore: clean-up

* [masterbots.ai] refactor: slug generation logic with improved uniqueness and type support (#456)

* fix: slugify fn

* chore: devMode logs

* fix: uniq slug gen fn nanoid flag typo

* feat: sentry logs in webapp (#457)

* fix(impr): llm enum data, thread creation, ts, and log behavior (#458)

* fix: slugify first request delay incr + genql ts, seeds & model migration upt

* fix: create thread & msg ts

* fix(impr): profile page bugs & tweaks v1 4/15/25 (#455)

* update

* fix: update

* update

* update

* update

* update

* fix: use the user avatar or robohash

* fix: added avater to user menu

* fix: user avatar

* fix: reset search input when filter by category or chatbot

* fix: personal chat browse provider + username chk in sign up

* chore: clean duplicated if condition signup

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* refactor: continuation flow (#460)

* impr: continuation logic flow

* impr: continuation logic flow

* chore: update createImprovementPrompt

* chore: upt logs

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat: models table, enum type, and refactor chat msg deduplication logic (#462)

* feat: models table

* style: formatting

* fix: continuation accordion content

* fix: sql + metadata typo

* fix: db migrations and messages uniqby condition (#463)

* fix: db migrations + messages uniqby condition

* fix: typo

* perf(impr): verify duplicate message return condition

* chore: upt default available models

* perf(impr): reassign continued prompt

* chore: incr fn stream max duration

* fix: mob prof sidebar + sign-up pw verif + username chk (#464)

* fix: mob prof sidebar + sign-up pw verif + username chk

* chore: upt genql gen

* perf(impr): profile navigation

* feat: model selector (#466)

* wip: model selector query

* wip: model selector query

* chore: improve funtions

* chore: add coderabbit suggestion

* chore: add hasura permissions, models table

* style: formatting

* chore: fix get model client type

* chore: add model

---------

Co-authored-by: Roberto Romero Lucas <contact@andler.dev>

* chore: impr models (#472)

* chore: fix model name and condition (#473)

* refactor: user fetching code (#471)

* refactor: profile sidebar ui, upt styling, and disable prefetch (#470)

* chore: remove prefetch on sidebar & profile navigation

* perf: impr profile sidebar

* fix: infinite scroll load more fetch

* perf(impr): google sign-in

* perf(impr): session loaders tweak

* perf: impr categoriesId obtention

* fix: tailwind typo

* chore(impr): pro user guard in model selector

* chore: category label upt to topic

* chore: rm dev mode guard (#476)

* feat: add reasoning compatibility (#480)

* feat: add resoning stable

* chore: add reasoning stable v

* chore: activate reasoning

* chore: activate reasoning

* feat: pro users whitelist (#481)

* feat(wip): whitelist pro users

* chore: add whitelist pro users + page size fetch

* perf(impr): following question impr prompt

* fix: pro whitelist users clean up

* feat: user account setting  (#468)

* update

* fix: update

* update

* update

* update

* update

* feat: imple account setting

* feat: added dialog to delete button

* feat: update user deletion func

* fix: move back exmaples files

* fix: update

* fix: user account scheduling api

* fix: user account deletion request function

* refactor: account deletion request api

* fix: user account request and thread deletion

* fix: added permission and account deletion page

* fix: update on permission

* fix: enable new col permission

* fix: profile side bar

* fix: update

* fix: function rerendering

* fix: update route

* chore(impr): preferences actions and ui tweaks

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* chore: enable twitter pixel track (#479)

* chore: enable twitter pixel track

* perf(impr): twitter ads availability + dynamic config

* feat: impr profile navigation page (#478)

* fix(wip): subscriptions page render

* feat(impr): profile navigation + page ui tweaks

* style: lintin + formatting

* style(css): nav links px on mob

* fix: goToProfile in mob prof sidebar

* fix: build

* fix: thread popup opening at nav

* chore: enable preferences nav on prod

* feat: image generation  (#486)

* feat: add image generation support - gemini provider

* chore: add mineType

* chore: add conditional checks

* chore: upt model enums & list

* chore: hasura, set icl seeds chunks (#484)

* chore: hasura, set icl seeds chunks

* chore: track backup icl seed loc to lfs

* chore(seeds): uncomment phase 3 topics & add new chatbots + icl metadata rel

* chore: upt phase 3 init config seeds, adding rel

* fix: example seeds integrity

* test: incr hasura max req body

* revert: cloudbuild og config

* chore: restore skipped seed lines

* fix: thread rendering (#487)

* fix: thread list render states

* chore: linting & format

* fix: thread pop-up on refresh

* fix: user table selection

* fix(impr): type safety for image data and refactor model enums in chat (#489)

* fix: image generation flow

* chore: impr gemini generation logic

* fix: build issue

* chore: change subscription page

* chore: change subscription page + lint

* chore: user pref disable options

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

* fix: add hotfix image generation

* chore: add more image models

* fix: models_enum values + genql upt

* feat: improved subscription section (#491)

* feat: add improved subscription section

* feat: add type

* chore: add conditional dislay

* feat: add username tags

* chore: add new order and benefits

* fix: thread empty state on user profile (#490)

* update

* fix: update

* update

* update

* update

* update

* feat: added empty state to user profile page

* feat: added empty state to user profile page

* fix: update

* fix: update

* fix: account creation slug issue

* chore: restore public models table select permissions + clean up

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>
Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat(wip): web search v2 (#494)

* feat(wip): web search

* feat(wip): thread config actions

* feat(wip): share cta impr

* chore: upt domain slugs list

* chore: comment legacy getWebSearchTool

* fix: preference insert

* wip: user preferences set

* fix: typo

* fix: updateUser data upt

* fix: pref table sel (#496)

* fix: og render + tweaks (#492)

* fix: og render + tweaks

* fix: zIndex in og

* perf: impr defaultOgImage chk

* chore: bun lock upt

* chore: next-auth patch upt

* fix: app build by mv uuidregexp loc

* fix: drizzle service actions loc + msg slug check + msg uniqueness (#499)

* [masterbots.ai] chore: standarize pop-up on profile & bot page for thread display (#500)

* update

* fix: update

* update

* update

* update

* update

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added profile link to thread share

* fix: update

* fix: chatbot page thread pop-up

* fix: update

* fix: appendMessage concurrency + getBrowseThreads admin mode chk (#505)

* feat: attachment thread metadata (#502)

* feat(wip): track thread attch data

* chore: upt drizzle & genql schemas

* feat(wip): save user attachments on load chk

* perf: file upload throughout indexed db hook

* feat(wip): gcp bucket setup

* feat: enlarge thread attachment

* fix: attachment upload loop

* fix: gcloud storage + thread metadata check & upload

* fix: bucket upload + after upload mutations

* feat: store remote thread metadata to indexeddb

* fix: read file content instead url

* fix(wip): get attachments on chat onFinish

* fix: attach new stack of files to chat

* [masterbots.ai] fix: og card dimensions and spacing + profile props (#506)

* fix: og card dimensions and spacing + profile props

* fix: og card dimensions + profile props

* perf(impr): rm long usernames + autogen num + form input control

* perf: dynamic short username number gen

* chore(impr): update default thread publicity flag + attachments concurrency & render (#508)

* chore(impr): update default thread publicity flag

* fix: default thread publicity

* fix: ai generated formulas

* fix: eslint rule, display name in markdown

* fix: eslint rule, display name in markdown

* fix: following questions prompt + isNewThread guard

* fix: attachments render && concurrency + optimistic activeThread updates

* fix: build

* perf(impr): earlier downloadedAttachments array upt

* chore(impr): clean remote processed ids, indexeddb attachments

* fix: user should be able to delete threads (#507)

* update

* fix: update

* update

* update

* update

* update

* fix: user can delete thread

* fix: delete thread messages

* fix: update

* fix: obs update

* chore: file clean up

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* [masterbots.ai] feat: image generation support (#504)

* feat: add support to image generation

* feat: add GPT-image-1 support route

* feat: fix biome lint

* feat: add edit mode

* chore: enable img gen feature flag

* style: format n lint

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* fix: bun lock

* fix: ts build

* fix(impr): continuos thread render, 2nd ai res, ui tweaks (#511)

* chore(impr): mb logo wip + threads add order by update at

* feat(impr): update thread on message activity + fix order by updated at

* fix: thread pop-up default opened accordion

* perf(impr): add user promo code track + chatbot disabled flag

* fix: 2nd ai concurrent request + continuous thread context & render

---------

Co-authored-by: Brandon Fernández <31634868+Bran18@users.noreply.github.com>
Co-authored-by: Jimoh sherifdeen <63134009+sheriffjimoh@users.noreply.github.com>
Co-authored-by: bran18 <andreyfdez18@gmail.com>
Co-authored-by: Brandon fernandez <brandonfernandez@Brandons-Mac-mini.local>
AndlerRL added a commit that referenced this pull request Jun 17, 2025
* fix: change toggler wording + util hook (#424)

* impr: makes threads open on profile page and profile tweaks (#421)

* update

* fix: update

* update

* update

* update

* update

* fix: opening threads

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: update

* fix: added back to profile page

* fix: added sticky and color

* fix: codeblock ctas refactor markdown rendering, sidebar nav, code block & clipboard hook (#425)

* fix: codeblock ctas

* fix: ts build

* fix: continue thread + allMessages sequence + mobile chat css tweak (#426)

* fix: css handleCLick condition

* fix: get latest search params, continuous thread

* fix(impr): all messages sorting

* perf(impr): sign in & up redirection tweak

* perf(impr): mobile chat css

* chore: next + react security ver upt (#427)

* refactor: use chat and continue thread + continue conversation fallback (#432)

* refactor: use chat and continue generation

* fix: uniq slug and id gen (#433)

* fix: uniq thread + msg slug gen

* style: formatting

* fix: thread user attachments state upt

* perf: impr thread component at all pages + mobile tweaks

* refactor: thread-component card

* chore: restore continue generation v1

* feat(impr): thread component card

* fix: admin panel n actions

* fix: fetch getThreads

* chore: continue conversation v1.2

* chore: continue and update thread content

* chore: add ui control continue generation state

* chore: fix infinity loop

* chore(impr): enable upt msg table permission

* fix: seo thread fetch

* chore: style formating

* fix(impr): continued thread title + thread component reusability

* chore: refactor loadings + extending sonners

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add gemini provider (#437)

* feat: add gemini provider

* chore: update icons

* feat: impr continuing thread tags + accordion first msg toggle (#435)

* feat(wip): impr continuing thread tags + accordion first msg toggle

* feat(impr): continuing thread tags + accordion at first message + header mobile tweak

* style(impr): mobile thread-component x-axis space

* perf(style): coderabbitai feedbacks

* fix: css typo

* perf: sendMessageFromResponse clicked guard + continued thread tags label tweak

* chore: user thread panel clean up

* fix: user-thread-panel infinite loader

* perf: impr shared accordion animation and ux

* style: defaultAccordionState comments loc

* fix: record type warning, hasura updateMessage

* fix: getThread user data, shared-accordion

* fix: coderabbitai observations

* fix: impr file management per llm, multimodel feat flag, chat tool labels, parent thread guard

* fix: tunningUserContent parentThread condition

* fix: feature flag typo

* feat: profile page thread popup feature flag and tweaks  (#434)

* update

* fix: update

* update

* update

* update

* update

* refactor: profile page threads pop up

* fix: update config

* fix: update

* fix: update

* fix: make profile page scroll on hero

* fix: bot make popup and scroll

* fix: make profile page sidebar scroll independently

* fix: make profile page sidebar scroll independently

* fix: check the category along the chatbot when it's not checked

* fix: check the category along the chatbot when it's not checked

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>
Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add new llm models (#444)

* feat-add-models

* feat-add-models

* feat-add-models

* chore: add model

* fix: typo

* chore: add toggler color

* perf(impr): thread llm context, last question & response + new models seeds (#447)

* feat(wip): thread llm context, prev questions

* fix: previousQuestionsString slice

* fix: clickedContentId in followingQuestionsPrompt

* feat: isContinued + model type in message table

* fix: ts typo + sendMessageFromResponse callback call

* fix: ts typo

* fix: bot profile page view (#449)

* fix(wip): bot profile thread list

* style: formatting

* fix: new chats and share + og img (#451)

* fix: new chat state reset

* fix: genql gen + share link check

* fix: og img

* fix: duplicate role permission in msg table

* feat: initial continuation logic flow (#450)

* chore: restore base version

* chore: add new logic and hooks

* chore: fix providers file

* chore: improve continuation prompt

* chore: add exlucision flag

* chore: add better handler

* chore: updated flow + experimental delay

* chore: extended time

* chore(impr): streamDelayMs experimental feat flag

* style: formatting

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* fix: profile sidebar cat opt render (#453)

* fix: profile sidebar cat opt render

* chore: clean-up

* [masterbots.ai] refactor: slug generation logic with improved uniqueness and type support (#456)

* fix: slugify fn

* chore: devMode logs

* fix: uniq slug gen fn nanoid flag typo

* feat: sentry logs in webapp (#457)

* fix(impr): llm enum data, thread creation, ts, and log behavior (#458)

* fix: slugify first request delay incr + genql ts, seeds & model migration upt

* fix: create thread & msg ts

* fix(impr): profile page bugs & tweaks v1 4/15/25 (#455)

* update

* fix: update

* update

* update

* update

* update

* fix: use the user avatar or robohash

* fix: added avater to user menu

* fix: user avatar

* fix: reset search input when filter by category or chatbot

* fix: personal chat browse provider + username chk in sign up

* chore: clean duplicated if condition signup

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* refactor: continuation flow (#460)

* impr: continuation logic flow

* impr: continuation logic flow

* chore: update createImprovementPrompt

* chore: upt logs

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat: models table, enum type, and refactor chat msg deduplication logic (#462)

* feat: models table

* style: formatting

* fix: continuation accordion content

* fix: sql + metadata typo

* fix: db migrations and messages uniqby condition (#463)

* fix: db migrations + messages uniqby condition

* fix: typo

* perf(impr): verify duplicate message return condition

* chore: upt default available models

* perf(impr): reassign continued prompt

* chore: incr fn stream max duration

* fix: mob prof sidebar + sign-up pw verif + username chk (#464)

* fix: mob prof sidebar + sign-up pw verif + username chk

* chore: upt genql gen

* perf(impr): profile navigation

* feat: model selector (#466)

* wip: model selector query

* wip: model selector query

* chore: improve funtions

* chore: add coderabbit suggestion

* chore: add hasura permissions, models table

* style: formatting

* chore: fix get model client type

* chore: add model

---------

Co-authored-by: Roberto Romero Lucas <contact@andler.dev>

* chore: impr models (#472)

* chore: fix model name and condition (#473)

* refactor: user fetching code (#471)

* refactor: profile sidebar ui, upt styling, and disable prefetch (#470)

* chore: remove prefetch on sidebar & profile navigation

* perf: impr profile sidebar

* fix: infinite scroll load more fetch

* perf(impr): google sign-in

* perf(impr): session loaders tweak

* perf: impr categoriesId obtention

* fix: tailwind typo

* chore(impr): pro user guard in model selector

* chore: category label upt to topic

* chore: rm dev mode guard (#476)

* feat: add reasoning compatibility (#480)

* feat: add resoning stable

* chore: add reasoning stable v

* chore: activate reasoning

* chore: activate reasoning

* feat: pro users whitelist (#481)

* feat(wip): whitelist pro users

* chore: add whitelist pro users + page size fetch

* perf(impr): following question impr prompt

* fix: pro whitelist users clean up

* feat: user account setting  (#468)

* update

* fix: update

* update

* update

* update

* update

* feat: imple account setting

* feat: added dialog to delete button

* feat: update user deletion func

* fix: move back exmaples files

* fix: update

* fix: user account scheduling api

* fix: user account deletion request function

* refactor: account deletion request api

* fix: user account request and thread deletion

* fix: added permission and account deletion page

* fix: update on permission

* fix: enable new col permission

* fix: profile side bar

* fix: update

* fix: function rerendering

* fix: update route

* chore(impr): preferences actions and ui tweaks

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* chore: enable twitter pixel track (#479)

* chore: enable twitter pixel track

* perf(impr): twitter ads availability + dynamic config

* feat: impr profile navigation page (#478)

* fix(wip): subscriptions page render

* feat(impr): profile navigation + page ui tweaks

* style: lintin + formatting

* style(css): nav links px on mob

* fix: goToProfile in mob prof sidebar

* fix: build

* fix: thread popup opening at nav

* chore: enable preferences nav on prod

* feat: image generation  (#486)

* feat: add image generation support - gemini provider

* chore: add mineType

* chore: add conditional checks

* chore: upt model enums & list

* chore: hasura, set icl seeds chunks (#484)

* chore: hasura, set icl seeds chunks

* chore: track backup icl seed loc to lfs

* chore(seeds): uncomment phase 3 topics & add new chatbots + icl metadata rel

* chore: upt phase 3 init config seeds, adding rel

* fix: example seeds integrity

* test: incr hasura max req body

* revert: cloudbuild og config

* chore: restore skipped seed lines

* fix: thread rendering (#487)

* fix: thread list render states

* chore: linting & format

* fix: thread pop-up on refresh

* fix: user table selection

* fix(impr): type safety for image data and refactor model enums in chat (#489)

* fix: image generation flow

* chore: impr gemini generation logic

* fix: build issue

* chore: change subscription page

* chore: change subscription page + lint

* chore: user pref disable options

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

* fix: add hotfix image generation

* chore: add more image models

* fix: models_enum values + genql upt

* feat: improved subscription section (#491)

* feat: add improved subscription section

* feat: add type

* chore: add conditional dislay

* feat: add username tags

* chore: add new order and benefits

* fix: thread empty state on user profile (#490)

* update

* fix: update

* update

* update

* update

* update

* feat: added empty state to user profile page

* feat: added empty state to user profile page

* fix: update

* fix: update

* fix: account creation slug issue

* chore: restore public models table select permissions + clean up

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>
Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat(wip): web search v2 (#494)

* feat(wip): web search

* feat(wip): thread config actions

* feat(wip): share cta impr

* chore: upt domain slugs list

* chore: comment legacy getWebSearchTool

* fix: preference insert

* wip: user preferences set

* fix: typo

* fix: updateUser data upt

* fix: pref table sel (#496)

* fix: og render + tweaks (#492)

* fix: og render + tweaks

* fix: zIndex in og

* perf: impr defaultOgImage chk

* chore: bun lock upt

* chore: next-auth patch upt

* fix: app build by mv uuidregexp loc

* fix: drizzle service actions loc + msg slug check + msg uniqueness (#499)

* [masterbots.ai] chore: standarize pop-up on profile & bot page for thread display (#500)

* update

* fix: update

* update

* update

* update

* update

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added profile link to thread share

* fix: update

* fix: chatbot page thread pop-up

* fix: update

* fix: appendMessage concurrency + getBrowseThreads admin mode chk (#505)

* feat: attachment thread metadata (#502)

* feat(wip): track thread attch data

* chore: upt drizzle & genql schemas

* feat(wip): save user attachments on load chk

* perf: file upload throughout indexed db hook

* feat(wip): gcp bucket setup

* feat: enlarge thread attachment

* fix: attachment upload loop

* fix: gcloud storage + thread metadata check & upload

* fix: bucket upload + after upload mutations

* feat: store remote thread metadata to indexeddb

* fix: read file content instead url

* fix(wip): get attachments on chat onFinish

* fix: attach new stack of files to chat

* [masterbots.ai] fix: og card dimensions and spacing + profile props (#506)

* fix: og card dimensions and spacing + profile props

* fix: og card dimensions + profile props

* perf(impr): rm long usernames + autogen num + form input control

* perf: dynamic short username number gen

* chore(impr): update default thread publicity flag + attachments concurrency & render (#508)

* chore(impr): update default thread publicity flag

* fix: default thread publicity

* fix: ai generated formulas

* fix: eslint rule, display name in markdown

* fix: eslint rule, display name in markdown

* fix: following questions prompt + isNewThread guard

* fix: attachments render && concurrency + optimistic activeThread updates

* fix: build

* perf(impr): earlier downloadedAttachments array upt

* chore(impr): clean remote processed ids, indexeddb attachments

* fix: user should be able to delete threads (#507)

* update

* fix: update

* update

* update

* update

* update

* fix: user can delete thread

* fix: delete thread messages

* fix: update

* fix: obs update

* chore: file clean up

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* [masterbots.ai] feat: image generation support (#504)

* feat: add support to image generation

* feat: add GPT-image-1 support route

* feat: fix biome lint

* feat: add edit mode

* chore: enable img gen feature flag

* style: format n lint

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* fix: bun lock

* fix: ts build

* fix(impr): continuos thread render, 2nd ai res, ui tweaks (#511)

* chore(impr): mb logo wip + threads add order by update at

* feat(impr): update thread on message activity + fix order by updated at

* fix: thread pop-up default opened accordion

* perf(impr): add user promo code track + chatbot disabled flag

* fix: 2nd ai concurrent request + continuous thread context & render

* [masterbots.ai] perf(impr): chat opt state mngt and enhance attach metadata sync (#514)

* fix: toggle visibility fn state upt

* fix: file attach message ids upt

* fix: after update guard state

* fix: ts typo

* fix: thread visibility update permissions

* chore(fix): enable image gen to whitelist users

---------

Co-authored-by: Brandon Fernández <31634868+Bran18@users.noreply.github.com>
Co-authored-by: Jimoh sherifdeen <63134009+sheriffjimoh@users.noreply.github.com>
Co-authored-by: bran18 <andreyfdez18@gmail.com>
Co-authored-by: Brandon fernandez <brandonfernandez@Brandons-Mac-mini.local>
@AndlerRL
Copy link
Member Author

AndlerRL commented Jul 2, 2025

This was referenced Jul 22, 2025
sheriffjimoh pushed a commit that referenced this pull request Sep 9, 2025
…rrency & render (#508)

* chore(impr): update default thread publicity flag

* fix: default thread publicity

* fix: ai generated formulas

* fix: eslint rule, display name in markdown

* fix: eslint rule, display name in markdown

* fix: following questions prompt + isNewThread guard

* fix: attachments render && concurrency + optimistic activeThread updates

* fix: build

* perf(impr): earlier downloadedAttachments array upt

* chore(impr): clean remote processed ids, indexeddb attachments
sheriffjimoh added a commit that referenced this pull request Sep 9, 2025
* fix: change toggler wording + util hook (#424)

* impr: makes threads open on profile page and profile tweaks (#421)

* update

* fix: update

* update

* update

* update

* update

* fix: opening threads

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: update

* fix: added back to profile page

* fix: added sticky and color

* fix: codeblock ctas refactor markdown rendering, sidebar nav, code block & clipboard hook (#425)

* fix: codeblock ctas

* fix: ts build

* fix: continue thread + allMessages sequence + mobile chat css tweak (#426)

* fix: css handleCLick condition

* fix: get latest search params, continuous thread

* fix(impr): all messages sorting

* perf(impr): sign in & up redirection tweak

* perf(impr): mobile chat css

* chore: next + react security ver upt (#427)

* refactor: use chat and continue thread + continue conversation fallback (#432)

* refactor: use chat and continue generation

* fix: uniq slug and id gen (#433)

* fix: uniq thread + msg slug gen

* style: formatting

* fix: thread user attachments state upt

* perf: impr thread component at all pages + mobile tweaks

* refactor: thread-component card

* chore: restore continue generation v1

* feat(impr): thread component card

* fix: admin panel n actions

* fix: fetch getThreads

* chore: continue conversation v1.2

* chore: continue and update thread content

* chore: add ui control continue generation state

* chore: fix infinity loop

* chore(impr): enable upt msg table permission

* fix: seo thread fetch

* chore: style formating

* fix(impr): continued thread title + thread component reusability

* chore: refactor loadings + extending sonners

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add gemini provider (#437)

* feat: add gemini provider

* chore: update icons

* feat: impr continuing thread tags + accordion first msg toggle (#435)

* feat(wip): impr continuing thread tags + accordion first msg toggle

* feat(impr): continuing thread tags + accordion at first message + header mobile tweak

* style(impr): mobile thread-component x-axis space

* perf(style): coderabbitai feedbacks

* fix: css typo

* perf: sendMessageFromResponse clicked guard + continued thread tags label tweak

* chore: user thread panel clean up

* fix: user-thread-panel infinite loader

* perf: impr shared accordion animation and ux

* style: defaultAccordionState comments loc

* fix: record type warning, hasura updateMessage

* fix: getThread user data, shared-accordion

* fix: coderabbitai observations

* fix: impr file management per llm, multimodel feat flag, chat tool labels, parent thread guard

* fix: tunningUserContent parentThread condition

* fix: feature flag typo

* feat: profile page thread popup feature flag and tweaks  (#434)

* update

* fix: update

* update

* update

* update

* update

* refactor: profile page threads pop up

* fix: update config

* fix: update

* fix: update

* fix: make profile page scroll on hero

* fix: bot make popup and scroll

* fix: make profile page sidebar scroll independently

* fix: make profile page sidebar scroll independently

* fix: check the category along the chatbot when it's not checked

* fix: check the category along the chatbot when it's not checked

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>
Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add new llm models (#444)

* feat-add-models

* feat-add-models

* feat-add-models

* chore: add model

* fix: typo

* chore: add toggler color

* perf(impr): thread llm context, last question & response + new models seeds (#447)

* feat(wip): thread llm context, prev questions

* fix: previousQuestionsString slice

* fix: clickedContentId in followingQuestionsPrompt

* feat: isContinued + model type in message table

* fix: ts typo + sendMessageFromResponse callback call

* fix: ts typo

* fix: bot profile page view (#449)

* fix(wip): bot profile thread list

* style: formatting

* fix: new chats and share + og img (#451)

* fix: new chat state reset

* fix: genql gen + share link check

* fix: og img

* fix: duplicate role permission in msg table

* feat: initial continuation logic flow (#450)

* chore: restore base version

* chore: add new logic and hooks

* chore: fix providers file

* chore: improve continuation prompt

* chore: add exlucision flag

* chore: add better handler

* chore: updated flow + experimental delay

* chore: extended time

* chore(impr): streamDelayMs experimental feat flag

* style: formatting

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* fix: profile sidebar cat opt render (#453)

* fix: profile sidebar cat opt render

* chore: clean-up

* [masterbots.ai] refactor: slug generation logic with improved uniqueness and type support (#456)

* fix: slugify fn

* chore: devMode logs

* fix: uniq slug gen fn nanoid flag typo

* feat: sentry logs in webapp (#457)

* fix(impr): llm enum data, thread creation, ts, and log behavior (#458)

* fix: slugify first request delay incr + genql ts, seeds & model migration upt

* fix: create thread & msg ts

* fix(impr): profile page bugs & tweaks v1 4/15/25 (#455)

* update

* fix: update

* update

* update

* update

* update

* fix: use the user avatar or robohash

* fix: added avater to user menu

* fix: user avatar

* fix: reset search input when filter by category or chatbot

* fix: personal chat browse provider + username chk in sign up

* chore: clean duplicated if condition signup

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* refactor: continuation flow (#460)

* impr: continuation logic flow

* impr: continuation logic flow

* chore: update createImprovementPrompt

* chore: upt logs

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat: models table, enum type, and refactor chat msg deduplication logic (#462)

* feat: models table

* style: formatting

* fix: continuation accordion content

* fix: sql + metadata typo

* fix: db migrations and messages uniqby condition (#463)

* fix: db migrations + messages uniqby condition

* fix: typo

* perf(impr): verify duplicate message return condition

* chore: upt default available models

* perf(impr): reassign continued prompt

* chore: incr fn stream max duration

* fix: mob prof sidebar + sign-up pw verif + username chk (#464)

* fix: mob prof sidebar + sign-up pw verif + username chk

* chore: upt genql gen

* perf(impr): profile navigation

* feat: model selector (#466)

* wip: model selector query

* wip: model selector query

* chore: improve funtions

* chore: add coderabbit suggestion

* chore: add hasura permissions, models table

* style: formatting

* chore: fix get model client type

* chore: add model

---------

Co-authored-by: Roberto Romero Lucas <contact@andler.dev>

* chore: impr models (#472)

* chore: fix model name and condition (#473)

* refactor: user fetching code (#471)

* refactor: profile sidebar ui, upt styling, and disable prefetch (#470)

* chore: remove prefetch on sidebar & profile navigation

* perf: impr profile sidebar

* fix: infinite scroll load more fetch

* perf(impr): google sign-in

* perf(impr): session loaders tweak

* perf: impr categoriesId obtention

* fix: tailwind typo

* chore(impr): pro user guard in model selector

* chore: category label upt to topic

* chore: rm dev mode guard (#476)

* feat: add reasoning compatibility (#480)

* feat: add resoning stable

* chore: add reasoning stable v

* chore: activate reasoning

* chore: activate reasoning

* feat: pro users whitelist (#481)

* feat(wip): whitelist pro users

* chore: add whitelist pro users + page size fetch

* perf(impr): following question impr prompt

* fix: pro whitelist users clean up

* feat: user account setting  (#468)

* update

* fix: update

* update

* update

* update

* update

* feat: imple account setting

* feat: added dialog to delete button

* feat: update user deletion func

* fix: move back exmaples files

* fix: update

* fix: user account scheduling api

* fix: user account deletion request function

* refactor: account deletion request api

* fix: user account request and thread deletion

* fix: added permission and account deletion page

* fix: update on permission

* fix: enable new col permission

* fix: profile side bar

* fix: update

* fix: function rerendering

* fix: update route

* chore(impr): preferences actions and ui tweaks

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* chore: enable twitter pixel track (#479)

* chore: enable twitter pixel track

* perf(impr): twitter ads availability + dynamic config

* feat: impr profile navigation page (#478)

* fix(wip): subscriptions page render

* feat(impr): profile navigation + page ui tweaks

* style: lintin + formatting

* style(css): nav links px on mob

* fix: goToProfile in mob prof sidebar

* fix: build

* fix: thread popup opening at nav

* chore: enable preferences nav on prod

* feat: image generation  (#486)

* feat: add image generation support - gemini provider

* chore: add mineType

* chore: add conditional checks

* chore: upt model enums & list

* chore: hasura, set icl seeds chunks (#484)

* chore: hasura, set icl seeds chunks

* chore: track backup icl seed loc to lfs

* chore(seeds): uncomment phase 3 topics & add new chatbots + icl metadata rel

* chore: upt phase 3 init config seeds, adding rel

* fix: example seeds integrity

* test: incr hasura max req body

* revert: cloudbuild og config

* chore: restore skipped seed lines

* fix: thread rendering (#487)

* fix: thread list render states

* chore: linting & format

* fix: thread pop-up on refresh

* fix: user table selection

* fix(impr): type safety for image data and refactor model enums in chat (#489)

* fix: image generation flow

* chore: impr gemini generation logic

* fix: build issue

* chore: change subscription page

* chore: change subscription page + lint

* chore: user pref disable options

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

* fix: add hotfix image generation

* chore: add more image models

* fix: models_enum values + genql upt

* feat: improved subscription section (#491)

* feat: add improved subscription section

* feat: add type

* chore: add conditional dislay

* feat: add username tags

* chore: add new order and benefits

* fix: thread empty state on user profile (#490)

* update

* fix: update

* update

* update

* update

* update

* feat: added empty state to user profile page

* feat: added empty state to user profile page

* fix: update

* fix: update

* fix: account creation slug issue

* chore: restore public models table select permissions + clean up

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>
Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat(wip): web search v2 (#494)

* feat(wip): web search

* feat(wip): thread config actions

* feat(wip): share cta impr

* chore: upt domain slugs list

* chore: comment legacy getWebSearchTool

* fix: preference insert

* wip: user preferences set

* fix: typo

* fix: updateUser data upt

* fix: pref table sel (#496)

* fix: og render + tweaks (#492)

* fix: og render + tweaks

* fix: zIndex in og

* perf: impr defaultOgImage chk

* chore: bun lock upt

* chore: next-auth patch upt

* fix: app build by mv uuidregexp loc

* fix: drizzle service actions loc + msg slug check + msg uniqueness (#499)

* [masterbots.ai] chore: standarize pop-up on profile & bot page for thread display (#500)

* update

* fix: update

* update

* update

* update

* update

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added profile link to thread share

* fix: update

* fix: chatbot page thread pop-up

* fix: update

* fix: appendMessage concurrency + getBrowseThreads admin mode chk (#505)

* feat: attachment thread metadata (#502)

* feat(wip): track thread attch data

* chore: upt drizzle & genql schemas

* feat(wip): save user attachments on load chk

* perf: file upload throughout indexed db hook

* feat(wip): gcp bucket setup

* feat: enlarge thread attachment

* fix: attachment upload loop

* fix: gcloud storage + thread metadata check & upload

* fix: bucket upload + after upload mutations

* feat: store remote thread metadata to indexeddb

* fix: read file content instead url

* fix(wip): get attachments on chat onFinish

* fix: attach new stack of files to chat

* [masterbots.ai] fix: og card dimensions and spacing + profile props (#506)

* fix: og card dimensions and spacing + profile props

* fix: og card dimensions + profile props

* perf(impr): rm long usernames + autogen num + form input control

* perf: dynamic short username number gen

* chore(impr): update default thread publicity flag + attachments concurrency & render (#508)

* chore(impr): update default thread publicity flag

* fix: default thread publicity

* fix: ai generated formulas

* fix: eslint rule, display name in markdown

* fix: eslint rule, display name in markdown

* fix: following questions prompt + isNewThread guard

* fix: attachments render && concurrency + optimistic activeThread updates

* fix: build

* perf(impr): earlier downloadedAttachments array upt

* chore(impr): clean remote processed ids, indexeddb attachments

* fix: user should be able to delete threads (#507)

* update

* fix: update

* update

* update

* update

* update

* fix: user can delete thread

* fix: delete thread messages

* fix: update

* fix: obs update

* chore: file clean up

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* [masterbots.ai] feat: image generation support (#504)

* feat: add support to image generation

* feat: add GPT-image-1 support route

* feat: fix biome lint

* feat: add edit mode

* chore: enable img gen feature flag

* style: format n lint

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* fix: bun lock

* fix: ts build

---------

Co-authored-by: Brandon Fernández <31634868+Bran18@users.noreply.github.com>
Co-authored-by: Jimoh sherifdeen <63134009+sheriffjimoh@users.noreply.github.com>
Co-authored-by: bran18 <andreyfdez18@gmail.com>
Co-authored-by: Brandon fernandez <brandonfernandez@Brandons-Mac-mini.local>
sheriffjimoh added a commit that referenced this pull request Sep 9, 2025
…512)

* fix: change toggler wording + util hook (#424)

* impr: makes threads open on profile page and profile tweaks (#421)

* update

* fix: update

* update

* update

* update

* update

* fix: opening threads

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: update

* fix: added back to profile page

* fix: added sticky and color

* fix: codeblock ctas refactor markdown rendering, sidebar nav, code block & clipboard hook (#425)

* fix: codeblock ctas

* fix: ts build

* fix: continue thread + allMessages sequence + mobile chat css tweak (#426)

* fix: css handleCLick condition

* fix: get latest search params, continuous thread

* fix(impr): all messages sorting

* perf(impr): sign in & up redirection tweak

* perf(impr): mobile chat css

* chore: next + react security ver upt (#427)

* refactor: use chat and continue thread + continue conversation fallback (#432)

* refactor: use chat and continue generation

* fix: uniq slug and id gen (#433)

* fix: uniq thread + msg slug gen

* style: formatting

* fix: thread user attachments state upt

* perf: impr thread component at all pages + mobile tweaks

* refactor: thread-component card

* chore: restore continue generation v1

* feat(impr): thread component card

* fix: admin panel n actions

* fix: fetch getThreads

* chore: continue conversation v1.2

* chore: continue and update thread content

* chore: add ui control continue generation state

* chore: fix infinity loop

* chore(impr): enable upt msg table permission

* fix: seo thread fetch

* chore: style formating

* fix(impr): continued thread title + thread component reusability

* chore: refactor loadings + extending sonners

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add gemini provider (#437)

* feat: add gemini provider

* chore: update icons

* feat: impr continuing thread tags + accordion first msg toggle (#435)

* feat(wip): impr continuing thread tags + accordion first msg toggle

* feat(impr): continuing thread tags + accordion at first message + header mobile tweak

* style(impr): mobile thread-component x-axis space

* perf(style): coderabbitai feedbacks

* fix: css typo

* perf: sendMessageFromResponse clicked guard + continued thread tags label tweak

* chore: user thread panel clean up

* fix: user-thread-panel infinite loader

* perf: impr shared accordion animation and ux

* style: defaultAccordionState comments loc

* fix: record type warning, hasura updateMessage

* fix: getThread user data, shared-accordion

* fix: coderabbitai observations

* fix: impr file management per llm, multimodel feat flag, chat tool labels, parent thread guard

* fix: tunningUserContent parentThread condition

* fix: feature flag typo

* feat: profile page thread popup feature flag and tweaks  (#434)

* update

* fix: update

* update

* update

* update

* update

* refactor: profile page threads pop up

* fix: update config

* fix: update

* fix: update

* fix: make profile page scroll on hero

* fix: bot make popup and scroll

* fix: make profile page sidebar scroll independently

* fix: make profile page sidebar scroll independently

* fix: check the category along the chatbot when it's not checked

* fix: check the category along the chatbot when it's not checked

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>
Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add new llm models (#444)

* feat-add-models

* feat-add-models

* feat-add-models

* chore: add model

* fix: typo

* chore: add toggler color

* perf(impr): thread llm context, last question & response + new models seeds (#447)

* feat(wip): thread llm context, prev questions

* fix: previousQuestionsString slice

* fix: clickedContentId in followingQuestionsPrompt

* feat: isContinued + model type in message table

* fix: ts typo + sendMessageFromResponse callback call

* fix: ts typo

* fix: bot profile page view (#449)

* fix(wip): bot profile thread list

* style: formatting

* fix: new chats and share + og img (#451)

* fix: new chat state reset

* fix: genql gen + share link check

* fix: og img

* fix: duplicate role permission in msg table

* feat: initial continuation logic flow (#450)

* chore: restore base version

* chore: add new logic and hooks

* chore: fix providers file

* chore: improve continuation prompt

* chore: add exlucision flag

* chore: add better handler

* chore: updated flow + experimental delay

* chore: extended time

* chore(impr): streamDelayMs experimental feat flag

* style: formatting

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* fix: profile sidebar cat opt render (#453)

* fix: profile sidebar cat opt render

* chore: clean-up

* [masterbots.ai] refactor: slug generation logic with improved uniqueness and type support (#456)

* fix: slugify fn

* chore: devMode logs

* fix: uniq slug gen fn nanoid flag typo

* feat: sentry logs in webapp (#457)

* fix(impr): llm enum data, thread creation, ts, and log behavior (#458)

* fix: slugify first request delay incr + genql ts, seeds & model migration upt

* fix: create thread & msg ts

* fix(impr): profile page bugs & tweaks v1 4/15/25 (#455)

* update

* fix: update

* update

* update

* update

* update

* fix: use the user avatar or robohash

* fix: added avater to user menu

* fix: user avatar

* fix: reset search input when filter by category or chatbot

* fix: personal chat browse provider + username chk in sign up

* chore: clean duplicated if condition signup

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* refactor: continuation flow (#460)

* impr: continuation logic flow

* impr: continuation logic flow

* chore: update createImprovementPrompt

* chore: upt logs

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat: models table, enum type, and refactor chat msg deduplication logic (#462)

* feat: models table

* style: formatting

* fix: continuation accordion content

* fix: sql + metadata typo

* fix: db migrations and messages uniqby condition (#463)

* fix: db migrations + messages uniqby condition

* fix: typo

* perf(impr): verify duplicate message return condition

* chore: upt default available models

* perf(impr): reassign continued prompt

* chore: incr fn stream max duration

* fix: mob prof sidebar + sign-up pw verif + username chk (#464)

* fix: mob prof sidebar + sign-up pw verif + username chk

* chore: upt genql gen

* perf(impr): profile navigation

* feat: model selector (#466)

* wip: model selector query

* wip: model selector query

* chore: improve funtions

* chore: add coderabbit suggestion

* chore: add hasura permissions, models table

* style: formatting

* chore: fix get model client type

* chore: add model

---------

Co-authored-by: Roberto Romero Lucas <contact@andler.dev>

* chore: impr models (#472)

* chore: fix model name and condition (#473)

* refactor: user fetching code (#471)

* refactor: profile sidebar ui, upt styling, and disable prefetch (#470)

* chore: remove prefetch on sidebar & profile navigation

* perf: impr profile sidebar

* fix: infinite scroll load more fetch

* perf(impr): google sign-in

* perf(impr): session loaders tweak

* perf: impr categoriesId obtention

* fix: tailwind typo

* chore(impr): pro user guard in model selector

* chore: category label upt to topic

* chore: rm dev mode guard (#476)

* feat: add reasoning compatibility (#480)

* feat: add resoning stable

* chore: add reasoning stable v

* chore: activate reasoning

* chore: activate reasoning

* feat: pro users whitelist (#481)

* feat(wip): whitelist pro users

* chore: add whitelist pro users + page size fetch

* perf(impr): following question impr prompt

* fix: pro whitelist users clean up

* feat: user account setting  (#468)

* update

* fix: update

* update

* update

* update

* update

* feat: imple account setting

* feat: added dialog to delete button

* feat: update user deletion func

* fix: move back exmaples files

* fix: update

* fix: user account scheduling api

* fix: user account deletion request function

* refactor: account deletion request api

* fix: user account request and thread deletion

* fix: added permission and account deletion page

* fix: update on permission

* fix: enable new col permission

* fix: profile side bar

* fix: update

* fix: function rerendering

* fix: update route

* chore(impr): preferences actions and ui tweaks

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* chore: enable twitter pixel track (#479)

* chore: enable twitter pixel track

* perf(impr): twitter ads availability + dynamic config

* feat: impr profile navigation page (#478)

* fix(wip): subscriptions page render

* feat(impr): profile navigation + page ui tweaks

* style: lintin + formatting

* style(css): nav links px on mob

* fix: goToProfile in mob prof sidebar

* fix: build

* fix: thread popup opening at nav

* chore: enable preferences nav on prod

* feat: image generation  (#486)

* feat: add image generation support - gemini provider

* chore: add mineType

* chore: add conditional checks

* chore: upt model enums & list

* chore: hasura, set icl seeds chunks (#484)

* chore: hasura, set icl seeds chunks

* chore: track backup icl seed loc to lfs

* chore(seeds): uncomment phase 3 topics & add new chatbots + icl metadata rel

* chore: upt phase 3 init config seeds, adding rel

* fix: example seeds integrity

* test: incr hasura max req body

* revert: cloudbuild og config

* chore: restore skipped seed lines

* fix: thread rendering (#487)

* fix: thread list render states

* chore: linting & format

* fix: thread pop-up on refresh

* fix: user table selection

* fix(impr): type safety for image data and refactor model enums in chat (#489)

* fix: image generation flow

* chore: impr gemini generation logic

* fix: build issue

* chore: change subscription page

* chore: change subscription page + lint

* chore: user pref disable options

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

* fix: add hotfix image generation

* chore: add more image models

* fix: models_enum values + genql upt

* feat: improved subscription section (#491)

* feat: add improved subscription section

* feat: add type

* chore: add conditional dislay

* feat: add username tags

* chore: add new order and benefits

* fix: thread empty state on user profile (#490)

* update

* fix: update

* update

* update

* update

* update

* feat: added empty state to user profile page

* feat: added empty state to user profile page

* fix: update

* fix: update

* fix: account creation slug issue

* chore: restore public models table select permissions + clean up

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>
Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat(wip): web search v2 (#494)

* feat(wip): web search

* feat(wip): thread config actions

* feat(wip): share cta impr

* chore: upt domain slugs list

* chore: comment legacy getWebSearchTool

* fix: preference insert

* wip: user preferences set

* fix: typo

* fix: updateUser data upt

* fix: pref table sel (#496)

* fix: og render + tweaks (#492)

* fix: og render + tweaks

* fix: zIndex in og

* perf: impr defaultOgImage chk

* chore: bun lock upt

* chore: next-auth patch upt

* fix: app build by mv uuidregexp loc

* fix: drizzle service actions loc + msg slug check + msg uniqueness (#499)

* [masterbots.ai] chore: standarize pop-up on profile & bot page for thread display (#500)

* update

* fix: update

* update

* update

* update

* update

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added profile link to thread share

* fix: update

* fix: chatbot page thread pop-up

* fix: update

* fix: appendMessage concurrency + getBrowseThreads admin mode chk (#505)

* feat: attachment thread metadata (#502)

* feat(wip): track thread attch data

* chore: upt drizzle & genql schemas

* feat(wip): save user attachments on load chk

* perf: file upload throughout indexed db hook

* feat(wip): gcp bucket setup

* feat: enlarge thread attachment

* fix: attachment upload loop

* fix: gcloud storage + thread metadata check & upload

* fix: bucket upload + after upload mutations

* feat: store remote thread metadata to indexeddb

* fix: read file content instead url

* fix(wip): get attachments on chat onFinish

* fix: attach new stack of files to chat

* [masterbots.ai] fix: og card dimensions and spacing + profile props (#506)

* fix: og card dimensions and spacing + profile props

* fix: og card dimensions + profile props

* perf(impr): rm long usernames + autogen num + form input control

* perf: dynamic short username number gen

* chore(impr): update default thread publicity flag + attachments concurrency & render (#508)

* chore(impr): update default thread publicity flag

* fix: default thread publicity

* fix: ai generated formulas

* fix: eslint rule, display name in markdown

* fix: eslint rule, display name in markdown

* fix: following questions prompt + isNewThread guard

* fix: attachments render && concurrency + optimistic activeThread updates

* fix: build

* perf(impr): earlier downloadedAttachments array upt

* chore(impr): clean remote processed ids, indexeddb attachments

* fix: user should be able to delete threads (#507)

* update

* fix: update

* update

* update

* update

* update

* fix: user can delete thread

* fix: delete thread messages

* fix: update

* fix: obs update

* chore: file clean up

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* [masterbots.ai] feat: image generation support (#504)

* feat: add support to image generation

* feat: add GPT-image-1 support route

* feat: fix biome lint

* feat: add edit mode

* chore: enable img gen feature flag

* style: format n lint

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* fix: bun lock

* fix: ts build

* fix(impr): continuos thread render, 2nd ai res, ui tweaks (#511)

* chore(impr): mb logo wip + threads add order by update at

* feat(impr): update thread on message activity + fix order by updated at

* fix: thread pop-up default opened accordion

* perf(impr): add user promo code track + chatbot disabled flag

* fix: 2nd ai concurrent request + continuous thread context & render

---------

Co-authored-by: Brandon Fernández <31634868+Bran18@users.noreply.github.com>
Co-authored-by: Jimoh sherifdeen <63134009+sheriffjimoh@users.noreply.github.com>
Co-authored-by: bran18 <andreyfdez18@gmail.com>
Co-authored-by: Brandon fernandez <brandonfernandez@Brandons-Mac-mini.local>
sheriffjimoh added a commit that referenced this pull request Sep 9, 2025
* fix: change toggler wording + util hook (#424)

* impr: makes threads open on profile page and profile tweaks (#421)

* update

* fix: update

* update

* update

* update

* update

* fix: opening threads

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: update

* fix: added back to profile page

* fix: added sticky and color

* fix: codeblock ctas refactor markdown rendering, sidebar nav, code block & clipboard hook (#425)

* fix: codeblock ctas

* fix: ts build

* fix: continue thread + allMessages sequence + mobile chat css tweak (#426)

* fix: css handleCLick condition

* fix: get latest search params, continuous thread

* fix(impr): all messages sorting

* perf(impr): sign in & up redirection tweak

* perf(impr): mobile chat css

* chore: next + react security ver upt (#427)

* refactor: use chat and continue thread + continue conversation fallback (#432)

* refactor: use chat and continue generation

* fix: uniq slug and id gen (#433)

* fix: uniq thread + msg slug gen

* style: formatting

* fix: thread user attachments state upt

* perf: impr thread component at all pages + mobile tweaks

* refactor: thread-component card

* chore: restore continue generation v1

* feat(impr): thread component card

* fix: admin panel n actions

* fix: fetch getThreads

* chore: continue conversation v1.2

* chore: continue and update thread content

* chore: add ui control continue generation state

* chore: fix infinity loop

* chore(impr): enable upt msg table permission

* fix: seo thread fetch

* chore: style formating

* fix(impr): continued thread title + thread component reusability

* chore: refactor loadings + extending sonners

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add gemini provider (#437)

* feat: add gemini provider

* chore: update icons

* feat: impr continuing thread tags + accordion first msg toggle (#435)

* feat(wip): impr continuing thread tags + accordion first msg toggle

* feat(impr): continuing thread tags + accordion at first message + header mobile tweak

* style(impr): mobile thread-component x-axis space

* perf(style): coderabbitai feedbacks

* fix: css typo

* perf: sendMessageFromResponse clicked guard + continued thread tags label tweak

* chore: user thread panel clean up

* fix: user-thread-panel infinite loader

* perf: impr shared accordion animation and ux

* style: defaultAccordionState comments loc

* fix: record type warning, hasura updateMessage

* fix: getThread user data, shared-accordion

* fix: coderabbitai observations

* fix: impr file management per llm, multimodel feat flag, chat tool labels, parent thread guard

* fix: tunningUserContent parentThread condition

* fix: feature flag typo

* feat: profile page thread popup feature flag and tweaks  (#434)

* update

* fix: update

* update

* update

* update

* update

* refactor: profile page threads pop up

* fix: update config

* fix: update

* fix: update

* fix: make profile page scroll on hero

* fix: bot make popup and scroll

* fix: make profile page sidebar scroll independently

* fix: make profile page sidebar scroll independently

* fix: check the category along the chatbot when it's not checked

* fix: check the category along the chatbot when it's not checked

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>
Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add new llm models (#444)

* feat-add-models

* feat-add-models

* feat-add-models

* chore: add model

* fix: typo

* chore: add toggler color

* perf(impr): thread llm context, last question & response + new models seeds (#447)

* feat(wip): thread llm context, prev questions

* fix: previousQuestionsString slice

* fix: clickedContentId in followingQuestionsPrompt

* feat: isContinued + model type in message table

* fix: ts typo + sendMessageFromResponse callback call

* fix: ts typo

* fix: bot profile page view (#449)

* fix(wip): bot profile thread list

* style: formatting

* fix: new chats and share + og img (#451)

* fix: new chat state reset

* fix: genql gen + share link check

* fix: og img

* fix: duplicate role permission in msg table

* feat: initial continuation logic flow (#450)

* chore: restore base version

* chore: add new logic and hooks

* chore: fix providers file

* chore: improve continuation prompt

* chore: add exlucision flag

* chore: add better handler

* chore: updated flow + experimental delay

* chore: extended time

* chore(impr): streamDelayMs experimental feat flag

* style: formatting

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* fix: profile sidebar cat opt render (#453)

* fix: profile sidebar cat opt render

* chore: clean-up

* [masterbots.ai] refactor: slug generation logic with improved uniqueness and type support (#456)

* fix: slugify fn

* chore: devMode logs

* fix: uniq slug gen fn nanoid flag typo

* feat: sentry logs in webapp (#457)

* fix(impr): llm enum data, thread creation, ts, and log behavior (#458)

* fix: slugify first request delay incr + genql ts, seeds & model migration upt

* fix: create thread & msg ts

* fix(impr): profile page bugs & tweaks v1 4/15/25 (#455)

* update

* fix: update

* update

* update

* update

* update

* fix: use the user avatar or robohash

* fix: added avater to user menu

* fix: user avatar

* fix: reset search input when filter by category or chatbot

* fix: personal chat browse provider + username chk in sign up

* chore: clean duplicated if condition signup

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* refactor: continuation flow (#460)

* impr: continuation logic flow

* impr: continuation logic flow

* chore: update createImprovementPrompt

* chore: upt logs

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat: models table, enum type, and refactor chat msg deduplication logic (#462)

* feat: models table

* style: formatting

* fix: continuation accordion content

* fix: sql + metadata typo

* fix: db migrations and messages uniqby condition (#463)

* fix: db migrations + messages uniqby condition

* fix: typo

* perf(impr): verify duplicate message return condition

* chore: upt default available models

* perf(impr): reassign continued prompt

* chore: incr fn stream max duration

* fix: mob prof sidebar + sign-up pw verif + username chk (#464)

* fix: mob prof sidebar + sign-up pw verif + username chk

* chore: upt genql gen

* perf(impr): profile navigation

* feat: model selector (#466)

* wip: model selector query

* wip: model selector query

* chore: improve funtions

* chore: add coderabbit suggestion

* chore: add hasura permissions, models table

* style: formatting

* chore: fix get model client type

* chore: add model

---------

Co-authored-by: Roberto Romero Lucas <contact@andler.dev>

* chore: impr models (#472)

* chore: fix model name and condition (#473)

* refactor: user fetching code (#471)

* refactor: profile sidebar ui, upt styling, and disable prefetch (#470)

* chore: remove prefetch on sidebar & profile navigation

* perf: impr profile sidebar

* fix: infinite scroll load more fetch

* perf(impr): google sign-in

* perf(impr): session loaders tweak

* perf: impr categoriesId obtention

* fix: tailwind typo

* chore(impr): pro user guard in model selector

* chore: category label upt to topic

* chore: rm dev mode guard (#476)

* feat: add reasoning compatibility (#480)

* feat: add resoning stable

* chore: add reasoning stable v

* chore: activate reasoning

* chore: activate reasoning

* feat: pro users whitelist (#481)

* feat(wip): whitelist pro users

* chore: add whitelist pro users + page size fetch

* perf(impr): following question impr prompt

* fix: pro whitelist users clean up

* feat: user account setting  (#468)

* update

* fix: update

* update

* update

* update

* update

* feat: imple account setting

* feat: added dialog to delete button

* feat: update user deletion func

* fix: move back exmaples files

* fix: update

* fix: user account scheduling api

* fix: user account deletion request function

* refactor: account deletion request api

* fix: user account request and thread deletion

* fix: added permission and account deletion page

* fix: update on permission

* fix: enable new col permission

* fix: profile side bar

* fix: update

* fix: function rerendering

* fix: update route

* chore(impr): preferences actions and ui tweaks

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* chore: enable twitter pixel track (#479)

* chore: enable twitter pixel track

* perf(impr): twitter ads availability + dynamic config

* feat: impr profile navigation page (#478)

* fix(wip): subscriptions page render

* feat(impr): profile navigation + page ui tweaks

* style: lintin + formatting

* style(css): nav links px on mob

* fix: goToProfile in mob prof sidebar

* fix: build

* fix: thread popup opening at nav

* chore: enable preferences nav on prod

* feat: image generation  (#486)

* feat: add image generation support - gemini provider

* chore: add mineType

* chore: add conditional checks

* chore: upt model enums & list

* chore: hasura, set icl seeds chunks (#484)

* chore: hasura, set icl seeds chunks

* chore: track backup icl seed loc to lfs

* chore(seeds): uncomment phase 3 topics & add new chatbots + icl metadata rel

* chore: upt phase 3 init config seeds, adding rel

* fix: example seeds integrity

* test: incr hasura max req body

* revert: cloudbuild og config

* chore: restore skipped seed lines

* fix: thread rendering (#487)

* fix: thread list render states

* chore: linting & format

* fix: thread pop-up on refresh

* fix: user table selection

* fix(impr): type safety for image data and refactor model enums in chat (#489)

* fix: image generation flow

* chore: impr gemini generation logic

* fix: build issue

* chore: change subscription page

* chore: change subscription page + lint

* chore: user pref disable options

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

* fix: add hotfix image generation

* chore: add more image models

* fix: models_enum values + genql upt

* feat: improved subscription section (#491)

* feat: add improved subscription section

* feat: add type

* chore: add conditional dislay

* feat: add username tags

* chore: add new order and benefits

* fix: thread empty state on user profile (#490)

* update

* fix: update

* update

* update

* update

* update

* feat: added empty state to user profile page

* feat: added empty state to user profile page

* fix: update

* fix: update

* fix: account creation slug issue

* chore: restore public models table select permissions + clean up

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>
Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat(wip): web search v2 (#494)

* feat(wip): web search

* feat(wip): thread config actions

* feat(wip): share cta impr

* chore: upt domain slugs list

* chore: comment legacy getWebSearchTool

* fix: preference insert

* wip: user preferences set

* fix: typo

* fix: updateUser data upt

* fix: pref table sel (#496)

* fix: og render + tweaks (#492)

* fix: og render + tweaks

* fix: zIndex in og

* perf: impr defaultOgImage chk

* chore: bun lock upt

* chore: next-auth patch upt

* fix: app build by mv uuidregexp loc

* fix: drizzle service actions loc + msg slug check + msg uniqueness (#499)

* [masterbots.ai] chore: standarize pop-up on profile & bot page for thread display (#500)

* update

* fix: update

* update

* update

* update

* update

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added profile link to thread share

* fix: update

* fix: chatbot page thread pop-up

* fix: update

* fix: appendMessage concurrency + getBrowseThreads admin mode chk (#505)

* feat: attachment thread metadata (#502)

* feat(wip): track thread attch data

* chore: upt drizzle & genql schemas

* feat(wip): save user attachments on load chk

* perf: file upload throughout indexed db hook

* feat(wip): gcp bucket setup

* feat: enlarge thread attachment

* fix: attachment upload loop

* fix: gcloud storage + thread metadata check & upload

* fix: bucket upload + after upload mutations

* feat: store remote thread metadata to indexeddb

* fix: read file content instead url

* fix(wip): get attachments on chat onFinish

* fix: attach new stack of files to chat

* [masterbots.ai] fix: og card dimensions and spacing + profile props (#506)

* fix: og card dimensions and spacing + profile props

* fix: og card dimensions + profile props

* perf(impr): rm long usernames + autogen num + form input control

* perf: dynamic short username number gen

* chore(impr): update default thread publicity flag + attachments concurrency & render (#508)

* chore(impr): update default thread publicity flag

* fix: default thread publicity

* fix: ai generated formulas

* fix: eslint rule, display name in markdown

* fix: eslint rule, display name in markdown

* fix: following questions prompt + isNewThread guard

* fix: attachments render && concurrency + optimistic activeThread updates

* fix: build

* perf(impr): earlier downloadedAttachments array upt

* chore(impr): clean remote processed ids, indexeddb attachments

* fix: user should be able to delete threads (#507)

* update

* fix: update

* update

* update

* update

* update

* fix: user can delete thread

* fix: delete thread messages

* fix: update

* fix: obs update

* chore: file clean up

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* [masterbots.ai] feat: image generation support (#504)

* feat: add support to image generation

* feat: add GPT-image-1 support route

* feat: fix biome lint

* feat: add edit mode

* chore: enable img gen feature flag

* style: format n lint

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* fix: bun lock

* fix: ts build

* fix(impr): continuos thread render, 2nd ai res, ui tweaks (#511)

* chore(impr): mb logo wip + threads add order by update at

* feat(impr): update thread on message activity + fix order by updated at

* fix: thread pop-up default opened accordion

* perf(impr): add user promo code track + chatbot disabled flag

* fix: 2nd ai concurrent request + continuous thread context & render

* [masterbots.ai] perf(impr): chat opt state mngt and enhance attach metadata sync (#514)

* fix: toggle visibility fn state upt

* fix: file attach message ids upt

* fix: after update guard state

* fix: ts typo

* fix: thread visibility update permissions

* chore(fix): enable image gen to whitelist users

---------

Co-authored-by: Brandon Fernández <31634868+Bran18@users.noreply.github.com>
Co-authored-by: Jimoh sherifdeen <63134009+sheriffjimoh@users.noreply.github.com>
Co-authored-by: bran18 <andreyfdez18@gmail.com>
Co-authored-by: Brandon fernandez <brandonfernandez@Brandons-Mac-mini.local>
sheriffjimoh pushed a commit that referenced this pull request Sep 10, 2025
…rrency & render (#508)

* chore(impr): update default thread publicity flag

* fix: default thread publicity

* fix: ai generated formulas

* fix: eslint rule, display name in markdown

* fix: eslint rule, display name in markdown

* fix: following questions prompt + isNewThread guard

* fix: attachments render && concurrency + optimistic activeThread updates

* fix: build

* perf(impr): earlier downloadedAttachments array upt

* chore(impr): clean remote processed ids, indexeddb attachments
sheriffjimoh added a commit that referenced this pull request Sep 10, 2025
* fix: change toggler wording + util hook (#424)

* impr: makes threads open on profile page and profile tweaks (#421)

* update

* fix: update

* update

* update

* update

* update

* fix: opening threads

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: update

* fix: added back to profile page

* fix: added sticky and color

* fix: codeblock ctas refactor markdown rendering, sidebar nav, code block & clipboard hook (#425)

* fix: codeblock ctas

* fix: ts build

* fix: continue thread + allMessages sequence + mobile chat css tweak (#426)

* fix: css handleCLick condition

* fix: get latest search params, continuous thread

* fix(impr): all messages sorting

* perf(impr): sign in & up redirection tweak

* perf(impr): mobile chat css

* chore: next + react security ver upt (#427)

* refactor: use chat and continue thread + continue conversation fallback (#432)

* refactor: use chat and continue generation

* fix: uniq slug and id gen (#433)

* fix: uniq thread + msg slug gen

* style: formatting

* fix: thread user attachments state upt

* perf: impr thread component at all pages + mobile tweaks

* refactor: thread-component card

* chore: restore continue generation v1

* feat(impr): thread component card

* fix: admin panel n actions

* fix: fetch getThreads

* chore: continue conversation v1.2

* chore: continue and update thread content

* chore: add ui control continue generation state

* chore: fix infinity loop

* chore(impr): enable upt msg table permission

* fix: seo thread fetch

* chore: style formating

* fix(impr): continued thread title + thread component reusability

* chore: refactor loadings + extending sonners

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add gemini provider (#437)

* feat: add gemini provider

* chore: update icons

* feat: impr continuing thread tags + accordion first msg toggle (#435)

* feat(wip): impr continuing thread tags + accordion first msg toggle

* feat(impr): continuing thread tags + accordion at first message + header mobile tweak

* style(impr): mobile thread-component x-axis space

* perf(style): coderabbitai feedbacks

* fix: css typo

* perf: sendMessageFromResponse clicked guard + continued thread tags label tweak

* chore: user thread panel clean up

* fix: user-thread-panel infinite loader

* perf: impr shared accordion animation and ux

* style: defaultAccordionState comments loc

* fix: record type warning, hasura updateMessage

* fix: getThread user data, shared-accordion

* fix: coderabbitai observations

* fix: impr file management per llm, multimodel feat flag, chat tool labels, parent thread guard

* fix: tunningUserContent parentThread condition

* fix: feature flag typo

* feat: profile page thread popup feature flag and tweaks  (#434)

* update

* fix: update

* update

* update

* update

* update

* refactor: profile page threads pop up

* fix: update config

* fix: update

* fix: update

* fix: make profile page scroll on hero

* fix: bot make popup and scroll

* fix: make profile page sidebar scroll independently

* fix: make profile page sidebar scroll independently

* fix: check the category along the chatbot when it's not checked

* fix: check the category along the chatbot when it's not checked

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>
Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add new llm models (#444)

* feat-add-models

* feat-add-models

* feat-add-models

* chore: add model

* fix: typo

* chore: add toggler color

* perf(impr): thread llm context, last question & response + new models seeds (#447)

* feat(wip): thread llm context, prev questions

* fix: previousQuestionsString slice

* fix: clickedContentId in followingQuestionsPrompt

* feat: isContinued + model type in message table

* fix: ts typo + sendMessageFromResponse callback call

* fix: ts typo

* fix: bot profile page view (#449)

* fix(wip): bot profile thread list

* style: formatting

* fix: new chats and share + og img (#451)

* fix: new chat state reset

* fix: genql gen + share link check

* fix: og img

* fix: duplicate role permission in msg table

* feat: initial continuation logic flow (#450)

* chore: restore base version

* chore: add new logic and hooks

* chore: fix providers file

* chore: improve continuation prompt

* chore: add exlucision flag

* chore: add better handler

* chore: updated flow + experimental delay

* chore: extended time

* chore(impr): streamDelayMs experimental feat flag

* style: formatting

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* fix: profile sidebar cat opt render (#453)

* fix: profile sidebar cat opt render

* chore: clean-up

* [masterbots.ai] refactor: slug generation logic with improved uniqueness and type support (#456)

* fix: slugify fn

* chore: devMode logs

* fix: uniq slug gen fn nanoid flag typo

* feat: sentry logs in webapp (#457)

* fix(impr): llm enum data, thread creation, ts, and log behavior (#458)

* fix: slugify first request delay incr + genql ts, seeds & model migration upt

* fix: create thread & msg ts

* fix(impr): profile page bugs & tweaks v1 4/15/25 (#455)

* update

* fix: update

* update

* update

* update

* update

* fix: use the user avatar or robohash

* fix: added avater to user menu

* fix: user avatar

* fix: reset search input when filter by category or chatbot

* fix: personal chat browse provider + username chk in sign up

* chore: clean duplicated if condition signup

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* refactor: continuation flow (#460)

* impr: continuation logic flow

* impr: continuation logic flow

* chore: update createImprovementPrompt

* chore: upt logs

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat: models table, enum type, and refactor chat msg deduplication logic (#462)

* feat: models table

* style: formatting

* fix: continuation accordion content

* fix: sql + metadata typo

* fix: db migrations and messages uniqby condition (#463)

* fix: db migrations + messages uniqby condition

* fix: typo

* perf(impr): verify duplicate message return condition

* chore: upt default available models

* perf(impr): reassign continued prompt

* chore: incr fn stream max duration

* fix: mob prof sidebar + sign-up pw verif + username chk (#464)

* fix: mob prof sidebar + sign-up pw verif + username chk

* chore: upt genql gen

* perf(impr): profile navigation

* feat: model selector (#466)

* wip: model selector query

* wip: model selector query

* chore: improve funtions

* chore: add coderabbit suggestion

* chore: add hasura permissions, models table

* style: formatting

* chore: fix get model client type

* chore: add model

---------

Co-authored-by: Roberto Romero Lucas <contact@andler.dev>

* chore: impr models (#472)

* chore: fix model name and condition (#473)

* refactor: user fetching code (#471)

* refactor: profile sidebar ui, upt styling, and disable prefetch (#470)

* chore: remove prefetch on sidebar & profile navigation

* perf: impr profile sidebar

* fix: infinite scroll load more fetch

* perf(impr): google sign-in

* perf(impr): session loaders tweak

* perf: impr categoriesId obtention

* fix: tailwind typo

* chore(impr): pro user guard in model selector

* chore: category label upt to topic

* chore: rm dev mode guard (#476)

* feat: add reasoning compatibility (#480)

* feat: add resoning stable

* chore: add reasoning stable v

* chore: activate reasoning

* chore: activate reasoning

* feat: pro users whitelist (#481)

* feat(wip): whitelist pro users

* chore: add whitelist pro users + page size fetch

* perf(impr): following question impr prompt

* fix: pro whitelist users clean up

* feat: user account setting  (#468)

* update

* fix: update

* update

* update

* update

* update

* feat: imple account setting

* feat: added dialog to delete button

* feat: update user deletion func

* fix: move back exmaples files

* fix: update

* fix: user account scheduling api

* fix: user account deletion request function

* refactor: account deletion request api

* fix: user account request and thread deletion

* fix: added permission and account deletion page

* fix: update on permission

* fix: enable new col permission

* fix: profile side bar

* fix: update

* fix: function rerendering

* fix: update route

* chore(impr): preferences actions and ui tweaks

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* chore: enable twitter pixel track (#479)

* chore: enable twitter pixel track

* perf(impr): twitter ads availability + dynamic config

* feat: impr profile navigation page (#478)

* fix(wip): subscriptions page render

* feat(impr): profile navigation + page ui tweaks

* style: lintin + formatting

* style(css): nav links px on mob

* fix: goToProfile in mob prof sidebar

* fix: build

* fix: thread popup opening at nav

* chore: enable preferences nav on prod

* feat: image generation  (#486)

* feat: add image generation support - gemini provider

* chore: add mineType

* chore: add conditional checks

* chore: upt model enums & list

* chore: hasura, set icl seeds chunks (#484)

* chore: hasura, set icl seeds chunks

* chore: track backup icl seed loc to lfs

* chore(seeds): uncomment phase 3 topics & add new chatbots + icl metadata rel

* chore: upt phase 3 init config seeds, adding rel

* fix: example seeds integrity

* test: incr hasura max req body

* revert: cloudbuild og config

* chore: restore skipped seed lines

* fix: thread rendering (#487)

* fix: thread list render states

* chore: linting & format

* fix: thread pop-up on refresh

* fix: user table selection

* fix(impr): type safety for image data and refactor model enums in chat (#489)

* fix: image generation flow

* chore: impr gemini generation logic

* fix: build issue

* chore: change subscription page

* chore: change subscription page + lint

* chore: user pref disable options

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

* fix: add hotfix image generation

* chore: add more image models

* fix: models_enum values + genql upt

* feat: improved subscription section (#491)

* feat: add improved subscription section

* feat: add type

* chore: add conditional dislay

* feat: add username tags

* chore: add new order and benefits

* fix: thread empty state on user profile (#490)

* update

* fix: update

* update

* update

* update

* update

* feat: added empty state to user profile page

* feat: added empty state to user profile page

* fix: update

* fix: update

* fix: account creation slug issue

* chore: restore public models table select permissions + clean up

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>
Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat(wip): web search v2 (#494)

* feat(wip): web search

* feat(wip): thread config actions

* feat(wip): share cta impr

* chore: upt domain slugs list

* chore: comment legacy getWebSearchTool

* fix: preference insert

* wip: user preferences set

* fix: typo

* fix: updateUser data upt

* fix: pref table sel (#496)

* fix: og render + tweaks (#492)

* fix: og render + tweaks

* fix: zIndex in og

* perf: impr defaultOgImage chk

* chore: bun lock upt

* chore: next-auth patch upt

* fix: app build by mv uuidregexp loc

* fix: drizzle service actions loc + msg slug check + msg uniqueness (#499)

* [masterbots.ai] chore: standarize pop-up on profile & bot page for thread display (#500)

* update

* fix: update

* update

* update

* update

* update

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added profile link to thread share

* fix: update

* fix: chatbot page thread pop-up

* fix: update

* fix: appendMessage concurrency + getBrowseThreads admin mode chk (#505)

* feat: attachment thread metadata (#502)

* feat(wip): track thread attch data

* chore: upt drizzle & genql schemas

* feat(wip): save user attachments on load chk

* perf: file upload throughout indexed db hook

* feat(wip): gcp bucket setup

* feat: enlarge thread attachment

* fix: attachment upload loop

* fix: gcloud storage + thread metadata check & upload

* fix: bucket upload + after upload mutations

* feat: store remote thread metadata to indexeddb

* fix: read file content instead url

* fix(wip): get attachments on chat onFinish

* fix: attach new stack of files to chat

* [masterbots.ai] fix: og card dimensions and spacing + profile props (#506)

* fix: og card dimensions and spacing + profile props

* fix: og card dimensions + profile props

* perf(impr): rm long usernames + autogen num + form input control

* perf: dynamic short username number gen

* chore(impr): update default thread publicity flag + attachments concurrency & render (#508)

* chore(impr): update default thread publicity flag

* fix: default thread publicity

* fix: ai generated formulas

* fix: eslint rule, display name in markdown

* fix: eslint rule, display name in markdown

* fix: following questions prompt + isNewThread guard

* fix: attachments render && concurrency + optimistic activeThread updates

* fix: build

* perf(impr): earlier downloadedAttachments array upt

* chore(impr): clean remote processed ids, indexeddb attachments

* fix: user should be able to delete threads (#507)

* update

* fix: update

* update

* update

* update

* update

* fix: user can delete thread

* fix: delete thread messages

* fix: update

* fix: obs update

* chore: file clean up

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* [masterbots.ai] feat: image generation support (#504)

* feat: add support to image generation

* feat: add GPT-image-1 support route

* feat: fix biome lint

* feat: add edit mode

* chore: enable img gen feature flag

* style: format n lint

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* fix: bun lock

* fix: ts build

---------

Co-authored-by: Brandon Fernández <31634868+Bran18@users.noreply.github.com>
Co-authored-by: Jimoh sherifdeen <63134009+sheriffjimoh@users.noreply.github.com>
Co-authored-by: bran18 <andreyfdez18@gmail.com>
Co-authored-by: Brandon fernandez <brandonfernandez@Brandons-Mac-mini.local>
sheriffjimoh added a commit that referenced this pull request Sep 10, 2025
…512)

* fix: change toggler wording + util hook (#424)

* impr: makes threads open on profile page and profile tweaks (#421)

* update

* fix: update

* update

* update

* update

* update

* fix: opening threads

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: update

* fix: added back to profile page

* fix: added sticky and color

* fix: codeblock ctas refactor markdown rendering, sidebar nav, code block & clipboard hook (#425)

* fix: codeblock ctas

* fix: ts build

* fix: continue thread + allMessages sequence + mobile chat css tweak (#426)

* fix: css handleCLick condition

* fix: get latest search params, continuous thread

* fix(impr): all messages sorting

* perf(impr): sign in & up redirection tweak

* perf(impr): mobile chat css

* chore: next + react security ver upt (#427)

* refactor: use chat and continue thread + continue conversation fallback (#432)

* refactor: use chat and continue generation

* fix: uniq slug and id gen (#433)

* fix: uniq thread + msg slug gen

* style: formatting

* fix: thread user attachments state upt

* perf: impr thread component at all pages + mobile tweaks

* refactor: thread-component card

* chore: restore continue generation v1

* feat(impr): thread component card

* fix: admin panel n actions

* fix: fetch getThreads

* chore: continue conversation v1.2

* chore: continue and update thread content

* chore: add ui control continue generation state

* chore: fix infinity loop

* chore(impr): enable upt msg table permission

* fix: seo thread fetch

* chore: style formating

* fix(impr): continued thread title + thread component reusability

* chore: refactor loadings + extending sonners

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add gemini provider (#437)

* feat: add gemini provider

* chore: update icons

* feat: impr continuing thread tags + accordion first msg toggle (#435)

* feat(wip): impr continuing thread tags + accordion first msg toggle

* feat(impr): continuing thread tags + accordion at first message + header mobile tweak

* style(impr): mobile thread-component x-axis space

* perf(style): coderabbitai feedbacks

* fix: css typo

* perf: sendMessageFromResponse clicked guard + continued thread tags label tweak

* chore: user thread panel clean up

* fix: user-thread-panel infinite loader

* perf: impr shared accordion animation and ux

* style: defaultAccordionState comments loc

* fix: record type warning, hasura updateMessage

* fix: getThread user data, shared-accordion

* fix: coderabbitai observations

* fix: impr file management per llm, multimodel feat flag, chat tool labels, parent thread guard

* fix: tunningUserContent parentThread condition

* fix: feature flag typo

* feat: profile page thread popup feature flag and tweaks  (#434)

* update

* fix: update

* update

* update

* update

* update

* refactor: profile page threads pop up

* fix: update config

* fix: update

* fix: update

* fix: make profile page scroll on hero

* fix: bot make popup and scroll

* fix: make profile page sidebar scroll independently

* fix: make profile page sidebar scroll independently

* fix: check the category along the chatbot when it's not checked

* fix: check the category along the chatbot when it's not checked

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>
Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add new llm models (#444)

* feat-add-models

* feat-add-models

* feat-add-models

* chore: add model

* fix: typo

* chore: add toggler color

* perf(impr): thread llm context, last question & response + new models seeds (#447)

* feat(wip): thread llm context, prev questions

* fix: previousQuestionsString slice

* fix: clickedContentId in followingQuestionsPrompt

* feat: isContinued + model type in message table

* fix: ts typo + sendMessageFromResponse callback call

* fix: ts typo

* fix: bot profile page view (#449)

* fix(wip): bot profile thread list

* style: formatting

* fix: new chats and share + og img (#451)

* fix: new chat state reset

* fix: genql gen + share link check

* fix: og img

* fix: duplicate role permission in msg table

* feat: initial continuation logic flow (#450)

* chore: restore base version

* chore: add new logic and hooks

* chore: fix providers file

* chore: improve continuation prompt

* chore: add exlucision flag

* chore: add better handler

* chore: updated flow + experimental delay

* chore: extended time

* chore(impr): streamDelayMs experimental feat flag

* style: formatting

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* fix: profile sidebar cat opt render (#453)

* fix: profile sidebar cat opt render

* chore: clean-up

* [masterbots.ai] refactor: slug generation logic with improved uniqueness and type support (#456)

* fix: slugify fn

* chore: devMode logs

* fix: uniq slug gen fn nanoid flag typo

* feat: sentry logs in webapp (#457)

* fix(impr): llm enum data, thread creation, ts, and log behavior (#458)

* fix: slugify first request delay incr + genql ts, seeds & model migration upt

* fix: create thread & msg ts

* fix(impr): profile page bugs & tweaks v1 4/15/25 (#455)

* update

* fix: update

* update

* update

* update

* update

* fix: use the user avatar or robohash

* fix: added avater to user menu

* fix: user avatar

* fix: reset search input when filter by category or chatbot

* fix: personal chat browse provider + username chk in sign up

* chore: clean duplicated if condition signup

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* refactor: continuation flow (#460)

* impr: continuation logic flow

* impr: continuation logic flow

* chore: update createImprovementPrompt

* chore: upt logs

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat: models table, enum type, and refactor chat msg deduplication logic (#462)

* feat: models table

* style: formatting

* fix: continuation accordion content

* fix: sql + metadata typo

* fix: db migrations and messages uniqby condition (#463)

* fix: db migrations + messages uniqby condition

* fix: typo

* perf(impr): verify duplicate message return condition

* chore: upt default available models

* perf(impr): reassign continued prompt

* chore: incr fn stream max duration

* fix: mob prof sidebar + sign-up pw verif + username chk (#464)

* fix: mob prof sidebar + sign-up pw verif + username chk

* chore: upt genql gen

* perf(impr): profile navigation

* feat: model selector (#466)

* wip: model selector query

* wip: model selector query

* chore: improve funtions

* chore: add coderabbit suggestion

* chore: add hasura permissions, models table

* style: formatting

* chore: fix get model client type

* chore: add model

---------

Co-authored-by: Roberto Romero Lucas <contact@andler.dev>

* chore: impr models (#472)

* chore: fix model name and condition (#473)

* refactor: user fetching code (#471)

* refactor: profile sidebar ui, upt styling, and disable prefetch (#470)

* chore: remove prefetch on sidebar & profile navigation

* perf: impr profile sidebar

* fix: infinite scroll load more fetch

* perf(impr): google sign-in

* perf(impr): session loaders tweak

* perf: impr categoriesId obtention

* fix: tailwind typo

* chore(impr): pro user guard in model selector

* chore: category label upt to topic

* chore: rm dev mode guard (#476)

* feat: add reasoning compatibility (#480)

* feat: add resoning stable

* chore: add reasoning stable v

* chore: activate reasoning

* chore: activate reasoning

* feat: pro users whitelist (#481)

* feat(wip): whitelist pro users

* chore: add whitelist pro users + page size fetch

* perf(impr): following question impr prompt

* fix: pro whitelist users clean up

* feat: user account setting  (#468)

* update

* fix: update

* update

* update

* update

* update

* feat: imple account setting

* feat: added dialog to delete button

* feat: update user deletion func

* fix: move back exmaples files

* fix: update

* fix: user account scheduling api

* fix: user account deletion request function

* refactor: account deletion request api

* fix: user account request and thread deletion

* fix: added permission and account deletion page

* fix: update on permission

* fix: enable new col permission

* fix: profile side bar

* fix: update

* fix: function rerendering

* fix: update route

* chore(impr): preferences actions and ui tweaks

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* chore: enable twitter pixel track (#479)

* chore: enable twitter pixel track

* perf(impr): twitter ads availability + dynamic config

* feat: impr profile navigation page (#478)

* fix(wip): subscriptions page render

* feat(impr): profile navigation + page ui tweaks

* style: lintin + formatting

* style(css): nav links px on mob

* fix: goToProfile in mob prof sidebar

* fix: build

* fix: thread popup opening at nav

* chore: enable preferences nav on prod

* feat: image generation  (#486)

* feat: add image generation support - gemini provider

* chore: add mineType

* chore: add conditional checks

* chore: upt model enums & list

* chore: hasura, set icl seeds chunks (#484)

* chore: hasura, set icl seeds chunks

* chore: track backup icl seed loc to lfs

* chore(seeds): uncomment phase 3 topics & add new chatbots + icl metadata rel

* chore: upt phase 3 init config seeds, adding rel

* fix: example seeds integrity

* test: incr hasura max req body

* revert: cloudbuild og config

* chore: restore skipped seed lines

* fix: thread rendering (#487)

* fix: thread list render states

* chore: linting & format

* fix: thread pop-up on refresh

* fix: user table selection

* fix(impr): type safety for image data and refactor model enums in chat (#489)

* fix: image generation flow

* chore: impr gemini generation logic

* fix: build issue

* chore: change subscription page

* chore: change subscription page + lint

* chore: user pref disable options

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

* fix: add hotfix image generation

* chore: add more image models

* fix: models_enum values + genql upt

* feat: improved subscription section (#491)

* feat: add improved subscription section

* feat: add type

* chore: add conditional dislay

* feat: add username tags

* chore: add new order and benefits

* fix: thread empty state on user profile (#490)

* update

* fix: update

* update

* update

* update

* update

* feat: added empty state to user profile page

* feat: added empty state to user profile page

* fix: update

* fix: update

* fix: account creation slug issue

* chore: restore public models table select permissions + clean up

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>
Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat(wip): web search v2 (#494)

* feat(wip): web search

* feat(wip): thread config actions

* feat(wip): share cta impr

* chore: upt domain slugs list

* chore: comment legacy getWebSearchTool

* fix: preference insert

* wip: user preferences set

* fix: typo

* fix: updateUser data upt

* fix: pref table sel (#496)

* fix: og render + tweaks (#492)

* fix: og render + tweaks

* fix: zIndex in og

* perf: impr defaultOgImage chk

* chore: bun lock upt

* chore: next-auth patch upt

* fix: app build by mv uuidregexp loc

* fix: drizzle service actions loc + msg slug check + msg uniqueness (#499)

* [masterbots.ai] chore: standarize pop-up on profile & bot page for thread display (#500)

* update

* fix: update

* update

* update

* update

* update

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added profile link to thread share

* fix: update

* fix: chatbot page thread pop-up

* fix: update

* fix: appendMessage concurrency + getBrowseThreads admin mode chk (#505)

* feat: attachment thread metadata (#502)

* feat(wip): track thread attch data

* chore: upt drizzle & genql schemas

* feat(wip): save user attachments on load chk

* perf: file upload throughout indexed db hook

* feat(wip): gcp bucket setup

* feat: enlarge thread attachment

* fix: attachment upload loop

* fix: gcloud storage + thread metadata check & upload

* fix: bucket upload + after upload mutations

* feat: store remote thread metadata to indexeddb

* fix: read file content instead url

* fix(wip): get attachments on chat onFinish

* fix: attach new stack of files to chat

* [masterbots.ai] fix: og card dimensions and spacing + profile props (#506)

* fix: og card dimensions and spacing + profile props

* fix: og card dimensions + profile props

* perf(impr): rm long usernames + autogen num + form input control

* perf: dynamic short username number gen

* chore(impr): update default thread publicity flag + attachments concurrency & render (#508)

* chore(impr): update default thread publicity flag

* fix: default thread publicity

* fix: ai generated formulas

* fix: eslint rule, display name in markdown

* fix: eslint rule, display name in markdown

* fix: following questions prompt + isNewThread guard

* fix: attachments render && concurrency + optimistic activeThread updates

* fix: build

* perf(impr): earlier downloadedAttachments array upt

* chore(impr): clean remote processed ids, indexeddb attachments

* fix: user should be able to delete threads (#507)

* update

* fix: update

* update

* update

* update

* update

* fix: user can delete thread

* fix: delete thread messages

* fix: update

* fix: obs update

* chore: file clean up

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* [masterbots.ai] feat: image generation support (#504)

* feat: add support to image generation

* feat: add GPT-image-1 support route

* feat: fix biome lint

* feat: add edit mode

* chore: enable img gen feature flag

* style: format n lint

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* fix: bun lock

* fix: ts build

* fix(impr): continuos thread render, 2nd ai res, ui tweaks (#511)

* chore(impr): mb logo wip + threads add order by update at

* feat(impr): update thread on message activity + fix order by updated at

* fix: thread pop-up default opened accordion

* perf(impr): add user promo code track + chatbot disabled flag

* fix: 2nd ai concurrent request + continuous thread context & render

---------

Co-authored-by: Brandon Fernández <31634868+Bran18@users.noreply.github.com>
Co-authored-by: Jimoh sherifdeen <63134009+sheriffjimoh@users.noreply.github.com>
Co-authored-by: bran18 <andreyfdez18@gmail.com>
Co-authored-by: Brandon fernandez <brandonfernandez@Brandons-Mac-mini.local>
sheriffjimoh added a commit that referenced this pull request Sep 10, 2025
* fix: change toggler wording + util hook (#424)

* impr: makes threads open on profile page and profile tweaks (#421)

* update

* fix: update

* update

* update

* update

* update

* fix: opening threads

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: rm threads dropdwon  & added back link to bot page thread view page

* fix: update

* fix: added back to profile page

* fix: added sticky and color

* fix: codeblock ctas refactor markdown rendering, sidebar nav, code block & clipboard hook (#425)

* fix: codeblock ctas

* fix: ts build

* fix: continue thread + allMessages sequence + mobile chat css tweak (#426)

* fix: css handleCLick condition

* fix: get latest search params, continuous thread

* fix(impr): all messages sorting

* perf(impr): sign in & up redirection tweak

* perf(impr): mobile chat css

* chore: next + react security ver upt (#427)

* refactor: use chat and continue thread + continue conversation fallback (#432)

* refactor: use chat and continue generation

* fix: uniq slug and id gen (#433)

* fix: uniq thread + msg slug gen

* style: formatting

* fix: thread user attachments state upt

* perf: impr thread component at all pages + mobile tweaks

* refactor: thread-component card

* chore: restore continue generation v1

* feat(impr): thread component card

* fix: admin panel n actions

* fix: fetch getThreads

* chore: continue conversation v1.2

* chore: continue and update thread content

* chore: add ui control continue generation state

* chore: fix infinity loop

* chore(impr): enable upt msg table permission

* fix: seo thread fetch

* chore: style formating

* fix(impr): continued thread title + thread component reusability

* chore: refactor loadings + extending sonners

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add gemini provider (#437)

* feat: add gemini provider

* chore: update icons

* feat: impr continuing thread tags + accordion first msg toggle (#435)

* feat(wip): impr continuing thread tags + accordion first msg toggle

* feat(impr): continuing thread tags + accordion at first message + header mobile tweak

* style(impr): mobile thread-component x-axis space

* perf(style): coderabbitai feedbacks

* fix: css typo

* perf: sendMessageFromResponse clicked guard + continued thread tags label tweak

* chore: user thread panel clean up

* fix: user-thread-panel infinite loader

* perf: impr shared accordion animation and ux

* style: defaultAccordionState comments loc

* fix: record type warning, hasura updateMessage

* fix: getThread user data, shared-accordion

* fix: coderabbitai observations

* fix: impr file management per llm, multimodel feat flag, chat tool labels, parent thread guard

* fix: tunningUserContent parentThread condition

* fix: feature flag typo

* feat: profile page thread popup feature flag and tweaks  (#434)

* update

* fix: update

* update

* update

* update

* update

* refactor: profile page threads pop up

* fix: update config

* fix: update

* fix: update

* fix: make profile page scroll on hero

* fix: bot make popup and scroll

* fix: make profile page sidebar scroll independently

* fix: make profile page sidebar scroll independently

* fix: check the category along the chatbot when it's not checked

* fix: check the category along the chatbot when it's not checked

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>
Co-authored-by: Roberto Lucas <andler@bitcash.org>

* feat: add new llm models (#444)

* feat-add-models

* feat-add-models

* feat-add-models

* chore: add model

* fix: typo

* chore: add toggler color

* perf(impr): thread llm context, last question & response + new models seeds (#447)

* feat(wip): thread llm context, prev questions

* fix: previousQuestionsString slice

* fix: clickedContentId in followingQuestionsPrompt

* feat: isContinued + model type in message table

* fix: ts typo + sendMessageFromResponse callback call

* fix: ts typo

* fix: bot profile page view (#449)

* fix(wip): bot profile thread list

* style: formatting

* fix: new chats and share + og img (#451)

* fix: new chat state reset

* fix: genql gen + share link check

* fix: og img

* fix: duplicate role permission in msg table

* feat: initial continuation logic flow (#450)

* chore: restore base version

* chore: add new logic and hooks

* chore: fix providers file

* chore: improve continuation prompt

* chore: add exlucision flag

* chore: add better handler

* chore: updated flow + experimental delay

* chore: extended time

* chore(impr): streamDelayMs experimental feat flag

* style: formatting

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* fix: profile sidebar cat opt render (#453)

* fix: profile sidebar cat opt render

* chore: clean-up

* [masterbots.ai] refactor: slug generation logic with improved uniqueness and type support (#456)

* fix: slugify fn

* chore: devMode logs

* fix: uniq slug gen fn nanoid flag typo

* feat: sentry logs in webapp (#457)

* fix(impr): llm enum data, thread creation, ts, and log behavior (#458)

* fix: slugify first request delay incr + genql ts, seeds & model migration upt

* fix: create thread & msg ts

* fix(impr): profile page bugs & tweaks v1 4/15/25 (#455)

* update

* fix: update

* update

* update

* update

* update

* fix: use the user avatar or robohash

* fix: added avater to user menu

* fix: user avatar

* fix: reset search input when filter by category or chatbot

* fix: personal chat browse provider + username chk in sign up

* chore: clean duplicated if condition signup

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* refactor: continuation flow (#460)

* impr: continuation logic flow

* impr: continuation logic flow

* chore: update createImprovementPrompt

* chore: upt logs

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat: models table, enum type, and refactor chat msg deduplication logic (#462)

* feat: models table

* style: formatting

* fix: continuation accordion content

* fix: sql + metadata typo

* fix: db migrations and messages uniqby condition (#463)

* fix: db migrations + messages uniqby condition

* fix: typo

* perf(impr): verify duplicate message return condition

* chore: upt default available models

* perf(impr): reassign continued prompt

* chore: incr fn stream max duration

* fix: mob prof sidebar + sign-up pw verif + username chk (#464)

* fix: mob prof sidebar + sign-up pw verif + username chk

* chore: upt genql gen

* perf(impr): profile navigation

* feat: model selector (#466)

* wip: model selector query

* wip: model selector query

* chore: improve funtions

* chore: add coderabbit suggestion

* chore: add hasura permissions, models table

* style: formatting

* chore: fix get model client type

* chore: add model

---------

Co-authored-by: Roberto Romero Lucas <contact@andler.dev>

* chore: impr models (#472)

* chore: fix model name and condition (#473)

* refactor: user fetching code (#471)

* refactor: profile sidebar ui, upt styling, and disable prefetch (#470)

* chore: remove prefetch on sidebar & profile navigation

* perf: impr profile sidebar

* fix: infinite scroll load more fetch

* perf(impr): google sign-in

* perf(impr): session loaders tweak

* perf: impr categoriesId obtention

* fix: tailwind typo

* chore(impr): pro user guard in model selector

* chore: category label upt to topic

* chore: rm dev mode guard (#476)

* feat: add reasoning compatibility (#480)

* feat: add resoning stable

* chore: add reasoning stable v

* chore: activate reasoning

* chore: activate reasoning

* feat: pro users whitelist (#481)

* feat(wip): whitelist pro users

* chore: add whitelist pro users + page size fetch

* perf(impr): following question impr prompt

* fix: pro whitelist users clean up

* feat: user account setting  (#468)

* update

* fix: update

* update

* update

* update

* update

* feat: imple account setting

* feat: added dialog to delete button

* feat: update user deletion func

* fix: move back exmaples files

* fix: update

* fix: user account scheduling api

* fix: user account deletion request function

* refactor: account deletion request api

* fix: user account request and thread deletion

* fix: added permission and account deletion page

* fix: update on permission

* fix: enable new col permission

* fix: profile side bar

* fix: update

* fix: function rerendering

* fix: update route

* chore(impr): preferences actions and ui tweaks

---------

Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* chore: enable twitter pixel track (#479)

* chore: enable twitter pixel track

* perf(impr): twitter ads availability + dynamic config

* feat: impr profile navigation page (#478)

* fix(wip): subscriptions page render

* feat(impr): profile navigation + page ui tweaks

* style: lintin + formatting

* style(css): nav links px on mob

* fix: goToProfile in mob prof sidebar

* fix: build

* fix: thread popup opening at nav

* chore: enable preferences nav on prod

* feat: image generation  (#486)

* feat: add image generation support - gemini provider

* chore: add mineType

* chore: add conditional checks

* chore: upt model enums & list

* chore: hasura, set icl seeds chunks (#484)

* chore: hasura, set icl seeds chunks

* chore: track backup icl seed loc to lfs

* chore(seeds): uncomment phase 3 topics & add new chatbots + icl metadata rel

* chore: upt phase 3 init config seeds, adding rel

* fix: example seeds integrity

* test: incr hasura max req body

* revert: cloudbuild og config

* chore: restore skipped seed lines

* fix: thread rendering (#487)

* fix: thread list render states

* chore: linting & format

* fix: thread pop-up on refresh

* fix: user table selection

* fix(impr): type safety for image data and refactor model enums in chat (#489)

* fix: image generation flow

* chore: impr gemini generation logic

* fix: build issue

* chore: change subscription page

* chore: change subscription page + lint

* chore: user pref disable options

---------

Co-authored-by: bran18 <andreyfdez18@gmail.com>

* fix: add hotfix image generation

* chore: add more image models

* fix: models_enum values + genql upt

* feat: improved subscription section (#491)

* feat: add improved subscription section

* feat: add type

* chore: add conditional dislay

* feat: add username tags

* chore: add new order and benefits

* fix: thread empty state on user profile (#490)

* update

* fix: update

* update

* update

* update

* update

* feat: added empty state to user profile page

* feat: added empty state to user profile page

* fix: update

* fix: update

* fix: account creation slug issue

* chore: restore public models table select permissions + clean up

---------

Co-authored-by: Roberto Lucas <andler@bitcash.org>
Co-authored-by: Roberto Lucas <andler.dev@gmail.com>

* feat(wip): web search v2 (#494)

* feat(wip): web search

* feat(wip): thread config actions

* feat(wip): share cta impr

* chore: upt domain slugs list

* chore: comment legacy getWebSearchTool

* fix: preference insert

* wip: user preferences set

* fix: typo

* fix: updateUser data upt

* fix: pref table sel (#496)

* fix: og render + tweaks (#492)

* fix: og render + tweaks

* fix: zIndex in og

* perf: impr defaultOgImage chk

* chore: bun lock upt

* chore: next-auth patch upt

* fix: app build by mv uuidregexp loc

* fix: drizzle service actions loc + msg slug check + msg uniqueness (#499)

* [masterbots.ai] chore: standarize pop-up on profile & bot page for thread display (#500)

* update

* fix: update

* update

* update

* update

* update

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added popup to thread view page on user profile(both on page reload)

* fix: added profile link to thread share

* fix: update

* fix: chatbot page thread pop-up

* fix: update

* fix: appendMessage concurrency + getBrowseThreads admin mode chk (#505)

* feat: attachment thread metadata (#502)

* feat(wip): track thread attch data

* chore: upt drizzle & genql schemas

* feat(wip): save user attachments on load chk

* perf: file upload throughout indexed db hook

* feat(wip): gcp bucket setup

* feat: enlarge thread attachment

* fix: attachment upload loop

* fix: gcloud storage + thread metadata check & upload

* fix: bucket upload + after upload mutations

* feat: store remote thread metadata to indexeddb

* fix: read file content instead url

* fix(wip): get attachments on chat onFinish

* fix: attach new stack of files to chat

* [masterbots.ai] fix: og card dimensions and spacing + profile props (#506)

* fix: og card dimensions and spacing + profile props

* fix: og card dimensions + profile props

* perf(impr): rm long usernames + autogen num + form input control

* perf: dynamic short username number gen

* chore(impr): update default thread publicity flag + attachments concurrency & render (#508)

* chore(impr): update default thread publicity flag

* fix: default thread publicity

* fix: ai generated formulas

* fix: eslint rule, display name in markdown

* fix: eslint rule, display name in markdown

* fix: following questions prompt + isNewThread guard

* fix: attachments render && concurrency + optimistic activeThread updates

* fix: build

* perf(impr): earlier downloadedAttachments array upt

* chore(impr): clean remote processed ids, indexeddb attachments

* fix: user should be able to delete threads (#507)

* update

* fix: update

* update

* update

* update

* update

* fix: user can delete thread

* fix: delete thread messages

* fix: update

* fix: obs update

* chore: file clean up

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* [masterbots.ai] feat: image generation support (#504)

* feat: add support to image generation

* feat: add GPT-image-1 support route

* feat: fix biome lint

* feat: add edit mode

* chore: enable img gen feature flag

* style: format n lint

---------

Co-authored-by: Roberto 'Andler' Lucas <contact@andler.dev>

* fix: bun lock

* fix: ts build

* fix(impr): continuos thread render, 2nd ai res, ui tweaks (#511)

* chore(impr): mb logo wip + threads add order by update at

* feat(impr): update thread on message activity + fix order by updated at

* fix: thread pop-up default opened accordion

* perf(impr): add user promo code track + chatbot disabled flag

* fix: 2nd ai concurrent request + continuous thread context & render

* [masterbots.ai] perf(impr): chat opt state mngt and enhance attach metadata sync (#514)

* fix: toggle visibility fn state upt

* fix: file attach message ids upt

* fix: after update guard state

* fix: ts typo

* fix: thread visibility update permissions

* chore(fix): enable image gen to whitelist users

---------

Co-authored-by: Brandon Fernández <31634868+Bran18@users.noreply.github.com>
Co-authored-by: Jimoh sherifdeen <63134009+sheriffjimoh@users.noreply.github.com>
Co-authored-by: bran18 <andreyfdez18@gmail.com>
Co-authored-by: Brandon fernandez <brandonfernandez@Brandons-Mac-mini.local>
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.

1 participant