Andrey Epifancev
c9688c036b
Поля проекта от модулей, доски — в модуль jira ( #91 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:24:33 +04:00
Andrey Epifancev
3f4c9183b8
Очередь, релиз и статус по агенту модуля ( #91 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 00:59:49 +04:00
Andrey Epifancev
43c43ade81
Миграция v7: токены и статус по агентам модулей ( #91 )
...
tokens -> {client, agents: {модуль: токен}}, agent_status по агентам
(ключ agent, last_call_at), настройки агента и маршруты agent-scope по
модулю токена, min_agent_version переехал в модуль jira.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 00:45:44 +04:00
Andrey Epifancev
751ae885db
test: тик убирает downloads/ раз в сутки ( #87 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 22:41:27 +04:00
Andrey Epifancev
0bafff9bc4
refactor: HTTP — сервер ядра, маршруты модуля jira ( #87 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 22:32:51 +04:00
Andrey Epifancev
6d7aebe01c
refactor: пакеты core и modules.jira — перенос без логики ( #87 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:50:23 +04:00
Andrey Epifancev
62057606c0
Правки финального ревью: ссылки на вложения, размер, 413 в пакетах, имя копии, документация ( #83 )
...
I-1 I-2 M-1 M-2 M-3 M-5 M-6 M-7 T3.4 T4.3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 15:14:40 +04:00
Andrey Epifancev
5fdcc50451
API: MIME вложения только ASCII, иначе octet-stream ( #83 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 14:39:59 +04:00
Andrey Epifancev
722393daf9
API вложений: файл от агента, скачивание, уборка копий ( #83 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 14:34:10 +04:00
Andrey Epifancev
b5adfdf9b5
Вложения в карточке задачи: ссылки из текста и состояние ( #83 )
...
Модуль attachments (fmt_size, ref_names, resolve, state, get); mirror.get_issue
отдаёт attachments, description_attachment_ids, attachment_ids комментариев
и скрывает fetch_attachment из commands.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 14:18:59 +04:00
Andrey Epifancev
4f78c27984
Схема v6: список вложений задач в зеркале ( #83 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 14:10:35 +04:00
Andrey Epifancev
c6a5ef15b3
Лента: крайние даты не роняют хаб, время без смещения — 422 в API и местное в MCP ( #70 , M-1, M-2)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:50:26 +04:00
Andrey Epifancev
337e36f1a0
Лента изменений GET /changes и история задачи ( #70 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:15:23 +04:00
Andrey Epifancev
e3649a1a38
Отметка журнала: history в refresh, sync_run.history_at ( #70 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:12:16 +04:00
Andrey Epifancev
f0590ac9ea
Приём журнала изменений: POST /agent/history ( #70 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:08:29 +04:00
Andrey Epifancev
1f2fc142b7
fix(hub): метки проектов в базовой JQL в кавычках, запрет \ и управляющих символов (I-2, #61 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:55:05 +04:00
Andrey Epifancev
ec4fb8b1e7
Исправления финального ревью: тип доски нового проекта, нормализация labels_add, документация ( #61 )
...
I-1: boards() отдаёт type=null, если тип неизвестен у любого проекта доски.
M-2: labels_add ensure_fields нормализуется к метке проекта. M-3: light_list
вместо list_projects в _assign_boards. M-4/T5.4: пустой project — 422.
M-1, M-5, T10.1-T10.7: README, ARCHITECTURE, CLAUDE.md, design.md (49-51), e2e.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:06:41 +04:00
Andrey Epifancev
1b441b79a5
Чистка находок ревью задач: типы досок в любом статусе, мелкие правки тестов и веб-приложения ( #61 )
...
R-3/T6.1 типы досок из результата refresh пишутся в любом статусе отчёта; T5.1, T3.1 (author), T3.2, T2.1, T2.2, T7.2,
T8.1, T8.2 (ошибка фонового рефетча проектов не сносит страницу), T8.4 (окно «Новый проект» не закрывается во время
создания). Решения 22, 27 переписаны, добавлено 36 в design.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 21:41:22 +04:00
Andrey Epifancev
e2e63dab23
Хаб: доска проекта в ensure_sprint, boards в выдаче refresh, типы досок из отчёта агента ( #61 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:58:39 +04:00
Andrey Epifancev
6d5c40b037
Хаб: пакет проекта — метка проекта, чужие метки и задачи, batch.project, повтор с project ( #61 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:49:08 +04:00
Andrey Epifancev
63972572fd
Хаб: разрез по проекту — свои, соседи по связям и эпики своих в /board и /issues ( #61 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:39:10 +04:00
Andrey Epifancev
f60aecd889
Хаб: маршруты GET/POST /projects, создание проекта ставит полный refresh ( #61 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:31:19 +04:00
Andrey Epifancev
203c7e7b3c
Хаб: базовая JQL из проектов, настройки без base_jql/board_id, init заводит AWPCA ( #61 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:25:04 +04:00
Andrey Epifancev
0abed70f44
Хаб: настройка closed_statuses и фильтр GET /issues?hide_closed ( #57 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:31:55 +04:00
Andrey Epifancev
9b21060d60
feat(commands): команда ensure_attachment — проверка файла при постановке, size при выдаче ( #43 )
...
SPEC ensure_attachment {key, file, filename}, пауза 30 с, по состоянию не подтверждается; queue._check_setup: формат file, файл загружен («файл <sha> не загружен: POST /files»), filename без / и \, без кавычек и управляющих символов (R-2); claim, довыдача и GET /agent/commands/{id} дописывают size (null без файла), в базе params без size, retry проходит (решения 17–18).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 01:46:14 +04:00
Andrey Epifancev
e8707d4762
feat(api): POST /files и GET /agent/files/{sha256}, files/ 0700 при старте, уборка в tick раз в сутки ( #43 )
...
Не base64 — 400 bad_request, пустой — 422 empty_file, больше 10 МБ — 413 too_large; агенту — {file, size, content} в base64, нет файла — 404 no_file; уборка отдельно от автообновления (решения 14–16).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 01:41:54 +04:00
Andrey Epifancev
3b4cf66b77
feat(commands): тип bug в ensure_issue — проверка настройки issue_types.bug при постановке ( #43 )
...
validate принимает task|epic|bug; queue._check_setup отвергает bug без issue_types.bug с name или id (422 «команда N: нет настройки issue_types.bug»); init берёт bug из issue_type_bug/issue_type_bug_id, только если ключи есть (решение 9). Спека hub-api: уборка файлов раз в сутки в пределах процесса (R-1).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 01:35:56 +04:00
Andrey Epifancev
a03550f079
feat(hub): проверка комментариев в POST /agent/state (422 bad_state), комментарии в MCP issue ( #37 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:04:55 +04:00
Andrey Epifancev
0cf71e7792
Merge branch 'main' into feat/32-hub-hygiene
...
Конфликт pyproject.toml: оставлены обе секции — filterwarnings (hub-hygiene-d, решение 14)
и [tool.uv] python-preference (#29 ). Рулинги R-14 (переписан), R-15, R-16 в design.md.
318 passed, 0 warnings.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:01:16 +04:00
Andrey Epifancev
1f1dad6911
test: bool и [] в параметрах, журнал при пределе выдач, 501, эпик без ключа, «подготовлена заново», предупреждение и офлайн агента, тик (T3.2, T5.2, M-8, minor-3 #16 ; M-10 #4 ) ( #32 )
...
Решение 13: тесты фиксируют уже верное поведение; каждый проверен мутацией.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:46:13 +04:00
Andrey Epifancev
e180bb4e5f
fix: ответ PUT /settings, «создание задачи отменено», CRLF в подтверждении, реле по resolve() (O-11, O-10, O-9, minor-1, T3.1 #16 ) ( #32 )
...
PUT /settings отвечает всеми настройками (R-3); пропуск при cancelled-создателе — «создание задачи new:N отменено» (R-4); ensure_fields сравнивает строки без различия CRLF/LF; _cleaned по resolve(); _type_error по веткам (решения 9–12, 15).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:42:03 +04:00
Andrey Epifancev
8a319ea595
fix(agent): agent_reported — до первого claim запускатель неизвестен, подсказки «без run.py» нет (M-2 #25 ) ( #32 )
...
GET /agent отдаёт agent_reported; release.hint(reported=); MCP agent_status: «запускатель: неизвестно (агент ещё не выходил на связь после перезапуска хаба)» (решения 7–8, R-1).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:36:19 +04:00
Andrey Epifancev
f977d9bd34
fix(release): публикация с fsync и откатом через agent.py.prev, проверка манифеста (M-1, M-3, M-5, M-6, M-7 #25 ) ( #32 )
...
Сбой записи — «не удалось записать публикацию: …», код 1, прежняя версия остаётся; манифест годен при целой version ≥ 1 и sha256 из 64 hex; предупреждение о негодном — одно на ошибку; не-UTF-8 agent.py — 404 (решения 1–6).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:31:22 +04:00
Andrey Epifancev
091acda286
style(tests): опечатка форматирования req = в test_bad_requests (T1.1, #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:21:50 +04:00
Andrey Epifancev
2024a66a6d
fix(hub): нулевой байт в пути /app/assets — 404; тесты типов файлов сборки (T1.1, T1.4, T16.1, #29 )
...
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-15 01:04:21 +04:00
Andrey Epifancev
34c57ceeab
Merge remote-tracking branch 'origin/main' into feat/21-web-app
...
# Conflicts:
# ARCHITECTURE.md
# CLAUDE.md
# src/jira_hub/api.py
# tests/test_api.py
2026-10-15 00:07:48 +04:00
Andrey Epifancev
51564854d6
feat(api): / и /links ведут в веб-приложение, links.html удалена; документация ( #21 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:44:41 +04:00
Andrey Epifancev
3a4fed94ff
fix(hub): ошибка доступа к release/ не роняет claim — публикации нет (I-1, #22 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:35:33 +04:00
Andrey Epifancev
87a0d3d36c
feat(hub): agent_release в claim, GET /agent/release, состояние обновления в GET /agent ( #22 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:11:10 +04:00
Andrey Epifancev
c7d1aaae0a
fix(web): связи из зеркала — только между ключами вида AURORA-1234 (I-1, #17 )
...
Ключ из issue_link попадал в разметку карточки без проверки: строка зеркала с разметкой в target_key исполнялась на странице с токеном.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:21:36 +04:00
Andrey Epifancev
4f4fb500dd
feat(web): «Обновить из Jira», перенос раскладки импортом JSON, смена токена ( #17 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:10:38 +04:00
Andrey Epifancev
e92e7711d6
feat(web): доска на данных хаба — вход по токену, GET /board, «Перечитать» ( #17 )
...
Встроенная выгрузка от 11.10.2026 удалена; CSV и JSON — загрузка файла.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:02:48 +04:00
Andrey Epifancev
9bfb8be549
feat(api): страница доски связей по GET / и /links без токена ( #17 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 17:56:17 +04:00
Andrey Epifancev
fbd47873b7
feat(api): GET /board — снимок зеркала для доски связей ( #17 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 17:54:16 +04:00
Andrey Epifancev
8e82b31d48
fix: правки по финальному ревью bridge-hygiene — права backups/, cwd, чистка work/ по папкам, отмена завершённого пакета ( #13 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 13:11:03 +04:00
Andrey Epifancev
bf73299732
feat(queue): 409 на отчёт по невыданной команде, ключ из позднего отчёта по отменённой ensure_issue, 422 на дубль темы ( #9 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:46:41 +04:00
Andrey Epifancev
958dbe956f
feat(queue): довыдача команды без отчёта, предел 3 выдачи; R-13 и «свежая claimed» удалены ( #9 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:44:16 +04:00
Andrey Epifancev
e025577d05
feat(settings): настройка relay_dir — абсолютный путь папки реле или null ( #5 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 00:37:59 +04:00
Andrey Epifancev
4f055a80d0
fix(api): PUT /settings проверяет значения до записи, 422 (I-5); убран мёртвый except, честное имя теста
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:09:45 +04:00
Andrey Epifancev
5a5914226f
fix(mirror): флаг neighbor не сбрасывается точечным refresh и ставится полным прогоном (I-2); комментарий про соединение
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:08:52 +04:00