[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Ataraxy-Labs--weave":3,"tool-Ataraxy-Labs--weave":61},[4,18,26,36,44,52],{"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 真正成长为懂上",147882,2,"2026-04-09T11:32:47",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,"2026-04-08T11:23:26",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":53,"name":54,"github_repo":55,"description_zh":56,"stars":57,"difficulty_score":10,"last_commit_at":58,"category_tags":59,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,60],"视频",{"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":104,"forks":105,"last_commit_at":106,"license":107,"difficulty_score":32,"env_os":108,"env_gpu":109,"env_ram":110,"env_deps":111,"category_tags":117,"github_topics":118,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":129,"updated_at":130,"faqs":131,"releases":162},5842,"Ataraxy-Labs\u002Fweave","weave","Entity-level semantic merge driver for Git. Resolves conflicts that git can't by understanding code structure via tree-sitter. 31\u002F31 clean merges vs git's 15\u002F31.","Weave 是一款专为 Git 设计的智能合并工具，旨在解决传统行级合并机制产生的大量“误报”冲突。在多人协作或 AI 代理共同开发时，即使不同开发者在同一文件中修改了完全独立的函数或代码块，Git 也常因行号重叠而报错，迫使人工介入。Weave 通过引入基于 tree-sitter 的语义分析技术，将合并粒度从“行”提升至“实体”（如函数、类、JSON 键等）。它能精准识别代码结构，自动合并互不干扰的变更，仅在真正存在逻辑冲突（如同一个函数被双方以不同方式修改）时才提示用户。\n\n实测数据显示，在 31 个真实场景测试中，Weave 实现了 100% 的无冲突合并率，远超 Git 的 48% 及其他同类工具。它特别适用于频繁进行分支合并的开发团队、使用多 AI 代理辅助编程的工程人员，以及希望减少机械性冲突解决时间的资深开发者。借助对 21 种编程语言的支持和清晰的冲突上下文提示，Weave 让代码合并过程更加流畅高效，帮助团队专注于核心逻辑而非繁琐的格式调整。","\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fbanner.svg\" alt=\"weave\" width=\"600\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  Resolves merge conflicts that Git can't by understanding code structure via tree-sitter.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Freleases\u002Flatest\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FAtaraxy-Labs\u002Fweave?color=blue&label=release\" alt=\"Release\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fformulae.brew.sh\u002Fformula\u002Fweave\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fhomebrew-weave-orange\" alt=\"Homebrew\">\u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Frust-stable-orange\" alt=\"Rust\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftests-124_passing-brightgreen\" alt=\"Tests\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-0.2.6-blue\" alt=\"Version\">\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-yellow\" alt=\"License\">\u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flanguages-21-blue\" alt=\"Languages\">\n\u003C\u002Fp>\n\n## The Problem\n\nGit merges by comparing **lines**. When two branches both add code to the same file — even to completely different functions — Git sees overlapping line ranges and declares a conflict:\n\n```\n\u003C\u003C\u003C\u003C\u003C\u003C\u003C HEAD\nexport function validateToken(token: string): boolean {\n    return token.length > 0 && token.startsWith(\"sk-\");\n}\n=======\nexport function formatDate(date: Date): string {\n    return date.toISOString().split('T')[0];\n}\n>>>>>>> feature-branch\n```\n\nThese are **completely independent changes**. There's no real conflict. But someone has to manually resolve it anyway.\n\nThis happens constantly when multiple AI agents work on the same codebase. Agent A adds a function, Agent B adds a different function to the same file, and Git halts everything for a human to intervene.\n\n## How Weave Fixes This\n\nWeave replaces Git's line-based merge with **entity-level merge**. Instead of diffing lines, it:\n\n1. Parses all three versions (base, ours, theirs) into semantic entities — functions, classes, JSON keys, etc. — using [tree-sitter](https:\u002F\u002Ftree-sitter.github.io\u002F)\n2. Matches entities across versions by identity (name + type + scope)\n3. Merges at the entity level:\n   - **Different entities changed** → auto-resolved, no conflict\n   - **Same entity changed by both** → attempts intra-entity merge, conflicts only if truly incompatible\n   - **One side modifies, other deletes** → flags a meaningful conflict\n\nThe same scenario above? Weave merges it cleanly with zero conflicts — both functions end up in the output.\n\n## Weave vs Git Merge\n\n| Scenario | Git (line-based) | Weave (entity-level) |\n|----------|-----------------|---------------------|\n| Two agents add different functions to same file | **CONFLICT** | Auto-resolved |\n| Agent A modifies `foo()`, Agent B adds `bar()` | **CONFLICT** (adjacent lines) | Auto-resolved |\n| Both agents modify the same function differently | CONFLICT | CONFLICT (with entity-level context) |\n| One agent modifies, other deletes same function | CONFLICT (cryptic diff) | CONFLICT: `function 'validateToken' (modified in ours, deleted in theirs)` |\n| Both agents add identical function | **CONFLICT** | Auto-resolved (identical content detected) |\n| Both agents add different properties to same object | **CONFLICT** | Auto-resolved |\n| Different JSON keys modified | **CONFLICT** | Auto-resolved |\n\nThe key difference: Git produces false conflicts on **independent changes** because they happen to be in the same file. Weave only conflicts on **actual semantic collisions** when two branches change the same entity incompatibly.\n\n## Weave vs Mergiraf\n\nTested on 31 real-world merge scenarios across Python, TypeScript, Rust, Go, Java, and C:\n\n| Tool | Clean Merges | Score |\n|------|-------------|-------|\n| **Weave** | **31\u002F31** | 100% |\n| Mergiraf (v0.16.3) | 26\u002F31 | 83% |\n| Git | 15\u002F31 | 48% |\n\nMergiraf fails on both-add-at-end-of-file, insert-between-existing, and decorator conflict scenarios. Weave resolves all of these because it operates at entity granularity (functions, classes, methods) rather than AST node level. Full breakdown at [ataraxy-labs.github.io\u002Fweave](https:\u002F\u002Fataraxy-labs.github.io\u002Fweave\u002F).\n\n## Real-World Benchmarks\n\nTested on real merge commits from major open-source repositories. For each merge commit, we replay the merge with both Git and Weave, then compare against the human-authored result.\n\n- **Wins**: Merge commits where Git conflicted but Weave resolved cleanly\n- **Regressions**: Cases where Weave introduced errors (0 across all repos)\n- **Human Match**: How often Weave's output exactly matches what the human wrote\n- **Resolution Rate**: Percentage of all merge commits Weave resolved vs total attempted\n\n| Repository | Language | Merge Commits | Wins | Regressions | Human Match | Resolution |\n|------------|----------|---------------|------|-------------|-------------|------------|\n| [git\u002Fgit](https:\u002F\u002Fgithub.com\u002Fgit\u002Fgit) | C | 1319 | 39 | 0 | 64% | 13% |\n| [Flask](https:\u002F\u002Fgithub.com\u002Fpallets\u002Fflask) | Python | 56 | 14 | 0 | 57% | 54% |\n| [CPython](https:\u002F\u002Fgithub.com\u002Fpython\u002Fcpython) | C\u002FPython | 256 | 7 | 0 | 29% | 13% |\n| [Go](https:\u002F\u002Fgithub.com\u002Fgolang\u002Fgo) | Go | 1247 | 19 | 0 | 58% | 28% |\n| [TypeScript](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FTypeScript) | TypeScript | 2000 | 65 | 0 | 6% | 23% |\n\nZero regressions across all repositories. Every \"win\" is a place where a developer had to manually resolve a false conflict that Weave handles automatically.\n\n## Conflict Markers\n\nWhen a real conflict occurs, weave gives you context that Git doesn't:\n\n```\n\u003C\u003C\u003C\u003C\u003C\u003C\u003C ours — function `process` (both modified)\nexport function process(data: any) {\n    return JSON.stringify(data);\n}\n=======\nexport function process(data: any) {\n    return data.toUpperCase();\n}\n>>>>>>> theirs — function `process` (both modified)\n```\n\nYou immediately know: what entity conflicted, what type it is, and why it conflicted.\n\n## Supported Languages\n\nTypeScript, TSX, JavaScript, Python, Go, Rust, Java, C, C++, Ruby, C#, PHP, Swift, Kotlin, Elixir, Bash, HCL\u002FTerraform, Fortran, Vue, XML, ERB, JSON, YAML, TOML, CSV, Markdown. Falls back to standard line-level merge for unsupported file types.\n\n## Install\n\n```bash\nbrew install weave\n```\n\nOr build from source (requires Rust):\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\ncd weave\ncargo install --path crates\u002Fweave-cli\ncargo install --path crates\u002Fweave-driver\n```\n\n## Setup\n\nIn any Git repo:\n\n```bash\nweave setup\n```\n\nThis configures Git to use weave for all supported file types. Then use `git merge` as normal.\n\nTo revert back to normal git merging:\n\n```bash\nweave unsetup\n```\n\nTo set up for just yourself (without modifying `.gitattributes`), use `.git\u002Finfo\u002Fattributes` instead:\n\n```bash\ngit config merge.weave.name \"Entity-level semantic merge\"\ngit config merge.weave.driver \"weave-driver %O %A %B %L %P\"\ncat >> .git\u002Finfo\u002Fattributes \u003C\u003C 'EOF'\n*.ts merge=weave\n*.tsx merge=weave\n*.js merge=weave\n*.py merge=weave\n*.go merge=weave\n*.rs merge=weave\n*.java merge=weave\n*.c merge=weave\n*.cpp merge=weave\n*.rb merge=weave\n*.cs merge=weave\nEOF\n```\n\n## Jujutsu (jj)\n\nAdd to your jj config (`jj config edit --user`):\n\n```toml\n[merge-tools.weave]\nprogram = \"weave-driver\"\nmerge-args = [\"$base\", \"$left\", \"$right\", \"-o\", \"$output\", \"-l\", \"$marker_length\", \"-p\", \"$path\"]\nmerge-conflict-exit-codes = [1]\nmerge-tool-edits-conflict-markers = true\nconflict-marker-style = \"git\"\n```\n\nResolve conflicts with `jj resolve --tool weave`, or set as default:\n\n```bash\njj config set --user ui.merge-editor \"weave\"\n```\n\n## Preview\n\nDry-run a merge to see what weave would do:\n\n```bash\nweave-cli preview feature-branch\n```\n\n```\n  src\u002Futils.ts — auto-resolved\n    unchanged: 2, added-ours: 1, added-theirs: 1\n  src\u002Fapi.ts — 1 conflict(s)\n    ✗ function `process`: both modified\n\n✓ Merge would be clean (1 file(s) auto-resolved by weave)\n```\n\n## Architecture\n\n```\nweave-core       # Library: entity extraction, 3-way merge algorithm, reconstruction\nweave-driver     # Git merge driver binary (called by git via %O %A %B %L %P)\nweave-cli        # CLI: `weave setup` and `weave preview`\n```\n\nUses [sem-core](https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fsem) for entity extraction via tree-sitter grammars.\n\n## How It Works\n\n```\n         base\n        \u002F    \\\n     ours    theirs\n        \\    \u002F\n       weave merge\n```\n\n1. **Parse** all three versions into semantic entities via tree-sitter\n2. **Extract regions** — alternating entity and interstitial (imports, whitespace) segments\n3. **Match entities** across versions by ID (file:type:name:parent)\n4. **Resolve** each entity: one-side-only changes win, both-changed attempts intra-entity 3-way merge\n5. **Reconstruct** file from merged regions, preserving ours-side ordering\n6. **Fallback** to line-level merge for files >1MB, binary files, or unsupported types\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FAtaraxy-Labs_weave_readme_3ff13989dfbe.png)](https:\u002F\u002Fstar-history.com\u002F#Ataraxy-Labs\u002Fweave&Date)\n","\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fbanner.svg\" alt=\"weave\" width=\"600\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  通过 tree-sitter 理解代码结构，解决 Git 无法处理的合并冲突。\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Freleases\u002Flatest\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FAtaraxy-Labs\u002Fweave?color=blue&label=release\" alt=\"Release\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fformulae.brew.sh\u002Fformula\u002Fweave\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fhomebrew-weave-orange\" alt=\"Homebrew\">\u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Frust-stable-orange\" alt=\"Rust\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftests-124_passing-brightgreen\" alt=\"Tests\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-0.2.6-blue\" alt=\"Version\">\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-yellow\" alt=\"License\">\u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flanguages-21-blue\" alt=\"Languages\">\n\u003C\u002Fp>\n\n## 问题所在\n\nGit 是基于 **行** 来进行合并的。当两个分支同时向同一文件添加代码——即使是在完全不同的函数中——Git 会检测到行范围重叠，并标记为冲突：\n\n```\n\u003C\u003C\u003C\u003C\u003C\u003C\u003C HEAD\nexport function validateToken(token: string): boolean {\n    return token.length > 0 && token.startsWith(\"sk-\");\n}\n=======\nexport function formatDate(date: Date): string {\n    return date.toISOString().split('T')[0];\n}\n>>>>>>> feature-branch\n```\n\n这些其实是 **完全独立的更改**，并不存在真正的冲突。然而，仍然需要人工介入来解决这个问题。\n\n这种情况在多个 AI 代理共同协作开发同一代码库时尤为常见：代理 A 添加了一个函数，代理 B 又在同一文件中添加了另一个不同的函数，结果 Git 就会暂停合并流程，等待人工干预。\n\n## Weave 如何解决这一问题\n\nWeave 用 **实体级合并** 替代了 Git 的基于行的合并方式。它不再逐行对比差异，而是：\n\n1. 使用 [tree-sitter](https:\u002F\u002Ftree-sitter.github.io\u002F) 将三个版本（基准、我们的、他们的）解析为语义实体——如函数、类、JSON 键等；\n2. 通过实体的标识（名称 + 类型 + 作用域）匹配不同版本中的对应实体；\n3. 在实体级别进行合并：\n   - 如果是 **不同实体被修改**，则自动解决，无冲突；\n   - 如果是 **同一实体被双方修改**，则尝试在实体内部进行合并，只有真正不兼容时才会产生冲突；\n   - 如果一方修改而另一方删除了该实体，则会标记为有意义的冲突。\n\n以刚才的例子为例，Weave 能够干净地完成合并，无需任何冲突处理——最终输出中会同时包含这两个函数。\n\n## Weave 与 Git 合并对比\n\n| 场景 | Git（基于行） | Weave（基于实体） |\n|----------|-----------------|---------------------|\n| 两个代理向同一文件添加不同函数 | **冲突** | 自动解决 |\n| 代理 A 修改 `foo()`，代理 B 添加 `bar()` | **冲突**（相邻行） | 自动解决 |\n| 两代理分别以不同方式修改同一个函数 | 冲突 | 冲突（结合实体上下文） |\n| 一方修改，另一方删除同一函数 | 冲突（难以理解的差异） | 冲突：`function 'validateToken' (modified in ours, deleted in theirs)` |\n| 两代理添加完全相同的函数 | **冲突** | 自动解决（检测到内容相同） |\n| 两代理向同一对象添加不同属性 | **冲突** | 自动解决 |\n| 不同 JSON 键被修改 | **冲突** | 自动解决 |\n\n关键区别在于：Git 会对 **独立的更改** 产生误报冲突，仅仅因为这些更改发生在同一文件中。而 Weave 只会在两个分支对同一实体进行了 **不兼容的修改** 时才会产生真正的冲突。\n\n## Weave 与 Mergiraf 对比\n\n我们在 Python、TypeScript、Rust、Go、Java 和 C 语言的 31 个真实世界合并场景上进行了测试：\n\n| 工具 | 干净合并数 | 分数 |\n|------|-------------|-------|\n| **Weave** | **31\u002F31** | 100% |\n| Mergiraf (v0.16.3) | 26\u002F31 | 83% |\n| Git | 15\u002F31 | 48% |\n\nMergiraf 在“双方都在文件末尾添加”、“在现有代码之间插入”以及“装饰器冲突”等场景下均未能正确处理。而 Weave 由于其操作粒度更细（函数、类、方法），而非仅限于 AST 节点层面，因此能够完美解决这些问题。完整分析请参见 [ataraxy-labs.github.io\u002Fweave](https:\u002F\u002Fataraxy-labs.github.io\u002Fweave\u002F)。\n\n## 实际应用基准测试\n\n我们使用来自大型开源项目的实际合并提交进行了测试。对于每个合并提交，我们分别用 Git 和 Weave 重新执行合并操作，并与人工编写的最终结果进行对比。\n\n- **胜出**：指 Git 标记为冲突但 Weave 却能干净解决的合并提交；\n- **退化**：指 Weave 导致错误的情况（所有仓库中均为 0）；\n- **与人工一致率**：Weave 的输出与人工编写的内容完全一致的比例；\n- **解决率**：Weave 成功解决的合并提交占总尝试数量的百分比。\n\n| 仓库 | 语言 | 合并提交数 | 胜出 | 退化 | 与人工一致率 | 解决率 |\n|------------|----------|---------------|------|-------------|-------------|------------|\n| [git\u002Fgit](https:\u002F\u002Fgithub.com\u002Fgit\u002Fgit) | C | 1319 | 39 | 0 | 64% | 13% |\n| [Flask](https:\u002F\u002Fgithub.com\u002Fpallets\u002Fflask) | Python | 56 | 14 | 0 | 57% | 54% |\n| [CPython](https:\u002F\u002Fgithub.com\u002Fpython\u002Fcpython) | C\u002FPython | 256 | 7 | 0 | 29% | 13% |\n| [Go](https:\u002F\u002Fgithub.com\u002Fgolang\u002Fgo) | Go | 1247 | 19 | 0 | 58% | 28% |\n| [TypeScript](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FTypeScript) | TypeScript | 2000 | 65 | 0 | 6% | 23% |\n\n所有仓库中均未出现退化情况。每一次“胜出”都意味着开发者原本需要手动解决的误报冲突，现在都可以由 Weave 自动处理。\n\n## 冲突标记\n\n当确实发生冲突时，Weave 会提供 Git 所不具备的上下文信息：\n\n```\n\u003C\u003C\u003C\u003C\u003C\u003C\u003C ours — function `process` (both modified)\nexport function process(data: any) {\n    return JSON.stringify(data);\n}\n=======\nexport function process(data: any) {\n    return data.toUpperCase();\n}\n>>>>>>> theirs — function `process` (both modified)\n```\n\n这样你就能立刻明白：是哪个实体发生了冲突、它属于什么类型，以及为什么会发生冲突。\n\n## 支持的语言\n\nTypeScript、TSX、JavaScript、Python、Go、Rust、Java、C、C++、Ruby、C#、PHP、Swift、Kotlin、Elixir、Bash、HCL\u002FTerraform、Fortran、Vue、XML、ERB、JSON、YAML、TOML、CSV、Markdown。对于不支持的文件类型，将回退到标准的基于行的合并方式。\n\n## 安装\n\n```bash\nbrew install weave\n```\n\n或者从源码构建（需安装 Rust）：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\ncd weave\ncargo install --path crates\u002Fweave-cli\ncargo install --path crates\u002Fweave-driver\n```\n\n## 设置\n\n在任何 Git 仓库中：\n\n```bash\nweave setup\n```\n\n这会配置 Git，使其对所有支持的文件类型使用 weave 进行合并。之后即可像平常一样使用 `git merge`。\n\n若要恢复为普通的 Git 合并方式：\n\n```bash\nweave unsetup\n```\n\n如果只想为自己设置（而不修改 `.gitattributes` 文件），可以使用 `.git\u002Finfo\u002Fattributes` 文件：\n\n```bash\ngit config merge.weave.name \"实体级语义合并\"\ngit config merge.weave.driver \"weave-driver %O %A %B %L %P\"\ncat >> .git\u002Finfo\u002Fattributes \u003C\u003C 'EOF'\n*.ts merge=weave\n*.tsx merge=weave\n*.js merge=weave\n*.py merge=weave\n*.go merge=weave\n*.rs merge=weave\n*.java merge=weave\n*.c merge=weave\n*.cpp merge=weave\n*.rb merge=weave\n*.cs merge=weave\nEOF\n```\n\n## Jujutsu (jj)\n\n将以下内容添加到你的 jj 配置文件中（运行 `jj config edit --user`）：\n\n```toml\n[merge-tools.weave]\nprogram = \"weave-driver\"\nmerge-args = [\"$base\", \"$left\", \"$right\", \"-o\", \"$output\", \"-l\", \"$marker_length\", \"-p\", \"$path\"]\nmerge-conflict-exit-codes = [1]\nmerge-tool-edits-conflict-markers = true\nconflict-marker-style = \"git\"\n```\n\n使用 `jj resolve --tool weave` 解决冲突，或者将其设置为默认工具：\n\n```bash\njj config set --user ui.merge-editor \"weave\"\n```\n\n## 预览\n\n通过干运行合并来查看 weave 将会如何操作：\n\n```bash\nweave-cli preview feature-branch\n```\n\n```\n  src\u002Futils.ts — 自动解决\n    未更改：2 处，我们新增：1 处，他们新增：1 处\n  src\u002Fapi.ts — 1 处冲突\n    ✗ 函数 `process`：双方均进行了修改\n\n✓ 合并结果干净（1 个文件已由 weave 自动解决）\n```\n\n## 架构\n\n```\nweave-core       # 库：实体提取、三路合并算法、重构\nweave-driver     # Git 合并驱动程序二进制文件（由 Git 通过 %O %A %B %L %P 调用）\nweave-cli        # 命令行工具：`weave setup` 和 `weave preview`\n```\n\n它使用 [sem-core](https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fsem) 通过 tree-sitter 语法解析器进行实体提取。\n\n## 工作原理\n\n```\n         base\n        \u002F    \\\n     ours    theirs\n        \\    \u002F\n       weave merge\n```\n\n1. **解析**：通过 tree-sitter 将三个版本解析为语义实体。\n2. **提取区域**：交替提取实体和间隙（如导入语句、空白字符）段落。\n3. **匹配实体**：根据 ID（文件:类型:名称:父节点）在不同版本之间匹配实体。\n4. **解决冲突**：单方修改的实体优先保留；双方均修改的实体则尝试进行实体内部的三路合并。\n5. **重构文件**：根据合并后的区域重建文件，并保持我们侧的顺序。\n6. **回退机制**：对于大于 1MB 的文件、二进制文件或不支持的文件类型，回退到行级合并。\n\n## 星标历史\n\n[![星标历史图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FAtaraxy-Labs_weave_readme_3ff13989dfbe.png)](https:\u002F\u002Fstar-history.com\u002F#Ataraxy-Labs\u002Fweave&Date)","# Weave 快速上手指南\n\nWeave 是一款基于语义理解的 Git 合并工具，利用 tree-sitter 解析代码结构（如函数、类、JSON 键等），自动解决传统 Git 因“行级对比”而产生的误报冲突。特别适用于多 AI Agent 协作或多人开发场景。\n\n## 环境准备\n\n*   **操作系统**：macOS, Linux, Windows (WSL)\n*   **前置依赖**：\n    *   **Git**：已安装并配置好基础环境。\n    *   **Rust**（仅源码编译时需要）：若使用包管理器安装则无需手动安装。\n*   **支持语言**：TypeScript, JavaScript, Python, Go, Rust, Java, C\u002FC++, Ruby, C#, PHP, Swift, Kotlin, JSON, YAML 等 21 种主流语言及配置文件。不支持的语言将自动回退到标准行级合并。\n\n## 安装步骤\n\n### 方式一：使用 Homebrew（推荐 macOS\u002FLinux 用户）\n```bash\nbrew install weave\n```\n\n### 方式二：从源码构建（需 Rust 环境）\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\ncd weave\ncargo install --path crates\u002Fweave-cli\ncargo install --path crates\u002Fweave-driver\n```\n\n> **注意**：目前官方未提供国内镜像源，如遇网络问题，请配置 Rust\u002FCargo 国内镜像加速构建过程。\n\n## 基本使用\n\n### 1. 初始化配置\n在任意 Git 仓库根目录下运行以下命令，Weave 会自动配置 Git 以对其支持的文件类型启用语义合并：\n\n```bash\nweave setup\n```\n\n*此操作会修改 `.gitattributes` 文件。若仅需当前用户生效而不修改仓库配置，可参考 README 中的 `.git\u002Finfo\u002Fattributes` 手动配置方案。*\n\n### 2. 执行合并\n配置完成后，正常使用 Git 合并命令即可，Weave 会自动介入处理：\n\n```bash\ngit merge feature-branch\n```\n\n*   **无冲突场景**：若两个分支修改了同一文件的不同函数或对象属性，Weave 将自动合并，无需人工干预。\n*   **真实冲突场景**：若同一实体（如同一个函数）被双方不同地修改，Weave 会生成带有明确语义上下文的冲突标记（例如注明 `function 'process' (both modified)`），便于快速定位。\n\n### 3. 预览合并结果（可选）\n在实际合并前，可先干跑（dry-run）查看 Weave 的处理预期：\n\n```bash\nweave-cli preview feature-branch\n```\n\n**输出示例：**\n```text\n  src\u002Futils.ts — auto-resolved\n    unchanged: 2, added-ours: 1, added-theirs: 1\n  src\u002Fapi.ts — 1 conflict(s)\n    ✗ function `process`: both modified\n\n✓ Merge would be clean (1 file(s) auto-resolved by weave)\n```\n\n### 4. 撤销配置\n如需恢复为原生 Git 合并行为：\n\n```bash\nweave unsetup\n```","某初创团队正在利用多个 AI 智能体并行开发一个 TypeScript 后端服务，Agent A 负责添加用户认证逻辑，Agent B 同时向同一文件注入数据格式化函数。\n\n### 没有 weave 时\n- Git 仅基于行号对比，检测到两个新函数在文件中的插入位置相邻，误判为代码重叠并抛出合并冲突。\n- 开发人员被迫中断自动化流水线，手动打开冲突文件，逐行检查本无关联的代码块以确认安全性。\n- 面对 AI 生成的重复样板代码或完全独立的函数定义，开发者需花费大量时间进行机械式的“接受当前”或“接受传入”操作。\n- 频繁的误报冲突导致团队对 AI 自动合并失去信任，最终退回到保守的单线程开发模式，严重拖慢迭代速度。\n\n### 使用 weave 后\n- weave 利用 tree-sitter 解析代码语义，识别出两个新增内容为独立的函数实体（Entity），直接自动完成合并且零冲突。\n- 流水线全程无需人工干预，即使多个 Agent 同时向同一文件追加不同类或方法，也能流畅集成所有变更。\n- 当出现真正的语义冲突（如双方修改了同一个函数的内部逻辑）时，weave 会精准报错并指明具体函数名，而非展示晦涩的行级差异。\n- 团队成功实现全自动化多智能体协作，将原本需要数小时的人工合并核对时间缩短至秒级，显著提升交付效率。\n\nweave 通过将合并粒度从“行”提升至“代码实体”，彻底消除了因物理位置相邻而产生的虚假冲突，让 Git 真正理解代码结构。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FAtaraxy-Labs_weave_a97bdb04.png","Ataraxy-Labs","Ataraxy Labs Inc.","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FAtaraxy-Labs_fba65867.png","We are building software for agents.",null,"rohan@ataraxy-labs.com","ataraxy-labs.com","https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs",[81,85,89,93,96,100],{"name":82,"color":83,"percentage":84},"Rust","#dea584",96,{"name":86,"color":87,"percentage":88},"TypeScript","#3178c6",3.5,{"name":90,"color":91,"percentage":92},"Ruby","#701516",0.2,{"name":94,"color":95,"percentage":92},"CSS","#663399",{"name":97,"color":98,"percentage":99},"Dockerfile","#384d54",0.1,{"name":101,"color":102,"percentage":103},"JavaScript","#f1e05a",0,873,21,"2026-04-08T14:12:19","Apache-2.0","macOS, Linux, Windows","不需要 GPU","未说明",{"notes":112,"python":113,"dependencies":114},"该工具是基于 Rust 编写的命令行工具，不依赖 Python 或 GPU。主要通过 Homebrew (macOS\u002FLinux) 安装，或通过 Cargo 从源码编译。支持通过 git merge driver 集成到 Git 工作流中，也支持 Jujutsu (jj) 版本控制系统。对于不支持的文件类型或大于 1MB 的文件，会自动回退到标准的行级合并。","不需要 Python",[115,116],"Rust (stable)","tree-sitter (via sem-core)",[13],[119,120,121,122,123,124,125,126,127,128],"ai-agents","conflict-resolution","developer-tools","git","mcp","merge","merge-driver","rust","tree-sitter","semantic-merge","2026-03-27T02:49:30.150509","2026-04-09T21:08:17.664390",[132,137,142,147,152,157],{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},26504,"Weave 是否支持 Windows 系统？","是的，现已发布 Windows 版本的构建产物（artifacts）。Windows 用户可以与 Linux 和 macOS 用户一样下载并使用 Weave。","https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fissues\u002F41",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},26505,"在 Git 中配置 Weave 时，是否需要手动设置 `conflictStyle = diff3` 或 `zdiff3`？","不需要。Git 的 `conflictStyle` 设置对 Weave 没有影响，因为 Weave 接收的是三个独立的干净文件版本（%O %A %B），并不解析冲突标记。该设置仅适用于 Git 内置的合并工具。\n- Weave 在发生冲突时默认输出包含基准部分（base section）的 diff3 风格标记。\n- 对于 Jujutsu (jj)，Weave 会输出标准标记以便 jj 解析。\n您可以将 `conflictStyle` 设置为任何您喜欢的值，它不会干扰 Weave 的工作。","https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fissues\u002F31",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},26506,"如何快速安装和设置 Weave？","安装和设置步骤已简化：\n1. 使用 Homebrew 安装：\n   ```bash\n   brew install weave\n   ```\n2. 在任何仓库中运行设置命令：\n   ```bash\n   weave setup\n   ```\n如果您不想修改全局的 `.gitattributes` 文件，可以使用仅限本地的设置路径（它会使用 `.git\u002Finfo\u002Fattributes`）。","https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fissues\u002F20",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},26507,"当 JSON 文件末尾添加多行并与其他修改合并时，为什么会出现无效的 JSON 输出？","这是一个已修复的 bug（版本 0.2.6 之前）。问题原因是当一方在末尾连续添加多个实体时，重建逻辑只插入了一层链式添加，导致后续新增行被遗漏在闭合括号之外。\n修复方案：维护者已更新 `reconstruct.rs`，现在在插入仅属于对方的实体后，会检查是否有更多后续实体并持续插入，确保所有新行都被正确包含在定界符内。请升级到最新版本以解决此问题。","https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fissues\u002F36",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},26508,"函数内部的细微差异导致整个函数被标记为冲突，难以解决，如何处理？","该问题已修复。现在冲突标记的范围已缩小至仅包含实际差异的行。\n- 共同的前缀和后缀行将作为干净文本显示在冲突标记之外。\n- 只有真正发生变化的代码行会被包裹在 `\u003C\u003C\u003C\u003C\u003C\u003C\u003C` 和 `>>>>>>>` 标记中。\n这使得冲突解决更加直观，无需处理大量未变更的代码上下文。","https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fissues\u002F22",{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},26509,"Weave 有计划支持 Java 语言吗？","是的，项目团队正在考虑或已经着手进行对 Java 的支持。具体进度建议关注项目的最新发布公告或路线图更新。","https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fissues\u002F14",[163,168,173,178,183,188,193,198,203,208,213,218,223,228,233,238,243,248],{"id":164,"version":165,"summary_zh":166,"released_at":167},171733,"v0.2.7","## 变更内容\n* docs(readme): 由 @kallevmercury 在 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F34 中修复了本地 .gitattributes 示例\n* 在 \u002Fsite 目录下，由 @dependabot[bot] 将 @types\u002Fnode 从 25.2.3 升级至 25.3.5，详见 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F33\n* 在 \u002Fsite 目录下，由 @dependabot[bot] 将 @types\u002Fnode 从 25.3.5 升级至 25.5.0，详见 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F40\n* 在 \u002Fsite 目录下，由 @dependabot[bot] 将 next 从 16.1.6 升级至 16.1.7，详见 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F39\n* 由 @dependabot[bot] 将 actions\u002Fdownload-artifact 从 8.0.0 升级至 8.0.1，详见 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F38\n* 由 @dependabot[bot] 将 softprops\u002Faction-gh-release 从 2.5.0 升级至 2.6.1，详见 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F37\n\n## 新贡献者\n* @kallevmercury 在 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F34 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fcompare\u002Fv0.2.6...v0.2.7","2026-04-02T15:25:55",{"id":169,"version":170,"summary_zh":171,"released_at":172},171734,"v0.2.6","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fcompare\u002Fv0.2.5...v0.2.6","2026-03-19T16:27:15",{"id":174,"version":175,"summary_zh":176,"released_at":177},171735,"v0.2.5","修复 impl 块名称冲突，将 sem-core 版本升级至 0.3.10\n\n- 在 sem-core 0.3.9 中，针对同一 trait 但不同类型的 Rust impl 块（例如 `impl Stream for Foo` 和 `impl Stream for Bar`）都会被命名为“Stream”，导致在合并时其中一个会被静默丢弃。\n- sem-core 0.3.10 会读取完整的 impl 签名，为每个 impl 块分配唯一的实体 ID。\n- 添加了针对同 trait 不同类型 impl 块的回归测试。\n- 为 weave、weave-driver 和 weave-mcp 添加了 `--version` 标志。\n- 更新支持的语言至 21 种（新增 ERB）。 \n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fcompare\u002Fv0.2.4...v0.2.5","2026-03-19T00:38:02",{"id":179,"version":180,"summary_zh":181,"released_at":182},171736,"v0.2.4","## 新增功能\n\n- **jj 的 diff3 冲突标记**：标准标记输出现在包含 `||||||| base` 部分，修复了在与 `jj resolve --tool weave` 一起使用时出现的“未生成有效冲突标记”错误。\n- **多行导入合并**：支持处理多行导入块（例如跨行的 `import { type a, type b } from \".\u002Ffoo\"`），并将导入说明符作为集合进行合并。\n- **README**：新增 jj 配置部分和 mergiraf 对比表。\n\n## 变更内容\n* 杂项：由 @reneleonhardt 在 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F17 中更新依赖项。\n* 将 `\u002Fsite` 中的 `@types\u002Fnode` 从 24.12.0 升级到 25.2.3，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F25 中完成。\n* 将 `\u002Fsite` 中的 `react-dom` 从 19.1.0 升级到 19.2.4，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F27 中完成。\n* 将 `\u002Fsite` 中的 `tailwindcss` 从 4.1.18 升级到 4.2.1，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F28 中完成。\n\n## 新贡献者\n* @reneleonhardt 在 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F17 中做出了首次贡献。\n* @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F25 中做出了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fcompare\u002Fv0.2.3...v0.2.4","2026-03-15T17:35:05",{"id":184,"version":185,"summary_zh":186,"released_at":187},171737,"v0.2.3","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fcompare\u002Fv0.2.2...v0.2.3","2026-03-09T09:18:52",{"id":189,"version":190,"summary_zh":191,"released_at":192},171738,"v0.2.2","已将半核心依赖更新至 v0.3.7，带来以下改进：\n\n- Vue 单文件组件支持（模板、脚本、样式块的提取）\n- 所有语言中的嵌套函数提取\n- Swift、Elixir 和 Bash 语言支持\n- 共新增 6 个语言解析器\n\n所有 121 个测试均已通过。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fcompare\u002Fv0.2.1...v0.2.2","2026-03-08T19:33:51",{"id":194,"version":195,"summary_zh":196,"released_at":197},171739,"v0.2.1","### 新增语言支持\n- `weave setup` 支持的文件扩展名中新增 **Elixir**（.ex、.exs）和 **Bash**（.sh）\n- 由 sem-core v0.3.5 提供支持，该版本为这两种语言增加了实体提取功能\n- 现已支持 16 种语言\n\n### 完整语言列表\nTypeScript、TSX、JavaScript、Python、Go、Rust、Java、C、C++、Ruby、C#、PHP、Fortran、Swift、Elixir、Bash\n\n## 变更内容\n* chore：添加对更多文件扩展名的支持，由 @macno 在 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F13 中完成\n\n## 新贡献者\n* @macno 在 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F13 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fcompare\u002Fv0.2.0...v0.2.1","2026-03-07T02:50:40",{"id":199,"version":200,"summary_zh":201,"released_at":202},171740,"v0.2.0","## 变更内容\n* 修复：@hobostay 在 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F12 中解决了 Clippy 警告问题\n\n## 新贡献者\n* @hobostay 在 https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fpull\u002F12 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fcompare\u002Fv0.1.9...v0.2.0","2026-03-04T03:40:27",{"id":204,"version":205,"summary_zh":206,"released_at":207},171741,"v0.1.9","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fcompare\u002Fv0.1.8...v0.1.9","2026-03-03T06:34:59",{"id":209,"version":210,"summary_zh":211,"released_at":212},171742,"v0.1.8","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave\u002Fcompare\u002Fv0.1.7...v0.1.8","2026-02-25T00:20:55",{"id":214,"version":215,"summary_zh":216,"released_at":217},171743,"v0.1.7","- Git merge-file fallback and indentation-heuristic retry for inner merge\n- Optimize filter_nested_entities, raise duplicate threshold, safer cleanup\n- Add struct to container types, fix Go method names, fix MCP claim type\n- Add weave-github crate: GitHub App for entity-level PR merge analysis","2026-02-22T00:42:44",{"id":219,"version":220,"summary_zh":221,"released_at":222},171744,"v0.1.6","Fix: interstitial conflicts no longer silently embedded as raw markers\n\n- `merge_interstitials` now creates proper `EntityConflict` when diffy fails\n- `is_clean()` scans content for conflict markers as defense-in-depth\n- Guard against pre-conflicted input (AU\u002FAA conflicts from git)\n- 118 tests passing","2026-02-16T08:58:55",{"id":224,"version":225,"summary_zh":226,"released_at":227},171745,"v0.1.5","Version bump, all crates at 0.1.5","2026-02-15T19:03:14",{"id":229,"version":230,"summary_zh":231,"released_at":232},171746,"v0.1.4","## What's new\n\n- **Tree-sitter child entity merge**: Inner entity merge now uses sem-core's tree-sitter child entities instead of an indentation heuristic. Method boundaries inside classes\u002Fimpls\u002Ftraits are exact across all 13 supported languages.\n- **Scoped conflicts**: When both branches modify the same class, conflicts wrap only the affected method, not the entire class.\n- **Decorator\u002Fannotation handling**: Leading decorators, annotations, and doc comments are correctly attached to their methods during inner merge.\n- **MIT\u002FApache-2.0 dual license**\n\n## Benchmarks\n\nZero regressions on git\u002Fgit (500 merges, 1319 files), CPython, Flask, TypeScript compiler, and Go. 39 weave wins on git\u002Fgit (25 match human resolution, 64%).\n\n## Languages with child entity merge\n\nJava, TypeScript, TSX, JavaScript, Python, Rust, Go, C, C++, Ruby, C#, PHP, Fortran","2026-02-15T06:40:51",{"id":234,"version":235,"summary_zh":236,"released_at":237},171747,"v0.1.3","## What's new\n\n### Bug fixes (from GitButler discussion feedback)\n- **Scoped inner merge conflicts**: Inner entity merge now emits per-member conflict markers instead of wrapping the entire class. A conflict in one method no longer blocks clean merge of other methods.\n- **Member name extraction**: Fixed Java\u002FC\u002FGo method name extraction (`public int add(...)` was mapping to \"int\" instead of \"add\"), causing data loss in inner merge.\n- **Import blank line preservation**: Commutative import merge no longer drops the blank line separator between imports and the first entity.\n\n### New features\n- **`bench-repo` command**: Benchmark weave against real merge commits in any git repo. Compares weave vs git vs human for each file touched by both branches.\n- **`--save \u003Cdir>` flag**: Save interesting cases (wins, diffs, regressions) as test fixtures with base\u002Fours\u002Ftheirs\u002Fhuman\u002Fweave files plus a `results.json` manifest.\n\n### Real-world benchmark results (v0.1.3)\n\n| Repo | Lang | Files | Wins | Regr | Human Match | Resolution |\n|------|------|-------|------|------|-------------|------------|\n| git\u002Fgit | C | 1319 | 39 | 0 | 64% | 13% |\n| Flask | Python | 56 | 14 | 0 | 57% | 54% |\n| CPython | C\u002FPy | 256 | 7 | 0 | 29% | 13% |\n| Go | Go | 1247 | 19 | 0 | 58% | 28% |\n| TypeScript | TS | 1639 | 4 | 3 | 75% | 4% |\n\n**83 weave wins across 4,517 files tested, 3 regressions (TypeScript only).**\n\nEvery \"win\" is a file where git produced conflict markers and weave merged cleanly. 59% of clean merges match the human's manual resolution exactly.","2026-02-15T00:58:54",{"id":239,"version":240,"summary_zh":241,"released_at":242},171748,"v0.1.2","Fix rename\u002Frename conflict detection.\n\n- **Rename\u002Frename conflicts**: when both branches rename the same entity to different names (e.g. `Source` → `Source1` vs `Source` → `BSource`), weave now correctly flags this as a conflict instead of silently keeping both versions. New `RenameRename` conflict kind with clear markers.\n- **Body hash rename detection**: renamed entities are now matched using a name-stripped body hash with word-boundary awareness, instead of `structural_hash` which included the entity name. Works across all 13 supported languages.\n- **`replace_at_word_boundaries`**: utility for precise name replacement without substring false matches (e.g. won't replace `get` inside `getAll`).\n\n108 tests passing, benchmark 31\u002F31 clean (100%) vs git 15\u002F31 (48%).\n\nReported by [@nshcr](https:\u002F\u002Fgithub.com\u002Fnshcr) in [gitbutlerapp\u002Fgitbutler#12274](https:\u002F\u002Fgithub.com\u002Fgitbutlerapp\u002Fgitbutler\u002Fdiscussions\u002F12274).","2026-02-12T16:40:14",{"id":244,"version":245,"summary_zh":246,"released_at":247},171749,"v0.1.1","Resolution hints, summary command, merge summary MCP tool.\n\n- **Resolution hints**: each ConGra conflict type now carries a human-readable hint inside conflict markers (e.g. \"Logic changed on both sides. Requires understanding intent of each change.\")\n- **`weave summary` CLI command**: parse weave conflict markers into structured output with `--json` support\n- **`weave_merge_summary` MCP tool**: 15th MCP tool, returns structured JSON conflict summaries for agents\n- **`parse_weave_conflicts()`**: new public function in weave-core to parse conflict markers back into structured data\n- **Website fix**: updated MCP tool count from 9 to 15, added 6 missing tools to the grid\n\n106 tests passing, benchmark 31\u002F31 clean (100%) vs git 15\u002F31 (48%).","2026-02-11T03:44:54",{"id":249,"version":250,"summary_zh":251,"released_at":252},171750,"v0.1.0","## weave v0.1.0 — Entity-level semantic merge driver for Git\n\nFirst release of weave, a semantic merge driver that resolves merge conflicts at the entity level (functions, classes, imports) instead of line-by-line.\n\n### Highlights\n\n- **Entity-level 3-way merge** — matches entities by name across versions, merges independently\n- **7 language support** — TypeScript, JavaScript, Python, Rust, Go, Java, C\n- **Decorator\u002Fannotation-aware merge** — treats decorators as commutative (unordered)\n- **Comment bundling** — doc comments (JSDoc, \u002F\u002F\u002F, JavaDoc) travel with their entity\n- **Inner entity merge** — merges class\u002Fimpl members by name (method reordering safe)\n- **Import commutative merge** — imports treated as unordered sets\n- **Whitespace-aware merge** — formatting changes don't cause false conflicts\n- **CRDT entity state** — advisory locks for multi-agent coordination\n- **MCP server** — 9 tools for AI agent integration\n\n### Benchmark\n\n31\u002F31 scenarios clean (100%) vs git 15\u002F31 (48%).\n\n### Install\n\n\\`\\`\\`bash\n# Homebrew\nbrew install ataraxy-labs\u002Ftap\u002Fweave\n\n# From source\ncargo install --git https:\u002F\u002Fgithub.com\u002FAtaraxy-Labs\u002Fweave --path crates\u002Fweave-cli\n\\`\\`\\`\n\n### Setup\n\n\\`\\`\\`bash\nweave setup    # configures git to use weave as merge driver\n\\`\\`\\`","2026-02-08T00:55:11"]