diff --git a/README.md b/README.md index 0f2e6cf..6da915d 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,13 @@ sketches/002-rail-voice-first/index.html # голос — главное д sketches/003-three-pane-command/index.html # три панели + состояние агента sketches/004-settings-agents/index.html # черновик настроек агентов sketches/005-new-chat-picker/index.html # черновик модалки нового диалога +sketches/006-groups-manage/ # группы: 4 файла по состояниям +``` +``` +sketches/006-groups-manage/1-list.html # Группы: изменить, удалить, добавить +sketches/006-groups-manage/2-add.html # новая группа +sketches/006-groups-manage/3-edit.html # изменение и удаление +sketches/006-groups-manage/4-delete.html # удаление: диалоги остаются ``` `BORROW-FROM-ASSISTENT.md` — что берём из `ai/assistent` (приёмы, плагины, версии), diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md index becd527..b5ae258 100644 --- a/REQUIREMENTS.md +++ b/REQUIREMENTS.md @@ -49,13 +49,33 @@ ## 3. Список диалогов -- **R7.** Группировка диалогов со временем появится — «Работа», «Дом» и подобное. - Сейчас это накидка, состав групп ещё не определён. +- **R7.** Группировка диалогов — «Работа», «Дом» и подобное. **Управляемая:** + группы можно добавлять, переименовывать и удалять. - **R8.** В строке диалога: название, последнее сообщение, время, счётчик непрочитанных. - **R9.** Есть поиск по диалогам. -- **R9.1.** Над списком — **папки** (круглые кнопки): «Все чаты», «Работа», «Дом» - и «+» для новой. Это часть одобренного варианта 1, не забывать при доработках. +- **R9.1.** Над списком — **лента групп** (круглые кнопки): «Все чаты», «Работа», + «Дом» и другие. Это часть одобренного варианта 1, не забывать при доработках. +- **R9.2.** Справа в этой ленте — **кнопка «Группы» с карандашом (✎)**, прижата + к правому краю, отдельно от чипов. **Прежний «+» там больше не стоит.** + Причина: рядом чипы групп, и всё похожее на «+» читается как «добавить группу», + хотя диалог создаётся кнопкой в шапке списка. Макет — `sketches/006-groups-manage`. +- **R9.3.** Кнопка открывает окно **«Группы»**: список групп, у каждой «изменить» + и «удалить», внизу «+ Добавить группу». +- **R9.4.** **«Все чаты» — встроенная группа**, не удаляется и не переименовывается + (в макете помечена «встроенная», пунктирная рамка). Нужна как надёжное место, + где виден весь список: иначе при удалении группы диалоги пропадут из виду. +- **R9.5.** У группы **только название**. Цвет, значок, порядок — не делаем, + пока не попросили. +- **R9.6.** **Пустая группа допустима** — можно создать заранее и разложить + диалоги потом. +- **R9.7.** **Удаление группы диалоги НЕ удаляет.** В окне подтверждения это + сказано первым делом: диалоги останутся и будут видны в «Все чаты». Диалоги + обязаны быть где-то видны — «корзины» у них нет. +- **R9.8.** Удаление группы — **отдельным блоком «опасное»** в окне изменения + и **красной залитой кнопкой** в подтверждении. Не в одном ряду с «Сохранить». +- **R9.9.** Макеты групп — **отдельные файлы по состояниям, без интерактивности**: + `1-list`, `2-add`, `3-edit`, `4-delete` в `sketches/006-groups-manage`. - **R9.2.** В строке диалога — круглый значок непрочитанных, если есть. ## 4. Открытый диалог diff --git a/approved/001-sidebar-utility.html b/approved/001-sidebar-utility.html index f2e8ad2..1420669 100644 --- a/approved/001-sidebar-utility.html +++ b/approved/001-sidebar-utility.html @@ -46,6 +46,10 @@ } .folder.active { color: var(--fg); border-color: var(--accent); background: rgba(106,178,242,.12); } .folder .cnt { color: var(--badge); font-weight: 600; margin-left: 4px; } + /* кнопка «Группы» — не папка, а действие: держим справа, отдельно от чипов */ + .folder.act { margin-left: auto; background: transparent; color: var(--dim); + display: grid; place-items: center; padding: 5px 9px; font-size: 13px; } + .folder.act:hover { color: var(--fg); background: var(--panel2); } .chat-list { flex: 1; overflow-y: auto; padding: 4px 8px 12px; } .chat-row { @@ -209,7 +213,7 @@
Все чаты 3
Работа
Дом
-
+
+
✎
diff --git a/sketches/006-groups-manage/1-list.html b/sketches/006-groups-manage/1-list.html new file mode 100644 index 0000000..86d76e8 --- /dev/null +++ b/sketches/006-groups-manage/1-list.html @@ -0,0 +1,301 @@ + + + + +Группы — список + + + + +
+ + +
+
+
АГ
+
+
agentik · рабочий
+
● на связи
+
+
+
+
Проверь, почему падает CI
+
Нашёл: длинное тире в именах тестов ломает сборку. Починил, CI зелёный.
+
+
+ +
+
+
+
+

Группы

+ +
+
+
+
+
Все чаты
+
Показывает все диалоги, из любой группы
+
+
встроенная
+
+ +
+
+
Работа
+
12 диалогов
+
+
+ + +
+
+ +
+
+
Дом
+
4 диалога
+
+
+ + +
+
+ +
+
+
Учёба
+
2 диалога
+
+
+ + +
+
+ +
+
+
Личное
+
пустая
+
+
+ + +
+
+ + +
+
+ +
+
+
+
+
1. Список групп: изменить, удалить, добавить
+ + diff --git a/sketches/006-groups-manage/2-add.html b/sketches/006-groups-manage/2-add.html new file mode 100644 index 0000000..fb61616 --- /dev/null +++ b/sketches/006-groups-manage/2-add.html @@ -0,0 +1,260 @@ + + + + +Группы — новая + + + + +
+ + +
+
+
АГ
+
+
agentik · рабочий
+
● на связи
+
+
+
+
Проверь, почему падает CI
+
Нашёл: длинное тире в именах тестов ломает сборку. Починил, CI зелёный.
+
+
+ +
+
+
+
+

Новая группа

+ +
+
+
+ + +
Так группа будет называться в ленте над списком диалогов.
+
+ +
+ ℹ + Диалоги в группу попадают потом — из самого диалога. Здесь группа + только создаётся, диалог в неё не переносится. +
+
+
+ + +
+
+
+
+
2. Новая группа: только название
+ + diff --git a/sketches/006-groups-manage/3-edit.html b/sketches/006-groups-manage/3-edit.html new file mode 100644 index 0000000..9208cbb --- /dev/null +++ b/sketches/006-groups-manage/3-edit.html @@ -0,0 +1,265 @@ + + + + +Группы — изменение + + + + +
+ + +
+
+
АГ
+
+
agentik · рабочий
+
● на связи
+
+
+
+
Проверь, почему падает CI
+
Нашёл: длинное тире в именах тестов ломает сборку. Починил, CI зелёный.
+
+
+ +
+
+
+
+

Группа «Работа»

+ +
+
+
+ + +
Так группа будет называться в ленте над списком диалогов.
+
+ +
+ ℹ + В группе сейчас 12 диалогов. Переименование их не затрагивает — + это только название группы. +
+ +
+
Опасное
+ +
+
+
+ + +
+
+
+
+
3. Изменение группы: переименование и удаление
+ + diff --git a/sketches/006-groups-manage/4-delete.html b/sketches/006-groups-manage/4-delete.html new file mode 100644 index 0000000..b643497 --- /dev/null +++ b/sketches/006-groups-manage/4-delete.html @@ -0,0 +1,272 @@ + + + + +Группы — удаление + + + + +
+ + +
+
+
АГ
+
+
agentik · рабочий
+
● на связи
+
+
+
+
Проверь, почему падает CI
+
Нашёл: длинное тире в именах тестов ломает сборку. Починил, CI зелёный.
+
+
+ +
+
+
+
+

Удалить группу?

+ +
+
+
+ ⚠ + Группа «Работа» исчезнет из ленты. Диалоги не удалятся — + они останутся и будут видны в «Все чаты». Вернуть группу можно, создав её + заново, но диалоги придётся разложить руками. +
+ +
+ +
+
+
Оставить без группы
+
12 диалогов вернутся в «Все чаты»
+
+
✓
+
+
+ +
+ ℹ + Другого пути нет: диалог обязан быть где-то виден. Отдельной + «корзины» у диалогов нет — удаляются только диалоги, и не отсюда. +
+
+
+ + +
+
+
+
+
4. Удаление группы: диалоги остаются
+ + diff --git a/sketches/006-groups-manage/README.md b/sketches/006-groups-manage/README.md new file mode 100644 index 0000000..2e8edba --- /dev/null +++ b/sketches/006-groups-manage/README.md @@ -0,0 +1,100 @@ +# 006 — Управление группами + +**Иконка в ленте.** Над списком диалогов, справа от чипов групп, стоит **карандаш** +(✎) — вместо прежнего «+». Он означает **«Группы»**: открывает окно, где группы +можно добавить, переименовать и удалить. Раньше там был «+» — он читался как +«создать диалог», хотя диалог создаётся кнопкой в шапке списка. + +Почему карандаш: рядом стоят чипы самих групп, и **всё, что похоже на «+», рядом +с ними читается как «добавить группу»**, а не «управлять ими». Карандаш говорит: +«здесь правят список групп целиком». Кнопка стоит отдельно от чипов — прижата +к правому краю, чтобы её не приняли за шестую группу. + +--- + +## Файлы — по состояниям, без интерактивности + +Интерактивность решено не делать: вместо неё **отдельный файл на каждое состояние**. +Открываются по одному, каждый показывает ровно одно окно. + +| Файл | Что показывает | +|---|---| +| `1-list.html` | Список групп: каждая строка с «изменить» и «удалить», внизу «+ Добавить группу» | +| `2-add.html` | Новая группа: только название | +| `3-edit.html` | Изменение группы: переименование и удаление | +| `4-delete.html` | Удаление группы: что станет с диалогами | + +--- + +## Окно «Группы» (1-list) + +Строка группы: **название**, под ним — **сколько диалогов**, справа кнопки +**изменить (✎)** и **удалить (🗑)**. Внизу пунктирная **«+ Добавить группу»**. + +**«Все чаты» — встроенная группа.** Она есть всегда, показана пунктирной рамкой +и помечена «встроенная»: её нельзя переименовать или удалить. Она нужна как +надежное место, где видно все диалоги сразу, — иначе при удалении группы диалоги +могли бы пропасть из виду. Кнопок правки у неё нет — не потому что забыли, +а потому что нечего править. + +**Пустая группа не запрещена** — «Личное» в макете пустая, помечена словом +«пустая». Группу можно создать заранее и разложить диалоги потом. + +--- + +## Новая группа (2-add) + +**Одно поле — название.** Никаких настроек: цвет группы, порядок, значки — +не выдумываем, пока не попросили. + +Под полем честная подсказка: **диалоги в группу попадают потом, из самого диалога.** +Здесь группа только создаётся — диалог в неё не переносится. Иначе пользователь +ждёт, что после создания в группе что-то появится, и не понимает, почему пусто. + +--- + +## Изменение группы (3-edit) + +**Переименование** — то же поле, что при создании, плюс подсказка, сколько +диалогов в группе сейчас (**переименование диалогов не касается**). + +**Удаление — внизу, отдельным блоком «ОПАСНОЕ».** Так сделано нарочно: удаление +не должно стоять в одном ряду с «Сохранить», иначе промахнуться легко. Кнопка +красная, но не залитая — заливка появляется на следующем шаге, где спрашивают +подтверждение. + +--- + +## Удаление группы (4-delete) + +**Главное, что говорит окно: диалоги не удалятся.** Группа исчезнет из ленты, +диалоги останутся и будут видны в «Все чаты». Это первое, что написано +в предупреждении, — потому что именно этого боятся, нажимая «удалить». + +Отдельный вопрос — **что сделать с диалогами**: оставить без группы (вернутся +в «Все чаты»). Другого пути нет: диалог обязан быть где-то виден, «корзины» +у диалогов не существует. Так и написано в окне — чтобы не выглядело, будто +выбор есть, а его нет. + +Кнопка подтверждения — **красная залитая**, в тексте прямо «Удалить группу». + +--- + +## Что решено и почему + +- **Карандаш вместо «+».** Иначе две кнопки подряд означают «создать» — и в шапке + списка, и в ленте групп. +- **«Все чаты» не удаляется.** Нужна точка опоры, где собран весь список. +- **Диалоги не удаляются вместе с группой.** Иначе одно нажатие стирает работу. +- **Группа без диалогов допустима.** Создать заранее — нормальный сценарий. +- **Никаких настроек у группы, кроме названия.** Цвет, значок, порядок — не + просили, не делаем. + +## Открытые вопросы + +- **Куда диалог кладётся при создании** — в текущую открытую группу или без + группы? Сейчас в макете не показано. +- **Можно ли диалог быть в нескольких группах** (как ярлык в почте) или только + в одной? От этого зависит, что писать в удалении. +- **Порядок групп** — по алфавиту, по времени создания или перетаскиванием? +- **Что если удалить группу, в которой открыт диалог.** Сейчас не показано.