SyncWithRaj ae229ca894 Make chat export robust and fix export truncation (#1314)
Exporting chats produced an incomplete conversations.json that missed
recent conversations and repeated others.

The export endpoint paginates by explicit offset and limit rather than a
page index that slid the query window by a single row per request. The
queryset orders by created_at, id, which keeps pagination stable across
the multi-request export even when conversations are written to while it
runs. Both parameters are bounded (offset >= 0, 1 <= limit <= 100), so out
of range values are rejected at the API boundary instead of raising on the
queryset slice or pulling every conversation log into memory at once.

The web client walks the endpoint until a page shorter than the batch size
comes back, which marks the end of the data more reliably than a
conversation count read once before the loop starts. The loop is bounded
by a max offset derived from that count, checks each response before
using it, and reports progress from the number of conversations actually
exported.

Tests cover pagination across pages, ordering stability when a
conversation is updated mid-export, and rejection of out of range
pagination parameters.

Fixes #1299
2026-08-01 18:55:40 -07:00

Khoj Logo

test docker pypi discord

Your AI second brain

📑 Docs   •   🌐 Web   •   🔥 App   •   💬 Discord   •   ✍🏽 Blog

khoj-ai%2Fkhoj | Trendshift


🎁 New

  • Meet 🌶️ Pipali - our open-source AI coworker that runs on your computer.
  • Read about Khoj's excellent performance on modern retrieval and reasoning benchmarks.

Overview

Khoj is a personal AI app to extend your capabilities. It smoothly scales up from an on-device personal AI to a cloud-scale enterprise AI.

  • Chat with any local or online LLM (e.g llama3, qwen, gemma, mistral, gpt, claude, gemini, deepseek).
  • Get answers from the internet and your docs (including image, pdf, markdown, org-mode, word, notion files).
  • Access it from your Browser, Obsidian, Emacs, Desktop, Phone or Whatsapp.
  • Create agents with custom knowledge, persona, chat model and tools to take on any role.
  • Automate away repetitive research. Get personal newsletters and smart notifications delivered to your inbox.
  • Find relevant docs quickly and easily using our advanced semantic search.
  • Generate images, talk out loud, play your messages.
  • Khoj is open-source, self-hostable. Always.
  • Run it privately on your computer or try it on our cloud app.

See it in action

demo_chat

Go to https://app.khoj.dev to see Khoj live.

Full feature list

You can see the full feature list here.

Self-Host

To get started with self-hosting Khoj, read the docs.

Enterprise

Khoj is available as a cloud service, on-premises, or as a hybrid solution. To learn more about Khoj Enterprise, visit our website.

Frequently Asked Questions (FAQ)

Q: Can I use Khoj without self-hosting?

Yes! You can use Khoj right away at https://app.khoj.dev — no setup required.

Q: What kinds of documents can Khoj read?

Khoj supports a wide variety: PDFs, Markdown, Notion, Word docs, org-mode files, and more.

Q: How can I make my own agent?

Check out this blog post for a step-by-step guide to custom agents. For more questions, head over to our Discord!

Contributors

Cheers to our awesome contributors! 🎉

Made with contrib.rocks.

Interested in Contributing?

Khoj is open source. It is sustained by the community and wed love for you to join it! Whether youre a coder, designer, writer, or enthusiast, theres a place for you.

Why Contribute?

  • Make an Impact: Help build, test and improve a tool used by thousands to boost productivity.
  • Learn & Grow: Work on cutting-edge AI, LLMs, and semantic search technologies.

You can help us build new features, improve the project documentation, report issues and fix bugs. If you're a developer, please see our Contributing Guidelines and check out good first issues to work on.

Description
No description provided
Readme AGPL-3.0 150 MiB
Languages
Python 50.9%
TypeScript 36.2%
CSS 4.1%
HTML 3.3%
Emacs Lisp 2.4%
Other 3%