# Changelog

## [0.1.2] - 2026-05-18

**Patch release** — repository URL normalization.
No code changes, no behavior changes.

- Repository URL → `https://github.com/tupleyun/cmdc_tui`
- LICENSE commercial contact URL → `https://github.com/tupleyun/cmdc`

## [0.1.1] - 2026-05-16

**Compatibility & bug-fix patch** — 修复 v0.1.0 一个**隐性可装但不可
用**的依赖 bug，与 cmdc 0.4 主线对齐。

### Fixed — `~> 0.1` cmdc 依赖与代码实际不匹配（已存在自 v0.1.0 起）

v0.1.0 时 `mix.exs` 写的是 `{:cmdc, "~> 0.1"}`，但代码（`lib/cmdc_tui/
state.ex`）使用了 `%CMDC.TokenUsage{}` struct — 该 struct 是 cmdc v0.2
RFC B5 才引入的。意味着：

- 用户从 hex.pm 装 `cmdc_tui 0.1.0` 会被强制拉 `cmdc 0.1.x`
- `cmdc 0.1.x` **没有** `CMDC.TokenUsage` struct
- 用户 `mix compile` 时会**编译错误**（`CMDC.TokenUsage.__struct__/0
  undefined`）

v0.1.1 修复：

- `{:cmdc, "~> 0.1"}` → **`{:cmdc, "~> 0.4"}`** (`mix.exs`)
- 代码无需改动（本就在用 v0.2+ API）

### Changed — cmdc 依赖范围升到主线最新

- 同时让 `cmdc_tui` 能与最新 cmdc 0.4.0（含 Backend / Checkpoint /
  Telemetry / 3 新内置 Plugin / A2A webhook 等 7 项 NEW）共存
- 本库 API 表面无变化；事件订阅 / approve / reject / abort / subscribe
  等核心调用全部兼容 v0.4

### Migration

```elixir
# mix.exs
{:cmdc_tui, "~> 0.1"}        # 自动拿到 0.1.1
# 同时升级 cmdc 主库
{:cmdc, "~> 0.4"}
```

如果你之前装上 v0.1.0 后遇到编译错误 — 这就是原因，升级即可。

## [0.1.0] - 2026-04-08

Initial release of CMDC TUI — 基于 ExRatatui 的 AI Agent 终端交互界面。

### Added

- **ChatPanel** — WidgetList + Markdown 渲染 + Textarea 多行输入 + Throbber 加载动画，流式逐 token 实时输出
- **ToolPanel** — Table 展示工具调用实时状态（名称/参数摘要/状态/耗时）
- **TodoPanel** — Checkbox 展示 Agent 的 Todo 列表，状态实时更新
- **StatusBar** — Agent 状态 / session_id / 模型名 / token 用量 / 费用
- **ApprovalDialog** — HITL 审批弹窗（y=批准 / n=拒绝）
- **AskUserDialog** — Agent 提问弹窗（自由文本 + 选项快速选择）
- **CommandPalette** — Ctrl+P 打开命令面板，模糊搜索执行命令
- **SlashCommands** — 输入框 `/` 触发内联自动补全（/help /clear /model /compact /stop /tools /todos /quit）
- **EventRouter** — CMDC EventBus 事件自动路由到对应 State 更新
- **KeyHandler** — 全局快捷键分发（Enter/Shift+Enter/Tab/Ctrl+P/Ctrl+C 等）
- **`mix tui`** — Mix 任务，环境变量配置后一键启动
- 窄屏自适应（< 80 列隐藏侧栏）
- 18 项 headless 测试全绿
