# MyTwig 更新日志

MyTwig 每个版本的发布日期和更新内容。 下载: https://github.com/HeroSizy/mytwig-releases/releases

## v0.3.1 (2026-10-22)

- 关闭 Repositories 标签页，或在它或某个页面显示时点按其他标签页，MyTwig 不再闪退。
- 搜索（包括 AI 写的搜索）中的日期涵盖一整天：after: 从当天零点开始，before: 到当天结束，所以 after:2026-10-22 before:2026-10-22 能找到当天的提交，而不是什么都找不到。
- 指针停在差异的区块标题或折叠行分隔条上时，鼠标滚轮也能滚动差异，拉取请求审查中同样如此。

## v0.3.0 (2026-10-22)

- 更多地方可以用 AI。 在搜索栏用自然语言描述想找的提交（例如“上个月我在登录相关的地方改了什么”），模型会替你写好搜索条件。在命令面板中，“Ask AI：…”会为你的请求规划好 Git 步骤；勾选要执行的步骤即可运行，一次撤销就能恢复仓库。
- 在应用内查看 CI。 拉取请求会列出它的检查，失败的排在前面。GitHub Actions 任务的日志直接定位到第一个错误，可以让模型解释原因；失败的任务可以单独重跑或连同整个运行一起重跑，也可以开关自动合并。
- 查看上次审查后的改动。 之前审查过的拉取请求会直接显示此后的改动，即使经过强制推送或变基也一样，并把前后的提交一一对应。
- 拖放前先预览。 在拖放菜单中把鼠标停在变基或合并选项上，或者使用“同步堆栈”时，提交图会先画出结果：重新生成的提交、移动后的分支，以及会因冲突而停下的提交。
- 丰富差异视图：支持 Jupyter 笔记本、Markdown、SVG、JSON 和 YAML，也可以切回按行显示。
- 记住冲突的解决方式（git rerere）：冲突列表会标出“与上次相同”，并提供“标记为已解决”和“重新解决”。
- Monorepo 范围。 “只看某个文件夹…”会把提交图、改动和搜索都限制在一个文件夹内，显示 CODEOWNERS 中的负责人，还可以只检出这个文件夹（稀疏检出）。
- 推送前扫描密钥。 推送和创建拉取请求时，会检查尚未推送的提交中是否有令牌、密钥或密码，有的话先询问你。可以在 设置 → Git → 密钥 中关闭。
- Jira 和 Linear（设置 → 集成）：在分支和提交上显示问题，任务页面可以用列表或看板查看，“开始工作”会创建问题对应的分支，拉取请求创建和合并时问题会随之移动状态。
- mytwig:// 链接可以在 MyTwig 中打开仓库、提交、分支、拉取请求或文件；提交的菜单中有“复制 MyTwig 链接”。
- 拉取请求模板：支持 GitHub、GitLab、Gitea、Forgejo、Bitbucket 和 Azure DevOps 的模板，并可以从列表中选择。
- 实验功能（设置 → 实验性功能）：
- 设置 → 关于 中新增 许可证 和 第三方声明。公开测试版无需许可证。
- 设置中的账号、SSH 密钥和凭据统一使用同一种行样式，每行一个 ⋯ 菜单；“身份”和“签名”改为编辑时自动保存。
- 左侧面板中的分支文件夹可以对其中所有分支一起操作（隐藏、显示、单独显示、删除、选择）；“本地”“远程”“标签”和“贮藏”标题上的眼睛图标可以在提交图中隐藏这一类。
- 命令面板会把你最常用的命令排在前面。
- 双击已在另一个工作树中检出的分支，会直接打开那个工作树。
- VoiceOver 可以读出列表、按钮、面板和设置项的名称，把改动的文件读作“已添加 b.txt”，并播报开始执行的操作和出现的错误。
- 使用 Go 1.27.3 构建，修复了标准库中的一个安全问题。
- 有多个 GitHub 账号时，由其中某个账号列出的仓库现在会用该账号克隆，不再报“Repository not found”，之后的拉取和推送也会使用同一个账号。

## v0.2.3 (2026-10-22)

- 用键盘进行交互式变基。 上/下（或 K/J）选择提交，Cmd+上/下 移动它，P、R、S、F、D 分别是保留、改写、压缩、修正和丢弃，回车开始变基，Esc 取消。行菜单里列出了这些按键。
- 把分支拖到远程分支上即可变基或合并。 除了创建拉取请求，现在还可以把分支变基到该远程分支上，或合并进它的本地分支；没有代码托管平台时也可以用。
- 冲突预览。 冲突文件的结果可以在“编辑”和“预览”之间切换：预览实时显示结果相对于我方的差异，也就是保存后的样子，并标出剩下的冲突。
- AI 解释和拉取请求描述支持更多图表：状态图、类图、实体关系图和 Git 提交图。
- 每个 AI 提示词都有自己的编辑窗口。 设置 → AI 中每个任务的提示词占一行，点“编辑…”会在可调整大小的编辑器中打开，旁边列出可用的占位符。
- 在设置 → Git 中可以直接编辑问题链接，不用再删掉重填。
- 未暂存和已暂存的文件列表现在可以拖动分隔条分配空间，不再各自限制为六行。
- 有拉取请求的分支在以下情况下也会显示标记：账号在第一次读取期间才加载完、分支在同一主机上的 fork 中、刚刚创建拉取请求。
- 从程序坞或访达启动时，MyTwig 也能找到 Homebrew 安装的 GitHub CLI，从而识别 gh 的登录。
- 鼠标滚轮在差异视图的审查评论、区块按钮和悬停卡片上也能滚动。

## v0.2.2 (2026-10-21)

- 玻璃通透度。 在 macOS 上，设置 → 外观 → 玻璃通透度 可以调节侧栏、详情面板、命令面板和对话框透出下方内容的程度，从磨砂（0）到接近透明（100），默认 50。拖动滑块时面板会实时变化。
- 帮助 → 发送反馈… 会在 GitHub 上用与应用语言一致的表单新建一个 issue，并自动填好 MyTwig 版本、操作系统、系统版本和架构。
- 所有的旋转图标和“正在载入…”文字统一换成一个安静的加载指示；Git 执行操作时（例如推送）工具栏也会显示它。
- 更新了应用的界面框架，重绘更流畅，任何缩放级别下文字都清晰。
- 克隆仓库 时，仓库列表的搜索框现在可以点击和输入。同样的修复也让“添加远程”“编辑远程”“创建拉取请求”和拉取请求审查评论中的每个输入框都能正常获得键盘焦点。
- GitLab 账号（以及其他手动添加的账号）现在会在 设置 → 账户 和克隆对话框的账号列表中显示用户名；无法连接时显示主机名，而不是空白。

## v0.2.1 (2026-10-21)

- 把分支拖到远程分支上即可创建拉取请求。 在提交图或左侧面板中，把本地分支拖到远程分支上：MyTwig 会先推送本地分支，再打开新建拉取请求的对话框，并以该远程分支作为目标分支。拖动远程分支则直接以它创建拉取请求。
- 分支标签上显示远程图标。 远程分支的标签用远程的图标代替 origin/ 前缀：可以是代码托管平台上所有者的头像、平台的标志（GitHub、GitLab、Bitbucket、Gitea、Forgejo、Codeberg、SourceHut），或你自己选的图片。在左侧面板右键点按远程即可选择图标；在 设置 → 提交图 → 远程分支 中选择“名称”可恢复显示名称。
- 未提交的改动（// WIP）与当前检出的提交之间用虚线相连。
- 提交图中贮藏的标签显示贮藏图标。
- 提交图列较窄时，WIP 节点和贮藏节点会留在列内，不再遮住提交信息。

## v0.2.0 (2026-10-20)

- 显示所有分支的提交图，带分支和标签标签、作者头像；列可以调整宽度、重新排序和隐藏。即使是像 Git 本身那样有 85,000 个提交的历史，也能流畅浏览。
- 提交搜索：输入时按提交信息、作者、SHA 或引用即时查找；也可以用运算符搜索整个历史：content:、change:、message:、author:、path:、after:、before:。
- 文件历史、追溯（blame）和行范围历史；还可以浏览某个提交当时的全部文件。
- 比较任意两个分支、标签或提交，并从比较结果中拣选（cherry-pick）。
- 此外还有：reflog 视图、带横幅提示的 bisect、显示在提交图中的贮藏，以及滚动条上的位置标记。
- 按文件、区块或选中的行暂存、取消暂存或丢弃；丢弃可以撤销。
- 提交框支持提交模板、摘要长度提示、共同作者、Signed-off-by、最近的提交信息、修订上一次提交，以及提交并推送。
- 拆分提交与将改动拆分为多个提交：按文件、区块或行，把一个提交或尚未提交的改动拆成多个提交。
- Absorb：把暂存的修复并入最后修改那些行的提交。
- 部分贮藏和快照贮藏、补丁（保存与应用），以及在右键菜单中忽略文件，并提供现成的 .gitignore 模板。
- 把一个分支拖到另一个分支上即可合并或变基。合并方式有多种：快进、合并提交、压缩合并，或在提交前停下。
- 冲突预测：在冲突发生之前提示与上游分支或默认分支的冲突。
- 冲突编辑器：上方并排显示双方版本，下方是可编辑的结果，支持查找与替换。
- 交互式变基：拖动调整顺序，或对提交执行 pick、reword、squash、fixup 和 drop；也可以拖动多个选中的提交来压缩或移动它们。
- 提交、合并、变基、检出、分支变更和贮藏都支持撤销与重做。操作时间线可以把仓库恢复到变基、重置、拉取、合并等操作之前的状态。
- 抓取、拉取和推送时显示进度以及领先/落后的提交数。有风险的推送会先询问（推送到默认分支、超过 100 MB 的文件、远程已分叉），并支持后台自动抓取。
- 此外还有：工作树、子模块、Git LFS、Git Flow，以及堆叠分支（实验性）。
- 在侧边栏和提交图的标签上显示 GitHub（含 Enterprise）、GitLab、Gitea/Forgejo 和 Bitbucket Cloud 的拉取请求与议题。
- 在应用内审查 GitHub 拉取请求：可以在任意行评论，回复并解决讨论，批准或要求修改，以及合并。
- 克隆时会列出你登录的所有账号下的仓库；还提供大型仓库选项（blobless、浅克隆、稀疏检出）和“仓库性能”面板。
- 菜单栏/托盘小组件：显示等待你处理的拉取请求、CI 结果、通知、活动统计，以及最近使用的仓库的状态。
- 生成提交信息；解释提交或一组改动，输出 Markdown 和图表；撰写拉取请求描述；在冲突编辑器中给出解决建议；让模型规划如何把改动拆分为多个提交。
- 支持的服务商包括 Anthropic、OpenAI 及兼容 OpenAI 接口的服务（DeepSeek、通义千问、Kimi、OpenRouter、Microsoft Foundry、LiteLLM）、Google Gemini、本机的 Ollama 和 LM Studio，以及 claude、codex、copilot、gemini 命令行工具。提示词可以按用户或按仓库修改。
- 请求从你的电脑直接发往你选择的服务商。
- 每个仓库一个标签页；仓库管理器支持分组和扫描文件夹；命令面板；可以在设置中修改的快捷键。
- 设置窗口支持搜索。提供浅色/深色主题、强调色、界面字体和代码字体（内置多款）、缩放和头像风格；macOS 上还有可以关闭的 Liquid Glass 风格。
- 支持英文和简体中文。
- 此外还有：内置终端面板、在编辑器或终端中打开、自定义命令、多套身份配置、根据账号选择“提交身份”、提交签名（GPG、SSH、X.509）、SSH 密钥管理、Git 命令日志，以及 mytwig 命令行启动器（macOS 和 Linux）。
- 签名的自动更新：MyTwig 每 30 分钟从本仓库检查一次新版本，安装前会校验每个更新的 Ed25519 签名。可以在 设置 → 通用 → 更新 中配置。
- 一条命令安装：macOS 和 Linux 上运行 curl -fsSL https://github.com/HeroSizy/mytwig-releases/releases/latest/download/install.sh | sh，Windows 上在 PowerShell 中运行 [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12; irm https://github.com/HeroSizy/mytwig-releases/releases/latest/download/install.ps1 | iex。在 macOS 上，脚本会校验下载文件的 Ed25519 签名，把 MyTwig 安装到 /Applications（或 ~/Applications）并打开，不会出现 Gatekeeper 提示；在 Windows 上，脚本会校验安装程序的 SHA-256 并静默安装。在 macOS 和 Linux 上，--uninstall 可卸载 MyTwig，设置会保留。
- 按 Mac 类型分别提供 macOS 版本：Apple 芯片请使用 MyTwig 0.2.0 arm64.dmg，Intel Mac 请使用 MyTwig 0.2.0 amd64.dmg，每个大小约为通用版应用的一半。安装脚本会自动选择合适的版本，每个版本也只从对应架构的更新中升级。
- 可选的崩溃报告（默认关闭）。首次启动时会询问一次，也可以在 设置 → 隐私 中开关。只报告真正的崩溃，退出或强制退出应用不会产生报告。报告只包含 MyTwig、git 和操作系统的版本、在 MyTwig 代码中崩溃的位置，以及一个随机的安装 ID，绝不包含你的代码、文件路径、分支名、远程仓库、姓名或邮箱。查看最近的报告… 会原样显示发送的内容。设置 → 隐私中还列出了 MyTwig 连接的所有主机。
- 空闲时几乎不占用资源：只重新读取磁盘上变化的部分，只在需要时抓取，隐藏的标签页在你打开时才刷新。
- 宽历史下绘制更快：只绘制可见的提交图泳道。
- 布局适应窄窗口：作者、SHA 和日期列会先让出空间，然后是侧边栏，提交信息最后。
- 缩放作用于整个窗口，包括标题栏这一行和标签页。
- 在任何强调色上，无论浅色还是深色，文字都清晰可读。
- 从程序坞或访达启动时，Git 也能找到你在终端中使用的工具，例如 Homebrew 安装的 Git 和 git-lfs 钩子。
- 代码托管平台的令牌在所有平台上都保存在系统钥匙串中：macOS 的钥匙串、Windows 的凭据管理器，以及 Linux 的 Secret Service。
- 窗口缩放后，差异、追溯和冲突编辑器不再缺失行。
- 窗口较窄时，提交标题不再显示为空。
- 历史之外的读取失败（例如残留的子模块条目）不再导致分支、标签和贮藏列表变空。
- 仓库在窗口就绪之前加载完成时，应用不再在启动时崩溃。
- 在 GitHub Enterprise 服务器上，即使远程 URL 的大小写不同，拉取请求也能匹配到对应分支；开放的拉取请求超过 100 个的仓库也能全部显示。
- 终端面板获得键盘焦点时，方向键、Esc 和 Control 组合键等会发送给 shell，而不是提交图。
- 工具提示会跟随浅色或深色主题。
- 未签名的构建。 macOS 应用只有临时（ad-hoc）签名，没有使用 Apple 开发者 ID 签名，也未经公证，所以首次启动会被 Gatekeeper 拦截，需要在 系统设置 → 隐私与安全性 中点按 仍要打开。Windows 安装程序没有代码签名，SmartScreen 可能会发出警告。
- 终端面板。 关闭仓库标签页或退出 MyTwig 时，终端面板中的 shell 及其中仍在运行的程序会直接结束，不会先询问。
- Windows 版本的测试不如 macOS 和 Linux 版本充分：测试套件会为 Windows 编译，但不会在 Windows 上运行。
- 代码托管平台的差异。 目前只有 GitHub 支持在应用内审查拉取请求。Bitbucket 只显示拉取请求，不显示议题；菜单栏只能找到你自己创建的 Bitbucket 拉取请求。GitLab 不能按提及（mention）筛选。
- 通过 .deb 安装的 Linux 版本不会自动更新。 请安装新版本的软件包，或改用可以自动更新的 install.sh。
- 部分功能需要更新的 Git：只贮藏已暂存改动需要 2.35，冲突预测和堆叠分支变基需要 2.38。最低要求是 Git 2.32。
- 堆叠分支是实验性功能，默认关闭（设置 → 实验性）。

