diff --git a/openspec/changes/wiki-module/design.md b/openspec/changes/wiki-module/design.md index a1e42db..c7b996d 100644 --- a/openspec/changes/wiki-module/design.md +++ b/openspec/changes/wiki-module/design.md @@ -580,3 +580,7 @@ jira безвреден. `housekeeping_tick` удаляет стадию команд не в `queued`/`claimed`. Лимиты `stage`: `code` 200, `title` 1000, `url` 4000, до 20000 страниц на команду; формат `DOC-\d+` для `code` не навязывается. Пустые `parent_code`/`url` — `None`. `ValueError` из `before_result` → 500; `sqlite3.OperationalError` из подготовки → 500 (повтор агентом). + +63. **R-7.** `GET /wiki/search` отвечает `{"results": [...]}`, а не голым списком: все ответы хаба — объекты (`{"pages": …}` + у `tree`), план и клиенты (MCP, веб) строятся на этом. Спека `wiki` исправлена. Цена ошибки: правка формата ответа и + клиентов. diff --git a/openspec/changes/wiki-module/specs/wiki/spec.md b/openspec/changes/wiki-module/specs/wiki/spec.md index 307a82d..6ad79c9 100644 --- a/openspec/changes/wiki-module/specs/wiki/spec.md +++ b/openspec/changes/wiki-module/specs/wiki/spec.md @@ -137,7 +137,7 @@ SHALL проверить, что файл есть в `files/` и размер - `GET /wiki/tree?project=` — список `{code, title, depth, parent_code, size}` в порядке обхода; - `GET /wiki/pages/{code}?project=` — `{code, title, path, url, synced_at, markdown, attachments: [{id, name, state, size}]}`; страницы нет в копии — 404; -- `GET /wiki/search?project=&q=&limit=` (`limit` 1–50, по умолчанию 10) — `[{code, title, path, snippet}]` по +- `GET /wiki/search?project=&q=&limit=` (`limit` 1–50, по умолчанию 10) — `{"results": [{code, title, path, snippet}]}` по убыванию релевантности; слова запроса ищутся по префиксу, пустой запрос — 422; - `POST /wiki/sync {project, author?}` → 201 `{batch_id}` (409 — см. «Синхронизация вики»); - маршруты вложений — см. «Вложения вики по запросу».