118 Commits

Author SHA1 Message Date
Andrey Epifancev
f4c3bd50a5 feat(web): панель «Эпики» на «Бэклоге» (#112)
Панель эпиков слева (240px, на узком окне скрыта, вместо неё выбор «Эпик»),
кнопка «Эпики» в панели фильтров, фильтр эпика в том числе для прошлых спринтов.
Заодно T4.1 (регэксп секции), T4.6 (хелпер visible), T4.7 (проверка кнопок).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 20:35:35 +04:00
Andrey Epifancev
eae6ec317f feat(web): «Бэклог» — фильтры, свёртка секций, эпики не строками (#112)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 20:30:51 +04:00
Andrey Epifancev
e79b073180 fix(web): тесты смены метки и сброса, hideDone без флажка (#112)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 20:27:58 +04:00
Andrey Epifancev
3ba8f06637 feat(web): панель фильтров экранов доски (#112)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 20:26:01 +04:00
Andrey Epifancev
7fbc6bd574 fix(web): выбор спринтов при недопустимых id и восстановление испорченного хранилища (#112)
parseSprintIds: при отсутствии допустимых id — все активные (T2.1); токены
только десятичные (T2.3). saveView перезаписывает испорченный JSON (T2.2).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 20:23:42 +04:00
Andrey Epifancev
a29df27da9 feat(web): модель фильтров экранов доски и их запоминание (#112)
Чистая модель без UI: фильтры (q, исполнитель, эпик, скрыть выполненные),
списки опций, сводка эпиков, объединение задач спринтов, выбор спринтов
и разбор параметра sprint. Вид страниц хранится в localStorage под ключом
sdlc-hub-agile по метке проекта и странице; испорченное хранилище и ошибки
доступа дают значения по умолчанию.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-25 20:21:39 +04:00
Andrey Epifancev
815cd3885e feat(web): значки типов по образцу Jira и формат SP (#112, M-6)
- model.ts: fmtSp округляет до двух знаков (M-6); typeKind и isEpic по именам типов Jira без учёта регистра
- TypeIcon: квадрат 16 px, вид по typeKind, aria-label — исходное имя типа, без типа — «Тип не указан»
- icons.tsx: IconBookmark, IconCircle, IconSquares, IconDot; IconProps.size добавляет 12
- agile.css: фон значка — токены дизайн-системы, символ --color-text-on-primary

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-25 20:18:37 +04:00
Andrey Epifancev
26a4878782 Правки по финальному ревью: диапазоны чисел, strip, устойчивые тесты (#108)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 20:51:20 +04:00
Andrey Epifancev
fe1d5926a5 e2e спринтов и бэклога, тестовый хаб с досками, документация (#108)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 20:28:48 +04:00
Andrey Epifancev
611ed830c4 Веб: страница «Kanban» (#108)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 20:21:04 +04:00
Andrey Epifancev
caf6ed43ae Веб: страница «Спринт» с колонками доски (#108)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 20:11:52 +04:00
Andrey Epifancev
9212c19dcf Веб: токен эпика, проверка определённости var(--…), выделение в строке (#108)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 20:02:12 +04:00
Andrey Epifancev
b5f5efef85 Веб: страница «Бэклог» и общие части экранов доски (#108)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 19:52:24 +04:00
Andrey Epifancev
8062dc7668 Веб: «Связи» на /app/jira/links, условные пункты меню (#108)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 19:41:32 +04:00
Andrey Epifancev
a5d9526b4f Веб-сидер, фикстуры и README без статуса по факту (#104)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 17:06:26 +04:00
Andrey Epifancev
2bc43953dc fix(web-modules): M-1, M-2, M-7, M-8 трекер пакетов и сводка jira
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
36565d23b5 test(web-modules): I-4 адрес карточки /issues/KEY без project
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
f116be4f7f fix(web-modules): I-3 маркеры #68 M-2, #73 M-2, #94 T10.6/T10.7, proposal без незакрытых M-18/T9.1
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
425d09eb45 fix(web-modules): I-2 порядок сводной точки по спеке, M-6, T2.3 поле jira_synced_at в модуль, M-4 мёртвый код, M-10 детекторы границы
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
47bba63d8b fix(web-modules): I-1 пакет вики инвалидирует весь wiki/<проект>, включая status
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
e2c925bff2 docs(web-modules): ARCHITECTURE, CLAUDE.md, README, e2e под модули
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
77ff12d54d fix(web-modules): липкая шапка «Задач», порядок вики по ширине контейнера, «, просрочено»
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
46a1857706 fix(web-modules): страницы модулей — шапки, «Вики» с корнем, просрочка, прокрутка «Задач»
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
15626aa33a feat(web-modules): «Новый проект» — поля по модулям, подсказки, пакеты каждому модулю
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
59f5cbef00 feat(web-modules): страница «Обзор» со сводками модулей и последними пакетами
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
bc367111a7 feat(web-modules): боковая панель по модулям, блок состояния, узкий экран, адреса модулей
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
4dbda116c0 fix(web-modules): подхват после 409 заменяет чужой отслеживаемый пакет (T3.I1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
112720ab1d feat(web-modules): состояние модуля в контракте, трекер пакетов и агенты в ядре
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
5061d9a3f0 refactor(web-modules): граница ядра и модулей в вебе, форматтеры дат в ядре, без fact_status
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 15:38:46 +04:00
Andrey Epifancev
3ade954713 fix(sdlc-rename): сбой переноса ключа хранилища не теряет значение
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 11:58:25 +04:00
Andrey Epifancev
ef9ec9f46d feat(sdlc-rename): бренд SDLC Hub и ключи хранилища sdlc-hub-* с переносом
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 11:56:58 +04:00
Andrey Epifancev
a88bb1e6e8 refactor(sdlc-rename): пакет sdlc_hub, CLI sdlc-hub, каталог данных sdlc-hub
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 11:27:17 +04:00
Andrey Epifancev
8a3ae3342e Веб: подхват refresh при пакете wiki_sync, ошибка вложения сразу (M-12, M-15)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 04:02:31 +04:00
Andrey Epifancev
01c28c890a Веб: вики — предки выбранной страницы раскрываются, когда её узел появился (#91)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 03:28:07 +04:00
Andrey Epifancev
a37ce0a59c Веб: вики — дерево не раскрывает предков при новом nodes (#91)
Эффект раскрытия предков зависит только от selected; тест с новым массивом nodes;
заглушки URL.createObjectURL в тесте загрузки через spyOn.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 03:23:12 +04:00
Andrey Epifancev
5a142f772c Веб: вики — правки по ревью Task 10 (#91)
Дерево не раскрывает предков повторно после ручного сворачивания, предел опроса вложения,
//host не ссылка, регистр схем page:/attachment:, тесты дерева, загрузки, плашки панели, 422/404.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 03:17:13 +04:00
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