All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- 👷(ci) pull the MinIO images from quay.io instead of Docker Hub
- 🐛(ci) fix the CHANGELOG check failing when a pull request is opened
- 🐛(back) replace whitenoise with servestatic for async-capable serving
0.0.24 - 2026-09-08
- 🐛(front) fix translation hide source
0.0.23 - 2026-09-07
- 💄(settings) move analytics settings to general
- 📈(posthog) track projects, Docs export, summarization and co2 footprint
- 👷(ci) audit GitHub Actions workflows with zizmor on push and pull request
- 🔒️(back) throttle conversation and project creation per user
- 🚸(front) explain the wait when a creation rate limit is reached
- ⬆️(back) migrate to pydantic-ai 2.x
- 🏗️(front) migrate the frontend from Next.js to Vite and React Router
- 🏗️(front) rename frontend build var from the NEXT_PUBLIC_ prefix to VITE_
- 💬(back) rewrite the default agent instructions and tool descriptions
- 💄(front) correct icon Docs button
- ♻️(back) use httpx as the single HTTP client for outbound calls
- ⬆️(back) update django, pypdf, sqlparse and pydantic-settings
- 🔒️(ci) pin CI actions and installed packages to immutable versions
- ⚡️(ci) run e2e tests in parallel across browsers and shards
- ✨(back) sort conversations by stored size in the admin list
- 🚸(back) show 200 conversations per admin list page for bulk actions
- ♻️(back) split the settings module into per-domain configuration mixins
- ⬆️(chat) upgrade the Vercel AI SDK from v4 to v5
- 🐛(front) fix the frontend dev container failing to start
- 🐛(back) read the OIDC_CREATE_USER setting from its documented env var
- 🔥(back) remove the unused Albert web search manager and its tool
- 🔥(back) remove the unused RAG_WEB_SEARCH_PROMPT_UPDATE setting
- 🔥(back) remove the unused Tavily web search tool
- 🔥(back) remove the activation code gate, keeping past records for history
- 🔥(back) remove the unused text streaming protocol
0.0.22 - 2026-08-10
- ✨(conversation) summarize messages
- ⚡️(back) add users to the Brevo follow-up list only at signup
- ✨(back) list conversation files on the admin conversation page
- ⚡️(back) speed up the admin conversation list page
- ♻️(back) parse PDFs through the current Albert OCR endpoint
- ⬆️(dependencies) update dependencies and pin CVE-affected packages
- 🔥(back) remove the unused Albert RAG document search module
0.0.21 - 2026-07-28
- ⬆️(dependencies) update pypdf and next
- 🐛(back) align Albert RAG document upload and search with the current API
0.0.20 - 2026-07-23
- 💄(front) add tooltip co2
- ✨(back) add slide deck generation tool
- ✨(back) add model fallback mechanism
- ✨(back) add celery for running background tasks
- 🧱(helm) add celery worker and beat deployments
- ✨(front) add "Edit in Docs" action to export a message to Docs
- 🔒(back) guard parsing against decompression bombs and oversized PDFs
- ♻️(back) split chat views and replace hardcoded strings with constants
- 💄(front) change 404 illustration
- ✨(back) process project files asynchronously with indexing state
- ⚡️(back) process conversation files asynchronously off the request worker
- ⬆️(dependencies) update dependencies and pin CVE-affected packages
- ♻️(front) consolidate input chat banners into a reusable component
- ⬆️(dependencies) drop unused pydantic-ai extras
- 💬(back) use a generic localised timestamped title for Docs exports
- ⬆️(front) pin sharp to a libvips patched against GHSA-f88m-g3jw-g9cj
- 🐛(front) prevent app crash for users without a full name or email
- 🐛(front) refresh the conversation title in the collapsed left panel
- 🔥(back) remove the Find RAG backend and its FIND_API_* settings
0.0.19 - 2026-06-24
- 🔧(dependencies) bump backend to Python 3.14 and update pinned dependencies
- ⬆️(dependencies) update front and mail dependencies
- ♻️(front) source the home documentation link from config
- 💄(front) use "L'Assistant" as the default product name
- 🐛(front) keep the app open when using the contact link
- 💄(front) use semantic warning color for banner icon
- ✨(back) handle 404 during deletion as successful de-indexing
0.0.18 - 2026-06-12
- ✨(back) add cron job to poll Albert models health
- ✨(back) de-index inactive collections and reindex in conversation
- ✨(back) rate-limit chat with a model-health-aware token cooldown
- ✨(backend) add sliding window history processor
- ✨(banner) add dynamic health banners
- ✨(frontend) display specific error when document parsing fails
- 🧱(helm) bump chart to v0.0.6
- 🚸(front) replace help button with a dropdown menu
- 🔒️(back) restrict sign-in to users with an allowed OIDC role
- ♻️(back) rename model health status "orange" to "yellow"
- 🚸(front) explain the attachment size limit when an upload fails
- 🐛(helm) stop job pods from matching the backend disruption budget
- 🐛(front) use the browser language for the default UI on first load
- 💄(settings modal) updated the settings modal size
0.0.17 - 2026-06-02
- ✨(maintenance) add maintenance mode
- 🔒️(front) disable yarn install scripts in docker build
- ⬆️(dependencies) update back and front dependencies
- 🚸(back) improve chat admin filtering, search and display columns
- 🐛(backend) remove user list endpoint
- ✨(frontend): display specific error when LLM provider is down
0.0.16 - 2026-05-21
- ✨(sources) add source panel
- ✨(onboarding) add onboarding modal
- ✨(back) add ODT parsing support
- ✨(back) add self-documentation tool
- ✅(front) add tests for SourceItem component
- ✨(documents) make document context hybrid
- 🐛(fix) add prevent_url_hallucination instruction to ConversationAgent
- ✨(projects) handle project files for RAG search
- ✨(banner) configurable banner with level, title, content and start/end
- ✨(settings) new settings modal
- ✨(front) allow typing while LLM is generating a response
- 🐛(fix) source links should open a new tab
- 💄(ui) codeblock light mode
- ⬆️(dependencies) update back and front dependencies
- 💄(ui) new header
- ✨(back) add debug mode setup for local development
- ⬆️(dependencies) update pydanticai and related dependencies
- ⚙️(back) get carbon data from albert api provider
- ✨(tools): update descriptions
- ✨(auth) add silent OIDC login
- ⬆️(back) upgrade lxml and pypdf
- ✨(back) set allow_smart_web_search to False for all users
- ✨(back) make allow_conversation_analytics user setting readonly in admin
- 🚸(front) switch to new conversation when creating a project
- 💬(onboarding) fix wording step 1 img
- 🐛(fix) new conversation in project button max size
- 💄(ui) little fix margin top
- 💄(ui) review ui for part of the project
- 🐛(fix) Fix streaming crash with OpenAI-compatible APIs
- 🐛(fix) strip thinking part for models without reasoning support
- ✨(dev) setup Tilt for local development
- 🐛(front) project modal now respects document-upload feature flag
- 🐛(back) self-doc tool no longer triggers on generic or document questions
- 🐛(backend) improve url hallucination instruction
0.0.15 - 2026-03-31
- ✨(back) add projects with custom LLM instructions
- ✨(front) projects management UI
- 🥚(front) add April Fools day prank
- ⬆️(dependencies) upgrade Next.js 15 to 16, upgrade python dependencies
- ✨(front) rich text copy for Word/Docs paste
- 🐛(back) add missing color option for project colors
- 💄(project) ui fix project
- 💄(ui) ui fix button css
- 💄(ui) ui fix model selector css
0.0.14 - 2026-03-11
- ✨(user) allow disabling automatic internet search
- ✨(search) add searchModal and modify leftPanel
- ✨(waffle) hide the waffle if not fr theme
- ✨(front) allow pasting an attachment from clipboard
- ✨(array) temporarily adjust array
- ⚡️(front) optimize streaming markdown rendering performance
- ⬆️(back) update pydantic-ai
- ♻️(chat) refactor AIAgentService for readability and maintainability
- 🚸(oidc) ignore case when fallback on email #281
- ⬆️(back) update pillow, django-pydantic-field, pypdf
- ♻️(front) migrate from ESLint 8 to ESLint 9 flat config
- ⬆️(back) update django and pypdf
- 💚(docker) vendor mime.types file instead of fetching from Apache SVN
- 🚑️(back) fix mime type for pptx
- 🐛(front) fix math formulas and carousel translations
- 🐛(helm) reverse liveness and readiness for backend deployment
- 🐛(front) fix dark mode styling on chat messages
- 🐛(front) fixed inverted toast for setting changes
0.0.13 - 2026-02-09
- 💄(front) ui fix : update ui-kit
- ✨(front) add persistent darkmode
- ✨(front) add ui kit #240
- 🧱(files) allow to use S3 storage without external access #849
- ✨(backend) add FindRagBackend #209
- ⬆️(back) update dependencies
- ✨(back) use adaptive parsing for pdf documents
- 💄(darkmode) change color feedback button
- 🏗️(back) migrate to uv
- ♻️(front) optimize syntax highlighting bundle size
- 🐛(back) cast collection Ids to API expected types
0.0.12 - 2026-01-27
- ⚡️(front) performance improvements on chat input
- 💄(front) i18n and standardize pdf parsing display
- 🔥(chat) consider PDF documents as other kind of documents #234
0.0.11 - 2026-01-16
- 📦️(front) update react
- ✨(chat) generate and edit conversation title
- 🐛(e2e) fix test-e2e-chromium
- 🐛(back) fix system prompt compatibility with self-hosted models #200
- ⚰️(back) remove dead code and unused files
- 🐛(back) prevent tool call timeouts
- 🔥(chat) remove thinking part from frontend #227
0.0.10 - 2025-12-15
- ✨(front) add retry button
- 🐛(front) fix long user messages
- 🐛(front) fix "Maximum update depth exceeded" error in Chat component
- 🐛(front) fix parsing documents display
- 🐛(front) fix opacity input in error
- 🐛(front) resolve React hydration errors
- 🚑️(user) allow longer short names #182
0.0.9 - 2025-11-17
- ✨(front) add code copy button
- ✨(RAG) add generic collection RAG tools #159
- 🔊(langfuse) enable tracing with redacted content #162
0.0.8 - 2025-11-10
- 🦺(front) Fix send prohibited file types
- 🐛(front) fix target blank links in chat #103
- 🚑️(posthog) pass str instead of UUID for user PK #134
- ⚡️(web-search) keep running when tool call fails #137
- ✨(summarize): new summarize tool integration #78
- 🔥(posthog) remove posthog middleware for async mode fix #146
0.0.7 - 2025-10-28
- 🚑️(posthog) fix the posthog middleware for async mode #133
0.0.6 - 2025-10-28
- 🚑️(stats) fix tracking id in upload event #130
0.0.5 - 2025-10-27
- 🚑️(drag-drop) fix the rejection display on Safari #127
0.0.4 - 2025-10-27
- ♿️(a11y) improve accessibility #135
- 🌐(i18n) add dutch language #117
- ⚡️(asgi) use
uvicornto serve backend #121
- 🐛(front) fix mobile source
- 🐛(attachments) reject the whole drag&drop if unsupported formats #123
0.0.3 - 2025-10-21
- 🚑️(web-search) fix missing argument in RAG backend #116
0.0.2 - 2025-10-21
- ✨(front) add drag'n drop file
- ✨(activation-codes) register users also on Brevo #98
- 📈(posthog) add
subfield to tracking #95
- 🔧(front) change links feedback tchap + settings popup
- 🐛(front) code activation fix session end #93
- 💬(wording) error page wording #102
- ⚡️(web-search) allow to override returned chunks #107
- 🐛(activation-codes) create contact in brevo before add to list #108
- ⚗️(summarization) add system prompt to handle tool #112
0.0.1 - 2025-10-19
- 🎨(front) activation page footer
- 👷(front) change size small modal
- 🎨(front) retour ui global
- 👷(front) fix button scrollDown
- 💥(front) disable input when error occurred
- 👷(front) fix scroll
- 🐛(front) fix left panel status + fix scroll
- 🐛(llm) add is_active field and persist chat preference
- ✨(frontend) add LLM selection in chat input #53
- 🎨(front) fix width chat container
- 🎨(front) fix width chat container #55
- 🐛(front) fix button search web on new conversation
- 🎨(front) improvement search input scroll
- ✨(404) fix front 404 page
- ✅(chat) add frontend feature flags #29
- 🎨(front) change list attachment in chat
- 🎨(front) move emplacement for attachment
- 🎨(ui) retour ui sources files
- ✨(ui) fix retour global ui
- 🐛(fix) broken staging css
- 🎨(alpha) adjustment for alpha version
- ✨(ui) delete flex message
- ✅(front) add enabled/disabled conversation analysis
- 🎨(front) amelioration chat ux
- 🎨(front) global layout modification
- ✨(front) global layout UI
- ♻️(chat) rewrite backend using Pydantic AI SDK #4
- 🗃️(chat) enforce messages stored JSON format #6
- 🐛(chat) UI messages must have a unique identifier #6
- ✨(llm) allow configuration from JSON file #22
- 💥(agent) replace routing w/ tool calls #40
- 🧱(storage) upload the user documents into S3 #86
- 🎉(conversations) bootstrap backend & frontend #1
- ✨(web-search) add RAG capability to do web search #7
- ✨(chat) add document RAG on document uploaded by user #8
- ✨(backend) allow use to stop conversation streaming #14
- 🐛(agent) add the current date in the system prompt #18
- ✨(backend) add feature flags from posthog #13
- ✨(user) allow to use conversation data for analytics #23
- ✨(chat) enforce response in user language #24
- 📈(langfuse) add light instrumentation #26
- 🚑️(agent) allow Mistral w/ vLLM & tools #36
- ✨(web-search) add Brave search tool #47
- ✨(models) add mistral support & customization #51
- 🐛(web-search) add summarization to Brave results #58
- ✨(langfuse) allow user to score messages from LLM #6
- ✨(onboarding) add activation code logic for launch #62
- 💄(chat) add code highlighting for LLM responses #67
- 🔧(evals) add run_evals management command