🌸 Дуся

🎯 Сводка — что сделано

Лента последних закрытых сессий разработки Дуси (из памяти проекта).

42фич готово
8в работе
46в планах
35сессий

Хроника разработки

LLM-каскад v4: ADMIN/РОДНОЙ (до 50 чел, подписки Александра)/ТЕСТЕР (временно, мигрируется в PUBLIC при появлении биллинга)/PUBLIC (наши РФ-API). Чат #69 = классы+коннекторы, #70 = quota+rotator+breaker.
Семейный MVP-бот ~/dusya-mvp/: 030b-030g закрыты 02.05, что осталось
Голос Дуси v1 = Yandex SpeechKit alena/good/speed=1.1 (скорректирован 23.05 в Чате #30). SaluteSpeech Марфа — fallback.
7 провайдеров (MAX, claude-cli, GigaChat, SaluteSpeech, YandexGPT, Yandex SpeechKit, Yandex Search). Чат #30 (23.05 вечер) закрыл voice end-to-end в MAX.
Чат 53
Чат №53 закрыт 23.05: email-агент инфра done, реальная отправка ждёт Gmail OAuth (AEZA блокирует SMTP-порты).
Чат #52
Чат #52 закрыт 23.05, fix 24.05: текстовый астролог + 52 smoke зелёные. Part 6 пересчитана через pyswisseph (TZ UTC+3 для Калининграда 1988): ASC=29°03' Aries, MC=9°58' Cap.
Чат 30
Чат №30 (голос в MAX, end-to-end) — **ЗАКРЫТ** 23.05 вечер. Voice в MAX работает в обе стороны, диагноз Чата #29 опровергнут. Подробности — [[feedback_max_bot_api_gotchas]].
Чат 63
Чат №63 закрыт 24.05: KILLER импорт из Claude/ChatGPT/Gemini → user_facts (новый пакет `src/import_history/`). 378 тестов зелёные.
Чат 65
Чат №65 закрыт 24.05: расширенный FSM (6 шагов), мягкие вопросы, фоновый LLM-экстрактор. Единая user_facts с Чатом #63. 385 тестов зелёные.
Чат 17b
Чат №17b закрыт 24.05: Vault-команды портированы в MAX через services/secret_flow.py (FSM по образцу onboarding). 385 тестов зелёные.
Чат 66
Чат №66 закрыт 24.05: внутренний юр-аудит шеринга AI-подписок + Google Family + шаблон opt-in BYO (3 документа в docs/legal/). Требует ревью юриста.
Чат 37
Чат №37 закрыт 24.05: Tavily веб-поиск + анализ КП (текст/фото), таблица kp_log. 399 тестов зелёные (22 новых).
Чат 58
Чат №58 закрыт 24.05: юр-блок ПДн в 4 документах в ~/dusya/docs/legal/ (privacy-policy 1.1, consent-templates 1.1, onboarding-legal-flow, data-deletion-flow). Требует ревью юриста.
Чат 40
Чат №40 закрыт 24.05: Skill Factory v1 (промпт-скилы Level 1), таблица user_custom_skills, команды /мой_скил/мои_скилы/включить/выключить/удалить, NL-триггер «хочу свой скил», safety + лимит 10. 23/23 smoke зелёные.
Чат 48
Чат №48 закрыт 24.05: cross-channel mirroring TG↔MAX через link-коды + mirror_message; важные уведомления дублируются в оба канала. 10/10 smoke зелёные.
Чат 60
Чат №60 закрыт 24.05: hybrid роутинг реактив/проактив, llm_interactions, /мой_статус, BYO заглушка под 051, coins под 061. 11/11 smoke зелёные.
Чат 34
Чат №34 закрыт 24.05: спорт-дневник src/skills/health/sport/ — ~70 упражнений, regex+LLM-парсер сетов, 8 команд, 20 smoke зелёные.
Чат 67
Чат №67 закрыт 24.05: Skill cost protection (8 уровней), src/services/skill_limits.py + расширение skills/user_custom_skills + 3 новые таблицы. 16/16 smoke зелёные, 503 общих passed.
Чат 61
Чат №61 закрыт 24.05: Дуся-коины (каркас без ЮKassa). models_cost + tier_budgets + coin_usage_log + биллинг в safe_chat с graceful smart→main. 16/16 smoke + 503 общих зелёные.
Чат 11
Чат №11 закрыт 24.05: тарифную модель v1 закодировали. pricing.py = single source of truth (tier_limits и SEED_TIER_BUDGETS derived). Команды /тарифы /мой_тариф /апгрейд /триал, trial 14 дней без карты. 27/27 smoke + 530 общих зелёные.
Чат 73
Чат №73 ЗАКРЫТ 27.05: мульти-подписочный LLM через 3 CLI (claude/codex/gemini-2.5-flash). user_class enum + premium-роутинг + лимиты + multi-source + preference + диспетчеры MAX/TG. Все 3 CLI авторизованы и проверены вживую. 28/28 smoke + 641 общих зелёные.
Чат 74
Чат №74 закрыт 27.05: /мой_id + /соедини_аккаунты (FSM + merge_users по ~30 таблицам + 7-дн split), семья v2 (invite-flow с подтверждением + stub-юзера через max:/tg:), заделка компаний (схема teams/* + заглушки). 18 новых smoke зелёные.
Чат 75a
Чат №75a закрыт 27.05: 5 классов (admin/rodnoy/tester/demo/user), DEMO 14 дней с автодаунгрейдом, rename public→user, /demo_extend, /demo_end. Колонки rating/rating_note/rated_at заранее под 75b. 657 общих + 17 новых smoke зелёные.
Чат 75b
Чат №75b ПАУЗА 27.05: код inline-оценок 👍/👎/✏️ и запросов класса готов, smoke зелёные. Осталось: pytest, рестарт Дуси, живая проверка кнопок.
План переезда Дуси с AEZA/biztune.ru на собственный VPS + собственный домен. Триггер — явное решение Александра «переезжаем». Тим-лид Чата №0 — обработать когда триггер.
Чат 72
Чат №72 ЗАКРЫТ 29.05: базовый IO Дуси на уровне ChatGPT. 17 фиксов F1-F17 в проде. Voice end-to-end в MAX через webhook (long polling не доставляет voice — подтверждено их техподдержкой). Vision через claude-cli @file+Read (gemini-fallback). Chunked ASR для voice >60с. MAX-форварды Bug-003 закрыты. 53 smoke зелёных.
Дуся-Dev (#077): отдельный TG-бот, AI-тим-лид в кармане Александра. Воркспейс ~/dusya-dev/ (создан 29.05), токен в .env (ротация ~28.06). Координация: VS Code Чат №0 = резерв, Дуся-Dev = основной канал. Не Сёма, не прод-Дуся.
Чат 77:
Чат №77: Дуся-Dev @TBDusya_bot (aiogram), AI-тим-лид в кармане. MVP ГОТОВ 29.05: мульти-CLI, живая Сводка, спавн в worktree, канал секретов, автоматика. 35 smoke. Бэкап BobyrAlex/dusya-dev. Ждёт первого docker up.
Чат 81
Чат №81 закрыт 04.06: Perplexity-режим (веб-ответ с цитатами). Yandex Search клиента в коде НЕ БЫЛО — написан (primary), Tavily мёртв в проде (403 AEZA). +починен баг llm_safe.py:226 (interaction_id на tuple-моках).
Чат 82
Чат №82 закрыт 04.06: Deep Research (#082) — многошаговое исследование план→поиск→синтез. Новый модуль src/services/deep_research/. searcher переиспользует #081 через chat() (биллинг 200 коинов 1 раз). Free заблокирован, апселл на ₽290+аддон. 23 smoke зелёных.
Чат 83
Чат №83 закрыт 04.06: текстовый путь пищевого дневника («съел омлет и кофе» → LLM-БЖУ → food_log, несколько блюд) + NL-итог «что я сегодня ел». Дневник еды уже был готов в Чате №21 (фото-путь) — #032 наконец → done. Расширил food_diary (text_log.py), не создавал nutrition/. 22 smoke. Ветка chat83-food-text, НЕ в main.
Чат 84
Чат №84 закрыл #044: общий семейный список покупок с делегированием (Александр просит → жена отмечает «куплено» → уведомление автору). Таблица shopping_delegations, модуль skills/family/shared_list, перехват в conversation ДО family_commands. 13 smoke. Ветка chat84-shared-shopping, НЕ в main (ждёт merge+рестарт).
Чат 87
Чат №87 закрыт 04.06: проактив «Дуся пишет первой» — утренний бриф (#087). Пакет src/services/proactive/ (proactive_prefs, единый cron-loop, mirror-доставка). Команды /бриф* + NL «пиши мне утром в 8». Идемпотентность + тихие часы. 19 smoke. Worktree без venv — гонять через ~/dusya-mvp/.venv.
Чат 85
Чат №85 закрыл #033 (медконтур): шифрование медзначений анализов (vault envelope, value_encrypted/structured_encrypted/dose_encrypted), напоминания о лекарствах через общий reminders-loop (парсер расписания), распознавание PDF (pypdf). Базовый скил был из Чата №21. 16 smoke, 872 passed. Ветка chat85-medical-encryption (worktree, НЕ в main).
Чат 86
Чат №86 закрыт 04.06: «Что приготовить?» v2 — расширил существующий fridge_recipes (фото И текст→2-3 рецепта, учёт аллергий/ПП из user_facts+users_health+memories, коуч-тон, /рецепт, аллерген-нетка). 22 smoke, 879 passed. Ветка feat/recipes-086, НЕ в main.