# @huntye1/pi-codex-todo

[English](README.md)

这是一个面向 Pi 的 Codex 风格 `update_plan` 扩展，提供三态任务清单、分支感知的会话状态、常驻 TUI 组件，以及后续用户轮次中的有界提醒。

## 安装

```bash
pi install npm:@huntye1/pi-codex-todo
```

在运行中的 Pi 执行 `/reload`。本地开发时可直接加载：

```bash
pi --extension ./packages/pi-codex-todo/extensions/update-plan.ts
```

## 功能

- 兼容 Codex 的 `update_plan` 输入，支持 `pending`、`in_progress` 和 `completed`
- 每次提交完整快照，最多允许一个进行中项目
- 恢复会话或切换会话树节点时，从当前活动分支恢复状态
- 紧凑的工具结果渲染、常驻清单组件和 footer 计数
- 未完成工作存在时，在后续用户轮次开始处加入有界的隐藏提醒
- 提供 `/todos`、`/todos show`、`/todos hide` 和 `/todos clear`

这是执行清单，不是 Pi 的只读 Plan Mode。

## 工具输入

模型调用 `update_plan` 时应提供完整的当前清单：

```json
{
  "explanation": "开始实现",
  "plan": [
    { "step": "检查仓库", "status": "completed" },
    { "step": "实现修改", "status": "in_progress" },
    { "step": "运行测试", "status": "pending" }
  ]
}
```

最多只能有一个项目处于 `in_progress`。每次更新都会替换前一份快照，因此已完成和待处理项目都应继续保留，除非确实要将它们移除。

## 命令

- `/todos`：显示最新清单。
- `/todos hide`：隐藏常驻组件，但不清除状态。
- `/todos show`：重新显示组件。
- `/todos clear`：清空清单，并在当前活动分支持久化清空后的状态。

## 状态行为

清单快照保存在 Pi 会话中，并且只从活动分支重建；废弃分支的状态不会泄漏到当前分支。只有存在未完成工作时才会加入提醒，而且提醒长度有界，避免提示词持续增长。

## 开发与发布

```bash
npm run check
npm run pack:check
npm publish --access public
```

Pi 宿主 API 作为 optional peer dependencies 由 Pi 提供。发布包包含扩展入口、源码、中英文 README、许可证和 package 元数据。

## 许可证

MIT
