102 Commits

Author SHA1 Message Date
Andrey Epifancev
dc71d4e025 Архив OpenSpec: projects (#61)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 23:04:05 +04:00
Andrey Epifancev
0ca8678000 Спека агента: доска, ставшая канбаном, пропускается (R-36 агента, #61)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:55:37 +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
9c2c4d09e0 Проекты: e2e выбора и создания проекта, документация, решения плана в design.md (#61)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 21:47:46 +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
57145b22c9 Веб-приложение: раскладка и флаги доски отдельно для каждого проекта, фильтр спринтов по данным (#61)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 21:32:09 +04:00
Andrey Epifancev
fb680afb63 Веб-приложение: текущий проект в адресе и памяти, выпадающий список и «Новый проект», доска и задачи по проекту (#61)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 21:20:38 +04:00
Andrey Epifancev
c8741be309 MCP: привязка сессии к проекту (--project), инструменты projects и project_create (#61)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 21:09:19 +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
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
0397c28739 План хаба и уточнения спеки по ревью плана: проекты-метки (#61)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 19:18:04 +04:00
Andrey Epifancev
5ef6c937b5 Спека OpenSpec: несколько проектов-меток в мосте (#61)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 18:59:33 +04:00
Andrey Epifancev
201f65b374 Архив OpenSpec: hide-closed (#57)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:58:03 +04:00
Andrey Epifancev
212aebfc4a Документация hide-closed: README без статуса по факту, дата в сценарии, рулинги в design.md (#57)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:54:15 +04:00
Andrey Epifancev
e76b136e37 OpenSpec: hide-closed — скрыть закрытые в списке, приглушить на доске, убрать статус по факту из приложения (#57)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:15:43 +04:00
Andrey Epifancev
372a195ae0 chore(openspec): архив wiki-render (#53)
Дельта web-app влита в openspec/specs: изменено «Карточка задачи», добавлено «Разметка Jira в карточке».

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 09:23:28 +04:00
Andrey Epifancev
13c41a54c1 docs(openspec): решения исполнения и ревью в design.md wiki-render (#53)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 01:23:56 +04:00
Andrey Epifancev
2fe9518d01 docs(openspec): change wiki-render — рендер вики-разметки Jira в карточке (#53)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 00:59:47 +04:00
Andrey Epifancev
f924153596 docs(openspec): архив change bug-and-attachments (#43)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 10:10:59 +04:00
Andrey Epifancev
87d28a9f24 docs(openspec): таблица команд — filename без кавычек и управляющих символов (R-2, #43)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 02:07:00 +04:00
Andrey Epifancev
2e98ce6062 fix(files): повторная загрузка лечит испорченную копию того же размера (M-2, #43)
put сверяет sha256 копии на диске при совпадении размера и переписывает испорченную; design.md: решение 13 уточнено, рулинги R-3…R-5 — решения 21–23 (M-5 финального ревью).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 02:05:45 +04:00
Andrey Epifancev
4e397b563d feat(mcp): batch_create принимает path у ensure_attachment и сам загружает файл (#43)
Все файлы пакета читаются до загрузки: «файл не найден: <path>», «у ensure_attachment либо path, либо file», больше 10 МБ — до POST /files; filename по умолчанию — имя файла; описание batch_create говорит про path (решение 19). design.md: решение 20 (R-2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 01:51:44 +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
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