Follow-ups from #1 #4

Closed
opened 2026-10-12 20:50:05 +03:00 by aep · 6 comments
Owner

Отложенные находки из #1 (PR #2). Формат: маркер — суть — откуда. Находки на стороне хаба (O-3, M-11) — в aep/jira-hub «Follow-ups from #1».

  • FM-1 — сон 60 с на 401 хаба не прерывается stop — ре-ревью финальной волны
  • FM-2 — 503 после 5 внутренних попыток × 4 внешних — ре-ревью финальной волны
  • FM-3 — формулировка «обрыв связи с Jira» для ошибок хаба — ре-ревью финальной волны
  • FM-4 — повторная запись claimed в recover — ре-ревью финальной волны
  • M-9 — темп после перезапуска не восстанавливается из журнала — финальное ревью
  • M-10 — точность фейков (окно created, project, epic=null, долгий опрос) — финальное ревью
  • O-2 — log() печатает в stdout, тесты шумят — наблюдение контроллера
  • T1.9 — HubClient без ca_bundle/verify_ssl — Task 1
  • N-3 — тест не покрывает тексты HttpError в логах — Task 1
  • T2.3 — prune vs run (запрет в README, R-3) — Task 2
  • T2.7 — порядок unacked_finished — Task 2
  • Task 2 minor — слабый тест UTC, fd leak при fdopen, E303, fsync каталога — Task 2
  • T3.2 — индекс Jira отстаёт при поиске дубля — Task 3
  • T3.3 — флаги existed/created (хаб берёт только key) — Task 3
  • T3.7 — базовые метки (передаёт хаб) — Task 3
  • T3.9 — CRLF в описании — Task 3
  • T4.7 — спринты по id — Task 4
  • T4.10 — переход без to — Task 4
  • T4.11 — target = имя перехода не идемпотентен — Task 4
  • T5.2 — нет лимита keys в refresh — Task 5
  • T7.6 — явный список stdlib — Task 7

Проверить на реальной Jira банка

  • CRLF в описании (T3.9), очистка Epic Link через PUT null, постраничность GET /comment, 400 на key in (...), поле спринта
  • Ctrl-C в паузе и stale claimed (O-1/R-9) вместе с хабом; настройки epic_link/field_ids (иначе по R-11 команды падают)
Отложенные находки из #1 (PR #2). Формат: маркер — суть — откуда. Находки на стороне хаба (O-3, M-11) — в aep/jira-hub «Follow-ups from #1». - FM-1 — сон 60 с на 401 хаба не прерывается stop — ре-ревью финальной волны - FM-2 — 503 после 5 внутренних попыток × 4 внешних — ре-ревью финальной волны - FM-3 — формулировка «обрыв связи с Jira» для ошибок хаба — ре-ревью финальной волны - FM-4 — повторная запись `claimed` в recover — ре-ревью финальной волны - M-9 — темп после перезапуска не восстанавливается из журнала — финальное ревью - M-10 — точность фейков (окно created, project, epic=null, долгий опрос) — финальное ревью - O-2 — `log()` печатает в stdout, тесты шумят — наблюдение контроллера - T1.9 — HubClient без ca_bundle/verify_ssl — Task 1 - N-3 — тест не покрывает тексты HttpError в логах — Task 1 - T2.3 — prune vs run (запрет в README, R-3) — Task 2 - T2.7 — порядок `unacked_finished` — Task 2 - Task 2 minor — слабый тест UTC, fd leak при fdopen, E303, fsync каталога — Task 2 - T3.2 — индекс Jira отстаёт при поиске дубля — Task 3 - T3.3 — флаги existed/created (хаб берёт только key) — Task 3 - T3.7 — базовые метки (передаёт хаб) — Task 3 - T3.9 — CRLF в описании — Task 3 - T4.7 — спринты по id — Task 4 - T4.10 — переход без `to` — Task 4 - T4.11 — target = имя перехода не идемпотентен — Task 4 - T5.2 — нет лимита keys в refresh — Task 5 - T7.6 — явный список stdlib — Task 7 ## Проверить на реальной Jira банка - CRLF в описании (T3.9), очистка Epic Link через PUT null, постраничность GET /comment, 400 на `key in (...)`, поле спринта - Ctrl-C в паузе и stale claimed (O-1/R-9) вместе с хабом; настройки epic_link/field_ids (иначе по R-11 команды падают)
Author
Owner

Закрыты PR #10 (merge 1b57c38, #9): FM-4 (claimed в recover не пишется повторно), M-9 (темп после перезапуска восстанавливается из журнала). Остальные пункты открыты.

Закрыты PR #10 (merge 1b57c38, #9): FM-4 (claimed в recover не пишется повторно), M-9 (темп после перезапуска восстанавливается из журнала). Остальные пункты открыты.
Author
Owner

Пакет B — проверки на живой Jira банка 13.10.2026 (тестовая задача AURORA-1618, пакеты хаба #5–#9):

  • 400 на key in (...) с несуществующим ключом — бисекция работает (refresh: missing [AURORA-999999], 5 вызовов) ✅
  • ensure_issue вживую (эпик, плановые даты, срок, метка) ✅; ensure_comment повтор — changed: false ✅
  • очистка Epic Link через PUT null (customfield_15302) ✅
  • Ctrl-C в паузе + перезапуск: команда #19 выполнена один раз через восстановление по журналу, пауза темпа из журнала (95 с) ✅
  • CRLF (T3.9): по зеркалу — Jira хранит присланное; записи через REST с \n, CRLF только у правленных в UI (71/180); вред — один лишний PUT на такой задаче → нормализация в пакет C
  • настройки epic_link/field_ids заданы ✅; чтение спринта в refresh ✅
  • постраничность GET /comment — не проверялась (единицы комментариев, риск низкий)
  • ensure_sprint — ошибка: у задачи без спринта Jira отвечает на GET /rest/agile/1.0/issue/{key}?fields=sprint без ключа fields → KeyError: 'fields'; исправление — отдельная bounded-задача.
Пакет B — проверки на живой Jira банка 13.10.2026 (тестовая задача AURORA-1618, пакеты хаба #5–#9): - 400 на key in (...) с несуществующим ключом — бисекция работает (refresh: missing [AURORA-999999], 5 вызовов) ✅ - ensure_issue вживую (эпик, плановые даты, срок, метка) ✅; ensure_comment повтор — changed: false ✅ - очистка Epic Link через PUT null (customfield_15302) ✅ - Ctrl-C в паузе + перезапуск: команда #19 выполнена один раз через восстановление по журналу, пауза темпа из журнала (95 с) ✅ - CRLF (T3.9): по зеркалу — Jira хранит присланное; записи через REST с \n, CRLF только у правленных в UI (71/180); вред — один лишний PUT на такой задаче → нормализация в пакет C - настройки epic_link/field_ids заданы ✅; чтение спринта в refresh ✅ - постраничность GET /comment — не проверялась (единицы комментариев, риск низкий) - **ensure_sprint — ошибка:** у задачи без спринта Jira отвечает на GET /rest/agile/1.0/issue/{key}?fields=sprint без ключа fields → KeyError: 'fields'; исправление — отдельная bounded-задача.
Author
Owner

Пакет D — разбор хвоста против main d7cd050, решения владельца 14.10.2026.

В пакет C (кроме уже запланированных agent#8, agent#12, CRLF T3.9):

  • T2.3 — prune берёт блокировку журнала (acquire_lock) и отказывает при работающем агенте; README: снять «Блокировки нет»
  • T3.7 — базовые метки: требование в docstring batch_create хаба (сам агент настройку labels не применяет)

Отклонено:

  • T4.10 — уже обработано в коде (переход без to)
  • FM-1, FM-2, FM-3, O-2, T1.9, N-3, T2.7, T3.2, T3.3, T4.7, T4.11, T5.2, T7.6 — косметика или недостижимо при текущей схеме (хаб по HTTP/папке, отчёты идемпотентны, пауза темпа ≥120 с перекрывает задержку индекса)
  • «Task 2 minor» (слабый тест UTC, fd leak при fdopen, E303, fsync каталога) — косметика тестов/стиля, теоретические сбои
  • постраничность GET /comment — код и тест есть, у задач единицы комментариев

На потом: M-10 (точность фейков).

Живые проверки: потеря отчёта, stale/довыдача, force-cancel — пока только юнит-тесты; вернуться отдельно (решение владельца).

Пакет D — разбор хвоста против main d7cd050, решения владельца 14.10.2026. **В пакет C** (кроме уже запланированных agent#8, agent#12, CRLF T3.9): - T2.3 — `prune` берёт блокировку журнала (`acquire_lock`) и отказывает при работающем агенте; README: снять «Блокировки нет» - T3.7 — базовые метки: требование в docstring `batch_create` хаба (сам агент настройку `labels` не применяет) **Отклонено:** - T4.10 — уже обработано в коде (переход без `to`) - FM-1, FM-2, FM-3, O-2, T1.9, N-3, T2.7, T3.2, T3.3, T4.7, T4.11, T5.2, T7.6 — косметика или недостижимо при текущей схеме (хаб по HTTP/папке, отчёты идемпотентны, пауза темпа ≥120 с перекрывает задержку индекса) - «Task 2 minor» (слабый тест UTC, fd leak при fdopen, E303, fsync каталога) — косметика тестов/стиля, теоретические сбои - постраничность GET /comment — код и тест есть, у задач единицы комментариев **На потом:** M-10 (точность фейков). **Живые проверки:** потеря отчёта, stale/довыдача, force-cancel — пока только юнит-тесты; вернуться отдельно (решение владельца).
Author
Owner

PR #16 (merge 1170e85, #15, пакет C) закрыл по разбору D: T2.3 (prune под блокировкой журнала), T3.9 (сравнение описания и комментария без различия CRLF/LF), T3.7 (подсказка про labels — в хабе, PR jira-hub#14). Отклонённые — см. комментарий разбора D. Открыты «на потом»: M-10 (точность фейков); живая проверка потери отчёта, довыдачи и force-cancel — отдельно.

PR #16 (merge 1170e85, #15, пакет C) закрыл по разбору D: T2.3 (prune под блокировкой журнала), T3.9 (сравнение описания и комментария без различия CRLF/LF), T3.7 (подсказка про labels — в хабе, PR jira-hub#14). Отклонённые — см. комментарий разбора D. Открыты «на потом»: M-10 (точность фейков); живая проверка потери отчёта, довыдачи и force-cancel — отдельно.
Author
Owner

Живая проверка 14.10.2026: потерянный отчёт, довыдача и force-cancel — пройдены (подробно — jira-hub#4). Остаётся «на потом»: M-10 (точность фейков).

Живая проверка 14.10.2026: потерянный отчёт, довыдача и force-cancel — пройдены (подробно — jira-hub#4). Остаётся «на потом»: M-10 (точность фейков).
Author
Owner

Последний открытый пункт M-10 (точность фейков) закрыт PR #24 (aep/jira-agent#23): project и created >= -Nd в поиске дубля fake_jira, долгий claim в fake_hub; 400 на key in, agile без fields, PUT null уже были как в Jira. Остальные пункты закрыты или отклонены ранее (см. комментарии разборов).

Последний открытый пункт M-10 (точность фейков) закрыт PR #24 (aep/jira-agent#23): project и created >= -Nd в поиске дубля fake_jira, долгий claim в fake_hub; 400 на key in, agile без fields, PUT null уже были как в Jira. Остальные пункты закрыты или отклонены ранее (см. комментарии разборов).
aep closed this issue 2026-10-14 23:52:32 +03:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aep/jira-agent#4
No description provided.