139 Commits

Author SHA1 Message Date
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
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
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
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
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
7eac72e86f test(web): golden-эталоны доски из links.html@3931a88 на синтетических фикстурах (#21)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:33:12 +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
6dc0543a50 feat(web): оболочка приложения — маршруты /app, разделы, ошибки страниц, тема (#21)
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-14 20:14:27 +04:00
Andrey Epifancev
c124e082ae fix(web): токен с недопустимыми символами — экран входа, а не «хаб не отвечает» (#21)
Сохранённый в localStorage токен с кириллицей, пробелом или переводом строки
давал TypeError у fetch, который превращался в HubDownError. Теперь call()
проверяет TOKEN_RE до запроса и бросает AuthError.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-14 20:12:35 +04:00
Andrey Epifancev
51c2772dcc feat(web): клиент API, токен и экран входа, хуки запросов (#21)
Типы ответов хаба, клиент с разбором ошибок (AuthError, HubDownError,
ApiError), хранилище токена с подпиской, экран входа с проверкой токена
до сохранения, QueryClient с выходом на экран входа при 401, хуки запросов.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-14 20:10:42 +04:00
Andrey Epifancev
bad6c73371 chore(web): каркас веб-приложения — Vite, TypeScript, ESLint, Vitest, make web/check (#21)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 20:08:07 +04:00
Andrey Epifancev
bc610a7734 feat(api): раздача веб-приложения по /app… без токена, 503 без сборки; тест M-7 (#21)
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-14 20:03:28 +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
aep
3931a88ce8 Merge pull request 'docs(openspec): архив viewer-live (#17)' (#19) from chore/17-archive-viewer-live into main 2026-10-14 17:50:59 +03: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
aep
fdc07b42af Merge pull request 'Доска связей на живых данных хаба (viewer-live, #17)' (#18) from feat/17-viewer-live into main 2026-10-14 17:29:04 +03: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