82 Commits

Author SHA1 Message Date
Andrey Epifancev
48ca56c07f Веб: страница «Вики» (#91)
Модуль wiki: дерево страниц, страница с Markdown (react-markdown, remark-gfm, без сырого HTML),
поиск, форма привязки корня, ход синхронизации в боковой панели, скачивание вложений,
поле «Корень вики» в окне нового проекта. Сид копии вики и e2e.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 03:10:19 +04:00
Andrey Epifancev
867875daf6 Веб: поля проекта от модулей (#91)
Окно «Новый проект» собирает поля из MODULES[].projectFields; Project — ядро плюс поля модулей;
useUpdateProject (PATCH /projects/{label}); метка «долг hub-modules» снята; e2e читают токен агента из tokens.agents.jira.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:41:23 +04:00
Andrey Epifancev
93007f471b refactor(web): оболочка берёт padded и keepSearch из пунктов панели модулей (#87)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 23:14:00 +04:00
Andrey Epifancev
2cb454af8b refactor(web): модуль jira и оболочка из списка модулей (#87)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 23:05:02 +04:00
Andrey Epifancev
6d7aebe01c refactor: пакеты core и modules.jira — перенос без логики (#87)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:50:23 +04:00
Andrey Epifancev
62057606c0 Правки финального ревью: ссылки на вложения, размер, 413 в пакетах, имя копии, документация (#83)
I-1 I-2 M-1 M-2 M-3 M-5 M-6 M-7 T3.4 T4.3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 15:14:40 +04:00
Andrey Epifancev
e5db848b6b Веб: вложения в карточке задачи и скачивание (#83)
Раздел «Вложения (N)», плашки под комментарием и ссылки !имя!, [^имя] в тексте;
хук useAttachmentDownload: fetch, опрос раз в 2 с, сохранение через Blob (api.blob).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 14:55:52 +04:00
Andrey Epifancev
e0d8eee5b4 Лента: follow-up ревью M-1…M-7, README по журналу изменений (#77, #76)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 12:09:52 +04:00
Andrey Epifancev
820adbe92f Лента: окно «до сейчас» при перечитывании и перечитывание при возврате на вкладку (#77, C-1, C-2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 11:41:51 +04:00
Andrey Epifancev
066cb79c4f История изменений в карточке задачи (#77)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 11:31:39 +04:00
Andrey Epifancev
37f28c3812 Страница «Лента» и раздел в панели (#77)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 11:26:10 +04:00
Andrey Epifancev
6f5fae7d82 Лента: события, период и запрос /changes (#77)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 11:18:06 +04:00
Andrey Epifancev
d3db88708b Фиксы финального ревью: страница не шире окна (C-1), событие пакета на телефоне (I-1) (#69)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 09:13:51 +04:00
Andrey Epifancev
1f74a27cb3 e2e и снимки боковой панели, ARCHITECTURE (#69)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 08:58:35 +04:00
Andrey Epifancev
c9672183cf Боковая панель на узком экране: строка с «Меню» и выезжающая панель (#69)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 08:53:06 +04:00
Andrey Epifancev
f8610abc81 Боковая панель вместо верхней: разделы, свёртка, данные Jira внизу (#69)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 08:51:23 +04:00
Andrey Epifancev
cabf8d75f4 Доска: без чередования дорожек, просрочка на карточке (#69)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 08:48:48 +04:00
Andrey Epifancev
0a5ca2e00a fix(web): правки по финальному ревью: пометка хаба на доске, кнопка в загрузке, панель данных, контраст предупреждений (#65)
I-1 пометка «Хаб · данные на» убрана с доски; I-2 кнопка в loading сохраняет вид варианта;
I-3 статус пакета — постоянный live-регион, не сдвигает кнопку и высоту панели; I-4 текст
предупреждений затемнён через color-mix; M-1 точка «агент офлайн» и событие — предупреждение;
M-7 ошибка настроек в Notice; M-9 убраны IconGrid и IconReset; M-15 IBM Plex Mono 600;
M-16 aria-controls только при раскрытой сетке фильтров.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 01:52:58 +04:00
Andrey Epifancev
04804360d5 fix(web): на узком экране прячем вертикальные разделители панели доски и легенды (#65)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 01:34:51 +04:00
Andrey Epifancev
3b73bb5ca0 test(web): скрипт скриншотов экранов для проверки вида (#65)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 01:34:51 +04:00
Andrey Epifancev
d3e8d969c8 style(web): верхняя панель на узком экране, контраст текста Notice (#65)
Тема и меню «…» остаются в первой строке панели, статус данных — второй;
на 390 px выбор проекта сжимается. Текст Notice — основным цветом.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 01:24:57 +04:00
Andrey Epifancev
2a472cacbf style(web): вход, новый проект, служебные экраны; старые стили убраны (#65)
Экраны входа, «Новый проект», ProjectGate, «не найдено» и ошибка отрисовки
переведены на компоненты системы. controls.css удалён, псевдонимы токенов
убраны, глобальные .row/.spacer/.hint/.warn/.login разобраны. Разделы в
верхней панели не активны вне доски и задач. Тонкая настройка дорожек доски,
тест на ошибку списка, стабилизирован тест проектов.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 01:19:09 +04:00
Andrey Epifancev
2a0b617cba style(web): карточка задачи и служебные заметки в стиле системы (#65)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 01:04:18 +04:00
Andrey Epifancev
7c76c178a4 feat(web): список задач — поиск на виду, фильтры панелью с плашками, строка открывает карточку (#65)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:51:58 +04:00
Andrey Epifancev
3a711ff2ea style(web): полотно доски — карточки, дорожки, даты в стиле системы (#65)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:42:53 +04:00
Andrey Epifancev
cec8beecfb feat(web): шапка доски, панель управления по группам, сворачиваемая легенда (#65)
BoardHeader вместо Toolbar, панель управления в Panel, легенда сворачивается
(jira-hub-legend), ящик проблем, экспорт и таблица связей в Panel.
Dropdown: явный проп menu; тест фонового обновления проектов мокает GET /batches/7.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:33:32 +04:00
Andrey Epifancev
3e2f252aac feat(web): верхняя панель — разделы, данные Jira, обновление, тема (#65)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:23:39 +04:00
Andrey Epifancev
0a1fd832ff refactor(web): обновление из Jira — состояние оболочки, доска хранит только источник (#65)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:15:25 +04:00
Andrey Epifancev
d6ddca0751 feat(web): поля, выпадающие списки, окно и меню дизайн-системы (#65)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:09:46 +04:00
Andrey Epifancev
13e7ae35bc feat(web): иконки и базовые компоненты дизайн-системы (#65)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:04:23 +04:00
Andrey Epifancev
b5a015b827 feat(web): токены AURA, шрифт Mulish, проверка цветов (#65)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 00:01:03 +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
80cff5bcfb Доска: закрытые задачи и их связи приглушены (#57)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:46:22 +04:00
Andrey Epifancev
c5e33a9cc4 Карточка задачи: без статуса по факту, «просрочено» по статусу Jira (#57)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 11:41:47 +04:00
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