[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-writer--writer-framework":3,"tool-writer--writer-framework":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",151918,2,"2026-04-12T11:33:05",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":76,"owner_website":78,"owner_url":79,"languages":80,"stars":108,"forks":109,"last_commit_at":110,"license":111,"difficulty_score":112,"env_os":113,"env_gpu":114,"env_ram":114,"env_deps":115,"category_tags":119,"github_topics":120,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":134,"updated_at":135,"faqs":136,"releases":165},6984,"writer\u002Fwriter-framework","writer-framework","No-code in the front, Python in the back. An open-source framework for creating data apps.","Writer Framework 是一款开源框架，旨在帮助开发者快速构建数据驱动和人工智能应用。它巧妙地将前端界面设计与后端逻辑开发分离：用户可通过可视化编辑器拖拽组件来搭建界面，无需编写前端代码；而复杂的业务逻辑则直接使用 Python 编写。这种“前无码、后 Python\"的模式有效解决了传统开发中前后端耦合度高、界面迭代繁琐的痛点，让应用结构更清晰、测试更便捷。\n\n该工具特别适合熟悉 Python 的开发者、数据科学家以及希望快速原型验证的研究人员使用。设计师也可利用其可视化编辑器参与界面构思，而无需深入代码细节。Writer Framework 支持 Linux、Mac 和 Windows 系统，兼容 Python 3.9.2 至 3.12 版本，安装简单，只需一条命令即可启动项目。其独特的关注点分离架构，使得构建复杂应用变得更加灵活高效。作为企业级生成式 AI 平台 Writer 的一部分，它还能无缝集成大语言模型、图谱检索增强生成（RAG）及 AI 安全护栏等高级功能，为构建生产级 AI 应用提供坚实支撑。","## What is Writer Framework?\n\nWriter Framework is an open-source framework for creating AI applications. Build user interfaces using a visual editor; write the backend code in Python.\n\nWriter Framework is fast and flexible with a clean, easily-testable syntax. It provides separation of concerns between UI and business logic, enabling more complex applications.\n\n## Quick Start\n\n### Installation\n\nWriter Framework works on Linux, Mac, and Windows. It supports Python versions 3.9.2 through 3.12.\n\n```sh\npip install writer\n```\n\n### Create and Run Your First App\n\n```sh\n# Create a demo app\nwriter hello\n\n# Create a new app\nwriter create my_app\n\n# Edit your app (opens visual editor)\nwriter edit my_app\n\n# Run your app\nwriter run my_app\n```\n\nThe `writer edit` command opens the visual editor in your browser where you can build your UI by dragging and dropping components.\n\n## Documentation\n\nFor comprehensive guides, tutorials, and API reference, visit the [official documentation](https:\u002F\u002Fdev.writer.com\u002Fframework\u002Fquickstart).\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## About Writer\n\nWriter is the full-stack generative AI platform for enterprises. Quickly and easily build and deploy generative AI apps with a suite of developer tools fully integrated with our platform of LLMs, graph-based RAG tools, AI guardrails, and more. Learn more at [writer.com](https:\u002F\u002Fwww.writer.com?utm_source=github&utm_medium=readme&utm_campaign=framework).\n\n## License\n\nThis project is licensed under the Apache 2.0 License.\n","## 什么是 Writer Framework？\n\nWriter Framework 是一个用于构建 AI 应用程序的开源框架。您可以使用可视化编辑器构建用户界面，并以 Python 编写后端代码。\n\nWriter Framework 速度快、灵活性高，语法简洁且易于测试。它实现了 UI 与业务逻辑的分离，从而支持构建更复杂的应用程序。\n\n## 快速入门\n\n### 安装\n\nWriter Framework 支持 Linux、Mac 和 Windows 操作系统，并兼容 Python 3.9.2 到 3.12 版本。\n\n```sh\npip install writer\n```\n\n### 创建并运行您的第一个应用\n\n```sh\n# 创建一个示例应用\nwriter hello\n\n# 创建一个新的应用\nwriter create my_app\n\n# 编辑您的应用（会打开可视化编辑器）\nwriter edit my_app\n\n# 运行您的应用\nwriter run my_app\n```\n\n`writer edit` 命令会在您的浏览器中打开可视化编辑器，您可以通过拖放组件来构建用户界面。\n\n## 文档\n\n如需全面的指南、教程和 API 参考，请访问[官方文档](https:\u002F\u002Fdev.writer.com\u002Fframework\u002Fquickstart)。\n\n## 贡献\n\n请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## 关于 Writer\n\nWriter 是面向企业的全栈生成式 AI 平台。借助与我们的 LLM 平台、基于图的 RAG 工具、AI 安全护栏等完全集成的开发者工具套件，您可以快速轻松地构建和部署生成式 AI 应用程序。更多信息请访问 [writer.com](https:\u002F\u002Fwww.writer.com?utm_source=github&utm_medium=readme&utm_campaign=framework)。\n\n## 许可证\n\n本项目采用 Apache 2.0 许可证授权。","# Writer Framework 快速上手指南\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：支持 Linux、macOS 或 Windows。\n*   **Python 版本**：需安装 Python 3.9.2 至 3.12 之间的版本。\n*   **前置依赖**：建议确保 `pip` 为最新版本，以便顺利安装包。\n\n## 安装步骤\n\n使用 pip 即可快速安装 Writer Framework。国内开发者若遇到下载速度慢的问题，推荐使用清华或阿里镜像源加速安装：\n\n```sh\n# 标准安装\npip install writer\n\n# 或使用国内镜像源加速（推荐）\npip install writer -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n## 基本使用\n\n安装完成后，您可以通过命令行工具快速创建、编辑和运行应用。\n\n### 1. 创建项目\n您可以创建一个示例演示应用，或初始化一个新的空白项目：\n\n```sh\n# 创建并运行一个 Hello World 演示应用\nwriter hello\n\n# 或者创建一个名为 my_app 的新项目\nwriter create my_app\n```\n\n### 2. 可视化编辑\nWriter Framework 的核心优势在于其可视化编辑器。运行以下命令将在浏览器中打开编辑器，您可以通过拖拽组件来构建用户界面（UI）：\n\n```sh\nwriter edit my_app\n```\n\n### 3. 运行应用\n完成界面设计和后端逻辑编写后，使用以下命令启动应用：\n\n```sh\nwriter run my_app\n```\n\n应用启动后，即可在本地浏览器中访问您的 AI 应用程序。后端业务逻辑可直接在项目的 Python 文件中进行编写和测试。","某金融企业的合规团队急需构建一个内部 AI 助手，用于实时检索最新监管政策并生成合规报告，但团队中仅有业务专家懂需求，缺乏专职前端开发人员。\n\n### 没有 writer-framework 时\n- 业务人员无法直接参与界面设计，必须依赖开发团队反复沟通需求，导致原型迭代周期长达数周。\n- 前端代码与后端 Python 逻辑紧密耦合，修改 UI 布局往往意外破坏数据处理流程，测试和维护成本极高。\n- 为了快速上线，团队被迫使用复杂的低代码平台，但这些平台难以集成企业自定义的 RAG（检索增强生成）算法和安全围栏。\n- 缺乏统一的可视化编辑环境，非技术人员无法直观调整组件，每次微调都需要重新部署整个应用。\n\n### 使用 writer-framework 后\n- 业务专家可直接通过浏览器中的可视化编辑器拖拽组件构建界面，无需编写一行前端代码，将原型验证时间缩短至几小时。\n- 架构天然实现前后端分离，UI 层由可视化工具管理，核心业务逻辑仍用熟悉的 Python 编写，确保复杂算法稳定运行且易于测试。\n- 无缝集成企业现有的 LLM 模型与图数据库 RAG 工具，既保留了无代码开发的便捷性，又未牺牲对底层 AI 能力的精细控制。\n- 利用 `writer edit` 命令随时打开可视化界面进行热更新，团队成员可即时预览调整效果，大幅降低了沟通与试错成本。\n\nwriter-framework 通过“前端无代码、后端 Python\"的创新模式，让业务专家与开发者高效协作，真正实现了企业级 AI 应用的敏捷构建与落地。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwriter_writer-framework_8c30f7e1.png","writer","Writer","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fwriter_5631a450.png","Generative AI built for your business",null,"hello@writer.com","https:\u002F\u002Fwriter.com","https:\u002F\u002Fgithub.com\u002Fwriter",[81,85,89,93,97,100,104],{"name":82,"color":83,"percentage":84},"Python","#3572A5",40.9,{"name":86,"color":87,"percentage":88},"Vue","#41b883",36.4,{"name":90,"color":91,"percentage":92},"TypeScript","#3178c6",21.3,{"name":94,"color":95,"percentage":96},"JavaScript","#f1e05a",0.5,{"name":98,"color":99,"percentage":96},"HTML","#e34c26",{"name":101,"color":102,"percentage":103},"CSS","#663399",0.3,{"name":105,"color":106,"percentage":107},"Dockerfile","#384d54",0,1438,96,"2026-04-08T16:51:15","Apache-2.0",1,"Linux, macOS, Windows","未说明",{"notes":116,"python":117,"dependencies":118},"该框架支持通过视觉编辑器构建用户界面，后端代码使用 Python 编写。安装后可使用 'writer hello' 创建演示应用，或使用 'writer create' 创建新应用。运行 'writer edit' 可在浏览器中打开可视化编辑器进行拖拽式开发。","3.9.2 - 3.12",[72],[14,15,16,13],[121,122,123,124,125,126,127,128,129,130,131,132,133],"data-apps","data-visualization","python","websockets","no-code","developer-tools","interface","interface-builder","models","ui","ui-components","ai","ai-in","2026-03-27T02:49:30.150509","2026-04-13T06:55:44.970565",[137,142,147,152,157,161],{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},31468,"在 Windows 上运行应用时卡在加载页面，浏览器报错 MIME type 错误（text\u002Fplain 而非 text\u002Fjavascript）怎么办？","这是 Windows 注册表中 .js 文件的 MIME 类型配置错误导致的。解决方法：\n1. 打开注册表编辑器 (RegEdit)。\n2. 导航到 HKEY_CLASSES_ROOT\\.js\\Content Type。\n3. 将其值从 'text\u002Fplain' 修改为 'text\u002Fjavascript'。\n4. 重启电脑并清除浏览器缓存。\n验证方法：在 Python 中运行 `import mimetypes; mimetypes.guess_type('hey.js')`，应返回 `('text\u002Fjavascript', None)` 而非 `('text\u002Fplain', None)`。","https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fissues\u002F108",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},31469,"自定义组件在开发模式下正常，但构建后拖入页面无法渲染并报错 \"Cannot read properties of undefined\" 如何解决？","该问题通常与构建过程或特定版本有关。维护者已发布修复补丁，请尝试升级到最新版本（如 0.4.0 或更高）。如果问题依旧，特别是 Windows 用户，请检查是否涉及构建脚本的路径处理问题，官方曾针对 Windows 构建发布过专门修复。建议在升级后重新执行转译步骤（生成 style.css 和 templates.umd.js）并重启应用。","https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fissues\u002F192",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},31470,"OIDC 认证成功后，localhost 不带斜杠（\u002F）的 URL 导致重定向失败显示白屏怎么办？","这是一个已知缺陷，已在 `0.7.0rc2` 版本中修复。请通过以下命令升级包以解决该问题：\n```bash\npip install writer==0.7.0rc2\n```\n升级后，认证重定向逻辑将能正确处理不带尾部斜杠的基础 URL。","https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fissues\u002F501",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},31471,"如何将应用挂载到不同的路径（Custom Server）？","虽然文档中有相关说明，但在某些版本中直接挂载可能会引发 JSON 解析错误。目前官方正在开发更完善的扩展机制和插件基础设施，以支持更灵活的路由和组件全局安装。建议关注官方后续版本更新（如 PR #166 提到的扩展机制），或在当前版本中严格遵循文档关于 ASGI 应用挂载的细节，确保中间件栈配置正确。如果遇到具体报错，可能需要等待官方对路由处理的进一步优化。","https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fissues\u002F186",{"id":158,"question_zh":159,"answer_zh":160,"source_url":156},31472,"项目是否会持续维护？是否有计划支持更多高级数据表格组件（如 AG Grid）？","项目会持续维护，核心开发者已确认将全职投入该项目的发展。关于高级组件，官方正在开发扩展机制，允许用户更容易地创建和分发自定义组件（如 AG Grid 或服务器端 DataFrame）。未来计划包括支持将自定义组件作为包安装，甚至使其在全局范围内可用，而无需复制到每个应用中。建议关注官方仓库以获取最新的插件基础设施更新。",{"id":162,"question_zh":163,"answer_zh":164,"source_url":146},31473,"在 Windows 上构建自定义组件或运行应用时遇到特殊问题怎么办？","Windows 用户在构建自定义组件或运行应用时常遇到路径或脚本执行问题。官方已发布针对 Windows 构建的修复补丁（PR）。如果遇到类似问题，请首先确保使用的是最新版本。若问题涉及自定义组件构建，建议参考社区反馈，确认是否需要在 Windows 环境下调整构建脚本或检查文件路径分隔符。如有必要，可在 Issue 中请求维护者验证 Windows 兼容性修复是否生效。",[166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246,251,256,261],{"id":167,"version":168,"summary_zh":169,"released_at":170},231184,"v0.8.2","## 变更内容\n* 功能：`question` 端点现可用于 `writer.ai`，由 @mmikita95 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F666 中实现。\n* 功能：改进在尝试打开未初始化项目的文件夹时的提示信息——WF-95，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F648 中实现。\n* 杂项：增加 GitHub Actions 运行器规格，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F668 中完成。\n* 功能：对工作流、Hello 应用和 Reuse 模块进行小幅用户体验优化，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F669 中实现。\n* 功能：新增图标，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F671 中实现。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fcompare\u002Fv0.8.1...v0.8.2","2024-12-02T21:52:58",{"id":172,"version":173,"summary_zh":174,"released_at":175},231185,"v0.8.1","## 变更内容\n* 修复：`subscribe_mutation` 和 `parse_state_variable_expression` 的原始文档字符串，由 @mmikita95 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F566 中完成。\n* 杂项：当 `ui.py` 文件未生成时，实现优雅失败，由 @mmikita95 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F565 中完成。\n* 修复：自定义组件名称应显式约束——WF-52，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F550 中完成。\n* 功能：将 Writer 框架 IDE 存储到项目目录中，而非 `ui.json` 文件——WF-43，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F526 中完成。\n* 测试（UI）：为 JSON 查看器添加端到端测试。WF-32，由 @madeindjs 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F515 中完成。\n* 功能（UI）：处理自动补全中的键盘导航。WF-44，由 @madeindjs 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F558 中完成。\n* 功能：工作流基础，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F554 中完成。\n* 杂项：文档生成器仅针对核心组件运行——WF-62，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F560 中完成。\n* 修复：滑块支持浮点数和大数值，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F562 中完成。\n* 功能：配置文档变更时的 Slack 通知，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F569 中完成。\n* 功能：工作流工具，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F570 中完成。\n* 示例应用库初始版本，由 @samjulien 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F559 中完成。\n* 功能：允许 CLI 找到不同的端口——WF-76，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F577 中完成。\n* 功能：在应用启动时获取 URL 参数——WF-55，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F538 中完成。\n* 功能：工作流工具 2，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F579 中完成。\n* 杂项（E2E）：迁移 E2E 预设的 `ui.json` 文件，由 @madeindjs 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F575 中完成。\n* 杂项：防止在运行模式下发送工作流树——WF-74，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F581 中完成。\n* 功能：WF 引擎应解析转义变量——WF-53，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F568 中完成。\n* 功能：工作流工具 3，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F586 中完成。\n* 存储 Writer 框架 IDE 文件——WF-67，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F583 中完成。\n* 功能！：AI 模块工具，由 @mmikita95 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F587 中完成。\n* 杂项：用于发布的合并，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F588 中完成。\n* 文档：认证文档中的一个小错误，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F589 中完成。\n* 功能：存储 Writer 框架 IDE 文件，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F59 中完成。","2024-11-29T21:57:56",{"id":177,"version":178,"summary_zh":179,"released_at":180},231186,"v0.7.4","## 变更内容\n* 修复：在通过 OIDC 认证后，自定义样式表和 JavaScript 文件无法加载 —— 由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F544 中完成\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fcompare\u002Fv0.7.3...v0.7.4","2024-09-03T16:00:12",{"id":182,"version":183,"summary_zh":184,"released_at":185},231187,"v0.7.3","## 变更内容\n* 功能新增：水平堆栈组件应暴露“内容垂直对齐”字段 - WF-56，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F549 中实现\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fcompare\u002Fv0.7.2...v0.7.3","2024-09-03T15:49:10",{"id":187,"version":188,"summary_zh":189,"released_at":190},231188,"v0.7.2","## 变更内容\n* 修复：将 `npm run custom.dev` 中的开发服务器改为使用 `custom.dev`，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F519 中完成。\n* 新特性（UI）：实现新的滑块组件。WF-37，由 @madeindjs 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F505 中完成。\n* 新特性（UI）：统一 CSS 光标样式。WF-35，由 @madeindjs 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F514 中完成。\n* 新特性（UI）：为 `BuilderSidebarToolbar` 添加筛选器。WF-42，由 @madeindjs 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F516 中完成。\n* 新特性：在变更时触发计算属性，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F496 中完成。\n* 新特性：添加用于反转可见性值的复选框，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F512 中完成。\n* 杂项：版本号更新，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F527 中完成。\n* 修复：将 `BaseControlBar` 的导入添加到 `AnnotatedText` 组件中，由 @polymorpheuz 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F534 中完成。\n* 新特性：功能标志，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F533 中完成。\n* 新特性：抽象组件，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F539 中完成。\n* 修复：OIDC 身份验证后无法加载自定义样式表和 JavaScript 文件的问题，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F536 中完成。\n* 杂项：合并以准备发布，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F541 中完成。\n* 修复：修正数据列表 ID，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F542 中完成。\n* 修复：增加自定义未授权处理和回调操作的功能，由 @yanomaly 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F540 中完成。\n* 杂项：合并以准备发布，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F543 中完成。\n\n## 新贡献者\n* @yanomaly 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F540 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fcompare\u002Fv0.7.0...v0.7.2","2024-08-27T12:58:26",{"id":192,"version":193,"summary_zh":194,"released_at":195},231189,"v0.7.0","## 变更内容\n* 杂项：通过 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F452 中改进 UI 一致性（内边距、内容对齐）\n* 文档：由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F465 中实现与 Mintlify 相关的 Writer 框架文档\n* 使用中间件拦截事件处理器（全局事件、数据库管理等）by @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F471 中\n* 新特性：Dataframe Markdown，步骤回退 by @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F475 中\n* 杂项：合并以准备发布 by @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F476 中\n* 修复：Dataframe 最大高度 by @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F477 中\n* 杂项：合并以准备发布 by @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F478 中\n* 修复：在自定义服务器中默认启用服务器设置钩子 by @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F480 中\n* 新特性：构建器设置字段的状态自动补全 by @raaymax 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F383 中\n* 文档：本地预览修复 by @raaymax 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F472 中\n* 杂项（UI）：使用本地字体代替 CDN。WF-27 by @madeindjs 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F487 中\n* 新特性：设置 `CoreTimeInput`。WF-8 by @madeindjs 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F483 中\n* 新特性：SDK 知识图谱\u002F文件支持 by @mmikita95 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F490 中\n* 新特性：如果应用已部署，则添加警告 by @raaymax 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F470 中\n* 添加发布说明生成器教程和图片 by @samjulien 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F492 中\n* 修复：`BaseSelect` 处理 `number` 值。WF-28 by @madeindjs 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F481 中\n* 新特性：实现 `JsonViewer` 小组件 by @madeindjs 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F479 中\n* 测试：KG\u002FFiles SDK 功能的模拟测试和集成测试 by @mmikita95 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F495 中\n* 新特性（UI）：引入 `CoreColorInput`。WF-9 by @madeindjs 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F486 中\n* 修复：预览中若值为空，则隐藏 `CoreText`。WF-20 by @madeindjs 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F482 中\n* 杂项：合并以准备发布 by @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F491 中\n* 重构：CLI 改用 click by @raaymax 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F457 中\n* 文档：改进文档，使用 Writer 代替 Streamsync by @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F474 中\n* 新特性：实现可编辑的数据框，用于管理数据框编辑器组件 by @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F485 中\n* 修复（UI）：修复 `CoreDataFrame` 对大文件的下载问题。WF-39 by @madeindjs 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwrit","2024-08-20T11:20:01",{"id":197,"version":198,"summary_zh":199,"released_at":200},231190,"v0.6.1","本次发布新增了 Basic Auth 并提升了稳定性。值得注意的是，修复了 #459 问题。\n\n## 变更内容\n* 修复：@ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F461 中修复的下拉菜单 bug\n* 新特性：@FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F446 中实现基于 Basic Auth 的认证流程\n* 修复：@ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F463 中修复未授权模板问题\n* 杂项：@ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fpull\u002F464 中完成发布合并\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fwriter\u002Fwriter-framework\u002Fcompare\u002Fv0.6.0...v0.6.1","2024-06-13T11:41:03",{"id":202,"version":203,"summary_zh":204,"released_at":205},231191,"v0.6.0","Streamsync 已被 Writer 收购，现更名为 Writer Framework。它将继续以相同的许可证（Apache 2.0）保持开源。\n\n我们进行了一些破坏性变更：\n- PyPI 包现已更名为 `writer`。请安装此包并引用它，以获取最新更新。\n- 内置事件现在以 `wf-` 开头。编辑器会自动进行转换。\n- Remix Icons 已被 Material Icons 取代。如果您正在使用图标，应将图标 ID 替换为 Material Icons 的 ID。\n- 聊天机器人。聊天机器人已重新设计，改为使用状态管理而非 `return` 语句。这使得流式传输和加载旧对话成为可能。\n\n感谢所有支持该项目的人。项目的核心团队依然不变，只是我们现在拥有更多资源来推动发展，敬请期待更多精彩内容！\n\n## 变更内容\n* 功能：通过外部模块注册其函数作为事件处理器，由 @mmikita95 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F372 中实现。\n* 杂项：添加关于支持 Node.js 版本的警告，由 @raaymax 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F396 中完成。\n* 文档：小幅修复，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F401 中完成。\n* 修复：自定义组件无法加载 cjs 扩展名的问题，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F406 中修复。\n* 功能：重新设计聊天机器人，使其使用状态中的对话，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F418 中实现。\n* 杂项：设计更改，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F403 中完成。\n* 重构：围绕组件树的新设计提案，由 @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F367 中提出。\n* 文档：在基础仓库中添加用于触发 Mintlify 的工作流，由 @rpmccarter 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F417 中完成。\n* AI 功能：由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F420 中实现。\n* 修复：聊天机器人\u002F新的 v-models，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F421 中修复。\n* 修复：vmodel 相关问题，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F422 中修复。\n* 功能：AI 功能，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F423 中实现。\n* 杂项：对话支持 SDK ChoiceMessage，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F424 中完成。\n* !杂项：调整聊天机器人负载，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F426 中完成。\n* 功能：AI 功能，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F427 中实现。\n* 功能：集成 Writer AI，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F428 中实现。\n* 功能：AI 模块，由 @mmikita95 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F415 中实现。\n* 杂项：合并以准备发布，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F429 中完成。\n* 杂项：合并以准备发布，由 @ramedina86 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002Fwriter-framework\u002Fpull\u002F430 中完成。\n* 杂项：AI 文档及修复，由 @mmikita95 在 https:\u002F\u002Fgithub.com\u002Fwriterai\u002F 中完成。","2024-06-05T12:40:07",{"id":207,"version":208,"summary_zh":209,"released_at":210},231192,"v0.5.0","## 变更内容\n* 修复：@oandalib 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F362 中修复了分页列表计数为空的问题。\n* 文档：@raaymax 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F364 中为 Vue SFC 和 components.json 文件路径添加了自定义文档标签。\n* @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F350 中为每个组件生成了文档页面。\n* 功能：@FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F365 中实现了在发布时预置应用模板的功能。\n* 重构：@raaymax 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F286 中清理了 monorepo 结构。\n* 修复：@FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F370 中修复了 streamsync 高级导入中缺少 State 导入的问题，以便使用 State Schema。\n* CI：@raaymax 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F371 中添加了 ruff 代码格式化工具。\n* 杂项：@raaymax 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F373 中升级了 npm 包。\n* 功能：@raaymax 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F302 中添加了可复用组件。\n* CI：@raaymax 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F375 中修复了端到端工作流。\n* 功能：@raaymax 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F376 中搭建了 Storybook。\n* 修复：@FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F386 中修复了在运行 npm docs:build 时组件文档生成失败的问题。\n* 功能：@FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F368 中实现了在上下文中捕获触发事件的组件功能。\n* 功能：@mmikita95 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F374 中替换了 UI 管理器的模式。\n* 杂项：@FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F387 中将 Storybook 和 app_templates 等生成文件从仓库中排除。\n* 修复：@mmikita95 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F393 中为 DependentComponentTree 的 to_dict 方法添加了 \"owned_only\" 标志。\n* 修复：@ramedina86 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F391 中修复了 Switch 输入加载错误。\n* 修复：@ramedina86 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F394 中修复了保存后禁用前端消息的问题。\n* 修复：@FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F395 中修复了文档生成过程中组件缺失的问题。\n* 杂项：@mmikita95 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F289 中（小幅）扩展了 Evaluator 正则表达式。\n* 杂项：@ramedina86 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F397 中进行了发布合并。\n* 修复：@FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F398 中将 ui.py 和 app_templates 包含在 PyPI 构建中。\n* 杂项：@ramedina86 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F399 中进行了发布合并。\n* 杂项：@ramedina86 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F400 中将版本号递增至 0.5.0。\n\n## 新贡献者\n*","2024-04-23T17:10:38",{"id":212,"version":213,"summary_zh":214,"released_at":215},231193,"v0.4.0","### 重大更新与新特性：\n\n**后端驱动的 UI：** 我们在整体架构上进行了大规模调整，以支持[通过代码创建组件](https:\u002F\u002Fwww.streamsync.cloud\u002Fbackend-driven-ui.html)。\n**异步处理器：** 引入了异步处理器功能。\n**用户自定义状态模式 \u002F 应用程序类型安全：** 现在支持用户自定义状态模式，从而提升应用程序的类型安全性。此功能确保您的应用状态管理既稳健又无误。\n**支持 DataFrame 交换协议 \u002F Polars：** Streamsync 现已支持 DataFrame 交换协议，尤其针对 Polars 进行优化。\n\n### 功能增强与问题修复：\n\n**Bug 修复：** 我们投入大量精力识别并修复各类 Bug，以确保更流畅的用户体验。\n**快速入门教程：** 推出了全新的快速入门教程，帮助新用户迅速上手使用 Streamsync。\n\n### 新增组件：\n\n我们很高兴推出一系列全新组件，以扩展您使用 Streamsync 构建的应用程序的功能：\n**链接、标签、开关：** 新增的 UI 元素，可提升应用的交互性和易用性。\n**聊天机器人组件：** 推出聊天机器人组件，专为在您的应用中构建自定义聊天机器人界面而设计。该组件无需后端支持，便于灵活集成到现有系统中。\n**MapBox 和 Google 地图：** 通过集成 MapBox 或 Google 地图，充分利用强大的地图功能。\n**PDF 和 iFrame：** 增强了对 PDF 查看和 iFrame 集成的支持，进一步拓展了您可在应用中嵌入的内容范围。\n**头像：** 新增头像组件，用于个性化用户资料及应用内的互动体验。\n**步骤组件：** 我们很高兴推出步骤组件，这一新增功能旨在提升应用内的导航体验。该组件非常适合引导用户完成一系列任务或流程，从而改善整体用户交互效果并使工作流更加清晰。\n**评分输入：** 新增评分输入组件，可直接在您的应用中收集反馈信息。该交互式组件允许用户对产品、服务或体验进行评分，为您提供一种简便的方式来获取宝贵的用户意见和偏好。\n\n---\n\n## 变更内容\n* @mmikita95 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F206 中扩展了变更测试。\n* @mmikita95 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F214 中启用了删除变更操作。\n* @mmikita95 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F224 中对 test_mutations 进行了小幅修复。\n* @FabienArcellier 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F231 中将包管理工具由 setup tools 更换为 poetry。\n* @mmikita95 在 https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fpull\u002F232 中修复了转义序列问题。\n* 文档：@raaymax 在 https:\u002F\u002Fgithub.","2024-03-27T21:07:50",{"id":217,"version":218,"summary_zh":219,"released_at":220},231194,"v0.3.0","Features\u002Fimprovements:\r\n- Configurable padding in container components, including _Section_, _Tab_, _Horizontal Stack_ and _Column_.\r\n- _Pagination_ component.\r\n- Streamlined horizontal and vertical alignment in container components.\r\n- _Icon_ component.\r\n- Support for massive Plotly plots\r\n- Ability to load stylesheets and scripts from remote locations.\r\n\r\n\r\nBug fixes:\r\n- Info-level logs showing only on browser, not terminal; Windows only.\r\n- Corrupted mutation updates when new state keys are introduced, and those names contain dots.\r\n- Encoding issues when using special characters in UI; only certain OSs.\r\n- DataFrame not showing the last row; only certain browsers.\r\n- Race condition appearing with concurrent modifications of state.","2024-01-25T21:59:38",{"id":222,"version":223,"summary_zh":224,"released_at":225},231195,"v0.2.8","## New Features\r\n- State Explorer. Get a snapshot of the current application state by clicking the \"View State\" button.\r\n- Improved traceability and enabled the use of Python debuggers. #137 \r\n- Dynamic accessors. Use square brackets to dynamically access properties. For example, `persons[active_person_id].height`. Can be used for binding, enabling binding in _Repeater_ components. #26 \r\n- Keyboard shortcuts in built-in editor, for saving and toggling log visibility.\r\n- Import JavaScript scripts via `import_script`. For ES6 modules, continue using `import_frontend_module`. \r\n- Foldable categories in Builder's Toolkit.\r\n\r\n## Fixes\r\n- Fix mime type for serving JavaScript files in older versions of Windows, which prevented the server from working properly. Issue #108 \r\n- Remember light\u002Fdark mode preference in built-in code editor.\r\n","2023-10-04T20:45:23",{"id":227,"version":228,"summary_zh":229,"released_at":230},231196,"v0.2.7","Features\r\n- Log transfer. App logs, previously only shown in Builder, are now transferred to the main process and streamed to the terminal.\r\n- Early termination. When in \"run\" mode, Streamsync will exit if the initial script cannot be loaded.\r\n- Improved code refresh mechanism, making it more responsive.\r\n- Min, Max and Step fields in _Number Input_.\r\n- Streamsync Builder can now run on non-secure browser contexts. Especially useful if deploying remotely and using the `--enable-remote-edit` flag. Be sure to understand the risks involved.\r\n\r\nFixes\r\n- Fixed focus issues on _Select Input_ and _Multiselect Input_, added Placeholder field.\r\n- _DataFrame_, when wrap text has been enabled, shows line breaks.\r\n- Fixed vertical alignment options in _Column_.","2023-09-14T21:19:22",{"id":232,"version":233,"summary_zh":234,"released_at":235},231197,"v0.2.6","Features:\r\n\r\n- _Select Input_ and _Multiselect Input_ components, with searchable lists.\r\n\r\n\u003Cimg width=\"352\" alt=\"Screenshot 2023-09-06 at 23 27 44\" src=\"https:\u002F\u002Fgithub.com\u002Fstreamsync-cloud\u002Fstreamsync\u002Fassets\u002F64783088\u002F9dd1cebf-0b3f-4a16-9c7c-f58c00942ecf\">\r\n\r\nFixes:\r\n\r\n- Fixed `ss-change-finish` in _Text Input_\r\n- Fixed colour configuration issue in _Tab_ buttons","2023-09-06T21:29:10",{"id":237,"version":238,"summary_zh":239,"released_at":240},231198,"v0.2.5","Fixes bug from 0.2.4 that required re-rendering component (browser refresh or mode change) for newly created event handlers to receive payloads. ","2023-09-04T09:24:07",{"id":242,"version":243,"summary_zh":244,"released_at":245},231199,"v0.2.4","## New features\r\n\r\n- Support for [**custom components**](https:\u002F\u002Fwww.streamsync.cloud\u002Fcustom-components.html), which are developed and behave identically to built-in ones.\r\n\r\n- Support for **custom event types**. Any DOM event can be listened to.\r\n\r\n- **Async execution of event handlers**. Previously, all of the events for the same session would run in a queue; one event wouldn't run until the next one completed. They're now executed asynchronously. This allows longer-running tasks to be performed in the background while the app remains fully interactive.\r\n\r\n- Partial state updates for long-running event handlers. Works well with item below.\r\n\r\n- \"Loading\" type in _Message_ component, to display progress of a long-running operation.\r\n\r\n- New built-in events, such as `ss-keydown` and `ss-page-open` at _Page_ level.\r\n\r\n- Support for Plotly events, including `plotly-click`, `plotly-selected` and `plotly-deselect`.\r\n\r\n- Support for HTML snippets inside _HTML Element_.\r\n\r\n- Button disabling.\r\n\r\n- More semantic HTML in some components, e.g. _Button_ is no longer wrapped in a `div`, _Section_ creates a `section` tag.\r\n\r\n## Fixes\r\n\r\n- Improved reliability of code autorefresh, fixing problems which mainly affected Windows.\r\n\r\n- Fix _Date Input_ binding issues\r\n\r\n- Minor fixes\r\n\r\n\r\n","2023-09-03T21:29:53",{"id":247,"version":248,"summary_zh":249,"released_at":250},231200,"v0.1.12","This is a meaningful release with some new interesting features, mainly guided by the input of the community. Thank you for using Streamsync and sharing your thoughts.\r\n\r\n- **Import stylesheets.** It’s now possible to import stylesheets dynamically during runtime. Classes can be applied to components via a new field, “Custom CSS classes”. [Docs](https:\u002F\u002Fwww.streamsync.cloud\u002Fstylesheets.html).\r\n\r\n- **Import frontend scripts.** JavaScript\u002FES6 modules can now be imported dynamically. Exported functions can be triggered from the backend. [Docs](https:\u002F\u002Fwww.streamsync.cloud\u002Ffrontend-scripts.html).\r\n\r\n- **Pydantic 2 support.** Streamsync now uses Pydantic 2.\r\n\r\n- **Component Tree search feature.**\r\n\r\nMinor updates:\r\n\r\n- _Dataframe_ now has a flag that allows for text to be wrapped inside cells.\r\n\r\n- The command line now supports the `—enable-remote-edit` flag, which allows you to circumvent the filter that blocks non-local requests, as a protection against drive-by attacks. This is helpful when deploying to GitHub Codespaces or similar.\r\n\r\n- `CONTRIBUTING.md` has been uploaded.\r\n\r\n- _Checkbox Input_ and _Radio Input_ can now display options horizontally, if desired.\r\n\r\n- Password mode in _Text Input_ component \r\n\r\n- Minor bug fixes","2023-08-05T19:59:58",{"id":252,"version":253,"summary_zh":254,"released_at":255},231201,"v0.1.10","Pinned pydantic version to avoid breaking changes introduced by FastAPI 0.100 and Pydantic 2.","2023-07-11T23:36:14",{"id":257,"version":258,"summary_zh":259,"released_at":260},231202,"v0.1.9","**PyArrow support**\r\n\r\nStreamsync now uses PyArrow to serialise and deserialise dataframes. This increases performance and allows the _DataFrame_ component to accept not only Pandas dataframes, but also PyArrow tables. This allows interoperability with other libraries, such as Polars (using `.to_arrow()`). Note that hardcoding dataframes in the frontend, using JSON, is no longer supported.\r\n\r\n**Improved DataFrame component**\r\nThe DataFrame component is now based on a high-performance grid and supports ordering, column resizing, search and download as CSV. It's based on Apache Arrow and Arquero. It remains performant with 1M+ rows.\r\n\r\n**Bug fixes**\r\n- Image paths weren't updated correctly when linked to state. This has been fixed.\r\n\r\n**Minor updates**\r\n- Custom visibility, which was previously restricted to state, can now be also set using context. This allows components inside a _Repeater_ to be hidden based on a value in a dictionary.\r\n- `Datetime.datetime` is now serialisable ","2023-07-03T23:21:17",{"id":262,"version":263,"summary_zh":264,"released_at":265},231203,"v0.1.7","- **Improved _Dataframe_**. This component now uses a high-performance grid which can easily support thousands of rows. It's currently a basic implementation. Additional features such as search, sorting, exporting and editing will be gradually added in future releases. Thanks @mzy2240 for flagging this and exploring options.\r\n\r\n- **State mutation bug fix**. State sync behaved unexpectedly when keys with dots were used, such as file paths. This has been fixed and relevant test cases have been updated. Thanks @tanghyd for reporting this bug.","2023-05-26T00:17:04"]