docs(openspec): wiki-module — решения финальной волны, R-8 (#91)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
637307bffc
commit
d71f208610
@ -530,8 +530,8 @@ jira безвреден.
|
||||
|
||||
Решения исполнителя Task 5 и рулинг R-5 (2026-10-24):
|
||||
|
||||
47. **R-5.** Имя каталога копии проекта — `paths.dir_name(label)`: `%`, `/`, `\` экранируются (`%25`, `%2F`, `%5C`), `.` и
|
||||
`..` — `%2E`, `%2E%2E`. Обычные метки не меняются. Обоснование: метки ядра допускают `/` и `..`, без экранирования
|
||||
47. **R-5.** Имя каталога копии проекта — `paths.dir_name(label)`: `%`, `/`, `\` экранируются (`%25`, `%2F`, `%5C`), ведущая `.` — `%2E`
|
||||
(`.` → `%2E`, `..` → `%2E.`; уточнено финальной волной, M-14). Обычные метки не меняются. Обоснование: метки ядра допускают `/` и `..`, без экранирования
|
||||
сборка и `rmtree` выходили бы за каталог вики. Раскладка копии (Task 7) идёт только через `paths.project_dir`. Цена
|
||||
ошибки: экзотические метки получают экранированное имя каталога.
|
||||
48. `PATCH wiki_root` с тем же кодом — no-op (`batch_ids: []`): повторная синхронизация идёт через `POST /wiki/sync`.
|
||||
@ -631,3 +631,17 @@ jira безвреден.
|
||||
Цена ошибки: дубль ~10 строк.
|
||||
75. Сид e2e: копия вики AWPCA (корень DOC-9001, 2 страницы, одно вложение) собирается `sync.build_copy` в
|
||||
`JIRA_HUB_HOME` тестового хаба. Ответ 409 на «Обновить вики» ошибкой не показывается — статус перечитывается.
|
||||
|
||||
Финальное ревью и волна правок (2026-10-24):
|
||||
|
||||
76. **R-8.** Финальное ревью (opus) нашло три Important и 15 Minor; одна волна правок закрыла I-1, I-3 и M-1…M-6,
|
||||
M-8…M-15; I-2 и M-13 — документация (порядок выкатки и откат, Migration Plan выше). Не сделаны: M-7 (замер FTS под
|
||||
`BEGIN IMMEDIATE` на живой синхронизации) и T8.3 (отказ `check_batch` при активной `wiki_sync`) — follow-up.
|
||||
77. Агент модуля не читает и не закрывает команды чужого модуля: тип вне `queue._own_types(агент)` → 404 `not_found`,
|
||||
неотличимо от несуществующей команды (I-1). Цена ошибки: eva-agent с устаревшим журналом не затронет команды jira.
|
||||
78. В ядро добавлено необязательное `ProjectField.validate_edit` — более строгая проверка при `PATCH` (`wiki_root: ""` →
|
||||
422, сброс корня только `null`; POST с `""` допустим) (M-6). Цена ошибки: нет, у остальных полей поведение прежнее.
|
||||
79. Одиночный суррогат в строках страниц заменяется на «?» кодеком (M-8); `parse_root` вынесен в `wiki/roots.py`, MCP
|
||||
вики не тянет `db`/`queue` (M-5); общий `db.has_table`; `release._warned` — словарь путь→текст; `agent publish`
|
||||
вызывает `migrate_layout`; зависимости `beautifulsoup4>=4.12`, `markdownify>=1.2.3,<2`; в `pyproject.toml`
|
||||
per-file-ignores F811 для `tests/test_wiki_api.py`; ruff в `make check` не добавлен (решение владельца).
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user