Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 fix: plugins with multiple settings cannot be correctly configured #1991

Merged
merged 3 commits into from Apr 30, 2024

Conversation

YangHanlin
Copy link
Contributor

💻 变更类型 | Change Type

  • ✨ feat
  • 🐛 fix
  • ♻️ refactor
  • 💄 style
  • 🔨 chore
  • ⚡️ perf
  • 📝 docs

🔀 变更说明 | Description of Change

Currently, when a LobeChat plugin provides multiple fields in its settings, and the user edits one of the fields, the other fields will be cleared.

For example, the following screenshot demonstrates a plugin Midjourney DEV providing 2 fields in the settings MIDJOURNEY_PROXY_URL and MIDJOURNEY_PROXY_API_SECRET. By adding a logging statement in PluginService.updatePluginSettings, it can be seen that editing either of them will result in the other being cleared.

image

This PR fixes this issue by merging the edited field into the existing settings object.

📝 补充信息 | Additional Information

Copy link

vercel bot commented Apr 11, 2024

@YangHanlin is attempting to deploy a commit to the LobeHub Team on Vercel.

A member of the Team first needs to authorize it.

@lobehubbot
Copy link
Member

👍 @YangHanlin

Thank you for raising your pull request and contributing to our Community
Please make sure you have followed our contributing guidelines. We will review it as soon as possible.
If you encounter any problems, please feel free to connect with us.
非常感谢您提出拉取请求并为我们的社区做出贡献,请确保您已经遵循了我们的贡献指南,我们会尽快审查它。
如果您遇到任何问题,请随时与我们联系。

Copy link

codecov bot commented Apr 11, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 92.56%. Comparing base (74b1ae0) to head (3a8f936).
Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff            @@
##             main    #1991    +/-   ##
========================================
  Coverage   92.56%   92.56%            
========================================
  Files         279      279            
  Lines       15973    15978     +5     
  Branches     1153     1851   +698     
========================================
+ Hits        14785    14790     +5     
  Misses       1188     1188            

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@@ -74,7 +74,7 @@ const PluginSettingsConfig = memo<PluginSettingsConfigProps>(({ schema, id }) =>
maximum={item.maximum}
minimum={item.minimum}
onChange={(value) => {
updatePluginSettings(id, { [item.name]: value });
updatePluginSettings(id, { ...pluginSetting, [item.name]: value });
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

合并应该做在这里,还是应该做到更加底层的位置?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

重新看了下确实合并做到更底层一点的 Zustand action 层比较合适,如 PreferenceAction#updatePreference:

updatePreference: (preference, action) => {
const nextPreference = merge(get().preference, preference);
set({ preference: nextPreference }, false, action || n('updatePreference'));
get().preferenceStorage.saveToLocalStorage(nextPreference);
},

已更改。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

另外如此改动有一个副作用:LobeChat Plugin SDK 提供的插件侧修改设置相关 API 也依赖于这里的逻辑,因此该 API 的行为也会从全量更新插件设置改为增量更新;但目前插件市场中似乎还没有需要多个设置项的插件,因此影响可控。

Copy link

vercel bot commented Apr 22, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
lobe-chat-community ✅ Ready (Inspect) Visit Preview 💬 Add feedback Apr 27, 2024 5:37pm

@arvinxx
Copy link
Contributor

arvinxx commented Apr 29, 2024

@YangHanlin 我已经触发部署了一个版本: https://lobe-chat-community-git-fork-yanghanlin-fix-plug-d8e44a-lobehub.vercel.app/ 你看下在这个版本中 setting 的配置是否符合 mj 插件那个PR中的预期?

@YangHanlin
Copy link
Contributor Author

你看下在这个版本中 setting 的配置是否符合 mj 插件那个PR中的预期?

@arvinxx 经测试符合预期,MJ 插件能顺利接收到宿主侧配置的 API URL 与 secret。

@lobehubbot
Copy link
Member

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑‍🤝‍🧑👫🧑🏿‍🤝‍🧑🏻👩🏾‍🤝‍👨🏿👬🏿


Can you see if the setting configuration in this version meets the expectations in the PR of the mj plug-in?

@arvinxx The test is in line with expectations. The MJ plug-in can successfully receive the API URL and secret configured on the host side.

@arvinxx arvinxx merged commit 0c041aa into lobehub:main Apr 30, 2024
6 checks passed
@lobehubbot
Copy link
Member

❤️ Great PR @YangHanlin ❤️

The growth of project is inseparable from user feedback and contribution, thanks for your contribution! If you are interesting with the lobehub developer community, please join our discord and then dm @arvinxx or @canisminor1990. They will invite you to our private developer channel. We are talking about the lobe-chat development or sharing ai newsletter around the world.
项目的成长离不开用户反馈和贡献,感谢您的贡献! 如果您对 LobeHub 开发者社区感兴趣,请加入我们的 discord,然后私信 @arvinxx@canisminor1990。他们会邀请您加入我们的私密开发者频道。我们将会讨论关于 Lobe Chat 的开发,分享和讨论全球范围内的 AI 消息。

github-actions bot pushed a commit that referenced this pull request Apr 30, 2024
### [Version&nbsp;0.151.6](v0.151.5...v0.151.6)
<sup>Released on **2024-04-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Plugins with multiple settings cannot be correctly configured.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Plugins with multiple settings cannot be correctly configured, closes [#1991](#1991) ([0c041aa](0c041aa))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
@lobehubbot
Copy link
Member

🎉 This PR is included in version 0.151.6 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit to bentwnghk/lobe-chat that referenced this pull request Apr 30, 2024
### [Version&nbsp;1.31.1](v1.31.0...v1.31.1)
<sup>Released on **2024-04-30**</sup>

#### ♻ Code Refactoring

- **misc**: Move app page to the `(main)` layout group.

#### 🐛 Bug Fixes

- **misc**: Effectively interrupt auto scrolling, fix only inject welcome question in inbox, plugins with multiple settings cannot be correctly configured.

#### 💄 Styles

- **misc**: Add 404 and Error page, patching models info, Revise some text.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### Code refactoring

* **misc**: Move app page to the `(main)` layout group, closes [lobehub#2297](https://github.com/bentwnghk/lobe-chat/issues/2297) ([6cc2c38](6cc2c38))

#### What's fixed

* **misc**: Effectively interrupt auto scrolling, closes [lobehub#2223](https://github.com/bentwnghk/lobe-chat/issues/2223) ([afe4974](afe4974))
* **misc**: Fix only inject welcome question in inbox, closes [lobehub#2289](https://github.com/bentwnghk/lobe-chat/issues/2289) ([cc8edd3](cc8edd3))
* **misc**: Plugins with multiple settings cannot be correctly configured, closes [lobehub#1991](https://github.com/bentwnghk/lobe-chat/issues/1991) ([0c041aa](0c041aa))

#### Styles

* **misc**: Add 404 and Error page, closes [lobehub#2299](https://github.com/bentwnghk/lobe-chat/issues/2299) ([938a3e9](938a3e9))
* **misc**: Patching models info, closes [lobehub#2269](https://github.com/bentwnghk/lobe-chat/issues/2269) [#22802280](https://github.com/bentwnghk/lobe-chat/issues/22802280) ([03bcb06](03bcb06))
* **misc**: Revise some text, closes [lobehub#2296](https://github.com/bentwnghk/lobe-chat/issues/2296) ([018427f](018427f))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
TheNameIsNigel pushed a commit to TheNameIsNigel/lobe-chat that referenced this pull request May 15, 2024
…obehub#1991)

* 🐛 fix: plugins with multiple settings cannot be correctly configured

* ♻️ refactor: merge plugin setting in the action layer instead of UI

* ✅ test: add a test to ensure plugin settings are correctly merged
TheNameIsNigel pushed a commit to TheNameIsNigel/lobe-chat that referenced this pull request May 15, 2024
### [Version&nbsp;0.151.6](lobehub/lobe-chat@v0.151.5...v0.151.6)
<sup>Released on **2024-04-30**</sup>

#### 🐛 Bug Fixes

- **misc**: Plugins with multiple settings cannot be correctly configured.

<br/>

<details>
<summary><kbd>Improvements and Fixes</kbd></summary>

#### What's fixed

* **misc**: Plugins with multiple settings cannot be correctly configured, closes [lobehub#1991](lobehub#1991) ([0c041aa](lobehub@0c041aa))

</details>

<div align="right">

[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)

</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants