# v0.19.2 — Page tool locator improvements, recording fidelity & GLM refresh

A consolidated maintenance release that sharpens how Pie reads and acts inside large, app-like pages, makes skill recording more faithful, refreshes the built-in GLM model list, and hardens pinned-tab handling.

## Better page reading on large apps

`read_page` now returns a budget-protected `<interactive_index>` before the page HTML, so blank editors and late-DOM controls can still be found even when large pages need HTML truncation.

`read_page` also supports task-oriented modes:

- `auto` balances interaction targets and page content.
- `interactive` prioritizes buttons, inputs, blank editors, menus, and form controls.
- `content` prioritizes readable page content such as emails, tables, body text, and status messages.
- `full` asks for the broadest HTML context within the hard budget.

`search_page` can now search element summaries as well as visible text. Use `search_by: "role"` for targets like `textbox`, `search_by: "tag"` for `contenteditable`, and `search_by: "attribute"` for allowlisted attributes such as `contenteditable=true`. This makes blank editors in Gmail, Notion-style editors, and long issue/PR pages reliably locatable.

## More faithful skill recording

Recording now reuses the same page-snapshot infrastructure the agent reads with, so captured selectors stay in parity with what the agent later sees:

- Captures `div[onclick]` and other elements via the canonical interactive selector.
- Records checkbox/radio **toggle state** instead of the literal `value=on`.
- Captures `contenteditable` rich-text typing (debounced) and Enter + modifier-combo keypresses.
- Flags popup / menu-item clicks with a `fromPopup` reveal hint so replay can re-open the menu first.

## Pinned-tab safety

- New **`unpin_tab`** tool; `close_tabs` now protects every pinned tab, and an unpin is reflected within the same turn so a following `close_tabs` sees the updated state (#110).

## GLM (Zhipu BigModel) model list refresh

Synced the built-in **GLM (Zhipu)** provider with BigModel's current lineup (#106):

- **Text:** `glm-5.1`, `glm-5`, `glm-5-turbo`, `glm-4.7`, `glm-4.7-flashx`, `glm-4.7-flash`, `glm-4.6`, `glm-4.5-air`, `glm-4.5-airx`, `glm-4-long` (1M ctx), `glm-4-flashx-250414`, `glm-4-flash-250414`.
- **Vision:** `glm-5v-turbo`, `glm-4.6v`, `glm-4.6v-flash`, `glm-4.1v-thinking-flashx`, `glm-4.1v-thinking-flash`, `glm-4v-flash`.
- Dropped the superseded `glm-4-plus` / `glm-4v-plus` / `glm-4-air` entries. Any model id can still be added manually via the per-provider custom-model pool.

## 中文摘要

一个综合维护版本:增强 Pie 在大型 Web App 内的页面定位与操作能力、提升技能录制的还原度、刷新内置 GLM 模型名单,并加固 pinned tab 处理。

- **大型页面读取**:`read_page` 先返回受预算保护的 `<interactive_index>`,即使 HTML 被截断,空白编辑器和 DOM 后半段控件也能找到;新增 `auto` / `interactive` / `content` / `full` 四种读取模式。`search_page` 支持按元素摘要搜索:`search_by: "role"` 找 `textbox`、`"tag"` 找 `contenteditable`、`"attribute"` 搜 `contenteditable=true` 等 allowlist 属性,让 Gmail、Notion 类编辑器、长 issue/PR 页面里的空白编辑器可靠可定位。
- **录制还原度**:录制复用与 agent 读取相同的 page-snapshot 基础设施,选择器与 agent 后续所见保持 parity;支持 `div[onclick]`、复选框/单选**勾选态**(不再是 `value=on`)、`contenteditable` 富文本输入(防抖)、Enter 与修饰键组合键,并给 popup/菜单项点击打上 `fromPopup` 提示以便回放先展开菜单。
- **pinned tab 安全**:新增 `unpin_tab` 工具;`close_tabs` 保护所有 pinned tab,且 unpin 在同一轮内生效,后续 `close_tabs` 能看到最新状态(#110)。
- **GLM 名单刷新**:把内置 **GLM(Zhipu)** provider 同步到 BigModel 最新阵容(#106),收录支持 tool calling 的对话/视觉模型,移除被取代的 `glm-4-plus` / `glm-4v-plus` / `glm-4-air`;任意 model id 仍可通过自定义模型池手动添加。
