Skip to content

feat: add temporary chats feature#362

Open
Krontx wants to merge 1 commit intocogwheel0:mainfrom
Krontx:temporary-chats-feature
Open

feat: add temporary chats feature#362
Krontx wants to merge 1 commit intocogwheel0:mainfrom
Krontx:temporary-chats-feature

Conversation

@Krontx
Copy link

@Krontx Krontx commented Feb 2, 2026

Add temporary chats functionality matching Open WebUI's behavior. Temporary chats use 'local:' prefix and skip server persistence, allowing users to have private conversations that aren't saved.

Features:

  • Toggle button in chat AppBar (eye icon) to enable/disable temporary mode
  • "Temporary chats by default" setting in app customization page
  • Save button to convert temporary chat to permanent
  • Temporary chats filtered from sidebar conversation list
  • All server sync operations skip temporary chats to prevent errors

Implementation:

  • Add temporaryChatEnabled provider for session state
  • Add temporaryChatDefault setting for default behavior
  • Modify chat ID generation to use 'local:' prefix when enabled
  • Skip api.createConversation() for temporary chats
  • Add guards in streaming_helper.dart and chat_providers.dart:
    • Skip task monitoring
    • Skip message sync
    • Skip conversation refresh
    • Skip chat completed notifications
  • Add isTemporaryConversation() helper function

The Open WebUI backend already supports the 'local:' prefix convention, so this is a frontend-only implementation.

Tested on Pixel 4 with Android 13.

Add temporary chats functionality matching Open WebUI's behavior.
Temporary chats use 'local:' prefix and skip server persistence,
allowing users to have private conversations that aren't saved.

Features:
- Toggle button in chat AppBar (eye icon) to enable/disable temporary mode
- "Temporary chats by default" setting in app customization page
- Save button to convert temporary chat to permanent
- Temporary chats filtered from sidebar conversation list
- All server sync operations skip temporary chats to prevent errors

Implementation:
- Add temporaryChatEnabled provider for session state
- Add temporaryChatDefault setting for default behavior
- Modify chat ID generation to use 'local:' prefix when enabled
- Skip api.createConversation() for temporary chats
- Add guards in streaming_helper.dart and chat_providers.dart:
  - Skip task monitoring
  - Skip message sync
  - Skip conversation refresh
  - Skip chat completed notifications
- Add isTemporaryConversation() helper function

The Open WebUI backend already supports the 'local:' prefix convention,
so this is a frontend-only implementation.

Tested on Pixel 4 with Android 13.
@Krontx
Copy link
Author

Krontx commented Feb 2, 2026

Hi! This is my first PR to Conduit. I noticed the temporary chats feature from Open WebUI was missing and implemented it.
I've tested it on my Pixel 4 (Android 13) and it's working well. Happy to make any changes based on your feedback.
Testing done:

  • ✅ Toggle works in chat AppBar
  • ✅ Settings toggle works
  • ✅ Temporary chats don't appear in sidebar
  • ✅ Save button converts temporary → permanent
  • ✅ No server errors during streaming
  • ✅ Tested on Pixel 4, Android 13
image image

@swever826
Copy link

Thank you!! I was about to submit a request for this.

I think the eye icon doesn't quite represent the temporary chat functionality. Looks more like a hide action than a "set as temporary" action.

What do you think about changing the icon to be like the ellipses bubble icon or the empty chat bubble icon?

When enabled it could change to the filled ellipses bubble or maybe a change of color?

@Krontx
Copy link
Author

Krontx commented Feb 13, 2026

Absolutely doable, but I would instead go with the glasses icon (incognito mode) with the icon turning neon blue when enabled.

However I do not think this PR will ever be accepted by the project owner, so I would not be wasting any more time unless the maintainer approves/reply to this thread.

@swever826
Copy link

swever826 commented Feb 13, 2026

Oh nice I didn't see that eyeglasses icon. I agree it's a better icon for this!

I understand. 2 days ago I saw the project owner pushed some commits so hopefully he is reading these PRs

If someone ever answers or approves your PR, I would like to know what you think about the color maybe being purple instead of neon blue? Since most browsers use a purple color to represent their incognito mode (Firefox, Brave, Opera, Tor), so most people might relate that color with that mode.

@Krontx
Copy link
Author

Krontx commented Feb 13, 2026

Absolutely, that's an amazing suggestion. Let's do purple.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants