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
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
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
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
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