This version focuses on refactoring the extension mechanism, improving the stability and extensibility of the architecture.
✨ Major Updates
Extension Refactoring
⚠️ Breaking Changes
- Extension Mechanism Refactoring: Refactored the extension mechanism, all previous extensions are now invalid. The code still exists, and you can view all previous extension code by creating a new dataview and executing
select * from eidos__scripts. New extensions have been migrated to theeidos__extensionstable. - Extension Type Simplification: Simplified to two basic types: script and block, configured through declaring
export const metato set the extension entry point and behavior.- Removed doc plugin extensions
- Removed udf extensions, now udf exists as a subtype of script
- Removed Python language script support, currently only supports TypeScript for writing extensions
- Environment Configuration Merge: bindings and env have been merged, now env exists as a subtype of bindings
🆕 New Mechanism Features
- Unique Identifier: Each extension has a space-unique slug for cross-extension references and code reuse
- If the type is script, the corresponding virtual filename is
<slug>.ts - If the type is block, the corresponding virtual filename is
<slug>.tsx
- If the type is script, the corresponding virtual filename is
- Icon Selector: New icon selector, now you can configure appropriate icons for extensions to make them easier to identify
- Code Editor Refactoring: Refactored the extension code editor to provide a better experience that aligns with common IDEs
- Third-party packages automatically provide type hints, similar to Deno
- Supports cross-file define navigation
AI Feature Enhancement
- Code Merge Task Configuration: AI now includes code merge task configuration. Instead of generating complete code, AI now generates code patches. In multi-turn conversations, this speeds up generation and reduces token consumption. You need to configure a model for merging code, we recommend morph's models, with
gemini flash liteas an alternative.
Extension Management
- Block Pinning Feature: In the extension file directory's right-click menu, you can now specify blocks to appear at the top of the sidebar, suitable for pinning commonly used custom blocks
🚀 Optimizations and Improvements
- Export Function Optimization: Replaced the export markdown file functionality with "copy as markdown"
- Auto-update Configuration: You can now configure whether the app automatically updates
Special Thanks
Thank you to @jackfromeast and @Suuuuuzy for discovering a serious security vulnerability. Please upgrade to the new version as soon as possible. We will release the vulnerability details later.
What's Changed
- Refactor/monorepo by @mayneyao in #245
- Add Security Policy by @jackfromeast in #253
- Refactor/extension by @mayneyao in #251
New Contributors
- @jackfromeast made their first contribution in #253
Full Changelog: v0.21.0...v0.23.0