[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-kantord--SeaGOAT":3,"tool-kantord--SeaGOAT":62},[4,18,26,36,46,54],{"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 真正成长为懂上",158594,2,"2026-04-16T23:34:05",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"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":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"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",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":76,"owner_website":80,"owner_url":81,"languages":82,"stars":91,"forks":92,"last_commit_at":93,"license":94,"difficulty_score":32,"env_os":95,"env_gpu":96,"env_ram":96,"env_deps":97,"category_tags":105,"github_topics":106,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":120,"updated_at":121,"faqs":122,"releases":152},8348,"kantord\u002FSeaGOAT","SeaGOAT","local-first semantic code search engine","SeaGOAT 是一款专为 AI 时代打造的本地优先语义代码搜索引擎。它解决了传统代码搜索只能依赖关键词匹配、难以理解代码逻辑含义的痛点，让开发者能够用自然语言（如“哪里处理了数字舍入”）直接查找功能相关的代码片段，而无需记忆具体的函数名或变量名。\n\n这款工具非常适合需要高效浏览大型项目、重构旧代码或快速定位逻辑的软件开发者和工程师。其核心亮点在于完全在本地运行，利用向量嵌入技术实现语义理解，无需将任何代码数据上传至云端或第三方 API，充分保障了代码库的隐私与安全。SeaGOAT 支持 Linux、macOS 和 Windows 系统，既能通过简单的命令行交互使用，也支持正则表达式混合查询。配合可选的 bat 工具，它还能提供语法高亮的友好输出。对于注重数据隐私且希望提升代码检索效率的技术团队来说，SeaGOAT 是一个轻量、安全且智能的理想选择。","\u003C!-- markdownlint-disable MD033 -->\n\n> [!TIP]\n> Check out [zeitgrep](https:\u002F\u002Fgithub.com\u002Fkantord\u002Fzeitgrep), another search tool I am working on!\n\n\u003Ch1>\n  \u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkantord_SeaGOAT_readme_1dc21f3336a0.png\" alt=\"Logo\" width=\"200\"\u002F>\n    \u003Cfont size=\"8\">\u003Cb>SeaGOAT\u003C\u002Fb>\u003C\u002Ffont>\n  \u003C\u002Fp>\n\u003C\u002Fh1>\n\nA code search engine for the AI age. SeaGOAT is a local search tool that\nleverages vector embeddings to enable you to search your codebase semantically.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkantord_SeaGOAT_readme_b9c3182e769b.gif\" alt=\"\" \u002F>\n\u003C\u002Fp>\n\n## Getting started\n\n### Install SeaGOAT\n\nIn order to install SeaGOAT, you need to have the following\ndependencies already installed on your computer:\n\n- Python 3.11 or newer\n- ripgrep\n- [bat](https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fbat) (**optional**, highly recommended)\n\nWhen `bat` is [installed](https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fbat#on-ubuntu-using-apt),\nit is used to display results as long as color is enabled. When SeaGOAT is\nused as part of a pipeline, a grep-line output format is used. When color is\nenabled, but `bat` is not installed, SeaGOAT will highlight the output using\npygments. Using `bat` is recommended.\n\nTo install SeaGOAT using `pipx`, use the following command:\n\n```bash\npipx install seagoat\n```\n\n### System requirements\n\n#### Hardware\n\nShould work on any decent laptop.\n\n#### Operating system\n\nSeaGOAT is designed to work on Linux (*tested* ✅),\nmacOS ([partly tested, **help**](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fissues\u002F178) 🙏)\nand Windows ([**help needed**](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fissues\u002F179) 🙏).\n\n### Start SeaGOAT server\n\nIn order to use SeaGOAT in your project, you have to start the SeaGOAT server\nusing the following command:\n\n```bash\nseagoat-server start \u002Fpath\u002Fto\u002Fyour\u002Frepo\n```\n\n### Search your repository\n\nIf you have the server running, you can simply use the\n`gt` or `seagoat` command to query your repository. For example:\n\n```bash\ngt \"Where are the numbers rounded\"\n```\n\nYou can also use\n[Regular Expressions](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRegular_expression)\nin your queries, for example\n\n```bash\ngt \"function calc_.* that deals with taxes\"\n```\n\n### Stopping the server\n\nYou can stop the running server using the following command:\n\n```bash\nseagoat-server stop \u002Fpath\u002Fto\u002Fyour\u002Frepo\n```\n\n### Configuring SeaGOAT\n\nSeaGOAT can be tailored to your needs through YAML configuration files,\neither globally or project-specifically with a `.seagoat.yml` file.\nFor instance:\n\n```yaml\n# .seagoat.yml\n\nserver:\n  port: 31134  # Specify server port\n```\n\n[Check out the documentation](https:\u002F\u002Fkantord.github.io\u002FSeaGOAT\u002Flatest\u002Fconfiguration\u002F)\nfor more details!\n\n## Development\n\n**Requirements**:\n\n- [Poetry](https:\u002F\u002Fpython-poetry.org\u002F)\n- Python 3.11 or newer\n- [ripgrep](https:\u002F\u002Fgithub.com\u002FBurntSushi\u002Fripgrep)\n\n### Install dependencies\n\nAfter cloning the repository, install dependencies using the following command:\n\n```bash\npoetry install\n```\n\n### Running tests\n\n#### Watch mode (recommended)\n\n```bash\npoetry run ptw\n```\n\n#### Test changed files\n\n```bash\npoetry run pytest .  --testmon\n```\n\n#### Test all files\n\n```bash\npoetry run pytest .\n```\n\n### Manual testing\n\nYou can test any SeaGOAT command manually in your local development\nenvironment. For example to test the development version of the\n`seagoat-server` command, you can run:\n\n```bash\npoetry run seagoat-server start ~\u002Fpath\u002Fan\u002Fexample\u002Frepository\n```\n\n## FAQ\n\nThe points in this FAQ are indications of how SeaGOAT works, but are not\na legal contract. SeaGOAT is licensed under an open source license and if you\nare in doubt about the privacy\u002Fsafety\u002Fetc implications of SeaGOAT, you are\nwelcome to examine the source code,\n[raise your concerns](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fissues\u002Fnew),\nor create a pull request to fix a problem.\n\n### How does SeaGOAT work? Does it send my data to ChatGPT?\n\nSeaGOAT does not rely on 3rd party APIs or any remote APIs and executes all\nfunctionality locally using the SeaGOAT server that you are able to run on\nyour own machine.\n\nInstead of relying on APIs or \"connecting to ChatGPT\", it uses the vector\ndatabase called ChromaDB, with a local vector embedding engine and\ntelemetry disabled by default.\n\nApart from that, SeaGOAT also uses ripgrep, a regular-expression based code\nsearch engine in order to provider regular expression\u002Fkeyword based matches\nin addition to the \"AI-based\" matches.\n\nWhile the current version of SeaGOAT does not send your data to remote\nservers, it might be possible that in the future there will be **optional**\nfeatures that do so, if any further improvement can be gained from that.\n\n### Why does SeaGOAT need a server?\n\nSeaGOAT needs a server in order to provide a speedy response. SeaGOAT heavily\nrelies on vector embeddings and vector databases, which at the moment cannot\nbe replace with an architecture that processes files on the fly.\n\nIt's worth noting that *you are able to run SeaGOAT server entirely locally*,\nand it works even if you don't have an internet connection. This use case\ndoes not require you to share data with a remote server, you are able to use\nyour own SeaGOAT server locally, albeit it's also possible to run a SeaGOAT\nserver and allow other computers to connect to it, if you so wish.\n\n### Does SeaGOAT create AI-derived work? Is SeaGOAT ethical?\n\nIf you are concerned about the ethical implications of using AI tools keep in\nmind that SeaGOAT is not a code generator but a code search engine, therefore\nit does not create AI derived work.\n\nThat being said, a language model *is* being used to generate vector\nembeddings. At the moment SeaGOAT uses ChromaDB's default model for\ncalculating vector embeddings, and I am not aware of this being an ethical\nconcern.\n\n### What programming languages are supported?\n\nCurrently SeaGOAT is hard coded to only process files in the following\nformats:\n\n- **Text Files** (`*.txt`)\n- **Markdown** (`*.md`)\n- **Python** (`*.py`)\n- **C** (`*.c`, `*.h`)\n- **C++** (`*.cpp`, `*.cc`, `*.cxx`, `*.hpp`)\n- **TypeScript** (`*.ts`, `*.tsx`)\n- **JavaScript** (`*.js`, `*.jsx`)\n- **HTML** (`*.html`)\n- **Go** (`*.go`)\n- **Java** (`*.java`)\n- **PHP** (`*.php`)\n- **Ruby** (`*.rb`)\n\n### Why is SeaGOAT processing files so slowly while barely using my CPU?\n\nSince processing files for large repositories can take a long time, SeaGOAT\nis **designed to allow you to use your computer while processing files**. It is\nan intentional design choice to avoid blocking\u002Fslowing down your computer.\n\nThis design decision does not affect the performance of queries.\n\n**By the way, you are able to use SeaGOAT to query your repository while\nit's processing your files!** When you make a query, and the files are not\nprocessed yet, you will receive a warning with an estimation of the accuracy\nof your results. Also, regular expression\u002Ffull text search based results\nwill be displayed from the very beginning!\n\n### What character encodings are supported?\n\nThe preferred character encoding is UTF-8. Most other character encodings\nshould also work. Only text files are supported, SeaGOAT ignores binary files.\n\n### Where does SeaGOAT store it's database\u002Fcache?\n\nWhere SeaGOAT stores databases and cache depends on your operating system.\nFor your convenience, you can use the `seagoat-server server-info`\ncommand to find out where these files are stored on your system.\n\n### Can I host SeaGOAT server on a different computer?\n\nYes, if you would like to use SeaGOAT without having to run the server on\nthe same computer, you can simply self-host SeaGOAT server on a different\ncomputer or in the cloud, and\n[configure](https:\u002F\u002Fkantord.github.io\u002FSeaGOAT\u002Flatest\u002Fconfiguration\u002F)\nthe `seagoat`\u002F`gt` command to connect to this remote server through the\ninternet.\n\nKeep in mind that SeaGOAT itself does not enforce any security as it is\nprimarily designed to run locally. If you have private code that you do not\nwish to leak, you will have to make sure that only trusted people have\naccess to the SeaGOAT server. This could be done by making it only available\nthrough a VPN that only your teammates can access.\n\n### Can I ignore files\u002Fdirectories?\n\nSeaGOAT already ignores all files\u002Fdirectories ignored in your `.gitignore`.\nIf you wish to ignore additional files but keep them in git, you can use the\n`ignorePatterns` attribute from the server configuration.\n[Learn more](https:\u002F\u002Fkantord.github.io\u002FSeaGOAT\u002Flatest\u002Fconfiguration\u002F)\n","\u003C!-- markdownlint-disable MD033 -->\n\n> [!TIP]\n> 请查看 [zeitgrep](https:\u002F\u002Fgithub.com\u002Fkantord\u002Fzeitgrep)，这是我正在开发的另一款搜索工具！\n\n\u003Ch1>\n  \u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkantord_SeaGOAT_readme_1dc21f3336a0.png\" alt=\"Logo\" width=\"200\"\u002F>\n    \u003Cfont size=\"8\">\u003Cb>SeaGOAT\u003C\u002Fb>\u003C\u002Ffont>\n  \u003C\u002Fp>\n\u003C\u002Fh1>\n\n一款面向AI时代的代码搜索引擎。SeaGOAT是一款本地搜索工具，它利用向量嵌入技术，使您能够以语义方式搜索您的代码库。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkantord_SeaGOAT_readme_b9c3182e769b.gif\" alt=\"\" \u002F>\n\u003C\u002Fp>\n\n## 开始使用\n\n### 安装 SeaGOAT\n\n为了安装 SeaGOAT，您需要在计算机上预先安装以下依赖项：\n\n- Python 3.11 或更高版本\n- ripgrep\n- [bat](https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fbat)（可选，强烈推荐）\n\n当 `bat` 已经[安装](https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fbat#on-ubuntu-using-apt)后，只要启用了颜色显示功能，就会用它来展示结果。如果 SeaGOAT 被用作管道的一部分，则会采用 grep 样式的输出格式。当启用了颜色显示但未安装 `bat` 时，SeaGOAT 将使用 pygments 对输出进行高亮显示。建议使用 `bat`。\n\n要使用 `pipx` 安装 SeaGOAT，请运行以下命令：\n\n```bash\npipx install seagoat\n```\n\n### 系统要求\n\n#### 硬件\n\n任何性能尚可的笔记本电脑都应该可以运行。\n\n#### 操作系统\n\nSeaGOAT 设计为可在 Linux（已测试 ✅）、macOS（部分测试，**寻求帮助**）和 Windows（**亟需帮助**）上运行。\n\n### 启动 SeaGOAT 服务器\n\n要在您的项目中使用 SeaGOAT，您需要使用以下命令启动 SeaGOAT 服务器：\n\n```bash\nseagoat-server start \u002Fpath\u002Fto\u002Fyour\u002Frepo\n```\n\n### 搜索您的仓库\n\n如果服务器正在运行，您可以直接使用 `gt` 或 `seagoat` 命令来查询您的仓库。例如：\n\n```bash\ngt \"数字在哪里被四舍五入\"\n```\n\n您还可以在查询中使用[正则表达式](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRegular_expression)，例如：\n\n```bash\ngt \"处理税收的 calc_.* 函数\"\n```\n\n### 停止服务器\n\n您可以使用以下命令停止正在运行的服务器：\n\n```bash\nseagoat-server stop \u002Fpath\u002Fto\u002Fyour\u002Frepo\n```\n\n### 配置 SeaGOAT\n\nSeaGOAT 可以通过 YAML 配置文件进行个性化设置，既可以全局配置，也可以针对特定项目使用 `.seagoat.yml` 文件。例如：\n\n```yaml\n# .seagoat.yml\n\nserver:\n  port: 31134  # 指定服务器端口\n```\n\n更多详细信息请参阅[文档](https:\u002F\u002Fkantord.github.io\u002FSeaGOAT\u002Flatest\u002Fconfiguration\u002F)！\n\n## 开发\n\n**要求**：\n\n- [Poetry](https:\u002F\u002Fpython-poetry.org\u002F)\n- Python 3.11 或更高版本\n- [ripgrep](https:\u002F\u002Fgithub.com\u002FBurntSushi\u002Fripgrep)\n\n### 安装依赖\n\n克隆仓库后，使用以下命令安装依赖：\n\n```bash\npoetry install\n```\n\n### 运行测试\n\n#### 监视模式（推荐）\n\n```bash\npoetry run ptw\n```\n\n#### 测试更改过的文件\n\n```bash\npoetry run pytest .  --testmon\n```\n\n#### 测试所有文件\n\n```bash\npoetry run pytest .\n```\n\n### 手动测试\n\n您可以在本地开发环境中手动测试任何 SeaGOAT 命令。例如，要测试 `seagoat-server` 命令的开发版本，您可以运行：\n\n```bash\npoetry run seagoat-server start ~\u002Fpath\u002Fan\u002Fexample\u002Frepository\n```\n\n## 常见问题解答\n\n本 FAQ 中的内容仅用于说明 SeaGOAT 的工作原理，并不构成法律合同。SeaGOAT 采用开源许可证，如果您对 SeaGOAT 的隐私、安全性等方面存在疑虑，欢迎查阅源代码、[提出您的关切](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fissues\u002Fnew)，或创建拉取请求来修复问题。\n\n### SeaGOAT 是如何工作的？它会将我的数据发送给 ChatGPT 吗？\n\nSeaGOAT 不依赖第三方 API 或任何远程 API，所有功能都在本地通过您自己机器上运行的 SeaGOAT 服务器执行。\n\n它没有依赖 API 或“连接到 ChatGPT”，而是使用名为 ChromaDB 的向量数据库，结合本地向量嵌入引擎，并且默认情况下禁用了遥测功能。\n\n除此之外，SeaGOAT 还使用基于正则表达式的代码搜索引擎 ripgrep，以便在“基于 AI”的匹配之外，提供基于正则表达式或关键词的匹配。\n\n虽然当前版本的 SeaGOAT 不会将您的数据发送到远程服务器，但未来可能会有**可选**的功能支持这一操作，前提是这样做能带来进一步的改进。\n\n### 为什么 SeaGOAT 需要一个服务器？\n\nSeaGOAT 需要服务器是为了提供快速响应。SeaGOAT 大量依赖向量嵌入和向量数据库，而目前这些技术还无法通过即时处理文件的架构来替代。\n\n值得注意的是，*您可以完全在本地运行 SeaGOAT 服务器*，即使没有互联网连接也能正常工作。在这种情况下，您无需与远程服务器共享数据，可以直接在本地使用自己的 SeaGOAT 服务器；当然，如果您愿意，也可以运行一个 SeaGOAT 服务器，并允许其他计算机连接到它。\n\n### SeaGOAT 是否会生成由 AI 生成的作品？SeaGOAT 符合伦理吗？\n\n如果您担心使用 AI 工具可能带来的伦理问题，请记住，SeaGOAT 并非代码生成器，而是一个代码搜索引擎，因此它不会生成 AI 生成的作品。\n\n不过，确实有一个语言模型被用来生成向量嵌入。目前，SeaGOAT 使用 ChromaDB 的默认模型来计算向量嵌入，我不认为这会带来伦理上的担忧。\n\n### 支持哪些编程语言？\n\n目前，SeaGOAT 被硬编码为仅处理以下格式的文件：\n\n- **文本文件** (`*.txt`)\n- **Markdown** (`*.md`)\n- **Python** (`*.py`)\n- **C** (`*.c`, `*.h`)\n- **C++** (`*.cpp`, `*.cc`, `*.cxx`, `*.hpp`)\n- **TypeScript** (`*.ts`, `*.tsx`)\n- **JavaScript** (`*.js`, `*.jsx`)\n- **HTML** (`*.html`)\n- **Go** (`*.go`)\n- **Java** (`*.java`)\n- **PHP** (`*.php`)\n- **Ruby** (`*.rb`)\n\n### 为什么 SeaGOAT 处理文件的速度很慢，但 CPU 占用率却很低？\n\n由于处理大型代码库中的文件可能需要较长时间，SeaGOAT 的设计目标之一就是让您在文件处理过程中仍能正常使用电脑。这是有意为之的设计选择，旨在避免阻塞或拖慢您的计算机。\n\n这一设计决策并不会影响查询的性能。\n\n**顺便说一句，您可以在 SeaGOAT 处理文件的同时查询您的仓库！** 当您发起查询时，如果文件尚未处理完毕，系统会显示一条警告，告知您结果准确性的预估情况。此外，基于正则表达式或全文检索的结果会从一开始就显示出来！\n\n### 支持哪些字符编码？\n\n首选的字符编码是 UTF-8。大多数其他字符编码也应该可以正常工作。SeaGOAT 仅支持文本文件，会忽略二进制文件。\n\n### SeaGOAT 的数据库\u002F缓存存储在何处？\n\nSeaGOAT 数据库和缓存的具体存储位置取决于您的操作系统。为了方便起见，您可以使用 `seagoat-server server-info` 命令来查看这些文件在您系统上的存储路径。\n\n### 我能否将 SeaGOAT 服务器部署在另一台计算机上？\n\n可以。如果您不想在同一台计算机上运行 SeaGOAT 服务器，可以直接在另一台计算机或云端自托管 SeaGOAT 服务器，并通过互联网配置 `seagoat` 或 `gt` 命令以连接到该远程服务器。\n\n请注意，SeaGOAT 本身并不强制实施任何安全措施，因为它主要是为本地运行而设计的。如果您有不希望泄露的私密代码，必须确保只有受信任的人员才能访问 SeaGOAT 服务器。这可以通过将其仅通过一个仅供团队成员访问的 VPN 网络来实现。\n\n### 我可以忽略某些文件或目录吗？\n\nSeaGOAT 已经会自动忽略 `.gitignore` 文件中指定的所有文件和目录。如果您希望进一步忽略某些文件，但又想让它们保留在 Git 仓库中，可以在服务器配置中使用 `ignorePatterns` 属性。[了解更多](https:\u002F\u002Fkantord.github.io\u002FSeaGOAT\u002Flatest\u002Fconfiguration\u002F)","# SeaGOAT 快速上手指南\n\nSeaGOAT 是一款专为 AI 时代打造的本地代码搜索引擎。它利用向量嵌入（Vector Embeddings）技术，让你能够以语义化的方式搜索代码库，而不仅仅是关键词匹配。\n\n## 环境准备\n\n在开始之前，请确保你的系统满足以下要求：\n\n### 系统要求\n- **操作系统**：推荐 Linux（已测试 ✅）。macOS 和 Windows 支持尚在完善中，可能需要额外调试。\n- **硬件**：任意主流笔记本电脑即可运行。\n\n### 前置依赖\n请预先安装以下工具：\n- **Python**: 版本 3.11 或更高\n- **ripgrep**: 用于基础文本搜索\n- **bat** (可选但强烈推荐): 用于美化搜索结果输出。若未安装，SeaGOAT 将退化为使用 pygments 高亮。\n\n> **提示**：国内用户可使用镜像源加速 Python 包的安装（见下文）。\n\n## 安装步骤\n\n推荐使用 `pipx` 进行隔离安装，避免污染全局环境。\n\n### 1. 安装 SeaGOAT\n\n```bash\npipx install seagoat\n```\n\n> **国内加速方案**：如果下载缓慢，可指定国内镜像源安装：\n> ```bash\n> pipx install seagoat --pip-args '--index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple'\n> ```\n\n### 2. 验证安装\n安装完成后，确保 `seagoat` 和 `gt` 命令可用。\n\n## 基本使用\n\nSeaGOAT 采用“服务端 + 客户端”架构。使用前需先启动本地服务器对代码库进行索引。\n\n### 1. 启动服务器\n进入你的项目根目录，运行以下命令启动 SeaGOAT 服务器（请将路径替换为实际项目路径）：\n\n```bash\nseagoat-server start \u002Fpath\u002Fto\u002Fyour\u002Frepo\n```\n\n*注：首次运行时，服务器会后台处理文件并生成向量索引。此过程设计为低占用模式，你可以同时进行其他工作，甚至直接在处理完成前发起查询。*\n\n### 2. 执行语义搜索\n服务器运行后，使用 `gt` 或 `seagoat` 命令进行自然语言搜索：\n\n```bash\ngt \"Where are the numbers rounded\"\n```\n\nSeaGOAT 也支持在自然语言中混合使用正则表达式：\n\n```bash\ngt \"function calc_.* that deals with taxes\"\n```\n\n### 3. 停止服务器\n当你完成工作或需要释放资源时，可以停止服务器：\n\n```bash\nseagoat-server stop \u002Fpath\u002Fto\u002Fyour\u002Frepo\n```\n\n### 4. 进阶配置（可选）\n你可以在项目根目录创建 `.seagoat.yml` 文件来自定义配置，例如修改服务器端口：\n\n```yaml\n# .seagoat.yml\nserver:\n  port: 31134\n```","资深后端工程师小林正在接手一个遗留的金融计算项目，急需在数十万行代码中定位所有涉及“税务舍入误差”的处理逻辑，以便进行合规性修复。\n\n### 没有 SeaGOAT 时\n- 只能依赖传统 grep 进行关键词匹配，一旦代码中写的是 `round_tax` 而非 `tax_rounding`，搜索结果即为空，极易漏掉关键文件。\n- 面对大量无关的变量名匹配结果，不得不逐个打开文件人工阅读上下文，耗费数小时筛选噪音。\n- 无法用自然语言描述逻辑（如“处理负数时的舍入规则”），必须绞尽脑汁猜测具体的函数名或正则表达式。\n- 每次修改搜索词都要重新扫描整个磁盘，大型仓库的索引等待时间让人难以忍受。\n- 担心将敏感的财务代码上传到在线 AI 搜索工具会引发数据泄露风险，不敢使用云端服务。\n\n### 使用 SeaGOAT 后\n- 直接输入自然语言查询 `gt \"Where are numbers rounded for taxes\"`，SeaGOAT 基于向量语义瞬间定位到相关逻辑，无论变量名如何命名。\n- 搜索结果按语义相关性排序，精准展示核心代码片段，配合 `bat` 高亮显示，几分钟内即可锁定目标。\n- 支持混合查询，既能理解“处理负数舍入”的语义，也能结合正则表达式精确过滤特定函数结构。\n- 本地服务器启动一次后持续运行，后续搜索毫秒级响应，无需重复建立索引，流畅融入开发流。\n- 所有向量嵌入和搜索过程均在本地机器完成，代码数据不出内网，彻底消除隐私顾虑。\n\nSeaGOAT 让开发者摆脱了关键词匹配的束缚，用自然语言思维直接在本地代码库中实现“所想即所得”的精准检索。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkantord_SeaGOAT_1dc21f33.png","kantord","Dániel Kántor","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fkantord_6cd8607b.jpg",null,"Stacklok","Barcelona","github@daniel-kantor.com","https:\u002F\u002Fdaniel-kantor.com\u002Fcv\u002F","https:\u002F\u002Fgithub.com\u002Fkantord",[83,87],{"name":84,"color":85,"percentage":86},"Python","#3572A5",99.6,{"name":88,"color":89,"percentage":90},"Shell","#89e051",0.4,1282,90,"2026-04-16T03:43:56","MIT","Linux, macOS, Windows","未说明",{"notes":98,"python":99,"dependencies":100},"该工具设计为在本地运行，无需联网即可使用。服务器启动后可在文件处理期间进行查询。默认忽略 .gitignore 中的文件，支持通过配置文件忽略额外文件。首选 UTF-8 编码，仅处理文本文件。虽然目前完全本地运行，但未来可能提供可选的远程功能。开发环境需安装 Poetry。","3.11+",[101,102,103,104],"ripgrep","bat (可选但推荐)","ChromaDB","pygments",[14,16,13,35,15],[107,108,109,110,111,112,113,114,101,115,116,117,118,119],"ai","code-search","code-search-engine","embeddings","grep","grep-like","llm","regular-expression","vector-database","vector-embeddings","hacktoberfest","hacktoberfest2023","ai-project","2026-03-27T02:49:30.150509","2026-04-17T10:21:07.056568",[123,128,133,138,143,148],{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},37362,"遇到 'UnicodeDecodeError: charmap codec can't decode byte' 错误怎么办？","该错误通常是因为源文件使用了意外的文本编码（如 Windows-1254），导致解码失败。维护者建议：\n1. 如果可能，提供开源仓库链接以便排查；\n2. 如果无法提供，尝试创建一个包含最小复现步骤的新仓库；\n3. 描述您使用的操作系统以及文件的字符编码格式。\n这有助于定位具体是哪个文件导致了编码问题。","https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fissues\u002F250",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},37363,"服务器启动后发出请求时出现 KeyError 或文件未找到错误是什么原因？","这通常发生在文件在仓库分析完成前被创建或修改，或者文件名大小写不匹配（特别是在 macOS 上，文件系统不区分大小写但内部逻辑区分）。\n临时解决方案是修改代码中的排序逻辑，使用 `.get()` 方法提供默认值以避免 KeyError，例如：\n```python\nreturn list(\n    sorted(\n        results_to_sort,\n        key=lambda x: (\n            0.7 * normalize_score(x.get_best_score(self.query_string))\n            + 0.3 * normalize_file_position(top_files.get(Path(x.path).as_posix(), 0))\n        ),\n    )\n)\n```\n此外，确保不要在服务器分析文件的过程中立即发起查询。","https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fissues\u002F226",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},37364,"远程运行 seagoat-server 而本地运行客户端时出现 FileNotFoundError 怎么办？","这是由于远程服务器和本地客户端的文件路径不一致导致的。当仓库结构相同但父级路径不同时，直接引用绝对路径会出错。\n解决方案：\n1. 更新到最新版本，该问题已在最新修复中解决；\n2. 临时变通方法是在服务器端将仓库软链接（ln -s）到与本地相同的路径结构下运行服务器；\n3. 未来版本计划通过文件哈希来引用文件，从而彻底解决路径依赖问题。","https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fissues\u002F270",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},37365,"如何让 SeaGOAT 忽略特定的文件类型或目录以加快扫描速度？","可以通过配置来实现忽略或降低某些文件的优先级：\n1. **忽略文件**：在配置文件中设置忽略规则（参考文档：https:\u002F\u002Fkantord.github.io\u002FSeaGOAT\u002Flatest\u002Fconfiguration\u002F#server）；\n2. **降低优先级（Penalize）**：除了完全忽略，还可以配置“惩罚”规则。这样这些文件仍会被分析，但优先级较低，仅在结果非常相关时才显示，且会在其他文件分析完成后才开始分析它们。\n这特别适合处理翻译文件等对搜索价值较低但数量庞大的文件。","https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fissues\u002F244",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},37366,"在使用 Ruff 替换 Pylint 和 Black 时，是否需要排除特定文件夹？","是的，应该排除非手动编写的文件目录。例如，`typings` 文件夹应当被排除在 Ruff 检查之外，因为这些文件通常是自动生成的，不需要进行代码风格或错误检查。配置 Ruff 时请确保将这些目录添加到排除列表中。","https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fissues\u002F352",{"id":149,"question_zh":150,"answer_zh":151,"source_url":127},37367,"SeaGOAT 在处理包含子模块或非 ASCII 字符的仓库时为何会崩溃？","崩溃通常源于编码启发式算法未能正确处理某些特殊编码的文件（如土耳其语编码的 C 文件）。虽然文件本身可能没有明显的非 ASCII 字符，但底层字节流可能导致解码器（如 cp1254）失败。\n建议用户：\n1. 检查仓库中是否包含处理多语言词干的子模块；\n2. 向维护者提供具体的堆栈跟踪和复现仓库；\n3. 关注后续更新，开发团队正在改进解析任意文件而不报错的启发式策略（优先 UTF-8，失败后尝试兼容更广的编码）。",[153,158,163,168,173,178,183,188,193,198,203,208,213,218,223,228,233,238,243,248],{"id":154,"version":155,"summary_zh":156,"released_at":157},297916,"v0.54.17","## v0.54.17（2025-05-14）\n\n### 错误修复\n\n- **依赖项**：将 Flask 依赖更新至 v3.1.1 [安全]（[#908](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F908)，[`326bd9a`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F326bd9ae09d8f276eae4322e3443a1086c4eec63)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n### 杂项\n\n- **依赖项**：将 Locust 依赖更新至 v2.37.2（[#906](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F906)，[`1dab986`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F1dab986943da3e8221ba5a8f846d05980fddcf1f)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**详细变更**：[v0.54.16...v0.54.17](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.16...v0.54.17)","2025-05-14T03:48:51",{"id":159,"version":160,"summary_zh":161,"released_at":162},297917,"v0.54.16","## v0.54.16（2025-05-13）\n\n### 错误修复\n\n- **依赖项**：将依赖项 chromadb 更新至 v1.0.9（[#905](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F905)，[`53d1668`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F53d16680212dcb8b3cf594dcdf9a3f65b9d98ec9)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n### 杂项\n\n- **依赖项**：将依赖项 exceptiongroup 更新至 v1.3.0（[#903](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F903)，[`9643308`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F96433086c1faf0f0a2d8781be7c81b3de8265eb2)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖项**：将依赖项 locust 更新至 v2.37.1（[#896](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F896)，[`308fe21`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F308fe212ca15a420a3787d840a9fa2880a30f221)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖项**：将依赖项 mkdocs-material 更新至 v9.6.13（[#902](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F902)，[`d22ba8d`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fd22ba8d42752c191df60b7a578b2880ccf135951)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖项**：将依赖项 pytest-timeout 更新至 v2.4.0（[#900](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F900)，[`ae922e4`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fae922e480d6b84a45c5c2c87f401fde215a0e320)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖项**：将依赖项 ruff 更新至 v0.11.9（[#901](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F901)，[`210f312`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F210f31217137684af9c8ccef211cbaae4fe0962a)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**详细变更**：[v0.54.15...v0.54.16](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.15...v0.54.16)","2025-05-13T03:20:17",{"id":164,"version":165,"summary_zh":166,"released_at":167},297918,"v0.54.15","## v0.54.15（2025-05-09）\n\n### 错误修复\n\n- **依赖项**：将依赖项 chromadb 更新至 v1.0.8（[#895](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F895)，[`4357a4f`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F4357a4fb65c5948c9f9b332c97cb44a1a8f20db6)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n### 杂项\n\n- **依赖项**：将依赖项 jupyterlab-widgets 更新至 v3.0.15（[#898](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F898)，[`6c28395`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F6c283959a7349c381763cdca118d5555e7396dfd)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖项**：将依赖项 matplotlib 更新至 v3.10.3（[#899](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F899)，[`6d4ff89`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F6d4ff8984020fe745d522adc6415a2969bf99626)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖项**：将依赖项 python-semantic-release 更新至 v9.21.1（[#893](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F893)，[`ce02c97`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fce02c9730c7d4a77f70984360d0add2b4d2aecf7)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖项**：将依赖项 ruff 更新至 v0.11.8（[#892](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F892)，[`f08b116`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Ff08b116b687e6a360eddc6ef13a22ab8351012d2)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖项**：将 python-semantic-release\u002Fpython-semantic-release action 更新至 v9.21.1（[#894](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F894)，[`a5ce8db`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fa5ce8dba2da603a46a81f1cf2e477ba0e79e4094)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖项**：将 stacklok\u002Ffrizbee-action action 更新至 v0.0.5（[#897](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F897)，[`ddad5c7`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fddad5c70194cd51be68e7eb86ec56c10aed0aa0e)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**详细变更**：[v0.54.14...v0.54.15](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.14...v0.54.15)","2025-05-09T08:20:01",{"id":169,"version":170,"summary_zh":171,"released_at":172},297919,"v0.54.14","## v0.54.14（2025-04-30）\n\n### 错误修复\n\n- **依赖项**：将依赖库 orjson 更新至 v3.10.18（[#891](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F891)，[`79e4be6`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F79e4be6ab84914eb065e8199ab07e3c69ae8ca8b)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**详细变更**：[v0.54.13...v0.54.14](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.13...v0.54.14)","2025-04-30T08:44:41",{"id":174,"version":175,"summary_zh":176,"released_at":177},297920,"v0.54.13","## v0.54.13（2025-04-29）\n\n### Bug修复\n\n- **deps**: 将依赖orjson更新至v3.10.17（[#890](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F890)，[`a6a8d38`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fa6a8d38b64b2d8bbef4f9eb206c79dfec669bd94)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**详细变更**：[v0.54.12...v0.54.13](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.12...v0.54.13)","2025-04-29T22:58:47",{"id":179,"version":180,"summary_zh":181,"released_at":182},297921,"v0.54.12","## v0.54.12（2025-04-26）\n\n### Bug 修复\n\n- **依赖**: 将依赖 `blessed` 更新至 v1.21.0 ([#888](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F888), [`c75d087`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fc75d0878555dc392206c01671781cfa8d6b3a9bb))\n\n共同作者: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n### 杂项\n\n- **依赖**: 将依赖 `ipython` 更新至 v8.36.0 ([#887](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F887), [`be48d37`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fbe48d37bf13685998bdc454acb997e9b22cbaf75))\n\n共同作者: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖**: 将依赖 `locust` 更新至 v2.36.2 ([#886](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F886), [`2f30b1d`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F2f30b1d6b81ee259e00729480fa50c3cda9f7a74))\n\n共同作者: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**详细变更**: [v0.54.11...v0.54.12](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.11...v0.54.12)","2025-04-26T21:26:30",{"id":184,"version":185,"summary_zh":186,"released_at":187},297922,"v0.54.11","## v0.54.11（2025-04-25）\n\n### Bug 修复\n\n- **deps**: 将依赖 chromadb 更新至 v1.0.7 ([#885](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F885), [`970a33a`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F970a33ac83197ee038503cbce18e6d49ee948916))\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n### 杂项\n\n- **deps**: 将 actions\u002Fsetup-python 的摘要更新为 a26af69 ([#881](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F881), [`3a30ac7`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F3a30ac7c841447d56caab50c5e8edbd5d02cff25))\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: 将依赖 locust 更新至 v2.36.1 ([#884](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F884), [`e236e3a`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fe236e3af531ae45810f800c977ee92b81e750955))\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: 将依赖 pyright 更新至 v1.1.400 ([#882](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F882), [`31d9b4f`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F31d9b4f11e41905c6bd2ff9ff185efed22edf593))\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: 将依赖 ruff 更新至 v0.11.7 ([#883](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F883), [`480a903`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F480a9033202407efca1e7355b2b88a0f87ec355a))\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: 将 stacklok\u002Ffrizbee-action 动作更新至 v0.0.3 ([#880](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F880), [`2d3bbbb`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F2d3bbbb9945d653f8171284b5c76e80c3ec26579))\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**详细变更**：[v0.54.10...v0.54.11](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.10...v0.54.11)","2025-04-25T17:03:47",{"id":189,"version":190,"summary_zh":191,"released_at":192},297923,"v0.54.10","## v0.54.10（2025-04-22）\n\n### Bug 修复\n\n- **依赖**: 将依赖 `chromadb` 更新至 v1.0.6 ([#879](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F879), [`8296487`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F82964871866f46016ee4c509c5eeee404c6b380d))\n\n共同作者: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n### 杂项\n\n- **依赖**: 将依赖 `mkdocs-material` 更新至 v9.6.12 ([#876](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F876), [`830cb8c`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F830cb8cd495a45ec5c32cb5f49923b31934c0a6d))\n\n共同作者: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖**: 将依赖 `ruff` 更新至 v0.11.6 ([#877](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F877), [`ce0efcd`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fce0efcdfb42a37dd22d930927899c017be53ff71))\n\n共同作者: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**详细变更**: [v0.54.9...v0.54.10](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.9...v0.54.10)","2025-04-22T16:09:41",{"id":194,"version":195,"summary_zh":196,"released_at":197},297924,"v0.54.9","## v0.54.9（2025-04-17）\n\n### 错误修复\n\n- **依赖项**：将依赖 ollama 更新至 v0.4.8（[#875](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F875)，[`7f50d68`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F7f50d682c04b6f106bd494692a3d680edf340fcd)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**详细变更**：[v0.54.8...v0.54.9](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.8...v0.54.9)","2025-04-17T07:36:48",{"id":199,"version":200,"summary_zh":201,"released_at":202},297925,"v0.54.8","## v0.54.8（2025-04-16）\n\n### 错误修复\n\n- **依赖项**：将依赖 `chromadb` 更新至 v1.0.5（[#874](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F874)，[`cff01b0`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fcff01b038295d30afc64d0ef29e0a8a7de3239d9)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n### 杂项\n\n- **依赖项**：将 `codecov\u002Fcodecov-action` 的摘要更新至 `ad3126e`（[#872](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F872)，[`9ca4fc9`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F9ca4fc9f5ece457e76c8b204354da90398fd44d7)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖项**：将依赖 `jupyterlab-widgets` 更新至 v3.0.14（[#870](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F870)，[`be4393e`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fbe4393ef43c4e70bfd62428087e5dd91db3dd988)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖项**：将依赖 `locust` 更新至 v2.35.0（[#873](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F873)，[`7a39c3a`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F7a39c3adc3ce7215261df2defa75aea51cff6226)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖项**：将依赖 `pyright` 更新至 v1.1.399（[#869](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F869)，[`692d842`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F692d8424d6b3029152656818c36dea9c2b59a11a)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **依赖项**：将依赖 `ruff` 更新至 v0.11.5（[#871](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F871)，[`a7385de`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fa7385de2492d03de1737f6b886024c5abf8db302)）\n\n共同作者：renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**详细变更**：[v0.54.7...v0.54.8](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.7...v0.54.8)","2025-04-16T21:40:25",{"id":204,"version":205,"summary_zh":206,"released_at":207},297926,"v0.54.7","## v0.54.7 (2025-04-10)\n\n### Bug Fixes\n\n- **deps**: Update dependency chromadb to v1.0.4 ([#868](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F868), [`94bb559`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F94bb559b763f414d4930043d7f4b87ba61f427c0))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n### Chores\n\n- **deps**: Update dependency locust to v2.34.1 ([#867](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F867), [`2f66b73`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F2f66b738a521bc786c4c189e575c052358b80455))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**Detailed Changes**: [v0.54.6...v0.54.7](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.6...v0.54.7)\n","2025-04-10T06:57:28",{"id":209,"version":210,"summary_zh":211,"released_at":212},297927,"v0.54.6","## v0.54.6 (2025-04-08)\n\n### Bug Fixes\n\n- **deps**: Update dependency chromadb to v1.0.3 ([#866](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F866), [`49fc531`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F49fc531359f898b715bc72fcc17848d558bebd37))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n### Chores\n\n- **deps**: Update dependency ipython to v8.35.0 ([#865](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F865), [`ba184ba`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fba184baeabdc3ea52750c61b2cdde7f9deae08be))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency locust to v2.34.0 ([#864](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F864), [`82274b3`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F82274b32c997d8fa9e70038d1184b270404d4a42))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency pytest-cov to v6.1.1 ([#863](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F863), [`cb1432d`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fcb1432d7e5d654bfa2eeaa4064b679fdf269c517))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency ruff to v0.11.4 ([#862](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F862), [`140d78e`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F140d78e96e4d4130d0c90f8d0761f1705c8107da))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**Detailed Changes**: [v0.54.5...v0.54.6](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.5...v0.54.6)\n","2025-04-08T07:45:59",{"id":214,"version":215,"summary_zh":216,"released_at":217},297928,"v0.54.5","## v0.54.5 (2025-04-04)\n\n### Bug Fixes\n\n- **deps**: Update dependency chromadb to v1 ([#861](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F861), [`d63f5e3`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fd63f5e3482b0f17353bac2716fdcb5f536e109e7))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n### Chores\n\n- **deps**: Update actions\u002Fsetup-python digest to 8d9ed9a ([#854](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F854), [`edc796a`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fedc796a7ef9ead6eff27055d8cd0baadf931e0e3))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency mkdocs-material to v9.6.10 ([#857](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F857), [`8946925`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F894692507c26a5eb189310b0935f4b853a8973a1))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency mkdocs-material to v9.6.11 ([#858](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F858), [`37e3f8f`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F37e3f8f1dc5e94f6fbc0dc422a5cadf66eb560a8))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency pyright to v1.1.398 ([#856](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F856), [`301a675`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F301a67500b5af4cb81a78e6655db6cb72ba992f3))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency pytest-asyncio to ^0.26.0 ([#855](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F855), [`ef6d5eb`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fef6d5eb8541a93b8926b473cbbc8c63ef177b23a))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency pytest-cov to v6.1.0 ([#859](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F859), [`02bee6b`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F02bee6b36c122852afbdcc9b60d616f3ca8e42ac))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency ruff to v0.11.3 ([#860](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F860), [`3f0b699`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F3f0b699505aab2af5306b37ea1c40f4e9a887698))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**Detailed Changes**: [v0.54.4...v0.54.5](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.4...v0.54.5)\n","2025-04-04T03:02:01",{"id":219,"version":220,"summary_zh":221,"released_at":222},297929,"v0.54.4","## v0.54.4 (2025-03-25)\n\n### Bug Fixes\n\n- **deps**: Update dependency orjson to v3.10.16 ([#853](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F853), [`d1ccd90`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fd1ccd900ee44e87e725685a541e0ae1113bd149a))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n### Chores\n\n- **deps**: Update dependency ipython to v8.34.0 ([#837](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F837), [`b5c21f6`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fb5c21f6d4b7961730c5d0790df0b1fea0197badc))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency locust to v2.33.1 ([#839](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F839), [`e7b627c`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fe7b627c3d96a92301e990f98b0da28811edc0102))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency locust to v2.33.2 ([#844](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F844), [`962556f`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F962556f54272f472082c77da6a438f28d251118b))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency mkdocs-material to v9.6.8 ([#841](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F841), [`c433930`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fc4339304f5db43cf9764442bfd49abe3680483b5))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency mkdocs-material to v9.6.9 ([#845](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F845), [`3f12397`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F3f12397985ddc2709fc92ab859103c37277e01c1))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency pre-commit to v4.2.0 ([#846](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F846), [`792dfa9`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F792dfa9658f0af26c6ddd417f0ecb8f2c4ea3bda))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency pyright to v1.1.397 ([#847](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F847), [`5a33822`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F5a33822981b22f2de8516aae0f2c33d97bbcdf26))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency ruff to ^0.10.0 ([#842](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F842), [`fd60cbc`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Ffd60cbc8c15533a9dab2da39805bfaa0b1e22d5b))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency ruff to ^0.11.0 ([#843](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F843), [`b126c38`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fb126c38f74d2fe21c7980472b24872143cdb8692))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency ruff to v0.11.1 ([#849](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F849), [`ff3399a`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fff3399a6101f32eb1d031c65b2c28db5531341bd))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency ruff to v0.11.2 ([#850](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F850), [`e334988`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fe3349880d72476a739b43c36c5627bbfba64d2ea))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency ruff to v0.9.10 ([#836](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F836), [`2092008`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F209200853fb6a6d39ef50d05be2f71eb6bbf9864))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency syrupy to v4.9.0 ([#838](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F838), [`38f8fad`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F38f8fad55907f500151147d444e899ea37db46b1))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency syrupy to v4.9.1 ([#851](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F851), [`2641cc5`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F2641cc5d8eb28890d65b39b77875562566ec870f))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**Detailed Changes**: [v0.54.3...v0.54.4](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.3...v0.54.4)\n","2025-03-25T02:53:47",{"id":224,"version":225,"summary_zh":226,"released_at":227},297930,"v0.54.3","## v0.54.3 (2025-03-03)\n\n### Bug Fixes\n\n- Stop spinner before printing error ([`a775043`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fa77504339b943be4267dd9a2f63f457c952c3d64))\n\n### Chores\n\n- **deps**: Update dependency mkdocs-material to v9.6.7 ([#834](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F834), [`2d74e39`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F2d74e3951321083b11f907eb0f22e12ff75594f5))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n---\n\n**Detailed Changes**: [v0.54.2...v0.54.3](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.2...v0.54.3)\n","2025-03-03T08:35:51",{"id":229,"version":230,"summary_zh":231,"released_at":232},297931,"v0.54.2","## v0.54.2 (2025-03-02)\n\n### Bug Fixes\n\n- Skip empty lines in vimgrep output ([`177955d`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F177955d38f44751e5373f8662c82071326f2f257))\n\n---\n\n**Detailed Changes**: [v0.54.1...v0.54.2](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.54.1...v0.54.2)\n","2025-03-02T20:57:00",{"id":234,"version":235,"summary_zh":236,"released_at":237},297932,"v0.54.1","## v0.54.1 (2025-03-02)\n\n### Bug Fixes\n\n- Show all error messages on stderr ([`0e47cab`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F0e47cabe4c6ecd5d46830333ec4baf50e37d8643))\n\n- Show halo on stderr ([`7d4435a`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F7d4435ad002e01966059ac2245b04a6eb95062ab))\n\n### Chores\n\n- **deps**: Update codecov\u002Fcodecov-action digest to 0565863 ([#822](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F822), [`2a08a5f`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F2a08a5fa517184207295074c0cf84b7aee1165a6))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency ipython to v8.33.0 ([#827](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F827), [`ab69043`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fab69043db0d60fd9b00d820dcb59071d82c0bbbe))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency locust to v2.32.10 ([#812](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F812), [`5ab6429`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F5ab6429d58dbc0e9b0d9e8ec3a79c81de51dce65))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency locust to v2.33.0 ([#820](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F820), [`567ba2a`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F567ba2a20a7e22b0fb09c0133af9f1b439ffadcb))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency matplotlib to v3.10.1 ([#825](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F825), [`9904f8b`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F9904f8bccdc007e1fdd66325db9723282f4dfff3))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency mkdocs-material to v9.6.5 ([#813](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F813), [`6c3f630`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F6c3f6302e6325e0b27752d936295d5474669cf55))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency mkdocs-material to v9.6.6 ([#829](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F829), [`a00917e`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fa00917e14fafd28130970f985c15e490a4c7aa29))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency pyright to v1.1.395 ([#823](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F823), [`dbabc02`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fdbabc02c4e96c146fd4ef02c23b0bf4e9c85d326))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency pyright to v1.1.396 ([`9beb75d`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F9beb75de603a2515ec945132b94dd849761542e7))\n\n- **deps**: Update dependency pytest to v8.3.5 ([`d685c2f`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fd685c2f985a4bd0f0f3a8781ff88d3ca3471e88b))\n\n- **deps**: Update dependency python-semantic-release to v9.20.0 ([#810](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F810), [`7700e1d`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F7700e1d4054346dae237ccc08074a0aa951cf7e5))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency python-semantic-release to v9.21.0 ([#817](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F817), [`924d9cc`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F924d9cc827d3649f9a59eff0a4026b7cf3abe0a1))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency ruff to v0.9.7 ([#815](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F815), [`78ff12e`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F78ff12e95de2f57e9e1d145fd29f6a6a9719677a))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency ruff to v0.9.8 ([#824](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F824), [`8368927`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F8368927eb329776fedeeae9b3e619677fb5a5385))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency ruff to v0.9.9 ([#826](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F826), [`8d06eef`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F8d06eefc1b74f5a123541c438a46ca7da216b54e))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update dependency syrupy to v4.8.2 ([#816](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F816), [`1b9b33c`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F1b9b33c3cdd878b34950f7ce889b9f6f7907cb4e))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update pypa\u002Fgh-action-pypi-publish digest to 31b23f5 ([#814](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fpull\u002F814), [`d859358`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fd85935857804ef02a7c7e3e71853bcf4d32eb30c))\n\nCo-authored-by: renovate[bot] \u003C29139614+renovate[bot]@users.noreply.github.com>\n\n- **deps**: Update pypa\u002Fgh-action-pypi-publish digest to db8f07d ([#819](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGO","2025-03-02T18:12:55",{"id":239,"version":240,"summary_zh":241,"released_at":242},297933,"v0.54.0","## v0.54.0 (2025-02-16)\n\n### Chores\n\n- Update dependencies ([`e55ef6a`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002Fe55ef6af9b6803fdb1292ca62ad7195b2e9dc970))\n\n### Features\n\n- Add loading spinner ([`7d62aa7`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F7d62aa7345229601675077cf918b9232aaa8c2a9))\n\n- Stream response from ollama ([`4506a85`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F4506a85a03d1ec8ca7d975ac3a058c04f7dff757))\n\n### Refactoring\n\n- Extract enhance_results() ([`78472f2`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F78472f23521c8875bbb553ba5f182ddbfa2f2273))\n\n- Extract enhance_results() ([`0facb1b`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F0facb1b394e2b70ebc1c91fa55a9f95be4cfff40))\n\n- Extract get_prompt() ([`1091a1d`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F1091a1d8155ccc4544c38127e7b142d198562adc))\n\n---\n\n**Detailed Changes**: [v0.53.1...v0.54.0](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.53.1...v0.54.0)\n","2025-02-16T13:00:20",{"id":244,"version":245,"summary_zh":246,"released_at":247},297934,"v0.53.1","## v0.53.1 (2025-02-16)\n\n### Bug Fixes\n\n- **deps**: Update dependency deepmerge to v2 ([`5ac4059`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F5ac4059236032346c2206941901cf513aad3954c))\n\n### Chores\n\n- **deps**: Update ksxgithub\u002Fgithub-actions-deploy-aur action to v4.1.1 ([`932e649`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F932e6498dd7f4ad85dbf652f3cae600421e8d669))\n\n---\n\n**Detailed Changes**: [v0.53.0...v0.53.1](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.53.0...v0.53.1)\n","2025-02-16T11:15:34",{"id":249,"version":250,"summary_zh":251,"released_at":252},297935,"v0.53.0","## v0.53.0 (2025-02-16)\n\n### Features\n\n- Use existing formatting options for --generative ([`02abe94`](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcommit\u002F02abe946d534fb2c1af6ed38ce99ec370a1a02ce))\n\n---\n\n**Detailed Changes**: [v0.52.0...v0.53.0](https:\u002F\u002Fgithub.com\u002Fkantord\u002FSeaGOAT\u002Fcompare\u002Fv0.52.0...v0.53.0)\n","2025-02-16T09:33:51"]