2.9 KiB
2.9 KiB
agent-v9-hardening — решения агента
Спека и дизайн изменения — в jira-hub/openspec/changes/agent-v9-hardening/ (issue aep/jira-hub#26, aep/jira-agent#23).
Агентская часть — решения 1–7 дизайна хаба (запускатель run.py v2), 8–14 (агент v9), 15–17 (фейки и тесты),
18 (выкатка).
Решения владельца 14.10.2026: один пакет — #22 (M-3…M-7, M-10), #18 (M-2, M-3, M-5, M-6), #4 (M-10, точность фейков);
устаревший trial → rolled_back; OSError при подмене в запускателе → rejected без повтора; run.py v2 владелец
ставит вручную после самообновления до v9.
Decisions made without discussion
Рулинги R-1…R-5 записаны в jira-hub/openspec/changes/agent-v9-hardening/design.md
(раздел «Decisions made without discussion»); здесь — только решения, принятые при исполнении агентской части.
| Маркер | Дата | Решение | Обоснование | Цена ошибки |
|---|---|---|---|---|
| R-6 | 2026-10-15 | В test_hub_4xx_in_refresh_not_retryable токен «неверный» заменён на «wrong-token» (ASCII) | Кириллица в заголовке Authorization даёт UnicodeEncodeError (latin-1) ещё до запроса, тест не проверял бы 401; проверка (текст «хаб: HTTP 401», retryable=False) не изменилась | Нет: только данные теста; поведение при не-ASCII токене в agent.json — наблюдение O-2 |
| R-7 | 2026-10-15 | В run.py пустой/None sha256 в update.json (state=trial) считается устаревшим пробным периодом: условие not sha or sha256_file(agent) != sha в reconcile и in_trial (в плане — только != sha) |
Если agent.py не читается, sha256_file даёт None и совпал бы с отсутствующим sha — пробный период признан бы живым; пункты 1–2 Review Focus плана требуют обратного | Нет: усиление проверки; худший случай — лишний rolled_back при повреждённом update.json |
| R-8 | 2026-10-15 | В README фраза про код 73 добавлена в конец абзаца «Остановка…» (якорь плана «и перезапускается.» в тексте — «перезапускается).») | Якорь плана не совпал с текстом README; смысл и текст предложения сохранены | Нет: размещение предложения в документации |