docs(app-map): contacts.diff уточнён по mail/102 (Команды=n-a, Ff 31.2%) + P1 ядро landed (bc1a497)

This commit is contained in:
b-mob-contacts
2026-07-13 07:40:01 +00:00
parent 9d726f4549
commit af25ee8e6d
2 changed files with 28 additions and 20 deletions
+27 -19
View File
@@ -1,5 +1,13 @@
# Diff: Контакты (CardDAV) — итерация 1 (2026-07-13)
Ff_app: **26.7%** · Fd_app: **предварительно** (натив на устройстве в этот проход не гонялся; веб снят live 390px) · n-a: 3
Ff_app: **31.2%** · Fd_app: **предварительно** (натив на устройстве в этот проход не гонялся; веб снят live 390px) · n-a: 8
> Прогресс P1 (коммит bc1a497): ЯДРО правки/удаления готово и покрыто тестами (10 юнит-тестов
> `VCardEditorTest` зелёные, гейт `:app:compileReleaseKotlin` зелёный) — `CardDavClient.updateContact`
> (PUT If-Match, round-trip неизвестных полей vCard) / `deleteContact` (DELETE If-Match) +
> `VCardEditor`. UI-часть (Room href/etag/raw + форма правки + delete в карточке) — шаг 2/2, следующим
> коммитом; пункты «Править»/«Удалить» карточки станут `[done]` после неё.
> Решение лида (mail/102): экран «Команды» (Circles) — целиком `n-a` (отдельный тяжёлый апп, не контакты);
> порядок P1→P2→P4→P3→P5 утверждён.
Сверка веб (карта `contacts.md`, апстрим `nextcloud/contacts` + тема `_mobile-*.css`) ↔ натив
(`feature/contacts` Compose поверх CardDAV/`core:network`). Метод mail/083: `[Ф|Д]`·`[open|done|n-a]`,
@@ -84,19 +92,20 @@ Fd (дизайн) — отдельным проходом на устройст
- [Ф][open] Разворачивание/сворачивание узлов (`^N`).
- [Ф][open] Переход к карточке из узла.
## Экран 6: Команда (например «Тест») — Ff 0.0% (0 open Ф / 5; n-a 3)
Отсутствует в нативе:
- [Ф][open] Просмотр команды (название/владелец/участники).
- [Ф][open] «✏️ Править» команду.
- [Ф][open] «Копировать ссылку».
- [Ф][open] «Добавить» участника.
- [Ф][open] Список участников (роль «Владелец» и т.д.).
- [Ф][n-a] Создать «Папка» — зона `feature/files` (создаётся из Файлов).
## Экран 6: Команда (Circles/Teams) — n-a целиком (0 применимых Ф; n-a 8) — исключён из среднего
Решение лида (mail/102): отдельного экрана команд в мобильных Контактах v1 НЕ делаем — Circles это
самостоятельный тяжёлый апп (членство/уровни/шары), не контакты. Весь экран `n-a`:
- [Ф][n-a] Просмотр команды (название/владелец/участники).
- [Ф][n-a] «✏️ Править» команду.
- [Ф][n-a] «Копировать ссылку».
- [Ф][n-a] «Добавить» участника.
- [Ф][n-a] Список участников.
- [Ф][n-a] Создать «Папка» — зона `feature/files`.
- [Ф][n-a] Создать «Конференции» — зона `feature/talk`.
- [Ф][n-a] Создать «Календарь» — зона `feature/calendar`.
> n-a обоснование: три «Создать …» из карточки команды — кросс-модульные создающие потоки чужих
> модулей, достижимы из их приложений; в контактах мобильно-неприменимы. Команды (Circles/Teams)
> целиком — кандидат на согласование с лидом: нужен ли отдельный экран команд в мобильных Контактах.
> Обоснование: Circles = отдельное приложение (мобильно — не в скоупе Контактов v1); три «Создать …»
> — кросс-модульные создающие потоки чужих модулей. NB: «команды» ≠ «группы контактов»: группы
> (CATEGORIES→чипы) остаются в скоупе (P2).
## Экран 7: Параметры контактов (модальный шит) — Ff 0.0% (5 open Ф / 5)
Отсутствует в нативе:
@@ -108,7 +117,7 @@ Fd (дизайн) — отдельным проходом на устройст
---
## Сводка и приоритеты (прошу приоритизацию у лида)
Ff_app **26.7%** по 7 экранам (Э1 100 · Э2 18.2 · Э3 42.1 · Э4 26.7 · Э5/6/7 0). Fd — предварительно.
Ff_app **31.2%** по 6 экранам (Э1 100 · Э2 18.2 · Э3 42.1 · Э4 26.7 · Э5 0 · Э7 0; Э6 Команды = n-a, исключён). Fd — предварительно.
Крупнейшие функциональные дыры (кандидаты P1–P5), совпадают с моим планом mail/072:
1. **Правка/удаление контакта** (Экран 4 + ⋯ карточки): edit-форма, `updateContact` PUT If-Match с
round-trip неизвестных полей vCard, `deleteContact`, выбор адресной книги, поля должность/адрес/
@@ -122,12 +131,11 @@ Ff_app **26.7%** по 7 экранам (Э1 100 · Э2 18.2 · Э3 42.1 · Э4 2
5. **Параметры** (Экран 7): сортировка, импорт, управление адресными книгами.
Прочее: соц.сеть/cloud-ID/QR/скачать/копировать в карточке; оргструктура-граф; экран команд (см. n-a).
## Вопросы к лиду (b-dev-mobile)
- Порядок P1–P5? Мой дефолт (не жду ответа, начинаю с P1 edit/delete — целиком мой модуль +
твоё уже-данное добро на core-правку): 1→2→(4 кросс-модуль)→3→5.
- **Команды (Circles/Teams)** (Экран 6) — нужен ли отдельный экран команд в мобильных Контактах,
или считаем n-a целиком? Три «Создать …» я пометил n-a (чужие модули) — подтверди.
- **Оргструктура** (Экран 5) — в скоуп мобильных Контактов или n-a?
## Вопросы к лиду (b-dev-mobile) — РЕШЕНО (mail/102)
- Порядок P1→P2→P4→P3→P5 — утверждён.
-**Команды (Circles/Teams)** (Экран 6) — `n-a` целиком (учтено выше).
- **Оргструктура** (Экран 5) — лид пока не высказался; держу `open` (не занижаю знаменатель
односторонним n-a). Аналогична Circles по «тяжести» — вероятный кандидат в n-a, жду слова.
- Fd: гоню отдельным проходом на устройстве после ревью-сборки — сборка/версия по гейту (084) за тобой.
## Live-запись (mail/085, ограждения)