Агент v13: журнал изменений Jira в refresh (#39) #40
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/39-change-history"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #39. Парный PR хаба: aep/jira-hub#70 (feat/70-change-history) — контракт и спека там (
openspec/changes/change-history/).Что сделано
refreshчитает changelog Jira по параметруhistory: стартовая выборкаhistory.jql(первой, журнал целиком) и задачи этого прогона сupdated >= history.since(search key in (...),expand=changelog, по 100); неполный журнал дочитываетсяGET /issue?expand=changelog, иначе ключ вincomplete; id custom-поля безfieldId— по имени изGET /field(один раз за refresh).POST /agent/historyпачками по 500; итогresult.history = {issues, changes, incomplete, error?, backfill_error?}; ответ не 2xx Jira/хаба не роняетrefresh, обрыв связи — как раньше.openspec/changes/agent-v13-change-history/design.md; план:docs/superpowers/plans/2026-10-22-change-history-agent.md.Проверка
/usr/bin/python3 -W error::ResourceWarning -m unittest discover -s tests -t .— 305 OK (Python 3.9.6).Выкатка
После merge (и выкатки хаба):
uv run --project ../jira-hub jira-hub agent publish src/agent.pyиз основного checkout на main;agent_status→ «обновление: ok v12 → v13».min_agent_versionне поднимать. Затем живая проверка (design хаба, Migration Plan п. 3): стартовая загрузка, отсутствие лишних вызовов при отсутствии изменений, полнота журнала банковской Jira и наличиеfieldId.Rulings I made
_add_column): базы v1/v2 получаютissue_commentиз SCHEMA уже сcreated_at. Цена ошибки: нет.sync_logпереписан на строку с «, журнал: нет» (спека mcp). Цена ошибки: нет.GET /field/ дочитыванияGET /issueотносится к прерванной части журнала: регулярная →history.error, стартовая →backfill_error. Цена: стартовая с упавшимGET /fieldне держит отметку.errorотметка не сдвинется, повтор дочитает.history.since→history.error,refreshостаётсяdone. Цена: нет./agent/historyв тестах —FakeHub.reject_history = "drop". Цена: нет.since.None;GET /changes— 422 на время без смещения; MCPchangesсчитает такое время местным. Цена: API без смещения теперь 422.Findings
since+jql) теряла старую историюfaed8b9OverflowErrorвjira_utccreatedв режимеsinceотбрасывается без логаrefreshfailedchanges,POST /agent/history,GET /changes,history_at4ed011bfaed8b9🤖 Generated with Claude Code