153 Commits

Author SHA1 Message Date
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
7d3f648d2c fix: финальное ревью — M-1/T3.1 атомарная подмена agent_update, T1.1/T1.2 open_db, T2.3, T4.1 (#32)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:56:51 +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
57934383e7 fix(release): сбой переименования agent.py не удаляет прежний agent.py (T2-I1) (#32)
Откат удаляет agent.py только при первой публикации; при сбое до переименования прежний файл не трогается. Тест: os.replace падает на agent.py.prev — release/ байт-в-байт прежний.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:33:54 +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
ea37d54946 test: соединения SQLite в тестах закрываются, утечка — ошибка набора (M-9/O-4 #4) (#32)
Фикстура open_db в tests/conftest.py, фикстуры conn вместо хелперов fresh()/_mirror(); filterwarnings: error::ResourceWarning и error::pytest.PytestUnraisableExceptionWarning (решение 14, R-5).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:26:38 +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
aa1cca877d docs(plan): hub-hygiene-d — план (#32)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 02:04:05 +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
aep
8229bbaa77 Merge pull request 'docs(openspec): архив agent-v9-hardening (#26)' (#31) from chore/26-archive-agent-v9-hardening into main 2026-10-14 23:52:00 +03: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
aep
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
aep
d38fac83fb Merge pull request 'docs(openspec): архив web-app (#21)' (#28) from chore/21-archive-web-app into main 2026-10-14 23:21:14 +03: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
aep
e5719c9c53 Merge pull request 'Веб-приложение хаба на React: доска связей и задачи (#21)' (#27) from feat/21-web-app into main 2026-10-14 23:19:54 +03: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
60c30a95f9 fix(web): test-hub.sh не чистит путь с «..» (F-1, #21)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:06:07 +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
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
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
28131a7d56 test(web): тестовый хаб и e2e — вход, доска, задачи, сверка со старой страницей (#21)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:39:44 +04:00
Andrey Epifancev
d6fe046efa fix(web): захват указателя на нажатом элементе — двойной щелчок по уголку возвращает размер (#21)
В Chromium dblclick после setPointerCapture на карточке уходил на карточку, а не на .rsz;
то же поведение у links.html.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:39:44 +04:00
Andrey Epifancev
9fcc041d87 feat(web): карточка задачи — поля, связи, команды, правка служебных заметок (#21)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:21:54 +04:00
Andrey Epifancev
d8e3e8656a feat(web): список задач зеркала — фильтры в адресе, порции по 50, поиск (#21)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:18:02 +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
66bcb7e293 feat(web): страница доски — панель, фильтры, легенда, проблемы, таблица, экспорт (#21)
Заглушка модели в useBoardSource стабильна между рендерами, readTheme не возвращает null.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:14:13 +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
089c4fb78d Холст доски: высота слоя измерения, сужение выборки, ширина полосы дат (#21)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:09:47 +04:00
aep
3d13f2d190 Merge pull request 'docs(openspec): архив agent-self-update (#22)' (#24) from chore/22-archive-agent-self-update into main 2026-10-14 21:59:12 +03: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
aep
d43608c647 Merge pull request 'Самообновление агента: публикация версии в хабе (#22)' (#23) from feat/22-agent-self-update into main 2026-10-14 21:58:02 +03:00
Andrey Epifancev
86f5ccc981 feat(web): холст доски — дорожки, карточки, стрелки, перетаскивание, колонки дат (#21)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:55:12 +04:00
Andrey Epifancev
3c2c75e8fe feat(web): источник данных доски и «Обновить из Jira» — закрывает M-1…M-5 #20 (#21)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:41:58 +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
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
5f012db829 feat(web): хранилище настроек доски с прежними ключами, импорт и экспорт JSON (#21)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:28:20 +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
232c290f9b feat(web): раскладка доски, стрелки и примагничивание — без DOM (#21)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:15:08 +04:00
Andrey Epifancev
7c922382e6 feat(hub): agent_status — публикация и самообновление агента; README, ARCHITECTURE (#22)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:13:21 +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
eb66c2144a feat(hub): публикация версии агента — release.py и jira-hub agent publish (#22)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:09:28 +04:00
Andrey Epifancev
7065cbeaef feat(web): выборка доски, критический путь, проблемы, счётчики фильтров (#21)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:02:31 +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
4e8b32310e docs(plan): agent-self-update — план хаба (#22)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:59:03 +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
78bf2353d6 feat(web): модель доски — разбор снимка хаба, CSV и JSON, словари из настроек (#21)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:49:17 +04:00