Add opinions storage, morning drift, and Connections card tab.
This commit is contained in:
+13
-13
@@ -12,25 +12,25 @@
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] Мнение A→B: −100…100, несимметрично, ноль не хранить
|
||||
- [ ] Пороги и подписи в `BehaviorDef`; клиент рисует присланную подпись, не считает сам
|
||||
- [ ] Генератор ставит семейные старты (родители, сиблинги, партнёры семьи) из данных
|
||||
- [ ] Каждое рабочее утро (и skip) ненулевые мнения слегка дрейфуют к семейному базису или к нулю;
|
||||
- [x] Мнение A→B: −100…100, несимметрично, ноль не хранить
|
||||
- [x] Пороги и подписи в `BehaviorDef`; клиент рисует присланную подпись, не считает сам
|
||||
- [x] Генератор ставит семейные старты (родители, сиблинги, партнёры семьи) из данных
|
||||
- [x] Каждое рабочее утро (и skip) ненулевые мнения слегка дрейфуют к семейному базису или к нулю;
|
||||
дошли до нуля — запись выкинуть
|
||||
- [ ] `people.json` пишет мнение при сдвиге; старый сейв без поля — все нули кроме семьи
|
||||
- [x] `people.json` пишет мнение при сдвиге; старый сейв без поля — все нули кроме семьи
|
||||
после первой загрузки-переписи
|
||||
- [ ] Вкладка карточки **Связи**: семья с числами, топ друзей/врагов, поиск по ненулевым
|
||||
- [ ] Игрок с вкладки ничего не меняет
|
||||
- [ ] `docs/protocol.md` — HTTP карточки
|
||||
- [x] Вкладка карточки **Связи**: семья с числами, топ друзей/врагов, поиск по ненулевым
|
||||
- [x] Игрок с вкладки ничего не меняет
|
||||
- [x] `docs/protocol.md` — HTTP карточки
|
||||
|
||||
## Тесты, без которых фаза не закрыта
|
||||
|
||||
- [ ] Родитель и ребёнок после генерации имеют плюс в обе стороны; чужие одноклассники — нет записи
|
||||
- [ ] A→B и B→A могут различаться
|
||||
- [ ] После нескольких утренних дрейфов без разговоров мнение одноклассников (если появилось)
|
||||
- [x] Родитель и ребёнок после генерации имеют плюс в обе стороны; чужие одноклассники — нет записи
|
||||
- [x] A→B и B→A могут различаться
|
||||
- [x] После нескольких утренних дрейфов без разговоров мнение одноклассников (если появилось)
|
||||
ближе к нулю, семейное — к старту, не к нулю
|
||||
- [ ] Карточка без отдельного запроса «всех пар школы»: только этот человек
|
||||
- [ ] Клиентский тест: вкладка «Связи» не монтирует лог
|
||||
- [x] Карточка без отдельного запроса «всех пар школы»: только этот человек
|
||||
- [x] Клиентский тест: вкладка «Связи» не монтирует лог
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
|
||||
+32
-1
@@ -269,6 +269,10 @@ person. `customPortraitPrompt` is the last saved user prompt for the custom vari
|
||||
They are filled on the HTTP thread after the worker returns the card; generation does
|
||||
not happen on this request.
|
||||
|
||||
`connections` is the **Связи** tab: family links with `opinion` / `opinionLabel` from catalog bands,
|
||||
plus `friends`, `enemies` and `others` (every non-family non-zero pair for this person only).
|
||||
The client does not compute thresholds. There is no school-wide opinions endpoint.
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "f0.c0",
|
||||
@@ -321,7 +325,34 @@ not happen on this request.
|
||||
"hasAvatar": false,
|
||||
"hasCustom": false,
|
||||
"hasFullBody": false,
|
||||
"customPortraitPrompt": null
|
||||
"customPortraitPrompt": null,
|
||||
"connections": {
|
||||
"family": {
|
||||
"parents": [
|
||||
{
|
||||
"id": "f0.p1",
|
||||
"fullName": "Иванова Ольга Михайловна",
|
||||
"female": true,
|
||||
"opinion": 75,
|
||||
"opinionLabel": "близкие друзья"
|
||||
}
|
||||
],
|
||||
"children": [],
|
||||
"siblings": [
|
||||
{
|
||||
"id": "f0.c1",
|
||||
"fullName": "Иванов Кирилл Петрович",
|
||||
"female": false,
|
||||
"opinion": 45,
|
||||
"opinionLabel": "друзья"
|
||||
}
|
||||
],
|
||||
"partners": []
|
||||
},
|
||||
"friends": [],
|
||||
"enemies": [],
|
||||
"others": []
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user