* studio: persist personalization (profile + theme) server-side Profile name/nickname/avatar and appearance (theme) were stored only in the browser's localStorage, so every browser or device that connected to the same Studio started from defaults and forgot the user's personalization. Persist them server-side (single-account, stored as one JSON blob in app_settings) so they follow the account: - utils/personalization_settings.py + GET/PUT /api/settings/personalization, with validation (theme/shape enums, avatar must be an image data URL capped at 512 KB) and a 'saved' flag. - Frontend usePersonalizationSync (mounted in the root layout when signed in) hydrates the profile + theme stores from the server when a blob exists, and otherwise migrates the existing local settings up once so nothing is lost; later changes are written through, debounced. Writers keep using the local stores unchanged. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix/adjust personalization sync for PR #6516 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix Studio personalization sync edge cases * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: wasimysaid <wasimysdev@gmail.com> |
||
|---|---|---|
| .. | ||
| backend | ||
| frontend | ||
| src-tauri | ||
| __init__.py | ||
| install_llama_prebuilt.py | ||
| install_node_prebuilt.py | ||
| install_python_stack.py | ||
| LICENSE.AGPL-3.0 | ||
| package-lock.json | ||
| package.json | ||
| setup.bat | ||
| setup.ps1 | ||
| setup.sh | ||
| Unsloth_Studio_Colab.ipynb | ||