Andrey Epifancev
dbda1ad77c
Список задач: «скрыть закрытые» по умолчанию, без статуса по факту ( #57 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:37:14 +04:00
Andrey Epifancev
923c59b2b0
fix(web): ревью #53 — перемер свёртки описания, стили таблиц разметки, подпись ссылки без вложенных ссылок
...
C-1: Description перемеряет переполнение через ResizeObserver: карточка из
кэша монтируется до showModal, и «развернуть» пропадала.
I-1: таблицы разметки не наследуют глобальные table/th из board.css
(min-width 520px, прописные заголовки); слова в ячейках не рвутся (M-3).
I-2 (M-1): в подписи [подпись|адрес] ключи, адреса и ссылки — текст.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 01:23:37 +04:00
Andrey Epifancev
52f82daf3e
test(e2e): разметка Jira и кнопка «исходник» в карточке ( #53 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 01:11:53 +04:00
Andrey Epifancev
1d7a82a5c0
feat(web): карточка — описание и комментарии в разметке Jira, кнопка «исходник» ( #53 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 01:08:06 +04:00
Andrey Epifancev
3fe820d195
feat(web): WikiText — рендер вики-разметки Jira React-элементами, исходник при ошибке ( #53 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 01:06:18 +04:00
Andrey Epifancev
bd042f0d17
feat(web): блочный разборщик вики-разметки Jira ( #53 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 01:05:12 +04:00
Andrey Epifancev
cfeb5de59c
feat(web): строчный разборщик вики-разметки Jira ( #53 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 01:03:45 +04:00
Andrey Epifancev
d749db27e8
fix(web): ручной проход карточки — «факт:» у статуса по факту, без обрезка 9-й строки описания, заметки на ширину колонки (O-4…O-6, #37 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 15:23:42 +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
9655ca4847
Правки minor-находок ревью Task 6 (T6.1-T6.4)
...
- T6.1: e2e «описание свёрнуто» проверяет scrollHeight > clientHeight и рост высоты pre после «развернуть»
- T6.2: e2e заметки из окна сверяет scrollY после закрытия окна с исходным
- T6.3: тест переименован, добавлен маркер на DOM-узле карточки (узел не пересоздан)
- T6.4: исправлен разорванный абзац в ARCHITECTURE.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:29:57 +04:00
Andrey Epifancev
62f6d8a11f
Волна minor-находок карточки: tsbuildinfo, depth, closingDirect, имя окна, key связей
...
- T3.3/T4.6/O-2: *.tsbuildinfo в .gitignore
- T3.4: cardState принимает depth только целым неотрицательным, иначе 0
- T4.1: отказ от закрытия («Остаться») сбрасывает closingDirect через CloseAbortContext
- T4.4: у <dialog> запасное имя aria-label = ключ задачи (загрузка, 404, ошибка)
- T5.1: проверка закрытия формы заметки в тесте T14.1
- T5.3: уникальный key строки связи (индекс + ключ + тег)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:28:34 +04:00
Andrey Epifancev
e475a8afc1
test(web): e2e окна карточки, тестовый хаб с комментариями и командами; README ( #37 )
...
Раскладка карточки: в одну колонку (уже 900 px) колонки растягиваются на всю
ширину (align-items: stretch), порог — 899.98px.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:25:44 +04:00
Andrey Epifancev
102cef4125
feat(web): раскладка карточки — шапка состояния, связи по смыслу, комментарии, заметки в режиме чтения ( #37 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:14:39 +04:00
Andrey Epifancev
10285371b2
feat(web): карточка задачи окном поверх списка и доски ( #37 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:09:20 +04:00
Andrey Epifancev
092e7b32ed
feat(web): данные карточки — комментарии, группы связей, просрочка, состояние окна ( #37 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:06:49 +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
d54596776e
fix(web): запоздавшее scroll после ухода с доски не затирает запомненную прокрутку; e2e M-3 на реальном щелчке (M-3, #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 02:03:25 +04:00
Andrey Epifancev
4160dd8b47
build(web): шрифты в сборке, source-map-js 1.2.2, порт e2e одной константой, тесты оболочки и геометрии (T2.2, O-1, T4.1–T4.5, T15.1, T15.2, T15.4, T15.6, #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:51:54 +04:00
Andrey Epifancev
dd95e85a25
test(web): сценарий saved-short для обрезки заголовков, canon без локали, тесты хранилища и util (T2.1, T5.1, T6.3, T7.1, T9.1, T9.3, T9.4, #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:29:09 +04:00
Andrey Epifancev
a002812f12
fix(web): ссылка в ветке «задачи нет в зеркале» в .issue, тесты класса и подписи фильтра, withCurrent выше комментария (#29/O-10, T5.1, T5.4, #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:25:10 +04:00
Andrey Epifancev
6940da5a20
fix(web): фильтр из адреса вне вариантов, ссылки цветом темы, «команд по задаче не было», тесты без пауз (T13.1, O-10, O-11, T14.2, T14.3, #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:21:50 +04:00
Andrey Epifancev
960a71d62c
feat(web): прокрутка доски после возврата, memo карточек, обработчики без побочных действий в updater (M-3, T11.1–T11.4, T12.1–T12.4, #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:17:43 +04:00
Andrey Epifancev
841ce4ea45
fix(web): строка пакета переживает «Перечитать», снимок из файла при недоступном хабе, подхват только refresh (T10.1, T10.3–T10.6, #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:13:44 +04:00
Andrey Epifancev
ab3b05007a
fix(web): запоздавший 401 прежнего токена не выбрасывает на вход, 4xx на входе — текст хаба (T3.2–T3.6, #29 )
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:08: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
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
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
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
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
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
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
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