From 212aebfc4a0c812c0ee41833dbf09a274e3bfaf5 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Sat, 17 Oct 2026 11:54:15 +0400 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D1=8F=20hide-closed:=20README=20=D0=B1?= =?UTF-8?q?=D0=B5=D0=B7=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D1=84=D0=B0=D0=BA=D1=82=D1=83,=20=D0=B4=D0=B0?= =?UTF-8?q?=D1=82=D0=B0=20=D0=B2=20=D1=81=D1=86=D0=B5=D0=BD=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D0=B8,=20=D1=80=D1=83=D0=BB=D0=B8=D0=BD=D0=B3=D0=B8=20?= =?UTF-8?q?=D0=B2=20design.md=20(#57)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- README.md | 5 +- openspec/changes/hide-closed/design.md | 49 ++++++++++++------- .../changes/hide-closed/specs/web-app/spec.md | 2 +- 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 38b28c0..5d139a9 100644 --- a/README.md +++ b/README.md @@ -186,7 +186,10 @@ launchctl kickstart -k gui/$(id -u)/ru.aepif.jira-hub читает те же ключи `localStorage`, что прежняя страница. Разработка: `bash web/scripts/test-hub.sh` (тестовый хаб :8791 с синтетическими данными) и `cd web && npm run dev` (http://127.0.0.1:5173/app/). -Карточка задачи: в шапке — статус Jira, статус по факту, исполнитель, срок (просроченный — красным), спринт и эпик; +Список задач по умолчанию скрывает закрытые (статус Jira из настройки `closed_statuses`, по умолчанию «Готово», «Снято»): +флажок «скрыть закрытые», снятый — `closed=1` в адресе; на доске закрытые задачи и их связи приглушены. + +Карточка задачи: в шапке — статус Jira, исполнитель, срок (просроченный — красным; у закрытой задачи пометки нет), спринт и эпик; связи сгруппированы «Зависит от» / «Блокирует» / «Связана с» / «Прочие» с темой и статусом связанной задачи; комментарии из Jira (агент v10+) новые сверху, «Скрыть» запоминается в браузере; заметки — режим чтения, «Править» открывает форму. Комментарии появляются после первого обновления из Jira агентом v10. diff --git a/openspec/changes/hide-closed/design.md b/openspec/changes/hide-closed/design.md index 573e0b7..d068720 100644 --- a/openspec/changes/hide-closed/design.md +++ b/openspec/changes/hide-closed/design.md @@ -69,20 +69,35 @@ ## Decisions made without discussion -- 2026-10-17 — **набор закрытых статусов в настройке хаба `closed_statuses`**, а не константой в коде. Обоснование: - правило «Справочники из настроек хаба», фильтр нужен и серверу, и приложению. Цена ошибки: лишний ключ настроек; - убрать — правка `DEFAULTS` и двух мест чтения. -- 2026-10-17 — **фильтр `hide_closed` на сервере**, а не в браузере. Обоснование: порции по 50. Цена ошибки: один - параметр API; поведение MCP не меняется. -- 2026-10-17 — **адрес: `closed=1` — показать закрытые; по умолчанию параметра нет.** Обоснование: умолчание владельца - «скрыты», адрес без лишних параметров. Цена ошибки: переименование параметра. -- 2026-10-17 — **выбранный в «Статус Jira» закрытый статус отменяет скрытие.** Обоснование: иначе выборка всегда пуста. - Цена ошибки: поведение одного сочетания фильтров. -- 2026-10-17 — **приглушение: `opacity .4`, полная яркость под указателем и с фокусом клавиатуры внутри; стрелки — если закрыт хотя бы один - конец.** Обоснование: владелец подтвердил «связи тоже бледнеют»; степень прозрачности — на глаз, отличается от - соседа (`.7`, пунктир). Цена ошибки: правка CSS. -- 2026-10-17 — **без `closed_statuses` — ничего не закрыто, без сообщения об ошибке.** Обоснование: это не словарь - подписей, без него страница работает как раньше. Цена ошибки: нет. -- 2026-10-17 — **«просрочено» — по статусу Jira из `closed_statuses`.** Обоснование: статус по факту из приложения - убран. Цена ошибки: пометка «просрочено» у задачи, закрытой по факту, но не в Jira, — теперь видна (это и есть - статус Jira). +1. 2026-10-17 — **набор закрытых статусов в настройке хаба `closed_statuses`**, а не константой в коде. Обоснование: + правило «Справочники из настроек хаба», фильтр нужен и серверу, и приложению. Цена ошибки: лишний ключ настроек; + убрать — правка `DEFAULTS` и двух мест чтения. +2. 2026-10-17 — **фильтр `hide_closed` на сервере**, а не в браузере. Обоснование: порции по 50. Цена ошибки: один + параметр API; поведение MCP не меняется. +3. 2026-10-17 — **адрес: `closed=1` — показать закрытые; по умолчанию параметра нет.** Обоснование: умолчание владельца + «скрыты», адрес без лишних параметров. Цена ошибки: переименование параметра. +4. 2026-10-17 — **выбранный в «Статус Jira» закрытый статус отменяет скрытие.** Обоснование: иначе выборка всегда пуста. + Цена ошибки: поведение одного сочетания фильтров. +5. 2026-10-17 — **приглушение: `opacity .4`, полная яркость под указателем и с фокусом клавиатуры внутри; стрелки — если закрыт хотя бы один + конец.** Обоснование: владелец подтвердил «связи тоже бледнеют»; степень прозрачности — на глаз, отличается от + соседа (`.7`, пунктир). Цена ошибки: правка CSS. +6. 2026-10-17 — **без `closed_statuses` — ничего не закрыто, без сообщения об ошибке.** Обоснование: это не словарь + подписей, без него страница работает как раньше. Цена ошибки: нет. +7. 2026-10-17 — **«просрочено» — по статусу Jira из `closed_statuses`.** Обоснование: статус по факту из приложения + убран. Цена ошибки: пометка «просрочено» у задачи, закрытой по факту, но не в Jira, — теперь видна (это и есть + статус Jira). + +Решения исполнения (маркеры по ledger SDD): + +8. 2026-10-17 — **R-1: e2e-шаг флажка — `click()` + `not.toBeChecked()` вместо `uncheck()`.** Обоснование: флажок + управляется адресом, React Router меняет его навигацией асинхронно, `uncheck()` проверяет состояние сразу после + щелчка; так же устроен «только соседи». Цена ошибки: нет, поведение то же. +9. 2026-10-17 — **R-2: «PUT заметки не шлёт `fact_status`» отдельным тестом не дублируется.** Обоснование: тест + сохранения в `IssueCard.test.tsx` идёт на фикстуре с `fact_status` и сравнивает тело целиком. Цена ошибки: нет. +10. 2026-10-17 — **R-3: в заметке без данных — 4 прочерка вместо 5.** Обоснование: полей заметки в приложении + четыре по спеке. Цена ошибки: нет. +11. 2026-10-17 — **R-4: тест приглушения на доске считает закрытые по статусам выборки.** Обоснование: в фикстуре + `hub-basic` уже есть AURORA-9006 «Готово». Цена ошибки: нет. +12. 2026-10-17 — **R-5: находки финального ревью M-1 (README описывал статус по факту в карточке) и M-2 (формат даты в + сценарии спеки) исправлены, а не отложены.** Обоснование: документация и спека — источник истины — противоречили + поведению; тестом не проверяются. Цена ошибки: нет. diff --git a/openspec/changes/hide-closed/specs/web-app/spec.md b/openspec/changes/hide-closed/specs/web-app/spec.md index 1c58b56..7698e57 100644 --- a/openspec/changes/hide-closed/specs/web-app/spec.md +++ b/openspec/changes/hide-closed/specs/web-app/spec.md @@ -162,7 +162,7 @@ SHALL сообщать об этом с кнопкой «Закрыть»; ха #### Scenario: Просрочка закрытой задачи - **WHEN** у AURORA-1620 срок 2026-10-01, сегодня 2026-10-17, статус Jira «Готово» -- **THEN** в строке под темой «срок 01.10.2026» без пометки «просрочено»; при статусе «В работе» — с пометкой +- **THEN** в строке под темой «срок 01.10» без пометки «просрочено»; при статусе «В работе» — с пометкой ### Requirement: Служебные заметки Карточка задачи SHALL показывать служебные заметки в режиме чтения: «Вид работы», «Сделано»,