[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-badlogic--pi-mono":3,"tool-badlogic--pi-mono":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":78,"owner_location":79,"owner_email":78,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":107,"forks":108,"last_commit_at":109,"license":110,"difficulty_score":10,"env_os":111,"env_gpu":111,"env_ram":111,"env_deps":112,"category_tags":115,"github_topics":78,"view_count":116,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":117,"updated_at":118,"faqs":119,"releases":149},792,"badlogic\u002Fpi-mono","pi-mono","AI agent toolkit: coding agent CLI, unified LLM API, TUI & web UI libraries, Slack bot, vLLM pods","pi-mono 是一个专为 AI 智能体开发打造的开源工具箱。它提供了一套完整的组件生态，涵盖代码编写助手 CLI、统一的大语言模型 API 接口、终端与网页界面库，以及 Slack 机器人和 GPU 部署管理工具。\n\n在构建 AI 应用时，开发者常面临 API 对接复杂、界面开发重复、后端资源管理困难等痛点。pi-mono 通过模块化的 monorepo 结构，将这些环节串联起来。例如，它的统一 API 层屏蔽了不同厂商的差异，让切换 OpenAI 或 Anthropic 变得轻而易举；coding-agent 包则直接提供了交互式编程辅助能力。此外，pi-pods 还能帮助团队轻松管理 GPU 上的 vLLM 服务。\n\n这套工具非常适合正在探索 AI 应用的开发者、需要集成多模型的研究人员，以及负责维护推理服务的运维工程师。无论是想快速验证想法，还是构建生产级智能体，pi-mono 都能提供坚实的基础设施支持，降低技术门槛，让创意更快落地。","\u003C!-- OSS_WEEKEND_START -->\n# 🏖️ OSS Weekend\n\n**Issue tracker reopens Monday, April 6, 2026.**\n\nOSS weekend runs Friday, March 27, 2026 through Monday, April 6, 2026. New issues are auto-closed during this time. For support, join [Discord](https:\u002F\u002Fdiscord.com\u002Finvite\u002F3cU7Bz4UPx).\n\u003C!-- OSS_WEEKEND_END -->\n\n---\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fshittycodingagent.ai\">\n    \u003Cimg src=\"https:\u002F\u002Fshittycodingagent.ai\u002Flogo.svg\" alt=\"pi logo\" width=\"128\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdiscord.com\u002Finvite\u002F3cU7Bz4UPx\">\u003Cimg alt=\"Discord\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdiscord-community-5865F2?style=flat-square&logo=discord&logoColor=white\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Factions\u002Fworkflows\u002Fci.yml\">\u003Cimg alt=\"Build status\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fbadlogic\u002Fpi-mono\u002Fci.yml?style=flat-square&branch=main\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fpi.dev\">pi.dev\u003C\u002Fa> domain graciously donated by\n  \u003Cbr \u002F>\u003Cbr \u002F>\n  \u003Ca href=\"https:\u002F\u002Fexe.dev\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbadlogic_pi-mono_readme_49c4d969ab1e.png\" alt=\"Exy mascot\" width=\"48\" \u002F>\u003Cbr \u002F>exe.dev\u003C\u002Fa>\n\u003C\u002Fp>\n\n# Pi Monorepo\n\n> **Looking for the pi coding agent?** See **[packages\u002Fcoding-agent](packages\u002Fcoding-agent)** for installation and usage.\n\nTools for building AI agents and managing LLM deployments.\n\n## Packages\n\n| Package | Description |\n|---------|-------------|\n| **[@mariozechner\u002Fpi-ai](packages\u002Fai)** | Unified multi-provider LLM API (OpenAI, Anthropic, Google, etc.) |\n| **[@mariozechner\u002Fpi-agent-core](packages\u002Fagent)** | Agent runtime with tool calling and state management |\n| **[@mariozechner\u002Fpi-coding-agent](packages\u002Fcoding-agent)** | Interactive coding agent CLI |\n| **[@mariozechner\u002Fpi-mom](packages\u002Fmom)** | Slack bot that delegates messages to the pi coding agent |\n| **[@mariozechner\u002Fpi-tui](packages\u002Ftui)** | Terminal UI library with differential rendering |\n| **[@mariozechner\u002Fpi-web-ui](packages\u002Fweb-ui)** | Web components for AI chat interfaces |\n| **[@mariozechner\u002Fpi-pods](packages\u002Fpods)** | CLI for managing vLLM deployments on GPU pods |\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines and [AGENTS.md](AGENTS.md) for project-specific rules (for both humans and agents).\n\n## Development\n\n```bash\nnpm install          # Install all dependencies\nnpm run build        # Build all packages\nnpm run check        # Lint, format, and type check\n.\u002Ftest.sh            # Run tests (skips LLM-dependent tests without API keys)\n.\u002Fpi-test.sh         # Run pi from sources (can be run from any directory)\n```\n\n> **Note:** `npm run check` requires `npm run build` to be run first. The web-ui package uses `tsc` which needs compiled `.d.ts` files from dependencies.\n\n## License\n\nMIT\n","\u003C!-- OSS_WEEKEND_START -->\n# 🏖️ OSS 周末\n\n**问题追踪器将于 2026 年 4 月 6 日（星期一）重新开放。**\n\nOSS 周末从 2026 年 3 月 27 日（星期五）持续到 2026 年 4 月 6 日（星期一）。在此期间，新提交的问题将自动关闭。如需支持，请加入 [Discord](https:\u002F\u002Fdiscord.com\u002Finvite\u002F3cU7Bz4UPx)。\n\u003C!-- OSS_WEEKEND_END -->\n\n---\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fshittycodingagent.ai\">\n    \u003Cimg src=\"https:\u002F\u002Fshittycodingagent.ai\u002Flogo.svg\" alt=\"pi 标志\" width=\"128\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdiscord.com\u002Finvite\u002F3cU7Bz4UPx\">\u003Cimg alt=\"Discord\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdiscord-community-5865F2?style=flat-square&logo=discord&logoColor=white\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Factions\u002Fworkflows\u002Fci.yml\">\u003Cimg alt=\"构建状态\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fbadlogic\u002Fpi-mono\u002Fci.yml?style=flat-square&branch=main\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fpi.dev\">pi.dev\u003C\u002Fa> 域名由\n  \u003Cbr \u002F>\u003Cbr \u002F>\n  \u003Ca href=\"https:\u002F\u002Fexe.dev\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbadlogic_pi-mono_readme_49c4d969ab1e.png\" alt=\"Exy 吉祥物\" width=\"48\" \u002F>\u003Cbr \u002F>exe.dev\u003C\u002Fa>\n  慷慨捐赠\n\u003C\u002Fp>\n\n# Pi 单体仓库\n\n> **正在寻找 pi 编码代理？** 请参阅 **[packages\u002Fcoding-agent](packages\u002Fcoding-agent)** 以获取安装和使用说明。\n\n用于构建 AI 代理和管理大语言模型（LLM）部署的工具。\n\n## 包\n\n| 包 | 描述 |\n|---------|-------------|\n| **[@mariozechner\u002Fpi-ai](packages\u002Fai)** | 统一的多提供商 LLM API（OpenAI、Anthropic、Google 等） |\n| **[@mariozechner\u002Fpi-agent-core](packages\u002Fagent)** | 带有工具调用和状态管理的代理运行时 |\n| **[@mariozechner\u002Fpi-coding-agent](packages\u002Fcoding-agent)** | 交互式编码代理 CLI |\n| **[@mariozechner\u002Fpi-mom](packages\u002Fmom)** | 将消息委托给 pi 编码代理的 Slack 机器人 |\n| **[@mariozechner\u002Fpi-tui](packages\u002Ftui)** | 具有差异渲染功能的终端 UI 库 |\n| **[@mariozechner\u002Fpi-web-ui](packages\u002Fweb-ui)** | 用于 AI 聊天界面的 Web 组件 |\n| **[@mariozechner\u002Fpi-pods](packages\u002Fpods)** | 用于管理 GPU Pod 上 vLLM 部署的 CLI |\n\n## 贡献\n\n请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解贡献指南，并查看 [AGENTS.md](AGENTS.md) 了解项目特定规则（适用于人类和代理）。\n\n## 开发\n\n```bash\nnpm install          # Install all dependencies\nnpm run build        # Build all packages\nnpm run check        # Lint, format, and type check\n.\u002Ftest.sh            # Run tests (skips LLM-dependent tests without API keys)\n.\u002Fpi-test.sh         # Run pi from sources (can be run from any directory)\n```\n\n> **注意：** `npm run check` 需要先运行 `npm run build`。web-ui 包使用 `tsc`，需要依赖项中编译好的 `.d.ts` 文件。\n\n## 许可证\n\nMIT","# pi-mono 快速上手指南\n\n**pi-mono** 是一套用于构建 AI 代理（Agents）和管理大语言模型（LLM）部署的工具集。本指南将帮助你快速搭建开发环境并运行核心功能。\n\n## 环境准备\n\n在开始之前，请确保你的系统满足以下要求：\n\n- **操作系统**: Linux \u002F macOS \u002F Windows (WSL)\n- **运行时**: Node.js (建议版本 18+)\n- **包管理器**: npm\n- **其他工具**: Git\n\n> 💡 **提示**: 由于涉及网络请求，建议在安装前配置国内 npm 镜像源以加快依赖下载速度。\n\n## 安装步骤\n\n1. **克隆仓库**\n   从 GitHub 获取源代码：\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono.git\n   cd pi-mono\n   ```\n\n2. **安装依赖**\n   在项目根目录安装所有依赖包：\n   ```bash\n   npm install\n   ```\n\n3. **构建项目**\n   编译所有包（后续检查命令依赖此步骤）：\n   ```bash\n   npm run build\n   ```\n\n   > ⚠️ **注意**: 运行 `npm run check` 之前必须先执行 `npm run build`，因为 web-ui 包需要依赖项中编译生成的 `.d.ts` 文件。\n\n## 基本使用\n\n### 运行本地测试\n你可以从任意目录直接运行 pi 的源码版本：\n```bash\n.\u002Fpi-test.sh\n```\n\n### 代码检查与格式化\n在提交代码前，请确保通过以下检查：\n```bash\nnpm run check\n```\n\n### 核心功能说明\n本项目为 Monorepo 结构，主要功能位于以下子包中：\n- **[@mariozechner\u002Fpi-coding-agent](packages\u002Fcoding-agent)**: 交互式编码代理 CLI（主要使用入口）。\n- **[@mariozechner\u002Fpi-ai](packages\u002Fai)**: 统一的多提供商 LLM API 接口。\n- **[@mariozechner\u002Fpi-pods](packages\u002Fpods)**: GPU Pod 上的 vLLM 部署管理 CLI。\n\n如需深入使用特定功能，请参考对应 `packages` 目录下的详细文档。","某初创技术团队计划快速搭建一个能自动审查代码并集成到 Slack 的内部 AI 助手，同时希望低成本部署在自有 GPU 服务器上以控制成本。\n\n### 没有 pi-mono 时\n- 需要分别对接 OpenAI、Anthropic 等多个厂商的 API，密钥管理混乱且代码重复率高，维护困难。\n- 手动编写脚本将 Slack 消息转发给后端服务，缺乏统一的 Agent 状态管理机制，对话容易中断。\n- 部署 vLLM 模型时需要复杂的手动配置容器和显存分配，环境搭建容易出错且效率低下。\n- 开发终端交互界面耗时过长，无法复用现有的 UI 组件库，导致项目整体交付延期风险增加。\n\n### 使用 pi-mono 后\n- pi-mono 提供统一的多提供商 LLM API 接口，一次接入即可灵活切换不同模型服务商，减少冗余代码。\n- 内置 Slack Bot 包直接处理消息委托，配合 Agent Core 自动维护对话上下文状态，提升用户体验。\n- 通过 pi-pods CLI 一键管理 vLLM 部署，简化了 GPU 资源调度与模型加载流程，降低运维门槛。\n- 利用现成的 TUI 和 Web UI 库快速构建交互式界面，大幅缩短前端开发周期，让团队专注核心逻辑。\n\npi-mono 通过一体化架构显著降低了 AI 应用从开发到部署的复杂度，加速产品落地进程。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbadlogic_pi-mono_004c7753.png","badlogic","Mario Zechner","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fbadlogic_4a06c49b.jpg",null,"0xa000","badlogicgames","https:\u002F\u002Fmariozechner.at","https:\u002F\u002Fgithub.com\u002Fbadlogic",[84,88,92,96,100,104],{"name":85,"color":86,"percentage":87},"TypeScript","#3178c6",95.8,{"name":89,"color":90,"percentage":91},"JavaScript","#f1e05a",3.1,{"name":93,"color":94,"percentage":95},"Shell","#89e051",0.6,{"name":97,"color":98,"percentage":99},"CSS","#663399",0.4,{"name":101,"color":102,"percentage":103},"HTML","#e34c26",0,{"name":105,"color":106,"percentage":103},"C","#555555",31643,3455,"2026-04-05T11:20:59","MIT","未说明",{"notes":113,"python":111,"dependencies":114},"该工具为基于 Node.js\u002Fnpm 的 TypeScript 单体仓库（Monorepo）。核心构建与运行依赖 npm 命令（install\u002Fbuild\u002Fcheck）。虽然包含 vLLM 部署管理工具（pi-pods），暗示特定功能可能涉及 GPU 加速，但具体的操作系统、硬件配置及依赖库版本要求在提供的 README 内容中未明确列出。",[111],[15,13],24,"2026-03-27T02:49:30.150509","2026-04-06T07:12:00.668909",[120,125,130,135,139,144],{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},3406,"Claude OAuth 令牌为何无法使用？","Claude Code 更新了令牌作用域，旧令牌不再兼容。需重新通过 Claude Code 进行认证以获取具有正确作用域的新令牌。错误信息通常显示 'This credential is only authorized for use with Claude Code'。","https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F581",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},3407,"Antigravity 订阅出现 429 资源耗尽错误怎么办？","该问题已在 Issue #571 中修复。如果遇到此错误，请确保更新至最新版本。维护者提到已通过添加桥接提示（bridge prompt）来优化 Antigravity 指令与系统提示的交互，从而缓解资源限制问题。","https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F554",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},3408,"@ 文件自动补全在大仓库中导致界面卡死怎么办？","这是已知问题，因 `fd` 搜索阻塞 UI。主分支已修复：将自动补全去抖动移至编辑器，保持单个活动请求并中止旧请求，序列化请求启动，并激进终止被中止的进程。建议更新至包含此修复的版本以保持打字响应性。","https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1278",{"id":136,"question_zh":137,"answer_zh":138,"source_url":134},3409,"@ 自动补全的临时替代方案是什么？","在官方修复合并前，可安装第三方扩展 `@javimolina\u002Fpi-rg`。它底层使用 ripgrep，虽然启动稍慢几毫秒，但能很好地处理大量文件且保持 UI 响应。安装地址：https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@javimolina\u002Fpi-rg",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},3410,"如何安装和管理扩展（Hooks, Tools, Skills, Themes）？","使用 CLI 命令管理：`pi install \u003Ctype> \u003Csource>` 添加扩展（支持本地、npm、git），`pi remove \u003Ctype> \u003Cname>` 移除，`pi update [types...]` 更新 npm\u002Fgit 扩展。支持全局（~\u002F.pi\u002Fagent\u002Fsettings.json）和项目级（\u003Ccwd>\u002F.pi\u002Fsettings.json）配置。","https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F326",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},3411,"如何为 Coding Agent 创建自定义斜杠命令或钩子？","使用 `pi.registerCommand()` 注册斜杠命令，接收 `HookCommandContext` 上下文。钩子系统还支持自定义消息条目（`pi.sendMessage()`）、持久化状态（`pi.appendEntry()`）和渲染器（`pi.registerMessageRenderer()`）。详细示例可参考 `snake.ts` 演示。","https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F289",[150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245],{"id":151,"version":152,"summary_zh":153,"released_at":154},102991,"v0.65.0","\n### New Features\n\n- **Session runtime API**: `createAgentSessionRuntime()` and `AgentSessionRuntime` provide a closure-based runtime that recreates cwd-bound services and session config on every session switch. Startup, `\u002Fnew`, `\u002Fresume`, `\u002Ffork`, and import all use the same creation path. See [docs\u002Fsdk.md](docs\u002Fsdk.md) and [examples\u002Fsdk\u002F13-session-runtime.ts](examples\u002Fsdk\u002F13-session-runtime.ts).\n- **Label timestamps in `\u002Ftree`**: Toggle timestamps on tree entries with `Shift+T`, with smart date formatting and timestamp preservation through branching ([#2691](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2691) by [@w-winter](https:\u002F\u002Fgithub.com\u002Fw-winter))\n- **`defineTool()` helper**: Create standalone custom tool definitions with full TypeScript parameter type inference, no manual casts needed ([#2746](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2746)). See [docs\u002Fextensions.md](docs\u002Fextensions.md).\n- **Unified diagnostics**: Arg parsing, service creation, session option resolution, and resource loading all return structured diagnostics (`info`\u002F`warning`\u002F`error`) instead of logging or exiting. The app layer decides presentation and exit behavior.\n\n### Breaking Changes\n\n- Removed extension post-transition events `session_switch` and `session_fork`. Use `session_start` with `event.reason` (`\"startup\" | \"reload\" | \"new\" | \"resume\" | \"fork\"`). For `\"new\"`, `\"resume\"`, and `\"fork\"`, `session_start` includes `previousSessionFile`.\n- Removed session-replacement methods from `AgentSession`. Use `AgentSessionRuntime` for `newSession()`, `switchSession()`, `fork()`, and `importFromJsonl()`. Cross-cwd session replacement rebuilds all cwd-bound runtime state and replaces the live `AgentSession` instance.\n- Removed `session_directory` from extension and settings APIs.\n- Unknown single-dash CLI flags (e.g. `-s`) now produce an error instead of being silently ignored.\n\n#### Migration: Extensions\n\nBefore:\n\n```ts\npi.on(\"session_switch\", async (event, ctx) => { ... });\npi.on(\"session_fork\", async (_event, ctx) => { ... });\n```\n\nAfter:\n\n```ts\npi.on(\"session_start\", async (event, ctx) => {\n  \u002F\u002F event.reason: \"startup\" | \"reload\" | \"new\" | \"resume\" | \"fork\"\n  \u002F\u002F event.previousSessionFile: set for \"new\", \"resume\", \"fork\"\n});\n```\n\n#### Migration: SDK session replacement\n\nBefore:\n\n```ts\nawait session.newSession();\nawait session.switchSession(\"\u002Fpath\u002Fto\u002Fsession.jsonl\");\n```\n\nAfter:\n\n```ts\nimport {\n  type CreateAgentSessionRuntimeFactory,\n  createAgentSessionFromServices,\n  createAgentSessionRuntime,\n  createAgentSessionServices,\n  getAgentDir,\n  SessionManager,\n} from \"@mariozechner\u002Fpi-coding-agent\";\n\nconst createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {\n  const services = await createAgentSessionServices({ cwd });\n  return {\n    ...(await createAgentSessionFromServices({ services, sessionManager, sessionStartEvent })),\n    services,\n    diagnostics: services.diagnostics,\n  };\n};\n\nconst runtime = await createAgentSessionRuntime(createRuntime, {\n  cwd: process.cwd(),\n  agentDir: getAgentDir(),\n  sessionManager: SessionManager.create(process.cwd()),\n});\n\nawait runtime.newSession();\nawait runtime.switchSession(\"\u002Fpath\u002Fto\u002Fsession.jsonl\");\nawait runtime.fork(\"entry-id\");\n\n\u002F\u002F After replacement, runtime.session is the new live session.\n\u002F\u002F Rebind any session-local subscriptions or extension bindings.\n```\n\n### Added\n\n- Added `createAgentSessionRuntime()` and `AgentSessionRuntime` for runtime-backed session replacement. The runtime takes a `CreateAgentSessionRuntimeFactory` closure that closes over process-global fixed inputs and recreates cwd-bound services and session config for each effective cwd. Startup and later `\u002Fnew`, `\u002Fresume`, `\u002Ffork`, import all use the same factory.\n- Added unified diagnostics model (`info`\u002F`warning`\u002F`error`) for arg parsing, service creation, session option resolution, and resource loading. Creation logic no longer logs or exits. The app layer decides presentation and exit behavior.\n- Added error diagnostics for missing explicit CLI resource paths (`-e`, `--skill`, `--prompt-template`, `--theme`)\n\n- Added `defineTool()` so standalone and array-based custom tool definitions keep inferred parameter types without manual casts ([#2746](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2746))\n\n- Added label timestamps to the session tree with a `Shift+T` toggle in `\u002Ftree`, smart date formatting, and timestamp preservation through branching ([#2691](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2691) by [@w-winter](https:\u002F\u002Fgithub.com\u002Fw-winter))\n\n### Fixed\n\n- Fixed startup resource loading to reuse the initial `ResourceLoader` for the first runtime, so extensions are not loaded twice before session startup and `session_start` handlers still fire for singleton-style extensions ([#2766](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2766))\n- Fixed retry settlement so retried agent runs wait for the full retry cycle to complete before declaring idle, preventing stale state after transient ","2026-04-03T18:33:35",{"id":156,"version":157,"summary_zh":158,"released_at":159},103003,"v0.58.2","\n### Added\n\n- Improved settings, theme, thinking, and show-images selector layouts by using configurable select-list primary column sizing ([#2154](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2154) by [@markusylisiurunen](https:\u002F\u002Fgithub.com\u002Fmarkusylisiurunen))\n\n### Fixed\n\n- Fixed fuzzy `edit` matching to normalize Unicode compatibility variants before comparison, reducing false \"oldText not found\" failures for text such as CJK and full-width characters ([#2044](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2044))\n- Fixed `\u002Fmodel \u003Cref>` exact matching and picker search to recognize canonical `provider\u002Fmodel` references when model IDs themselves contain `\u002F`, such as LM Studio models like `unsloth\u002Fqwen3.5-35b-a3b` ([#2174](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2174))\n- Fixed Anthropic OAuth manual login and token refresh by using the localhost callback URI for pasted redirect\u002Fcode flows and omitting `scope` from refresh-token requests ([#2169](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2169))\n- Fixed stale scrollback remaining after session switches by clearing the screen before wiping scrollback ([#2155](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2155) by [@Perlence](https:\u002F\u002Fgithub.com\u002FPerlence))\n- Fixed extra blank lines after markdown block elements in rendered output ([#2152](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2152) by [@markusylisiurunen](https:\u002F\u002Fgithub.com\u002Fmarkusylisiurunen))\n\n","2026-03-15T18:23:04",{"id":161,"version":162,"summary_zh":163,"released_at":164},102992,"v0.64.0","\n### New Features\n\n- Extensions and SDK callers can attach a `prepareArguments` hook to any tool definition, letting them normalize or migrate raw model arguments before schema validation. The built-in `edit` tool uses this to transparently support sessions created with the old single-edit schema. See [docs\u002Fextensions.md](docs\u002Fextensions.md)\n- Extensions can customize the collapsed thinking block label via `ctx.ui.setHiddenThinkingLabel()`. See [examples\u002Fextensions\u002Fhidden-thinking-label.ts](examples\u002Fextensions\u002Fhidden-thinking-label.ts) ([#2673](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2673))\n\n### Breaking Changes\n\n- `ModelRegistry` no longer has a public constructor. SDK callers and tests must use `ModelRegistry.create(authStorage, modelsJsonPath?)` for file-backed registries or `ModelRegistry.inMemory(authStorage)` for built-in-only registries. Direct `new ModelRegistry(...)` calls no longer compile.\n\n### Added\n\n- Added `ToolDefinition.prepareArguments` hook to prepare raw tool call arguments before schema validation, enabling compatibility shims for resumed sessions with outdated tool schemas\n- Built-in `edit` tool now uses `prepareArguments` to silently fold legacy top-level `oldText`\u002F`newText` into `edits[]` when resuming old sessions\n- Added `ctx.ui.setHiddenThinkingLabel()` so extensions can customize the collapsed thinking label in interactive mode, with a no-op in RPC mode and a runnable example extension in `examples\u002Fextensions\u002Fhidden-thinking-label.ts` ([#2673](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2673))\n\n### Fixed\n\n- Fixed extension-queued user messages to refresh the interactive pending-message list so messages submitted while a turn is active are no longer silently dropped ([#2674](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2674) by [@mrexodia](https:\u002F\u002Fgithub.com\u002Fmrexodia))\n- Fixed monorepo `tsconfig.json` path mappings to resolve `@mariozechner\u002Fpi-ai` subpath exports to source files in development checkouts ([#2625](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2625) by [@ferologics](https:\u002F\u002Fgithub.com\u002Fferologics))\n- Fixed TUI cell size response handling to consume only exact `CSI 6 ; height ; width t` replies, so bare `Escape` is no longer swallowed while waiting for terminal image metadata ([#2661](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2661))\n- Fixed Kitty keyboard protocol keypad functional keys to normalize to logical digits, symbols, and navigation keys, so numpad input in terminals such as iTerm2 no longer inserts Private Use Area gibberish or gets ignored ([#2650](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2650))\n\n","2026-03-29T19:58:22",{"id":166,"version":167,"summary_zh":168,"released_at":169},102993,"v0.63.2","\n### New Features\n\n- Extension handlers can now use `ctx.signal` to forward cancellation into nested model calls, `fetch()`, and other abort-aware work. See [docs\u002Fextensions.md#ctxsignal](docs\u002Fextensions.md#ctxsignal) ([#2660](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2660))\n- Built-in `edit` tool input now uses `edits[]` as the only replacement shape, reducing invalid tool calls caused by mixed single-edit and multi-edit schemas ([#2639](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2639))\n- Large multi-edit results no longer trigger full-screen redraws in the interactive TUI when the final diff is rendered ([#2664](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2664))\n\n### Added\n\n- Added `ctx.signal` to `ExtensionContext` and wired it to the active agent turn so extension handlers can forward cancellation into nested model calls, `fetch()`, and other abort-aware work ([#2660](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2660))\n\n### Fixed\n\n- Fixed built-in `edit` tool input to use `edits[]` as the only replacement shape, eliminating the mixed single-edit and multi-edit modes that caused repeated invalid tool calls and retries ([#2639](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2639))\n- Fixed edit tool TUI rendering to defer large multi-edit diffs to the settled result, avoiding full-screen redraws when the tool completes ([#2664](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2664))\n\n","2026-03-29T11:15:33",{"id":171,"version":172,"summary_zh":173,"released_at":174},102994,"v0.63.1","\n### Added\n\n- Added `gemini-3.1-pro-preview-customtools` model availability for the `google-vertex` provider ([#2610](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2610) by [@gordonhwc](https:\u002F\u002Fgithub.com\u002Fgordonhwc))\n\n### Fixed\n\n- Documented `tool_call` input mutation as supported extension API behavior, clarified that post-mutation inputs are not re-validated, and added regression coverage for executing mutated tool arguments ([#2611](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2611))\n- Fixed repeated compactions dropping messages that were kept by an earlier compaction by re-summarizing from the previous kept boundary and recalculating `tokensBefore` from the rebuilt session context ([#2608](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2608))\n- Fixed interactive compaction UI updates so `ctx.compact()` rebuilds the chat through unified compaction events, manual compaction no longer duplicates the summary block, and the `trigger-compact` example only fires when context usage crosses its threshold ([#2617](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2617))\n- Fixed interactive compaction completion to append a synthetic compaction summary after rebuilding the chat so the latest compaction remains visible at the bottom\n- Fixed skill discovery to stop recursing once a directory contains `SKILL.md`, and to ignore root `*.md` files in `.agents\u002Fskills` while keeping root markdown skill files supported in `~\u002F.pi\u002Fagent\u002Fskills`, `.pi\u002Fskills`, and package `skills\u002F` directories ([#2603](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2603))\n- Fixed edit tool diff rendering for multi-edit operations with large unchanged gaps so distant edits collapse intermediate context instead of dumping the full unchanged middle block\n- Fixed edit tool error rendering to avoid repeating the same exact-match failure in both the preview and result blocks\n- Fixed auto-compaction overflow recovery for Ollama models when the backend returns explicit `prompt too long; exceeded max context length ...` errors instead of silently truncating input ([#2626](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2626))\n- Fixed built-in tool overrides that reuse built-in parameter schemas to still honor custom `renderCall` and `renderResult` renderers in the interactive TUI, restoring the `minimal-mode` example ([#2595](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2595))\n\n","2026-03-27T03:16:20",{"id":176,"version":177,"summary_zh":178,"released_at":179},102995,"v0.63.0","\n### Breaking Changes\n\n- `ModelRegistry.getApiKey(model)` has been replaced by `getApiKeyAndHeaders(model)` because `models.json` auth and header values can now resolve dynamically on every request. Extensions and SDK integrations that previously fetched only an API key must now fetch request auth per call and forward both `apiKey` and `headers`. Use `getApiKeyForProvider(provider)` only when you explicitly want provider-level API key lookup without model headers or `authHeader` handling ([#1835](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1835))\n- Removed deprecated direct `minimax` and `minimax-cn` model IDs, keeping only `MiniMax-M2.7` and `MiniMax-M2.7-highspeed`. Update pinned model IDs to one of those supported direct MiniMax models, or use another provider route that still exposes the older IDs ([#2596](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2596) by [@liyuan97](https:\u002F\u002Fgithub.com\u002Fliyuan97))\n\n#### Migration Notes\n\nBefore:\n\n```ts\nconst apiKey = await ctx.modelRegistry.getApiKey(model);\nreturn streamSimple(model, messages, { apiKey });\n```\n\nAfter:\n\n```ts\nconst auth = await ctx.modelRegistry.getApiKeyAndHeaders(model);\nif (!auth.ok) throw new Error(auth.error);\nreturn streamSimple(model, messages, {\n  apiKey: auth.apiKey,\n  headers: auth.headers,\n});\n```\n\n### Added\n\n- Added `sessionDir` setting support in global and project `settings.json` so session storage can be configured without passing `--session-dir` on every invocation ([#2598](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2598) by [@smcllns](https:\u002F\u002Fgithub.com\u002Fsmcllns))\n- Added a startup onboarding hint in the interactive header telling users pi can explain its own features and documentation ([#2620](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2620) by [@ferologics](https:\u002F\u002Fgithub.com\u002Fferologics))\n- Added `edit` tool multi-edit support so one call can update multiple separate, disjoint regions in the same file while matching all replacements against the original file content\n- Added support for `PI_TUI_WRITE_LOG` directory paths, creating a unique log file (`tui-\u003Ctimestamp>-\u003Cpid>.log`) per instance for easier debugging of multiple pi sessions ([#2508](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2508) by [@mrexodia](https:\u002F\u002Fgithub.com\u002Fmrexodia))\n\n### Changed\n\n### Fixed\n\n- Fixed file mutation queue ordering so concurrent `edit` and `write` operations targeting the same file stay serialized in request order instead of being reordered during queue-key resolution\n- Fixed `models.json` shell-command auth and headers to resolve at request time instead of being cached into long-lived model state. pi now leaves TTL, caching, and recovery policy to user-provided wrapper commands because arbitrary shell commands need provider-specific strategies ([#1835](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1835))\n- Fixed Google and Vertex cost calculation to subtract cached prompt tokens from billable input tokens instead of double-counting them when providers report `cachedContentTokenCount` ([#2588](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2588) by [@sparkleMing](https:\u002F\u002Fgithub.com\u002FsparkleMing))\n- Added missing `ajv` direct dependency; previously relied on transitive install via `@mariozechner\u002Fpi-ai` which broke standalone installs ([#2252](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2252))\n- Fixed `\u002Fexport` HTML backgrounds to honor `theme.export.pageBg`, `cardBg`, and `infoBg` instead of always deriving them from `userMessageBg` ([#2565](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2565))\n- Fixed interactive bash execution collapsed previews to recompute visual line wrapping at render time, so previews respect the current terminal width after resizes and split-pane width changes ([#2569](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2569))\n- Fixed RPC `get_session_stats` to expose `contextUsage`, so headless clients can read actual current context-window usage instead of deriving it from token totals ([#2550](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2550))\n- Fixed `pi update` for git packages to fetch only the tracked target branch with `--no-tags`, reducing unrelated branch and tag noise while preserving force-push-safe updates ([#2548](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2548))\n- Fixed print and JSON modes to emit `session_shutdown` before exit, so extensions can release long-lived resources and non-interactive runs terminate cleanly ([#2576](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2576))\n- Fixed GitHub Copilot OpenAI Responses requests to omit the `reasoning` field entirely when no reasoning effort is requested, avoiding `400` errors from Copilot `gpt-5-mini` rejecting `reasoning: { effort: \"none\" }` during internal summary calls ([#2567](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2567))\n- Fixed blockquote text color breaking after inline links (and other inline elements) due to missing style restoration prefix\n- Fixed slash-command Tab completion from immediately chaining into argument autocomplete after completing the command name, restoring flows like `\u002Fmodel","2026-03-27T01:32:31",{"id":181,"version":182,"summary_zh":183,"released_at":184},102996,"v0.62.0","\n### New Features\n\n- Built-in tools as extensible ToolDefinitions. Extension authors can now override rendering of built-in read\u002Fwrite\u002Fedit\u002Fbash\u002Fgrep\u002Ffind\u002Fls tools with custom `renderCall`\u002F`renderResult` components. See [docs\u002Fextensions.md](docs\u002Fextensions.md).\n- Unified source provenance via `sourceInfo`. All resources, commands, tools, skills, and prompt templates now carry structured `sourceInfo` with path, scope, and source metadata. Visible in autocomplete, RPC discovery, and SDK introspection. See [docs\u002Fextensions.md](docs\u002Fextensions.md).\n- AWS Bedrock cost allocation tagging. New `requestMetadata` option on `BedrockOptions` forwards key-value pairs to the Bedrock Converse API for AWS Cost Explorer split cost allocation.\n\n### Breaking Changes\n\n- Changed `ToolDefinition.renderCall` and `renderResult` semantics. Fallback rendering now happens only when a renderer is not defined for that slot. If `renderCall` or `renderResult` is defined, it must return a `Component`.\n- Changed slash command provenance to use `sourceInfo` consistently. RPC `get_commands`, `RpcSlashCommand`, and SDK `SlashCommandInfo` no longer expose `location` or `path`. Use `sourceInfo` instead ([#1734](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1734))\n- Removed legacy `source` fields from `Skill` and `PromptTemplate`. Use `sourceInfo.source` for provenance instead ([#1734](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1734))\n- Removed `ResourceLoader.getPathMetadata()`. Resource provenance is now attached directly to loaded resources via `sourceInfo` ([#1734](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1734))\n- Removed `extensionPath` from `RegisteredCommand` and `RegisteredTool`. Use `sourceInfo.path` for provenance instead ([#1734](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1734))\n\n#### Migration Notes\n\nResource, command, and tool provenance now use `sourceInfo` consistently.\n\nCommon updates:\n- RPC `get_commands`: replace `path` and `location` with `sourceInfo.path`, `sourceInfo.scope`, and `sourceInfo.source`\n- `SlashCommandInfo`: replace `command.path` and `command.location` with `command.sourceInfo`\n- `Skill` and `PromptTemplate`: replace `.source` with `.sourceInfo.source`\n- `RegisteredCommand` and `RegisteredTool`: replace `.extensionPath` with `.sourceInfo.path`\n- Custom `ResourceLoader` implementations: remove `getPathMetadata()` and read provenance from loaded resources directly\n\nExamples:\n- `command.path` -> `command.sourceInfo.path`\n- `command.location === \"user\"` -> `command.sourceInfo.scope === \"user\"`\n- `skill.source` -> `skill.sourceInfo.source`\n- `tool.extensionPath` -> `tool.sourceInfo.path`\n\n### Changed\n\n- Built-in tools now work like custom tools in extensions. To get built-in tool definitions, import `readToolDefinition` \u002F `createReadToolDefinition()` and the equivalent `bash`, `edit`, `write`, `grep`, `find`, and `ls` exports from `@mariozechner\u002Fpi-coding-agent`.\n- Cleaned up `buildSystemPrompt()` so built-in tool snippets and tool-local guidelines come from built-in `ToolDefinition` metadata, while cross-tool and global prompt rules stay in system prompt construction.\n- Added structured `sourceInfo` to `pi.getAllTools()` results for built-in, SDK, and extension tools ([#1734](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1734))\n\n### Fixed\n\n- Fixed extension command name conflicts so extensions with duplicate command names can load together. Conflicting extension commands now get numeric invocation suffixes in load order, for example `\u002Freview:1` and `\u002Freview:2` ([#1061](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1061))\n- Fixed slash command source attribution for extension commands, prompt templates, and skills in autocomplete and command discovery ([#1734](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1734))\n- Fixed auto-resized image handling to enforce the inline image size limit on the final base64 payload, return text-only fallbacks when resizing cannot produce a safe image, and avoid falling back to the original image in `read` and `@file` auto-resize paths ([#2055](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2055))\n- Fixed `pi update` for git packages to skip destructive reset, clean, and reinstall steps when the fetched target already matches the local checkout ([#2503](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2503))\n- Fixed print and JSON mode to take over stdout during non-interactive startup, keeping package-manager and other incidental chatter off protocol\u002Foutput stdout ([#2482](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2482))\n- Fixed cli-highlight auto-detection for languageless code blocks that misidentified prose as programming languages and colored random English words as keywords\n- Fixed Anthropic thinking disable handling to send `thinking: { type: \"disabled\" }` for reasoning-capable models when thinking is explicitly off ([#2022](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2022))\n- Fixed explicit thinking disable handling across Google, Google Vertex, Gemini CLI, OpenAI Responses, Azure OpenAI Responses","2026-03-23T01:52:03",{"id":186,"version":187,"summary_zh":188,"released_at":189},102997,"v0.61.1","\n### New Features\n\n- Typed `tool_call` handler return values via `ToolCallEventResult` exports from the top-level package and core extension entry. See [docs\u002Fextensions.md](docs\u002Fextensions.md).\n- Updated default models for `zai`, `cerebras`, `minimax`, and `minimax-cn`, and aligned MiniMax catalog coverage and limits with the current provider lineup. See [docs\u002Fmodels.md](docs\u002Fmodels.md) and [docs\u002Fproviders.md](docs\u002Fproviders.md).\n\n### Added\n\n- Added `ToolCallEventResult` to the `@mariozechner\u002Fpi-coding-agent` top-level and core extension exports so extension authors can type explicit `tool_call` handler return values ([#2458](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2458))\n\n### Changed\n\n- Changed the default models for `zai`, `cerebras`, `minimax`, and `minimax-cn` to match the current provider lineup, and added missing `MiniMax-M2.1-highspeed` model entries with normalized MiniMax context limits ([#2445](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2445) by [@1500256797](https:\u002F\u002Fgithub.com\u002F1500256797))\n\n### Fixed\n\n- Fixed `ctrl+z` suspend and `fg` resume reliability by keeping the process alive until the `SIGCONT` handler restores the TUI, avoiding immediate process exit in environments with no other live event-loop handles ([#2454](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2454))\n- Fixed `createAgentSession({ agentDir })` to derive the default persisted session path from the provided `agentDir`, keeping session storage aligned with settings, auth, models, and resource loading ([#2457](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2457))\n- Fixed shared keybinding resolution to stop user overrides from evicting unrelated default shortcuts such as selector confirm and editor cursor keys ([#2455](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2455))\n- Fixed Termux software keyboard height changes from forcing full-screen redraws and replaying TUI history on every toggle ([#2467](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2467))\n- Fixed project-local npm package updates to install npm `latest` instead of reusing stale saved dependency ranges, and added `Did you mean ...?` suggestions when `pi update \u003Csource>` omits the configured npm or git source prefix ([#2459](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2459))\n\n","2026-03-20T19:17:37",{"id":191,"version":192,"summary_zh":193,"released_at":194},102998,"v0.61.0","\n### New Features\n\n- Namespaced keybinding ids and a unified keybinding manager across the app and TUI. See [docs\u002Fkeybindings.md](docs\u002Fkeybindings.md) and [docs\u002Fextensions.md](docs\u002Fextensions.md).\n- JSONL session export and import via `\u002Fexport \u003Cpath.jsonl>` and `\u002Fimport \u003Cpath.jsonl>`. See [README.md](README.md) and [docs\u002Fsession.md](docs\u002Fsession.md).\n- Resizable sidebar in HTML share and export views. See [README.md](README.md).\n\n### Breaking Changes\n\n- Interactive keybinding ids are now namespaced, and `keybindings.json` now uses those same canonical namespaced ids. Older config files are migrated automatically on startup. Custom editors and extension UI components still receive an injected `keybindings: KeybindingsManager`. They do not call `getKeybindings()` or `setKeybindings()` themselves. Declaration merging applies to that injected type ([#2391](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2391))\n- Extension author migration: update `keyHint()`, `keyText()`, and injected `keybindings.matches(...)` calls from old built-in names like `\"expandTools\"`, `\"selectConfirm\"`, and `\"interrupt\"` to namespaced ids like `\"app.tools.expand\"`, `\"tui.select.confirm\"`, and `\"app.interrupt\"`. See [docs\u002Fkeybindings.md](docs\u002Fkeybindings.md) for the full list. `pi.registerShortcut(\"ctrl+shift+p\", ...)` is unchanged because extension shortcuts still use raw key combos, not keybinding ids.\n\n### Added\n\n- Added `gpt-5.4-mini` to the `openai-codex` model catalog ([#2334](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2334) by [@justram](https:\u002F\u002Fgithub.com\u002Fjustram))\n- Added JSONL session export and import via `\u002Fexport \u003Cpath.jsonl>` and `\u002Fimport \u003Cpath.jsonl>` ([#2356](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2356) by [@hjanuschka](https:\u002F\u002Fgithub.com\u002Fhjanuschka))\n- Added a resizable sidebar to HTML share and export views ([#2435](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2435) by [@dmmulroy](https:\u002F\u002Fgithub.com\u002Fdmmulroy))\n\n### Fixed\n\n- Tests for session-selector-rename and tree-selector are now keybinding-agnostic, resetting editor keybindings to defaults before each test so user `keybindings.json` cannot cause failures ([#2360](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2360))\n- Fixed custom `keybindings.json` overrides to shadow conflicting default shortcuts globally, so bindings such as `cursorUp: [\"up\", \"ctrl+p\"]` no longer leave default actions like model cycling active ([#2391](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2391))\n- Fixed concurrent `edit` and `write` mutations targeting the same file to run serially, preventing interleaved file writes from overwriting each other ([#2327](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2327))\n- Fixed RPC mode to redirect unexpected stdout writes to stderr so JSONL responses remain parseable ([#2388](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2388))\n- Fixed auto-retry with tool-using retry responses so `session.prompt()` waits for the full retry loop, including tool execution, before returning ([#2440](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2440) by [@pasky](https:\u002F\u002Fgithub.com\u002Fpasky))\n- Fixed `\u002Fmodel` to refresh scoped model lists after `models.json` changes, avoiding stale selector contents ([#2408](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2408) by [@Perlence](https:\u002F\u002Fgithub.com\u002FPerlence))\n- Fixed `validateToolArguments()` to fall back gracefully when AJV schema compilation is blocked in restricted runtimes such as Cloudflare Workers, allowing tool execution to proceed without schema validation ([#2395](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2395))\n- Fixed CLI startup to suppress process warnings from leaking into terminal, print, and RPC output ([#2404](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2404))\n- Fixed bash tool rendering to show elapsed time at the bottom of the tool block ([#2406](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2406))\n- Fixed custom theme file watching to reload updated theme contents from disk instead of keeping stale cached theme data ([#2417](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2417), [#2003](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2003))\n- Fixed footer Git branch refreshes to run asynchronously so branch watcher updates do not block the UI ([#2418](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2418))\n- Fixed invalid extension provider registrations to surface an extension error without preventing other providers from loading ([#2431](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2431))\n- Fixed Windows bash execution hanging for commands that spawn detached descendants inheriting stdout\u002Fstderr handles, which caused `agent-browser` and similar commands to spin forever ([#2389](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2389) by [@mrexodia](https:\u002F\u002Fgithub.com\u002Fmrexodia))\n- Fixed `google-vertex` API key resolution to ignore placeholder auth markers like `\u003Cauthenticated>` and fall back to ADC instead of sending them as literal API keys ([#2335](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2335))\n- Fixed desktop clipboard text copy to prefer native OS clipboard inte","2026-03-20T01:11:02",{"id":196,"version":197,"summary_zh":198,"released_at":199},102999,"v0.60.0","\n### New Features\n\n- Fork existing sessions directly from the CLI with `--fork \u003Cpath|id>`, which copies a source session into a new session in the current project. See [README.md](README.md).\n- Extensions and SDK callers can reuse pi's built-in local bash backend via `createLocalBashOperations()` for `user_bash` interception and custom bash integrations. See [docs\u002Fextensions.md#user_bash](docs\u002Fextensions.md#user_bash).\n- Startup no longer updates unpinned npm and git packages automatically. Use `pi update` explicitly, while interactive mode checks for updates in the background and notifies you when newer packages are available. See [README.md](README.md).\n\n### Breaking Changes\n\n- Changed package startup behavior so installed unpinned packages are no longer checked or updated during startup. Use `pi update` to apply npm\u002Fgit package updates, while interactive mode now checks for available package updates in the background and notifies you when updates are available ([#1963](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1963))\n\n### Added\n\n- Added `--fork \u003Cpath|id>` CLI flag to fork an existing session file or partial session UUID directly into a new session ([#2290](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2290))\n- Added `createLocalBashOperations()` export so extensions and SDK callers can wrap pi's built-in local bash backend for `user_bash` handling and other custom bash integrations ([#2299](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2299))\n\n### Fixed\n\n- Fixed active model selection to refresh immediately after dynamic provider registrations or updates change the available model set ([#2291](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2291))\n- Fixed tmux xterm `modifyOtherKeys` matching for `Backspace`, `Escape`, and `Space`, and resolved raw `\\x08` backspace ambiguity by treating Windows Terminal sessions differently from legacy terminals ([#2293](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2293))\n- Fixed Gemini 3 and Antigravity image tool results to stay inline as multimodal tool responses instead of being rerouted through separate follow-up messages ([#2052](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2052))\n- Fixed bundled Bedrock Claude 4.6 model metadata to use the correct 200K context window instead of 1M ([#2305](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2305))\n- Fixed `\u002Freload` to reload keybindings from disk so changes in `keybindings.json` apply immediately ([#2309](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2309))\n- Fixed lazy built-in provider registration so compiled Bun binaries can still load providers on first use without eagerly bundling provider SDKs ([#2314](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2314))\n- Fixed built-in OAuth login flows to use aligned callback handling across Anthropic, Gemini CLI, Antigravity, and OpenAI Codex, and fixed OpenAI Codex login to complete immediately once the browser callback succeeds ([#2316](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2316))\n- Fixed OpenAI-compatible z.ai `network_error` responses to trigger error handling and retries instead of being treated as successful assistant output ([#2313](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2313))\n- Fixed print mode to merge piped stdin into the initial prompt when both stdin and an explicit prompt are provided ([#2315](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2315))\n- Fixed OpenAI Responses replay in coding-agent to normalize oversized resumed tool call IDs before sending them back to OpenAI Codex and other Responses-compatible targets ([#2328](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2328))\n- Fixed tmux extended-keys warning to stay hidden when the tmux server is unreachable, avoiding false startup warnings in sandboxed environments ([#2311](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2311) by [@kaffarell](https:\u002F\u002Fgithub.com\u002Fkaffarell))\n\n","2026-03-18T02:43:47",{"id":201,"version":202,"summary_zh":203,"released_at":204},103000,"v0.59.0","\n### New Features\n\n- Faster startup by lazy-loading `@mariozechner\u002Fpi-ai` provider SDKs on first use instead of import time ([#2297](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2297))\n- Better provider retry behavior when providers return error messages as responses ([#2264](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2264))\n- Better terminal integration via OSC 133 command-executed markers ([#2242](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2242))\n- Better Git footer branch detection for repositories using reftable storage ([#2300](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2300))\n\n### Breaking Changes\n\n- Changed custom tool system prompt behavior so extension and SDK tools are included in the default `Available tools` section only when they provide `promptSnippet`. Omitting `promptSnippet` now leaves the tool out of that section instead of falling back to `description` ([#2285](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2285))\n\n### Changed\n\n- Lazy-load built-in `@mariozechner\u002Fpi-ai` provider modules and root provider wrappers so coding-agent startup no longer eagerly loads provider SDKs before first use ([#2297](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2297))\n\n### Fixed\n\n- Fixed session title handling in `\u002Ftree`, compaction, and branch summarization so empty title clears render correctly and `session_info` entries stay out of summaries ([#2304](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2304) by [@aliou](https:\u002F\u002Fgithub.com\u002Faliou))\n- Fixed footer branch detection for Git repositories using reftable storage so branch names still appear correctly in the footer ([#2300](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2300))\n- Fixed rendered user messages to emit an OSC 133 command-executed marker after command output, improving terminal prompt integration ([#2242](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2242))\n- Fixed provider retry handling to treat provider-returned error messages as retryable failures instead of successful responses ([#2264](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2264))\n- Fixed Claude 4.6 context window overrides in bundled model metadata so coding-agent sees the intended model limits after generated catalogs are rebuilt ([#2286](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2286))\n\n","2026-03-17T17:14:37",{"id":206,"version":207,"summary_zh":208,"released_at":209},103001,"v0.58.4","\n### Fixed\n\n- Fixed steering messages to wait until the current assistant message's tool-call batch fully finishes instead of skipping pending tool calls.\n\n","2026-03-16T19:30:41",{"id":211,"version":212,"summary_zh":213,"released_at":214},103002,"v0.58.3","\n","2026-03-15T19:35:26",{"id":216,"version":217,"summary_zh":218,"released_at":219},103004,"v0.58.1","\n### Added\n\n- Added `pi uninstall` alias for `pi install --uninstall` convenience\n\n### Fixed\n\n- Fixed OpenAI Codex websocket protocol to include required headers and properly terminate SSE streams on connection close ([#1961](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1961))\n- Fixed WSL clipboard image fallback to properly handle missing clipboard utilities and permission errors ([#1722](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1722))\n- Fixed extension `session_start` hook firing before TUI was ready, causing UI operations in `session_start` handlers to fail ([#2035](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2035))\n- Fixed Windows shell and path handling for package manager operations and autocomplete to properly handle drive letters and mixed path separators\n- Fixed Bedrock prompt caching being enabled for non-Claude models, causing API errors ([#2053](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2053))\n- Fixed Qwen models via OpenAI-compatible providers by adding `qwen-chat-template` compat mode that uses Qwen's native chat template format ([#2020](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2020))\n- Fixed Bedrock unsigned thinking replay to handle edge cases with empty or malformed thinking blocks ([#2063](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2063))\n- Fixed headless clipboard fallback logging spurious errors in non-interactive environments ([#2056](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2056))\n- Fixed `models.json` provider compat flags not being honored when loading custom model definitions ([#2062](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2062))\n- Fixed xhigh reasoning effort detection for Claude Opus 4.6 to match by model ID instead of requiring explicit capability flag ([#2040](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2040))\n- Fixed prompt cwd containing Windows backslashes breaking bash tool execution by normalizing to forward slashes ([#2080](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2080))\n- Fixed editor paste to preserve literal content instead of normalizing newlines, preventing content corruption for text with embedded escape sequences ([#2064](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2064))\n- Fixed skill discovery recursing past skill root directories when nested SKILL.md files exist ([#2075](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2075))\n- Fixed tab completion to preserve `.\u002F` prefix when completing relative paths ([#2087](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2087))\n- Fixed npm package installs and lookups being tied to the active repository Node version by adding `npmCommand` as an argv-style settings override for package manager operations ([#2072](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2072))\n- Fixed `ctx.ui.getEditorText()` in the extension API returning paste markers (e.g., `[paste #1 +24 lines]`) instead of the actual pasted content ([#2084](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2084))\n- Fixed startup crash when downloading `fd`\u002F`ripgrep` on first run by using `pipeline()` instead of `finished(readable.pipe(writable))` so stream errors from timeouts are caught properly, and increased the download timeout from 10s to 120s ([#2066](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2066))\n\n","2026-03-14T11:41:25",{"id":221,"version":222,"summary_zh":223,"released_at":224},103005,"v0.58.0","\n### New Features\n\n- Claude Opus 4.6, Sonnet 4.6, and related Bedrock models now use a 1M token context window (up from 200K) ([#2135](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2135) by [@mitsuhiko](https:\u002F\u002Fgithub.com\u002Fmitsuhiko)).\n- Extension tool calls now execute in parallel by default, with sequential `tool_call` preflight preserved for extension interception.\n- `GOOGLE_CLOUD_API_KEY` environment variable support for the `google-vertex` provider as an alternative to Application Default Credentials ([#1976](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1976) by [@gordonhwc](https:\u002F\u002Fgithub.com\u002Fgordonhwc)).\n- Extensions can supply deterministic session IDs via `newSession()` ([#2130](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2130) by [@zhahaoyu](https:\u002F\u002Fgithub.com\u002Fzhahaoyu)).\n\n### Added\n\n- Added `GOOGLE_CLOUD_API_KEY` environment variable support for the `google-vertex` provider as an alternative to Application Default Credentials ([#1976](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1976) by [@gordonhwc](https:\u002F\u002Fgithub.com\u002Fgordonhwc))\n- Added custom session ID support in `newSession()` for extensions that need deterministic session paths ([#2130](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2130) by [@zhahaoyu](https:\u002F\u002Fgithub.com\u002Fzhahaoyu))\n\n### Changed\n\n- Changed extension tool interception to use agent-core `beforeToolCall` and `afterToolCall` hooks instead of wrapper-based interception. Tool calls now execute in parallel by default, extension `tool_call` preflight still runs sequentially, and final tool results are emitted in assistant source order.\n- Raised Claude Opus 4.6, Sonnet 4.6, and related Bedrock model context windows from 200K to 1M tokens ([#2135](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2135) by [@mitsuhiko](https:\u002F\u002Fgithub.com\u002Fmitsuhiko))\n\n### Fixed\n\n- Fixed `tool_call` extension handlers observing stale `sessionManager` state during multi-tool turns by draining queued agent events before each `tool_call` preflight. In parallel tool mode this guarantees state through the current assistant tool-calling message, but not sibling tool results from the same assistant message.\n- Fixed interactive input fields backed by the TUI `Input` component to scroll by visual column width for wide Unicode text (CJK, fullwidth characters), preventing rendered line overflow and TUI crashes in places like search and filter inputs ([#1982](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1982))\n- Fixed `shift+tab` and other modified Tab bindings in tmux when `extended-keys-format` is left at the default `xterm`\n- Fixed EXIF orientation not being applied during image convert and resize, causing JPEG and WebP images from phone cameras to display rotated or mirrored ([#2105](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2105) by [@melihmucuk](https:\u002F\u002Fgithub.com\u002Fmelihmucuk))\n- Fixed the default coding-agent system prompt to include only the current date in ISO format, not the current time, so prompt prefixes stay cacheable across reloads and resumed sessions ([#2131](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2131))\n- Fixed retry regex to match `server_error` and `internal_error` error types from providers, improving automatic retry coverage ([#2117](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2117) by [@MadKangYu](https:\u002F\u002Fgithub.com\u002FMadKangYu))\n- Fixed example extensions to support `PI_CODING_AGENT_DIR` environment variable for custom agent directory paths ([#2009](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2009) by [@smithbm2316](https:\u002F\u002Fgithub.com\u002Fsmithbm2316))\n- Fixed tool result images not being sent in `function_call_output` items for OpenAI Responses API providers, causing image data to be silently dropped in tool results ([#2104](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2104))\n- Fixed assistant content being sent as structured content blocks instead of plain strings in the `openai-completions` provider, causing errors with some OpenAI-compatible backends ([#2008](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2008) by [@geraldoaax](https:\u002F\u002Fgithub.com\u002Fgeraldoaax))\n- Fixed error details in OpenAI Responses `response.failed` handler to include status code, error code, and message instead of a generic failure ([#1956](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1956) by [@drewburr](https:\u002F\u002Fgithub.com\u002Fdrewburr))\n- Fixed GitHub Copilot device-code login polling to respect OAuth slow-down intervals, wait before the first token poll, and include a clearer clock-drift hint in WSL\u002FVM environments when repeated slow-downs lead to timeout\n- Fixed usage statistics not being captured for OpenAI-compatible providers that return usage in `choice.usage` instead of the standard `chunk.usage` (e.g., Moonshot\u002FKimi) ([#2017](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F2017))\n- Fixed editor scroll indicator rendering crash in narrow terminal widths ([#2103](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F2103) by [@haoqixu](https:\u002F\u002Fgithub.com\u002Fhaoqixu))\n- Fixed tab characters in editor and input paste not being normalized to spaces ([#2027](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono","2026-03-14T02:32:26",{"id":226,"version":227,"summary_zh":228,"released_at":229},103006,"v0.57.1","\n### New Features\n- Tree branch folding and segment-jump navigation in `\u002Ftree`, with `Ctrl+←`\u002F`Ctrl+→` and `Alt+←`\u002F`Alt+→` shortcuts while `←`\u002F`→` and `Page Up`\u002F`Page Down` remain available for paging. See [docs\u002Ftree.md](docs\u002Ftree.md) and [docs\u002Fkeybindings.md](docs\u002Fkeybindings.md).\n- `session_directory` extension event for customizing session directory paths before session manager creation. See [docs\u002Fextensions.md](docs\u002Fextensions.md).\n- Digit keybindings (`0-9`) in the TUI keybinding system, including modified combos like `ctrl+1`. See [docs\u002Fkeybindings.md](docs\u002Fkeybindings.md).\n\n### Added\n- Added `\u002Ftree` branch folding and segment-jump navigation with `Ctrl+←`\u002F`Ctrl+→` and `Alt+←`\u002F`Alt+→`, while keeping `←`\u002F`→` and `Page Up`\u002F`Page Down` for paging ([#1724](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1724) by [@Perlence](https:\u002F\u002Fgithub.com\u002FPerlence))\n- Added `session_directory` extension event that fires before session manager creation, allowing extensions to customize the session directory path based on cwd and other factors. CLI `--session-dir` flag takes precedence over extension-provided paths ([#1730](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1730) by [@hjanuschka](https:\u002F\u002Fgithub.com\u002Fhjanuschka)).\n- Added digit keys (`0-9`) to the keybinding system, including Kitty CSI-u and xterm `modifyOtherKeys` support for bindings like `ctrl+1` ([#1905](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1905))\n\n### Fixed\n- Fixed custom tool collapsed\u002Fexpanded rendering in HTML exports. Custom tools that define different collapsed vs expanded displays now render correctly in exported HTML, with expandable sections when both states differ and direct display when only expanded exists ([#1934](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1934) by [@aliou](https:\u002F\u002Fgithub.com\u002Faliou))\n- Fixed tmux startup guidance and keyboard setup warnings for modified key handling, including Ghostty `shift+enter=text:\\n` remap guidance and tmux `extended-keys-format` detection ([#1872](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1872))\n- Fixed z.ai context overflow recovery so `model_context_window_exceeded` errors trigger auto-compaction instead of surfacing as unhandled stop reason failures ([#1937](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1937))\n- Fixed autocomplete selection ignoring typed text: highlight now follows the first prefix match as the user types, and exact matches are always selected on Enter ([#1931](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1931) by [@aliou](https:\u002F\u002Fgithub.com\u002Faliou))\n- Fixed slash-command Tab completion to immediately open argument completions when available ([#1481](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1481) by [@barapa](https:\u002F\u002Fgithub.com\u002Fbarapa))\n- Fixed explicit `pi -e \u003Cpath>` extensions losing command and tool conflicts to discovered extensions by giving CLI-loaded extensions higher precedence ([#1896](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1896))\n- Fixed Windows external editor launch for `Ctrl+G` and `ctx.ui.editor()` so shell-based commands like `EDITOR=\"code --wait\"` work correctly ([#1925](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1925))\n\n","2026-03-07T23:57:54",{"id":231,"version":232,"summary_zh":233,"released_at":234},103007,"v0.57.0","\n### New Features\n\n- Extensions can intercept and modify provider request payloads via `before_provider_request`. See [docs\u002Fextensions.md#before_provider_request](docs\u002Fextensions.md#before_provider_request).\n- Extension UIs can use non-capturing overlays with explicit focus control via `OverlayOptions.nonCapturing` and `OverlayHandle.focus()` \u002F `unfocus()` \u002F `isFocused()`. See [docs\u002Fextensions.md](docs\u002Fextensions.md) and [..\u002Ftui\u002FREADME.md](..\u002Ftui\u002FREADME.md).\n- RPC mode now uses strict LF-only JSONL framing for robust payload handling. See [docs\u002Frpc.md](docs\u002Frpc.md).\n\n### Breaking Changes\n\n- RPC mode now uses strict LF-delimited JSONL framing. Clients must split records on `\\n` only instead of using generic line readers such as Node `readline`, which also split on Unicode separators inside JSON payloads ([#1911](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1911))\n\n### Added\n\n- Added `before_provider_request` extension hook so extensions can inspect or replace provider payloads before requests are sent, with an example in `examples\u002Fextensions\u002Fprovider-payload.ts`\n- Added non-capturing overlay focus control for extension UIs via `OverlayOptions.nonCapturing` and `OverlayHandle.focus()` \u002F `unfocus()` \u002F `isFocused()` ([#1916](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1916) by [@nicobailon](https:\u002F\u002Fgithub.com\u002Fnicobailon))\n\n### Changed\n\n- Overlay compositing in extension UIs now uses focus order so focused overlays render on top while preserving stack semantics for show\u002Fhide behavior ([#1916](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1916) by [@nicobailon](https:\u002F\u002Fgithub.com\u002Fnicobailon))\n\n### Fixed\n\n- Fixed RPC mode stdin\u002Fstdout framing to use strict LF-delimited JSONL instead of `readline`, so payloads containing `U+2028` or `U+2029` no longer corrupt command or event streams ([#1911](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1911))\n- Fixed automatic overlay focus restoration in extension UIs to skip non-capturing overlays, and fixed overlay hide behavior to only reassign focus when the hidden overlay had focus ([#1916](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1916) by [@nicobailon](https:\u002F\u002Fgithub.com\u002Fnicobailon))\n- Fixed `pi config` misclassifying `~\u002F.agents\u002Fskills` as project-scoped in non-git directories under `$HOME`, so toggling those skills no longer writes project overrides to `.pi\u002Fsettings.json` ([#1915](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1915))\n\n","2026-03-07T13:45:31",{"id":236,"version":237,"summary_zh":238,"released_at":239},103008,"v0.56.3","\n### New Features\n\n- `claude-sonnet-4-6` model available via the `google-antigravity` provider ([#1859](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1859))\n- Custom editors can now define their own `onEscape`\u002F`onCtrlD` handlers without being overwritten by app defaults, enabling vim-mode extensions ([#1838](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1838))\n- Shift+Enter and Ctrl+Enter now work inside tmux via xterm modifyOtherKeys fallback ([docs\u002Ftmux.md](docs\u002Ftmux.md), [#1872](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1872))\n- Auto-compaction is now resilient to persistent API errors (e.g. 529 overloaded) and no longer retriggers spuriously after compaction ([#1834](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1834), [#1860](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1860))\n\n### Added\n\n- Added `claude-sonnet-4-6` model for the `google-antigravity` provider ([#1859](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1859)).\n- Added [tmux setup documentation](docs\u002Ftmux.md) for modified enter key support ([#1872](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1872))\n\n### Fixed\n\n- Fixed custom editors having their `onEscape`\u002F`onCtrlD` handlers unconditionally overwritten by app-level defaults, making vim-style escape handling impossible ([#1838](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1838))\n- Fixed auto-compaction retriggering on the first prompt after compaction due to stale pre-compaction assistant usage ([#1860](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1860) by [@joelhooks](https:\u002F\u002Fgithub.com\u002Fjoelhooks))\n- Fixed sessions never auto-compacting when hitting persistent API errors (e.g. 529 overloaded) by estimating context size from the last successful response ([#1834](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1834))\n- Fixed compaction summarization requests exceeding context limits by truncating tool results to 2k chars ([#1796](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1796))\n- Fixed `\u002Fnew` leaving startup header content, including the changelog, visible after starting a fresh session ([#1880](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1880))\n- Fixed misleading docs and example implying that returning `{ isError: true }` from a tool's `execute` function marks the execution as failed; errors must be signaled by throwing ([#1881](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1881))\n- Fixed model switches through non-reasoning models to preserve the saved default thinking level instead of persisting a capability-forced `off` clamp ([#1864](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1864))\n- Fixed parallel pi processes failing with false \"No API key found\" errors due to immediate lockfile contention on `auth.json` and `settings.json` ([#1871](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1871))\n- Fixed OpenAI Responses reasoning replay regression that broke multi-turn reasoning continuity ([#1878](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1878))\n\n","2026-03-06T16:08:46",{"id":241,"version":242,"summary_zh":243,"released_at":244},103009,"v0.56.2","\n### New Features\n\n- GPT-5.4 support across `openai`, `openai-codex`, `azure-openai-responses`, and `opencode`, with `gpt-5.4` now the default for `openai` and `openai-codex` ([README.md](README.md), [docs\u002Fproviders.md](docs\u002Fproviders.md)).\n- `treeFilterMode` setting to choose the default `\u002Ftree` filter mode (`default`, `no-tools`, `user-only`, `labeled-only`, `all`) ([docs\u002Fsettings.md](docs\u002Fsettings.md), [#1852](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1852) by [@lajarre](https:\u002F\u002Fgithub.com\u002Flajarre)).\n- Mistral native conversations integration with SDK-backed provider behavior, preserving Mistral-specific thinking and replay semantics ([README.md](README.md), [docs\u002Fproviders.md](docs\u002Fproviders.md), [#1716](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1716)).\n\n### Added\n\n- Added `gpt-5.4` model availability for `openai`, `openai-codex`, `azure-openai-responses`, and `opencode` providers.\n- Added `gpt-5.3-codex` fallback model availability for `github-copilot` until upstream model catalogs include it ([#1853](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1853)).\n- Added `treeFilterMode` setting to choose the default `\u002Ftree` filter mode (`default`, `no-tools`, `user-only`, `labeled-only`, `all`) ([#1852](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1852) by [@lajarre](https:\u002F\u002Fgithub.com\u002Flajarre)).\n\n### Changed\n\n- Updated the default models for the `openai` and `openai-codex` providers to `gpt-5.4`.\n\n### Fixed\n\n- Fixed GPT-5.3 Codex follow-up turns dropping OpenAI Responses assistant `phase` metadata by preserving replayable signatures in session history and forwarding `phase` back to the Responses API ([#1819](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1819)).\n- Fixed OpenAI Responses replay to omit empty thinking blocks, avoiding invalid no-op reasoning items in follow-up turns.\n- Updated Mistral integration to use the native SDK-backed provider and conversations API, including coding-agent model\u002Fprovider wiring and Mistral setup documentation ([#1716](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1716)).\n- Fixed Antigravity reliability: endpoint cascade on 403\u002F404, added autopush sandbox fallback, removed extra fingerprint headers ([#1830](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1830)).\n- Fixed `@mariozechner\u002Fpi-ai\u002Foauth` extension imports in published installs by resolving the subpath directly from built `dist` files instead of package-root wrapper shims ([#1856](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1856)).\n- Fixed Gemini 3 multi-turn tool use losing structured context by using `skip_thought_signature_validator` sentinel for unsigned function calls instead of text fallback ([#1829](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1829)).\n- Fixed model selector filter not accepting typed characters in VS Code 1.110+ due to missing Kitty CSI-u printable decoding in the `Input` component ([#1857](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1857))\n- Fixed editor\u002Ffooter visibility drift during terminal resize by forcing full redraws when terminal width or height changes ([#1844](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1844) by [@ghoulr](https:\u002F\u002Fgithub.com\u002Fghoulr)).\n- Fixed footer width truncation for wide Unicode text (session name, model, provider) to prevent TUI crashes from rendered lines exceeding terminal width ([#1833](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1833)).\n- Fixed Windows write preview background artifacts by normalizing CRLF content (`\\r\\n`) to LF for display rendering in tool output previews ([#1854](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fissues\u002F1854)).\n\n","2026-03-05T23:43:51",{"id":246,"version":247,"summary_zh":248,"released_at":249},103010,"v0.56.1","\n### Fixed\n\n- Fixed extension alias fallback resolution to use ESM-aware resolution for `jiti` aliases in global installs ([#1821](https:\u002F\u002Fgithub.com\u002Fbadlogic\u002Fpi-mono\u002Fpull\u002F1821) by [@Perlence](https:\u002F\u002Fgithub.com\u002FPerlence))\n- Fixed markdown blockquote rendering to isolate blockquote styling from default text style, preventing style leakage.\n\n","2026-03-05T06:15:28"]