Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ change to a published package ships with a release entry (and vice versa).
- A new MDX component must be registered in **three** places: `apps/docs/components/mdx/mdx-components.tsx`, `apps/docs/components/api/markdown-content.tsx`, and a handler in `apps/docs/lib/mdx-expander.ts` (else raw tags leak into generated `.md`/`llms-full.txt`).
- Next.js middleware lives in `apps/docs/proxy.ts` (Next 16 renamed `middleware.ts` → `proxy.ts`; both present fails the build).
- After changing `typespec.tsp`, always `npx turbo build --filter=@pachca/spec --force` — otherwise `openapi.yaml` stays stale.
- Snapshot regeneration for `packages/generator` is a bulk snapshot rewrite. Use `cd packages/generator && npm run regen-snapshots` (backed by top-level `scripts/regen-generator-snapshots.ts`) instead of ad-hoc `bun -e` one-offs or the old `bin/` / `tests/` helpers.
- Restart the docs dev server after changing component registrations or new TS/TSX files (Turbopack HMR misses them).

## Deep-dive docs (read before the relevant task)
Expand Down
5 changes: 5 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ Targeted regeneration:
| OpenAPI only (after editing `typespec.tsp`) | `npx turbo build --filter=@pachca/spec --force` |
| llms / skills / postman / per-page md | `cd apps/docs && bun run generate-llms` |
| CLI commands | `cd packages/cli && bun run generate-cli` |
| Generator test snapshots | `cd packages/generator && npm run regen-snapshots` |
| Everything (before commit) | `npx turbo build` |

If the generator step fails with `Cannot find module @pachca/openapi-parser`:
Expand Down Expand Up @@ -65,6 +66,10 @@ After a build, review the diff of regenerated files; a stale version
sitting in a generated file means regeneration didn't run — debug it,
don't hand-patch.

For `packages/generator` snapshot fixtures, use `npm run regen-snapshots`
(backed by top-level `scripts/regen-generator-snapshots.ts`) instead of
ad-hoc `bun -e` commands or the old `bin/` / `tests/` helpers.

## Workflow

1. Edit source.
Expand Down
22 changes: 22 additions & 0 deletions apps/docs/data/releases.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,26 @@
[
{
"product": "sdk",
"version": "1.0.20",
"date": "2026-06-02",
"changes": [
{
"type": "~",
"description": "Go SDK: явные пустые массивы и объекты в optional request-полях теперь сериализуются как `[]` / `{}` и не теряются из-за `omitempty`"
}
]
},
{
"product": "generator",
"version": "1.1.5",
"date": "2026-06-02",
"changes": [
{
"type": "~",
"description": "Go generator: для optional non-null array/map полей генерируется `MarshalJSON`, чтобы сохранять явные пустые контейнеры в JSON"
}
]
},
{
"product": "cli",
"version": "2026.5.6",
Expand Down
187 changes: 13 additions & 174 deletions apps/docs/public/updates.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,18 @@

История изменений API Пачки, CLI, SDK и расширения для n8n.

## ☀️ Лето 2026

### 02 июня 2026

### SDK v1.0.20

- Go SDK: явные пустые массивы и объекты в optional request-полях теперь сериализуются как `[]` / `{}` и не теряются из-за `omitempty`

### Generator v1.1.5

- Go generator: для optional non-null array/map полей генерируется `MarshalJSON`, чтобы сохранять явные пустые контейнеры в JSON

## 🌷 Весна 2026

### 21 мая 2026
Expand Down Expand Up @@ -433,184 +445,11 @@ _03 марта 2026_

Появился раздел документации [CLI](/guides/cli) — все методы API доступны как команды в терминале.

## ❄️ Зима 2025–26

### Полнотекстовый поиск, сообщение о недоступности и новые поля сообщений

_27 февраля 2026_

Были добавлены новые методы для полнотекстового поиска по сотрудникам, чатам и сообщениям:

- [Поиск сотрудников](GET /search/users)
- [Поиск чатов](GET /search/chats)
- [Поиск сообщений](GET /search/messages)

С помощью этих методов вы можете искать по текстовому запросу с поддержкой фильтрации и курсорной пагинации.

В модель статуса добавлено новое поле `away_message` — сообщение при режиме «Нет на месте», которое отображается в профиле пользователя и при отправке ему личного сообщения или упоминании в чате.

В модель сообщения добавлены поля `root_chat_id` (идентификатор корневого чата для сообщений в тредах), `changed_at` (дата редактирования) и `deleted_at` (дата удаления).

Были обновлены следующие методы:

- [Новый статус](PUT /profile/status)
- [Новый статус сотрудника](PUT /users/{user_id}/status)
- [Отправить сообщение](POST /messages)
- [Информация о сообщении](GET /messages/{id})
- [Редактирование сообщения](PUT /messages/{id})
- [Список сообщений чата](GET /messages)

### Режим «Нет на месте» и управление статусами

_26 февраля 2026_

В модель статуса добавлено новое поле `is_away` — режим «Нет на месте». Также добавлены новые методы для администраторов и владельцев, позволяющие просматривать, устанавливать и удалять статус любого сотрудника.

Были добавлены новые методы:

- [Статус сотрудника](GET /users/{user_id}/status)
- [Новый статус сотрудника](PUT /users/{user_id}/status)
- [Удаление статуса сотрудника](DELETE /users/{user_id}/status)

Были обновлены следующие методы:

- [Текущий статус](GET /profile/status)
- [Новый статус](PUT /profile/status)

### Привязка напоминаний к чатам

_25 февраля 2026_

Напоминания теперь можно привязывать к чатам, в которых вы состоите — при создании напоминания укажите `chat_id`. В ответе всех методов напоминаний добавлено новое поле `chat_id`.

Были обновлены следующие методы:

- [Новое напоминание](POST /tasks)
- [Список напоминаний](GET /tasks)
- [Информация о напоминании](GET /tasks/{id})
- [Редактирование напоминания](PUT /tasks/{id})

### Авторизация и скоупы

_24 февраля 2026_

Добавлена поддержка OAuth 2.0 скоупов — теперь каждый метод API указывает, какой скоуп токена необходим для его вызова. Скоупы отображаются на странице каждого метода в виде бейджа.

Был добавлен новый метод:

- [Информация о токене](GET /oauth/token/info) — получение информации о текущем OAuth токене, включая список скоупов, дату создания и последнего использования

Появился новый раздел документации — [Авторизация](/api/authorization). В нём описаны типы токенов, способы их создания, скоупы для персональных токенов и фиксированный набор скоупов для токенов ботов, а также ошибки авторизации.

### Инструменты для тестирования API

_22 февраля 2026_

Добавлен онлайн-клиент **Scalar** — тестирование всех методов API прямо в браузере без установки. Также доступна готовая коллекция запросов для **Postman** и **Bruno** с примерами и настроенной авторизацией.

Подробнее в разделе [Тестирование API](/api/requests-responses#testirovanie-api).

### Ресурсы для AI-агентов

_21 февраля 2026_

Появился новый раздел документации — [AI агенты](/guides/ai-agents). В нём описано, как Пачка работает с AI-агентами, и собраны все ресурсы для интеграции.

Что нового:

- **Agent Skills** — описание API в формате skill-файлов для подключения к 40+ AI-агентам (Claude Code, Cursor, Codex, Windsurf и др.)
- **Context7 MCP** — документация Пачки доступна через MCP-сервер Context7 для агентов с поддержкой MCP
- **OpenAPI-спецификация** — спецификация для кодогенерации и автоматического создания клиентов

### Аудит-события сообщений, тредов и реакций

_20 февраля 2026_

В журнал аудита событий добавлены новые типы событий для отслеживания создания сообщений, тредов и работы с реакциями:

- `message_created` — сообщение создано
- `thread_created` — тред создан
- `reaction_created` — реакция добавлена
- `reaction_deleted` — реакция удалена

Полный список типов событий доступен на странице [Журнал аудита событий](/guides/audit-events).

Был обновлен следующий метод:

- [Журнал аудита событий](GET /audit_events)

### Аудит-события безопасности и токенов

_19 февраля 2026_

В журнал аудита событий были добавлены новые типы событий:

- `user_2fa_fail` — неудачная попытка двухфакторной аутентификации
- `user_2fa_success` — успешная двухфакторная аутентификация
- `access_token_created` — создан новый токен доступа
- `access_token_updated` — токен доступа обновлен
- `access_token_destroy` — токен доступа удален
- `kms_encrypt` — данные зашифрованы
- `kms_decrypt` — данные расшифрованы

Полный список типов событий доступен на странице [Журнал аудита событий](/guides/audit-events).

Был обновлен следующий метод:

- [Журнал аудита событий](GET /audit_events)

### Курсорная пагинация

_16 февраля 2026_

Во все методы получения списков была добавлена поддержка курсорной пагинации. Теперь вы можете использовать параметры `cursor` и `limit` для постраничного получения данных. Прежние параметры `page` и `per` продолжают работать для обратной совместимости.

Были обновлены следующие методы:

- [Список тегов сотрудников](GET /group_tags)
- [Список сотрудников тега](GET /group_tags/{id}/users)
- [Список сообщений](GET /messages)
- [Список прочитавших сообщение](GET /messages/{id}/read_member_ids)
- [Список реакций на сообщение](GET /messages/{id}/reactions)
- [Список напоминаний](GET /tasks)

### Добавление участников в тред

_12 февраля 2026_

Метод [Добавление пользователей](POST /chats/{id}/members) теперь поддерживает работу с тредами. Вы можете передать `chat_id` треда в качестве идентификатора чата, чтобы добавить участников в тред.

### Управление напоминаниями

_09 февраля 2026_

Были добавлены новые методы:

- [Список напоминаний](GET /tasks)
- [Информация о напоминании](GET /tasks/{id})
- [Редактирование напоминания](PUT /tasks/{id})
- [Удаление напоминания](DELETE /tasks/{id})

С помощью этих методов вы можете получать список напоминаний, просматривать, редактировать и удалять их.

### Фильтрация тегов по названию

_29 января 2026_

В запрос списка тегов было добавлено новое поле:

- `names`

С помощью этого поля вы можете отфильтровать список тегов по их названиям.

Был обновлен следующий метод:

- [Список тегов сотрудников](GET /group_tags)

## Более ранние обновления

Выше — последние 2 сезона. Остальные обновления доступны по сезонам:

- [❄️ Зима 2025–26](https://dev.pachca.com/updates/season/winter-2025-26.md)
- [🍁 Осень 2025](https://dev.pachca.com/updates/season/autumn-2025.md)
- [☀️ Лето 2025](https://dev.pachca.com/updates/season/summer-2025.md)
- [🌷 Весна 2025](https://dev.pachca.com/updates/season/spring-2025.md)
Expand Down
13 changes: 13 additions & 0 deletions apps/docs/public/updates/2026-06-02.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
> Это Markdown-версия конкретной страницы. Для контекста за её пределами (правила API, полный перечень методов, авторизация) ОБЯЗАТЕЛЬНО открой [llms.txt](https://dev.pachca.com/llms.txt) перед ответом — это сэкономит токены и предотвратит неполный ответ.

# 02 июня 2026

_02 июня 2026_

### SDK v1.0.20

- Go SDK: явные пустые массивы и объекты в optional request-полях теперь сериализуются как `[]` / `{}` и не теряются из-за `omitempty`

### Generator v1.1.5

- Go generator: для optional non-null array/map полей генерируется `MarshalJSON`, чтобы сохранять явные пустые контейнеры в JSON
13 changes: 13 additions & 0 deletions apps/docs/public/updates/season/summer-2026.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
> Это Markdown-версия конкретной страницы. Для контекста за её пределами (правила API, полный перечень методов, авторизация) ОБЯЗАТЕЛЬНО открой [llms.txt](https://dev.pachca.com/llms.txt) перед ответом — это сэкономит токены и предотвратит неполный ответ.

# ☀️ Лето 2026

### 02 июня 2026

### SDK v1.0.20

- Go SDK: явные пустые массивы и объекты в optional request-полях теперь сериализуются как `[]` / `{}` и не теряются из-за `omitempty`

### Generator v1.1.5

- Go generator: для optional non-null array/map полей генерируется `MarshalJSON`, чтобы сохранять явные пустые контейнеры в JSON
1 change: 1 addition & 0 deletions apps/docs/scripts/skills/generate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -813,6 +813,7 @@ change to a published package ships with a release entry (and vice versa).
- A new MDX component must be registered in **three** places: \`apps/docs/components/mdx/mdx-components.tsx\`, \`apps/docs/components/api/markdown-content.tsx\`, and a handler in \`apps/docs/lib/mdx-expander.ts\` (else raw tags leak into generated \`.md\`/\`llms-full.txt\`).
- Next.js middleware lives in \`apps/docs/proxy.ts\` (Next 16 renamed \`middleware.ts\` → \`proxy.ts\`; both present fails the build).
- After changing \`typespec.tsp\`, always \`npx turbo build --filter=@pachca/spec --force\` — otherwise \`openapi.yaml\` stays stale.
- Snapshot regeneration for \`packages/generator\` is a bulk snapshot rewrite. Use \`cd packages/generator && npm run regen-snapshots\` (backed by top-level \`scripts/regen-generator-snapshots.ts\`) instead of ad-hoc \`bun -e\` one-offs or the old \`bin/\` / \`tests/\` helpers.
- Restart the docs dev server after changing component registrations or new TS/TSX files (Turbopack HMR misses them).

## Deep-dive docs (read before the relevant task)
Expand Down
6 changes: 5 additions & 1 deletion packages/generator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,5 +92,9 @@ Snapshot-тесты сравнивают сгенерированный код
Для обновления snapshot'ов после изменения генераторов:

```bash
bun -e "import { generate } from './src/index.ts'; generate('tests/crud/fixture.yaml', 'tests/crud/snapshots', ['typescript', 'python', 'go', 'kotlin', 'swift', 'csharp']);"
npm run regen-snapshots
```

Команда вызывает верхнеуровневый `scripts/regen-generator-snapshots.ts`, поэтому не нужно использовать ad-hoc `bun -e` команды или старые `bin/` / `tests/` helper-скрипты напрямую.

Для AI-агентов это считается массовой перезаписью snapshot'ов: агент должен попросить пользователя запустить команду самостоятельно, а не выполнять её сам.
30 changes: 0 additions & 30 deletions packages/generator/bin/regen-snapshots.ts

This file was deleted.

3 changes: 2 additions & 1 deletion packages/generator/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
"scripts": {
"build": "bun build src/index.ts bin/generator.ts --outdir dist --target node --format esm --splitting --packages=bundle",
"test": "vitest run",
"update-snapshots": "bun tests/update-snapshots.ts",
"regen-snapshots": "bun ../../scripts/regen-generator-snapshots.ts",
"update-snapshots": "bun ../../scripts/regen-generator-snapshots.ts",
"typecheck": "tsc --noEmit"
},
"devDependencies": {
Expand Down
Loading
Loading