# What's new

Changes to the POS Apps SDK (`@pancake-pos/ui-extensions`, `@pancake-pos/ui`, `@pancake-pos/app-cli`, `@pancake-pos/eslint-plugin`, `create-pos-app`). The packages are released together under one version number.

- **Deployed apps need nothing:** POS serves the runtime, so fixes and new elements take effect right away. Everything in `api_version` `2026-01` is additive and does not break existing code.
- **Projects in progress should update** to get the new types, code rules, docs and MCP examples. The CLI tells you when a new version is out ([Updating the SDK](/developers/apps/en/sdk#updating-the-sdk)):

```bash
npm i @pancake-pos/ui@latest @pancake-pos/ui-extensions@latest
npm i -D @pancake-pos/app-cli@latest @pancake-pos/eslint-plugin@latest
```

If you use the MCP server, restart it after updating.

## 2026.1.9

- The CLI tells you about a newer SDK: `npm run check`, `build`, `deploy` and `dev` print the update command; `--json` results and the MCP tools (`check_app`, `deploy`, `get_errors`) carry an `update` field so AI tools can offer the update. Turn it off with `POS_APP_NO_UPDATE_CHECK=1`.
- Rule `pos-app/valid-elements`: an unknown element, property or event that looks like no known name now suggests updating the SDK (usually code written from newer docs).
- This What's new page.

## 2026.1.8

**Components**

- New: [`pos-switch`](/developers/apps/en/components#pos-switch), [`pos-radio-group`](/developers/apps/en/components#pos-radio-group), [`pos-time-picker`](/developers/apps/en/components#pos-time-picker), [`pos-file-input`](/developers/apps/en/components#pos-file-input) (POS reads CSV/Excel into a table for the app).
- [`pos-table`](/developers/apps/en/components#pos-table): `rows` take Open API records as they are and a column `key` is a path (`customer.name`, `items.0.sku`); an "Actions" column with `rowActions` and `onRowAction`; `copyable` columns.
- `pos-select`: search through the API with `onSearch` and `loading`. `pos-date-picker`: `time` to pick a time as well.
- `pos-modal`: `width` (520, 720, 1000 px). The footer of `pos-modal` and `pos-drawer` also takes `pos-menu-button` and `pos-link`.

**API** ([runtime-api](/developers/apps/en/runtime-api))

- `pos.api.paginate` loads many pages in parallel within the rate limit; `pos.api.get(path, { cache })` keeps catalogs in memory.
- `pos.download({ sheet })`: POS builds an `.xlsx` or `.csv` file from columns and rows.
- `pos.navigate({ resource: 'order', id })` opens an order in a new tab. `pos.format` formats numbers, money and dates like POS. `pos.clipboard.copy`.

**Runtime and tools**

- A value that breaks the schema (wrong type, misplaced element, text too long) no longer stops the extension: POS drops the bad part and writes it to the error log.
- Development mode writes "Standard screens" warnings (`standard_screen`) to the error log, read with `get_errors`.
- MCP tool `get_example`: complete sample apps (report, list with a detail drawer, file import, order form block, print template, hook).

## 2026.1.7

- Elements for report and list screens: `pos-stat`, `pos-date-range`, `pos-menu-button`, `pos-description-list`, `pos-timeline`, `pos-progress`, `pos-empty`, `pos-drawer`.
- `pos-table`: column `format` badge, link, percent, `tones`, `subtitle`, `sortable`, `fixed`, `ellipsis`; `sort`, `summary`, `selectable`, `selected`; events `onSortChange`, `onSelectionChange`, `onCellClick`.
- `pos-chart`: combined bars and lines, horizontal bars, percent. `pos-button`: `icon`, `tooltip`.
- `pos.download` saves a file the app made.
- Rule `pos-app/standard-screen` (warning) following [Standard screens](/developers/apps/en/components#standard-screens); the `create-pos-app` template has a sample report page.
- MCP tools `search_api` and `get_api` look up Open API endpoints.
- Fix: development mode could not load data when POS called the API through `pos.pancake.vn`.

## 2026.1.6

- Docs and the template run the CLI through `npm run …` or `npx @pancake-pos/app-cli …` (the `pos-app` package on npm is not Pancake's).

## 2026.1.5

- Customer targets: `customer.details.action`, `customer.index.action`, `customer.index.selection-action`, `customer.index.column`.

## 2026.1.4

- Worker UI pages (`app.page` with `render: "worker"`) and page elements: `pos-page`, `pos-tabs`, `pos-filter-bar`, `pos-chart`.
- List columns (`<resource>.index.column`), app print templates (`<resource>.print-action`), the customer profile block (`customer.details.block`).
