mirror of
https://github.com/Mintplex-Labs/anything-llm.git
synced 2026-07-19 14:13:35 -04:00
[GH-ISSUE #1833] [CHORE]: XDG Base Directory Specification Violation: Incorrect Data Storage #1194
Closed
opened 2026-02-22 18:23:38 -05:00 by yindo
·
3 comments
No Branch/Tag Specified
master
5846-bug-when-scrolling-up-scrolling-jumps
refactor-remove-workspace-pfp
5969-bug-stopgenerationbutton-disappears-on-the-first-prompt-that-initiates-an-agent-session
2235-bug-how-to-upload-a-folder-with-subfolders-with-files-to-anythingllm
5990-workspace-update-fails-with-unknown-argument-router_id-v1130v1150-intel-mac
opencomputer-examples
pg
feat/image-generation-translations
feat/image-generation
5924-bug-meeting-summary-fails-with-sincludes-is-not-a-function-when-default-llm-is-anthropic-claude
render
feat/uniform-modal-component
5883-bug-unescaped-content-in-json-strings-being-passed-to-document-generator-tools
5901-bug-api-update-embeddings-fails-prisma-argument-filename-is-missing-on-workspace_documentscreate-desktop-windows-v1141
hybrid-search
1981-translations
5752-bug-prompts-to-local-jan-endpoint-unresponsive
feat-disable-native-tool-calling-env-var
5676-bug-non-ollama-agent-providers-do-not-parse-and-present-reasoning-content
feat/markdown-web-scraping
5717-bug-apiv1documentupload-silently-drops-metadata-field-in-desktop-1130-arg-count-mismatch-nested-payload-key
fix/aibitat-context-overflow
5711-bug-erratic-deepseek-v4-flash-the-agent-model-failed-to-respond-400-the-reasoning_content
5631-feat-custom-api-request-timeouts-for-ai-providers
feat-reasoning-control
feat-agent-clarifying-questions-translations
5583-bug-lm-studio-provider-does-not-present-reasoning-output
5313-normalize-translations
feat/memory-translations
5305-lemonade-embedding-engine-swallows-errors-falsely-reports-documents-as-embedded
5060-bug-agent-interactions-agent-are-not-persisted-to-thread-history-via-api
pptx-subagent
feat-render-images-from-mcp-tool-results
stt-provider-expansion-openai-api-compatible
feat-file-search-agent-tool
feat-native-embedder-job-queue
5189-normalize-translations
feat-file-search-agent-tool-translations
i18n-eslint
5140-auto-migration
5112-bug-openrouter-failed-message-bug
3506-feat-parameters-for-openrouter-models
4992-feat-preserve-scroll-position
4973-bug-markdown-numbered-list-display-in-reasoning-pane
desktop
4938-bug-pending-chat-rerendering-ui-bug
quickstart-env
node-llama-cpp-in-container-cuda
node-llama-cpp-in-container
ollama-in-container
4817-feat-set-cooldown-per-mcp-server
4845-keyboard-shortcuts-to-navigate-in-chat
4844-feat-reorder-threads-by-latest-interaction
standardize-username-constraints-normalize-translations
4792-feat-refactor-workspacepfp-image
1382-embed-ip-improvements
1382-bug-embed-api-improvements
refactor-eslint-frontend
4687-feat-refactor-vector-db-providers
4615-feat-disable-apidocs-with-environment-variable
4559-feat-agent-web-search-enable-ordering-of-results
4599-bug-ollama-race-condition-bug
4572-bug-lmstudio-provided-llm-stopped-working-with-anything-llm-after-upgrading-to-190
4508-agent-youtube-transcript-analysis
4497-feat-workspace-names
frontend-eslint
ollama-lmstudio-auto-context-window
4431-validate-vector-database-connectioN
2019-slash-command-keyboard-selection
microsoft-foundry-provider
4431-validate-vector-database-connection
4325-sys-prompt-var-improvements
3209-feat-apiv1workspacestream-chat-sources-citations
4210-bug-voice-to-text-overwrite
4136-feat-jan-as-a-backend-server-option
4172-feat-openai-o3-support
1.8.3-rerelease
web-push-notifications-service
tasks
3955-feat-jinaai-embedder-provider-support
3921-feat-agent-skills-uiux-improvements
3901-bug-validfunccall-checks-optional-arguments
keyboard-dev
1787-custom-roles-and-permissions
add-jira-slack-data-connector
office-extension-wip
lightmode-dropdown-color-update
3586-bug-agent-flow-function-description-provided-by-user-is-not-seen-in-the-llm-query
3463-bug-agent-continues-to-run-if-request-failed-even-after-exit
3439-feat-call-variables-within-the-flow-api-block-url-field
3282-manager-view-models-workspace
3280-token-counting-server-side-truncation-improvements
3147-bug-embedded-chat-widget---not-considering-query-mode-option-always-working-in-chat-mode
2995-feat-disable-temperature-setting-for-deepseek-r1-deepseek-reasoner-model
2827-feat-perplexity-citations
2866-feat-finally-a-gemini-models-endpoint
2647-feat-hpp-header-for-a-c++-code-file-mime-addition
lancedb-revert
1656-feat-implement-tooltip-ui-designs
2011-feat-bump-perplexity-models
1873-feat-auto-add-and-watch-folder-for-document-uploads
1297-feat-gemini-agent-support
1759-bug-ui-bug-fixes
1686-feat-implement-winston-for-logging
1536-bug-toggling-on-users-can-delete-workspaces-does-not-take-effect
agent-ui-mobile-styles
1522-feat-chromadb-support
1595-bug-unable-to-get-live-web-search-and-browsing-agent-working-using-google-custom-search-engine-error-getaddrinfo-enotfound-http-errno-3008
1582-bug-lm-studio-does-not-allow-for-different-model-selection
1312-bug-usernames-should-not-be-case-sensitive-when-logging-in
1029-feat-hf-serverless-inference-api
1086-feat-implement-normalized-input-fields
knowledge-graph-support
644-bug-uploaded-file-name-does-not-match-the-displayed-file-name-after-the-upload
v1.15.0
v1.14.2
v1.14.1
v1.14.0
v1.13.0
v1.12.1
v1.12.0
v1.11.2
v1.11.1
v1.11.0
v1.10.0
v1.9.1
v1.9.0
v1.8.5
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.8
v1.7.6
v1.7.5
v1.7.4
v1.4.0
v1.3.0
v1.2.4
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.1.1
v1.1.0
v1.0.0
Labels
Clear labels
Desktop
Docker
Integration Request
Integration Request
OS: Linux
OS: Mobile
OS: Windows
UI/UX
blocked
bug
bug
core-team-only
documentation
duplicate
embed-widget
enhancement
feature request
github_actions
good first issue
investigating
needs info / can't replicate
possible bug
pull-request
question
stage: specifications
wontfix
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Mintplex-Labs/anything-llm#1194
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @chymian on GitHub (Jul 9, 2024).
Original GitHub issue: https://github.com/Mintplex-Labs/anything-llm/issues/1833
How are you running AnythingLLM?
AnythingLLM desktop app
What happened?
Description:
The Anything LLM Desktop application stores various types of data, including cache, dictionaries, and storage, solely in the $XDG_CONFIG_HOME directory (e.g.,
~/.config/anythingllm-desktop. This is a violation of the XDG Base Directory Specification, which recommends separating data into distinct categories and storing them in their respective base directories.Expected Behavior:
According to the XDG Base Directory Specification, data should be stored in the following directories:
$XDG_DATA_HOME (e.g., ~/.local/share/anythingllm-desktop): For user-specific data files (e.g., blob storage, dictionaries, storage)
$XDG_CACHE_HOME (e.g., ~/.cache/anythingllm-desktop): For non-essential data files that can be easily regenerated (e.g., cache, GPUCache)
$XDG_STATE_HOME (e.g., ~/.local/state/anythingllm-desktop): For user-specific state data (e.g., Crashpad, Session Storage)
$XDG_CONFIG_HOME (e.g, ~/.config/anythingllm-desktop): Only for user-specific configuration files (e.g., config.json, Preferences)
Actual Behavior:
The application currently stores all data in the $XDG_CONFIG_HOME directory, which is not in compliance with the XDG Base Directory Specification. This can lead to confusion, difficulties in debugging, and potential issues with data integrity.
Proposal:
Update the application to separate data into distinct categories and store them in their respective base directories according to the XDG Base Directory Specification.
Migrate existing data to the correct directories.
Ensure that the application correctly handles and looks up data in the new directories.
Steps to Reproduce:
Run the Anything LLM Desktop application.
Verify that all data is stored in the $XDG_CONFIG_HOME directory.
System Information:
Operating System: linux
Anything LLM Desktop version: up tp latest
Additional Context:
This issue is important for maintaining a clean and organized file system, adhering to established standards, and ensuring a better user experience.
i.e. think: It's best practice to keep the
~/.configin a git-repo, which would then have to digest models, cache, etc…Are there known steps to reproduce?
No response
@timothycarambat commented on GitHub (Jul 10, 2024):
Given the complexity of implementing this as the desktop app is cross-platform we are not going to undertake the effort of splitting storage into various directories that only would apply to Linux builds since we use getPath('AppData') and since the information stored here is specific to the user using AnythingLLM I don't see this as a negligent use of the XDG home directory.
If anything, the trouble, debugging, and headaches of having users only on Linux specify their directory to store data to is more likely to amount to even more Github issues that would instead be permission related 😓.
It additionally helps that should someone have issues we can consistently refer to a singular place all user app data can be located without having to follow up with "well maybe, unless you changed it, in which case it could be anywhere"
@timothycarambat commented on GitHub (Jul 10, 2024):
I do appreciate the comprehensive, well written, and thorough commentary on such an issue. Hopefully, you can understand our position on the matter as well
@chymian commented on GitHub (Jul 13, 2024):
@timothycarambat
out of 40 years of sysadmin experience, no I can't understand, why an very young and opinionated app thinks it needs to rape a system and breaks all rules, which make such a sytem stable and consistent over very long time (many decades!).
just my 2 cents.
as a follow up of this violation, it will not go into any portfolio I would suggest to my clients - even so, I like your work and see a good future for this… what a pitty.
Hopefully, you can understand my position on the matter as well but as a Sysadmin one has a responsibility.
[CHORE]: XDG Base Directory Specification Violation: Incorrect Data Storageto [GH-ISSUE #1833] [CHORE]: XDG Base Directory Specification Violation: Incorrect Data Storage