The Node.js hosting version of RisuAI previously used simple app.listen for server execution, which didn't support native HTTPS. This caused several functionality issues due to browser security restrictions when accessing RisuAI externally, such as realm loading failures and inability to insert prompt presets.
The updated code now checks for certificate files named server.key and server.crt in the /server/node/ssl/certificate directory. If found, the server will start using HTTPS.
The /ssl directory includes a script to generate a self-signed SSL certificate using OpenSSL. To use it, add the server's public IP to the [ alt_names ] section in server.conf before generating the certificate. The CA certificate should be installed on the operating system or browser of devices remotely accessing RisuAI.
For production use with a domain, it's recommended to use a certificate from an official Certificate Authority.
# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [ ] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [ ] Have you added type definitions?
# Description
Translation is performed using the models hosted in the repository:
https://github.com/mozilla/firefox-translations-models/
When the translation is first running, the model is downloaded from the
repository.
Testing completed for `npm dev` and Node server environment.
# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [ ] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [ ] Have you added type definitions?
# Description
It has been reported that calcString incorrectly calculates expressions
when a negative number appears on the right-hand side. This pull request
addresses this issue.
# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [ ] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [ ] Have you added type definitions?
# Description
This PR introduces following:
- Add custom embedding model name as suffix to hypaVector storage keys
when using custom embedding models to prevent vector dimension mismatch
errors.
# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [ ] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [ ] Have you added type definitions?
# Description
This PR introduces following:
- Add setArg function to plugin docs
- Add abortSignal parameter to addProvider function
# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [ ] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [ ] Have you added type definitions?
# Description
This PR aims to fix the following issues:
1. Fixed an issue where chat array changes caused by the 'start' mode
trigger were not being applied correctly. (This problem occurs in both
block type and Lua type.)
2. Occasionally, there was a problem with scriptstate desync in Lua
triggers, so I've changed to update method on every call.
# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [ ] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [ ] Have you added type definitions?
# Description
Because of this, even when useAutoTranslateInput is turned off, Google
translation request runs every time a sentence is modified.

# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [ ] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [ ] Have you added type definitions?
# Description
The community have reported an issue where chat array-related effects
malfunction when using modules using Lua alongside modules using blocks.
It appears that my previous PR, #639, may be the cause of this problem.
This PR included the following changes:
1. Reverted a previous change to allow Lua triggers to cycle correctly
within the trigger pipeline.
2. After that, the issue that the previous PR attempted to fix has
(understandably) resurfaced. To address this, I've taken a different
approach: To prevent a situation where a created Lua mutex would
eternally reference a single chat object if not initialized again, I've
added a chat variable to the `luaEngineState` interface and updated it
on every call.
3. I noticed that the `removeChat` function was included twice in the
Lua bindings. I've removed one. (Or was this intentional?)
4. Modified the `getFullChat` function to also return the creation time
of the chat.
Just in case, I've also attached a link to the bot card with Lua trigger
I used for testing: https://files.catbox.moe/ujqt3o.jpeg
# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [ ] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [ ] Have you added type definitions?
# Description
It would be convenient if there was a cbs like this when handling module
assets. Thanks for your time.