- Remove ListSessions and RevokeSession RPC endpoints
- Remove Session message and SessionsSetting from UserSetting
- Remove ACCESS_TOKENS key and AccessTokensSetting
- Update references to use RefreshTokensUserSetting with its own ClientInfo
- Remove UserSessionsSection frontend component
- Clean up user store to remove session and access token settings
- Regenerate protobuf files
The system now uses:
- REFRESH_TOKENS for session management with sliding expiration
- PERSONAL_ACCESS_TOKENS for long-lived API tokens
- Remove enable_link_preview field from proto definitions
- Remove setting UI from MemoRelatedSettings component
- Remove translations from all 33 locale files
- Regenerate proto files
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove work-related terminology by renaming "workspace" to "instance"
across the entire application. This change better reflects that Memos
is a self-hosted tool suitable for personal and non-work use cases.
Breaking Changes:
- API endpoints: /api/v1/workspace/* → /api/v1/instance/*
- gRPC service: WorkspaceService → InstanceService
- Proto types: WorkspaceSetting → InstanceSetting
- Frontend translation keys: workspace-section → instance-section
Backend Changes:
- Renamed proto definitions and regenerated code
- Updated all store layer methods and database drivers
- Renamed service implementations and API handlers
- Updated cache from workspaceSettingCache to instanceSettingCache
Frontend Changes:
- Renamed service client: workspaceServiceClient → instanceServiceClient
- Updated all React components and state management
- Refactored stores: workspace.ts → instance.ts
- Updated all 32 locale translation files
All tests pass and both backend and frontend build successfully.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- sort all keys alphabetically for easier side-by-side translation
- remove keys from other locales that don't exist anymore in `en.json`
- remove keys from other locales that have missing {{interpolations}}
- add missing entries to pt-BR
Translated using Weblate (Russian)
Currently translated at 90.4% (274 of 303 strings)
Translation: memos-i18n/i18n
Translate-URL: https://hosted.weblate.org/projects/memos-i18n/english/ru/
Co-authored-by: sergeybutakov <pushkagun@gmail.com>
* Translated using Weblate (Russian)
Currently translated at 85.1% (252 of 296 strings)
Translation: memos-i18n/i18n
Translate-URL: https://hosted.weblate.org/projects/memos-i18n/english/ru/
* Translated using Weblate (Vietnamese)
Currently translated at 91.8% (272 of 296 strings)
Translation: memos-i18n/i18n
Translate-URL: https://hosted.weblate.org/projects/memos-i18n/english/vi/
---------
Co-authored-by: LibreTranslate <noreply-mt-libretranslate@weblate.org>
Co-authored-by: The Anh Nguyen <anhntdev0@gmail.com>
Translated using Weblate (Russian)
Currently translated at 85.1% (252 of 296 strings)
Translation: memos-i18n/i18n
Translate-URL: https://hosted.weblate.org/projects/memos-i18n/english/ru/
Co-authored-by: xyznetsov <invisiblesun2016@yandex.ru>
Adds automatically background refresh of all external links if they are belongs to the current blob (S3) storage. The feature is disabled by default in order to keep backward compatibility.
The background go-routine spawns once during startup and periodically signs and updates external links if that links belongs to current S3 storage.
The original idea was to sign external links on-demand, however, with current architecture it will require duplicated code in plenty of places. If do it, the changes will be quite invasive and in the end pointless: I believe, the architecture will be eventually updated to give more scalable way for pluggable storage. For example - Upload/Download interface without hard dependency on external link. There are stubs already, but I don't feel confident enough to change significant part of the application architecture.
Translated using Weblate (Polish)
Currently translated at 79.5% (167 of 210 strings)
Translated using Weblate (Polish)
Currently translated at 0.0% (0 of 0 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (210 of 210 strings)
Added translation using Weblate (Polish)
Translated using Weblate (Korean)
Currently translated at 98.5% (210 of 213 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 97.1% (207 of 213 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 92.0% (196 of 213 strings)
Translated using Weblate (Vietnamese)
Currently translated at 89.2% (190 of 213 strings)
Translated using Weblate (Ukrainian)
Currently translated at 91.5% (195 of 213 strings)
Translated using Weblate (Russian)
Currently translated at 91.5% (195 of 213 strings)
Translated using Weblate (Italian)
Currently translated at 91.5% (195 of 213 strings)
Translated using Weblate (French)
Currently translated at 90.1% (192 of 213 strings)
Translated using Weblate (Spanish)
Currently translated at 91.5% (195 of 213 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (210 of 210 strings)
Deleted translation using Weblate (English (United States))
Translated using Weblate (English (United States))
Currently translated at 0.0% (0 of 0 strings)
Added translation using Weblate (English (United States))
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (210 of 210 strings)
Translated using Weblate (Korean)
Currently translated at 98.5% (207 of 210 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 97.6% (205 of 210 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 93.3% (196 of 210 strings)
Translated using Weblate (Vietnamese)
Currently translated at 90.4% (190 of 210 strings)
Translated using Weblate (Ukrainian)
Currently translated at 92.8% (195 of 210 strings)
Translated using Weblate (Swedish)
Currently translated at 92.8% (195 of 210 strings)
Translated using Weblate (Russian)
Currently translated at 92.8% (195 of 210 strings)
Translated using Weblate (Dutch)
Currently translated at 85.7% (180 of 210 strings)
Translated using Weblate (Italian)
Currently translated at 92.8% (195 of 210 strings)
Translated using Weblate (French)
Currently translated at 91.4% (192 of 210 strings)
Translated using Weblate (Spanish)
Currently translated at 92.8% (195 of 210 strings)
Translated using Weblate (German)
Currently translated at 91.4% (192 of 210 strings)
Translate-URL: https://hosted.weblate.org/projects/memos/web/de/
Translate-URL: https://hosted.weblate.org/projects/memos/web/en_US/
Translate-URL: https://hosted.weblate.org/projects/memos/web/es/
Translate-URL: https://hosted.weblate.org/projects/memos/web/fr/
Translate-URL: https://hosted.weblate.org/projects/memos/web/it/
Translate-URL: https://hosted.weblate.org/projects/memos/web/ko/
Translate-URL: https://hosted.weblate.org/projects/memos/web/nl/
Translate-URL: https://hosted.weblate.org/projects/memos/web/pl/
Translate-URL: https://hosted.weblate.org/projects/memos/web/ru/
Translate-URL: https://hosted.weblate.org/projects/memos/web/sv/
Translate-URL: https://hosted.weblate.org/projects/memos/web/uk/
Translate-URL: https://hosted.weblate.org/projects/memos/web/vi/
Translate-URL: https://hosted.weblate.org/projects/memos/web/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/memos/web/zh_Hant/
Translation: memos/web
Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Co-authored-by: Piotr Wik <p_00@o2.pl>
Co-authored-by: Yoshino-s <cy-cui@outlook.com>
Co-authored-by: boojack <stevenlgtm@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>