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
19bba60cac
feat(files): хранилище файлов вложений files/<sha256> с уборкой ( #43 )
...
put — атомарно (mkstemp, fsync, os.replace), одна копия на содержимое, mtime при повторе, предел 10 485 760 байт, пустой — отказ; path/exists/size/read только для sha из 64 hex; sweep — старше 30 дней без ensure_attachment в queued/claimed (решения 10–13).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 01:38:31 +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
d327a0488d
docs(openspec): change bug-and-attachments — тип «Ошибка» и вложения ( #43 )
...
Дельты commands, hub-api, mcp, data-model, agent: issue_type bug с настройкой
issue_types.bug, хранилище файлов хаба (POST /files, GET /agent/files/{sha256}),
команда ensure_attachment, path в MCP batch_create, агент v11; заодно R-1
(#46 ) и M-1/M-2 из aep/jira-agent#30 .
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 23:42:21 +04:00
Andrey Epifancev
ccaba7f4bd
docs(openspec): архив issue-card-modal ( #37 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 15:32:29 +04:00
Andrey Epifancev
16835abbf8
fix(web): выделение текста, отпущенное за краем окна, не закрывает карточку (I-2); спека: перезагрузка сохраняет страницу под окном (I-1) ( #37 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 15:17:33 +04:00
Andrey Epifancev
901a2c1cb7
docs(openspec): R-7 в proposal, требовании «Служебные заметки» и design 15 — доска не показывает заметку ( #37 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 15:03:36 +04:00
Andrey Epifancev
fd63335e5b
docs(openspec): R-7 — сценарий «заметка видна на доске» по фактическому поведению доски ( #37 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:26:08 +04:00
Andrey Epifancev
87db9720f9
docs(openspec): рулинг R-6 по адаптации тестов Task 4 ( #37 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:11:11 +04:00
Andrey Epifancev
9484d10d0b
docs: план issue-card-modal ( #37 ); уточнения design 5, 10–13, 25
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 12:52:09 +04:00
Andrey Epifancev
590e15e0e0
docs(openspec): change issue-card-modal — карточка задачи окном, комментарии из Jira ( #37 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 12:18:35 +04:00
Andrey Epifancev
6a9f793748
docs(openspec): архив hub-hygiene-d ( #32 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:04:39 +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
bc377eda2c
docs: финальное ревью — M-2, M-3, M-4/T2.5, M-5, R-13, R-14 ( #32 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:56:51 +04:00
Andrey Epifancev
be50525ed6
docs(openspec): hub-hygiene-d — рулинги R-6…R-13, уточнения Context и решений 11, 13 ( #32 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:23:58 +04:00
Andrey Epifancev
a8f20b232e
docs(openspec): архив web-app-followups ( #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:22:44 +04:00
Andrey Epifancev
447d878e0e
fix(hub): Python от uv вместо miniconda — SQLite 3.51.1 вешал хаб взаимной блокировкой (O-14, R-11, #29 )
...
Стеки зависшего тестового хаба: потоки запросов ждут мьютексы unix-VFS SQLite в sqlite3.connect
(findReusableFd) и close (sqlite3WalClose -> unixLock). Ошибка SQLite 3.51.0–3.51.1, исправлена в 3.51.2.
.python-version = 3.13 и tool.uv.python-preference = only-managed: uv берёт свой CPython 3.13.12 (SQLite 3.50.4)
и сам пересоздаёт .venv. Тест не даёт вернуться на SQLite 3.51.0–3.51.1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 03:29:23 +04:00
Andrey Epifancev
009fc30dd1
Merge origin/main (архив agent-v9-hardening #26 ) в feat/29-web-app-followups
...
Конфликт CLAUDE.md: оставлена строка ветки без пути к конкретному change (M-1).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 03:17:45 +04:00
Andrey Epifancev
bb3ddd1770
fix: волна по финальному ревью — I-2 fromFile при обновлении из файла, тесты, комментарии, спека ( #29 )
...
I-2, M-4..M-8, M-11, M-13, M-16, M-18, T7.3, M-1..M-3, M-17.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 02:40:33 +04:00
Andrey Epifancev
d377a57b53
docs(openspec): R-10 — прокрутка доски при реальном клике ( #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 02:04:31 +04:00
Andrey Epifancev
4c95f340ab
docs(openspec): R-9 — проверка высот карточек в e2e geometry ( #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:52:28 +04:00
Andrey Epifancev
0bb43431b8
docs(openspec): hub-hygiene-d — публикация, статус агента, CRLF, тесты ( #32 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:33:07 +04:00
Andrey Epifancev
3dc54c7bb1
docs(openspec): R-8 — трейлер коммита Task 1 ( #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:05:39 +04:00
Andrey Epifancev
f79494d5c6
docs(plan): web-app-followups — 8 задач; спека: сценарий T10.4, решение 12 ( #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:55:25 +04:00
Andrey Epifancev
2c8cc61ca4
docs(openspec): архив agent-v9-hardening ( #26 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:51:34 +04:00
594c5f8aca
Merge pull request 'Спека агента: устойчивость самообновления — агент v9, run.py v2 ( #26 )' ( #30 ) from feat/26-agent-v9-spec into main
2026-10-14 23:51:08 +03:00
Andrey Epifancev
47941ed073
docs(openspec): agent-v9-hardening — решение 10: раздельные таймеры подсказок (R-9 агента, #26 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:48:09 +04:00
Andrey Epifancev
14e6e7fcf3
docs(openspec): web-app-followups — proposal, design, дельты web-app и hub-api ( #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:41:10 +04:00
Andrey Epifancev
fd1799ac4a
docs(openspec): архив web-app ( #21 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:20:58 +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
d608a16a30
Финальные фиксы ревью: поиск следует за адресом, остановка опроса на 4xx, блокировка заметки, защита очистки e2e-хаба, раскладка без w, ошибка карточки с данными, спека R-10/R-18 ( #21 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:00:33 +04:00
Andrey Epifancev
d427bf3584
docs(openspec): agent-v9-hardening — спека запускателя v2 и агента v9 ( #26 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:52:00 +04:00
Andrey Epifancev
423cf73d3f
docs(openspec): web-app — рулинг R-18 ( #21 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:41:33 +04:00
Andrey Epifancev
178606f221
docs(openspec): web-app — рулинг R-17 ( #21 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:15:43 +04:00
Andrey Epifancev
2227b8885a
docs(openspec): web-app — рулинги R-15, R-16 ( #21 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:10:20 +04:00
Andrey Epifancev
ca231ba2ae
docs(openspec): архив agent-self-update ( #22 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:58:46 +04:00
Andrey Epifancev
ed9c32a739
docs(openspec): agent-self-update — сигналы run.py и выход 0 без Ctrl-C (R-20), рулинги R-19…R-21 ( #22 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:38:59 +04:00
Andrey Epifancev
b421687188
docs(openspec): web-app — рулинг R-14 ( #21 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:24:42 +04:00
Andrey Epifancev
251b950b57
docs(openspec): web-app — рулинг R-13 ( #21 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:00:09 +04:00
Andrey Epifancev
ce148b69f9
docs(openspec): agent-self-update — proposal, design, дельты agent/hub-api/mcp ( #22 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:49:21 +04:00
Andrey Epifancev
825361ef3e
docs(openspec): web-app — R-12 пересмотрен основной сессией ( #21 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:37:25 +04:00
Andrey Epifancev
7c161a675e
docs(openspec): web-app — рулинги исполнения ( #21 )
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 20:15:39 +04:00
Andrey Epifancev
0f2df4c929
docs: план web-app и решения этапа плана R-10, R-11 ( #21 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 19:49:48 +04:00
Andrey Epifancev
69a21d63b6
docs(openspec): change web-app — веб-приложение хаба на React ( #21 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 19:18:05 +04:00
Andrey Epifancev
e95d0e0ce5
docs(openspec): архив viewer-live ( #17 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:50:45 +04:00
Andrey Epifancev
26d43acac3
docs(openspec): viewer-live — решения исполнения R-14…R-20 ( #17 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:21:55 +04:00
Andrey Epifancev
cc7b83fbb8
docs: план viewer-live и решения этапа плана R-6…R-13 ( #17 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 17:50:03 +04:00
Andrey Epifancev
ad48db2929
docs(openspec): viewer-live — размер встроенной выгрузки ( #17 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 16:01:11 +04:00
Andrey Epifancev
a6a9e5d4d6
docs(openspec): change viewer-live — доска связей на живых данных хаба ( #17 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 16:00:57 +04:00