# PR Checklist
- [x] Did you check if it works normally in all models? *ignore this
when it dosen't uses models*
- [x] Did you check if it works normally in all of web, local and node
hosted versions? if it dosen't, did you blocked it in those versions?
- [ ] Did you added a type def?
# Description

Please introduce an autoTranslateCachedOnly option that automatically
translates only previously translated text when enabled.
# Why is this feature needed?
- LLM-based translations can be relatively costly, so end users may not
want new/specific text to be automatically translated.
- End users may prefer not to manually click the translate button when
viewing chat logs that have already been translated.
- By utilizing cached translations more effectively, we can enhance the
overall user experience.
# PR Checklist
- [ ] Did you check if it works normally in all models? *ignore this
when it dosen't uses models*
- [ ] Did you check if it works normally in all of web, local and node
hosted versions? if it dosen't, did you blocked it in those versions?
- [ ] Did you added a type def?
# Description

Current build doesn't have aws key slot.
Thank for your time.
# PR Checklist
- [ ] Did you check if it works normally in all models? *ignore this
when it dosen't uses models*
- [x] Did you check if it works normally in all of web, local and node
hosted versions? if it dosen't, did you blocked it in those versions?
- [ ] Did you added a type def?
# Description
## Problem
This PR resolves an issue where assets were not visible on macOS when
using `asset://localhost/` URLs.
The problem occurred because **DOMPurify** was removing the `src`
attribute when its value started with `asset://localhost/`. This
behavior affected the visibility of assets on macOS for the Local
version of RisuAI.
## Solution
To address this, I chose to use `DOMPurify.addHook` to allow `src`
attributes starting with `asset://localhost/` for certain tags.
I also thought about another solution: passing `ALLOWED_URI_REGEXP` to
`DOMPurify.sanitize`. However, I decided not to use it because it would
require using regular expressions to check strings every time the method
is called, which might be less efficient in my opinion.
## Considerations
While this issue is specific to macOS and the Local version of RisuAI, I
opted not to include additional conditions for the following reasons:
1. The code change is simple and lightweight.
2. It doesn’t cause conflicts on other OSes or RisuAI versions.
3. Avoiding conditions improves readability and maintainability.
---
If you have any suggestions for a better approach, I’d be happy to hear
them!
---
## Linked Issue
This PR addresses and fixes#656