Бэкенд хаба: нормализация параметров, 422 вместо 500, файлы, публикация агента, уборка настроек (#129) #130

Merged
aep merged 12 commits from feat/129-hub-backend into main 2026-10-26 09:19:52 +03:00

12 Commits

Author SHA1 Message Date
Andrey Epifancev
1cb56be010 Спека: поле ensure_fields из пробелов — 422 (R-8, #129)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 03:23:19 +04:00
Andrey Epifancev
e20977ef49 Финальное ревью: пробельные поля ensure_fields, версия агента, чтение файлов, форма issues (#129, I-1, I-2, I-3, M-2, T2.1)
I-1 (R-8): ensure_fields с полем из одних пробелов даёт 422, очистка только "" или null.
I-2: agent_view не падает на нецифровой версии агента (GET /agent, /agents).
I-3 (R-9): files.size через fstat у открытого файла, _intact ловит OSError, put переписывает нечитаемый файл.
M-2: /agent/state отвергает пустые не-списки в issues.
T2.1, T3.1, T4.1-T4.3, T5.2, T6.1, T1.5: тесты и мелкие правки.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 03:16:39 +04:00
Andrey Epifancev
98faabad67 Спека: рулинги R-8, R-9, R-10 по итогам финального ревью (#129)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 03:10:20 +04:00
Andrey Epifancev
fd13770427 Настройки: ключи v3 base_jql и board_id удаляются при открытии хаба (#129, #64)
OBSOLETE расширен ключами base_jql и board_id: ensure_defaults убирает их при каждом открытии, миграция v7 -> v8 тоже.
settings_version не растёт. PUT /settings для этих ключей по-прежнему отвечает 422 с пояснением. Тест миграции v3
обновлён: после миграции ключей в настройках нет (проекты уже созданы из них).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 03:02:11 +04:00
Andrey Epifancev
5dc96dd43c Публикация агента: прерванная прошлая публикация восстанавливается по манифесту (#129, #39 T2.2, M-6)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 02:48:21 +04:00
Andrey Epifancev
151a5e6175 Спека: рулинг R-7 (size каталога — None), design.md (#129)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 02:42:05 +04:00
Andrey Epifancev
75b1559354 Хранилище: нечитаемый файл — «файла нет» с предупреждением; пустой SDLC_HUB_HOME — по умолчанию (#129, #49 M-3, #102 T3.2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 02:41:20 +04:00
Andrey Epifancev
f1dae5a811 API: состояние агента и синхронизация вики неверной формы — 422, а не 500 (#129, #42 T2.1, #94 T8.1)
mirror.check_issues проверяет форму issues до записи; /wiki/sync отвергает project не строку.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 02:32:39 +04:00
Andrey Epifancev
4a6855d70b Цифровые id и версия агента — только ASCII 0-9, без 500 на «²» (#129, #86 F.1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 02:27:47 +04:00
Andrey Epifancev
abbcf0cc1f Команды: параметры обрезаются при постановке, имя вложения — NFC (#129, #111 T-F1, #49 M-4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 02:20:17 +04:00
Andrey Epifancev
5fbfe3a8d4 План: пакет C бэкенда хаба hub-backend-fixes (#129), задачи 1–6; спека — порядок нормализации
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 02:08:41 +04:00
Andrey Epifancev
e786428a1d Спека: пакет C бэкенда хаба hub-backend-fixes (#129)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 02:06:19 +04:00