Commit graph

170 commits

Author SHA1 Message Date
Simbiot Harness
d0fb26c8e7 Simbiot UI v0.2: план по решениям Alex (m-516173892) — брендинг, $99.9/mo seat included, ключи наши, студийный RAG, ручной онбординг (t-261008135024-7ea338) 2026-10-08 14:04:59 +00:00
root
d7fda35e6d landing(sites): аудит-фиксы конверсии (t-261008082527-ae7b47): CTA-петля → presale.cil.by (живой Stripe, paid=1), social proof из стора (580k+ подписанных событий, 280k+ sec-тиков, 1 платник), contact-hint кликабелен (портал), FAQ первый открыт, canonical/og:url → simbiot.cil.by; проверено: HTML-валидатор 0 ошибок, якоря целы, туннель отдаёт обновлённую версию 2026-10-08 12:12:58 +03:00
Simbiot Harness
336d47f978 es: rogue-key guard — чужой audit-ключ пишет legacy, стор не ломается (инциденты 06.10/08.10) 2026-10-08 08:52:56 +00:00
root
d31f831058 hour digest 07:35 UTC: батч 3/3 закрыт — burn 1000x фикс (17.4 vs 17048 у.е.), presale P0 снят проверкой (CTA живой, paid=1, $100/mo), repo-синк детектор в дневном тике (behind=0, baseline); тесты 20/20 2026-10-08 10:33:12 +03:00
root
2e31249992 feat(scheduler): fetch origin + детектор дрейфа репо в дневном тике (t-261007082307-2e2294) — _repo_sync_check: git fetch + behind/ahead замер RepoSynced (1/день, дедуп), эскалация при behind>0 два дня ПОДРЯД (счётчик из истории стора — рестарт демона не сбрасывает); fetch-fail фиксируется честно (behind=unknown), тик не валит; порог SIMBIOT_REPO_SYNC_MAX_AGE_DAYS (default 2); тест 17 проверок hermetic (git-песочница), весь сюит 20/20 зелёный; живой прогон: behind=0 ahead=13, baseline записан 2026-10-08 10:32:05 +03:00
root
79e12548a9 presale P0 закрыт проверкой (t-261007082307-b8be52): CTA уже на live-линке buy.stripe.com/aFa28q8h14RpfPYgrK1B60a, цена live $100/mo (директива m-516173408 соблюдена), seats API paid=1; канон отстаёт (10 мест vs 100 бэкенда) — вопрос Alex; план продаж обновлён 2026-10-08 10:18:31 +03:00
root
c6cd6121da fix(aum): ставка блендед-burn 1000x ошибка порядка (0.000943 → 9.43e-7 у.е./токен) — сверка с фактом дайджеста 25.09–02.10 usageHistory: 2491.47/2.642e9=9.43e-7, кросс-чек по ключу simbiot-harness 9.97e-7; burn 7д теперь ≈17.4 у.е. вместо ≈17048; RATE_FLASH/RATE_FULL тот же порядок (t-261007082307-f3a1d6); тесты 19/19 зелёные 2026-10-08 10:06:55 +03:00
root
ca7ed57727 day 2026-10-07: эскалации закрыты (ретраи openai-клиента), burn-оценка из стора после миграции хоста, merge origin/master 32 коммита (19/19 тестов), AUM=26.7, presale $99.90-vs-$100 на live (Alex уведомлён), туннель самообновляет URL; 3 задачи на доску 2026-10-07 11:23:17 +03:00
root
b3f4fd902d docs(presale): расхождение live $99.90 vs директива $100 (m-516173408) — платник есть, деплой заблокирован отсутствием SSH/Forgejo-каналов на мигрированном хосте; запросы Alex (деплой, токены, путь к 9router-usage) — tg-notify отправлен 2026-10-07 11:22:25 +03:00
root
0308258d99 fix(landing): туннель сам трекает публичный URL — обёртка landing-tunnel-run.sh (systemd) парсит stdout localhost.run и обновляет PUBLIC_URL.txt при каждой смене субдомена; копия обёртки в scripts/ для воспроизводимости; DEPLOY.md: источник правды по URL + ограничение nokey-режима 2026-10-07 11:20:29 +03:00
root
a964329fdb merge origin/master (32 коммита портального инстанса) + burn-fallback в смерженном aum.py
Разрешены конфликты: isolated_runner (тщательный upstream-вариант killpg-wait), cli.py task-диспетчеризация upstream + guard ValueError, aum.py paths-изоляция + STORE_DB fallback.
Тесты после мерджа: 5 устарели к новой реальности — починены по интентам:
- test_aum 9c: hermetic-мок OPENROUTER_KEY (ключ уехал со старого хоста)
- test_router_env_fallback: патчит paths.env_path (runtime больше не читает _HARNESS_DIR)
- test_submit_title_guard: контракт task list = показ доски (exit 0), а не ERROR
- test_tg_commands: доска задач от тестовой ready-задачи (в прод-копии ready пусто)
- test_instance_isolation: SKIP RAG-контура без вендора /root/rag (хост мигрировал)
Итог: 19/19 зелёные
2026-10-07 11:18:05 +03:00
root
42de213c24 fix(e-261006080102,e-261006160049): ретраи openai-клиента SIMBIOT_LLM_MAX_RETRIES=3 (Connection error больше не роняет тик); fix(aum): burn-fallback из BudgetSpent стора когда БД 9router недоступна (миграция хоста) — burn 7д≈11422 у.е. вместо лживого 0.0, burn_src в замере/AumMeasured/aum_target; presale-лендинг: цена 100 USD по директиве m-516173408 (live на cil.by ещё 99.90 — деплой-канал недоступен, см. merge); sites/landing артефакты тика 10-05 2026-10-07 11:05:44 +03:00
Simbiot Harness
665db4343a дайджест hour 16:00: TG-коннектор Claude Code на Лунаре, разведка+задача, гигиена доски 2026-10-05 16:15:06 +00:00
Simbiot Harness
e7bf208bd3 Alipay-ватчер: поллинг capability Stripe до аппрува, автолинк $100 card+alipay (e-261005142309) 2026-10-05 15:05:55 +00:00
Simbiot Harness
c5c3e8fbaa feat: входящие documents/photo на диск при приёме (t-261005135853-186b42) — гейтвей скачивает документ/фото (getFile→download, атомарно через .part) в inbox/files/<file_unique_id>.<ext> (paths.inbox_files_dir, SIMBIOT_INBOX_FILES_DIR), путь+имя+размер+mime в MessageReceived; идемпотентно по file_unique_id, сбой getFile (истёкший файл) не валит поллер — file_id остаётся; фото — максимальный размер; тест 22 PASS + регресс voice/seen/batch зелёный 2026-10-05 14:17:03 +00:00
root
bfe48e2133 feat(landing): Simbiot landing by GLM via opencode (t-261005113818) 2026-10-05 15:07:47 +03:00
root
2a2d68e324 hour digest 11:16 UTC: ASR + TimeoutExpired фиксы, статус активации 2026-10-05 14:25:48 +03:00
root
a1b9b4dfcb фикс ASR (e-261005105252): venv-питон для faster-whisper + av 15.1.0 + докачка модели; фикс TimeoutExpired.pid (e-261005110300): Popen+killpg; systemone-bench влёжен 2026-10-05 14:24:28 +03:00
Simbiot hour
b36bf2869b day 2026-10-05: эскалация e-261004110909 закрыта — git-push канал восстановлен (скоп-баг), деплой-кит лендинга 1 командой (runbook + deploy_landing.sh + landing_verify.sh, e2e), root-cause дрейфа sites/simbiot; AUM 26.7 + честные notes о слепых авто-источниках 2026-10-05 00:26:24 +00:00
Simbiot Harness
20e655e4ec test: служебный текст inbox не порождает задачу-клон (t-261004160532-0fb500) — регресс обоих фиксов (e-261003125707 'list'=доска, e-261004134613 task<ID>=чтение): парсер, CLI-гварды (счёт задач не растёт, несуществующий ID → exit 2), инбокс-уровень ('list'/ID в тексте → команда/речь, без клонов); 4 теста pytest+plain 2026-10-04 17:15:55 +00:00
Simbiot Harness
5ca2bbe96c fix: setMyCommands без HTTP 400 (t-261004160532-690fcb) — имена команд обязаны быть [a-z0-9_] (тело ошибки: BOT_COMMAND_INVALID), регистрируем сразу единственно валидную комбинацию latin-имя + кириллическая подпись; кириллица доступна через алиасы-парсер; live: регистрация (cyrillic) без 400, журнал чист 2026-10-04 17:13:46 +00:00
Simbiot Harness
ef87007472 feat: изоляция памяти ASR-стека (t-261004160531-780666) — ffmpeg и faster-whisper в transient-scope systemd-run --scope c MemoryMax=3G (fallback без systemd), killpg на таймауте; MemoryMax=1G/MemoryHigh=768M на юнит поллера (set-property персистентно + шаблон scripts/simbiot-harness-tg.service); верифицировано: cgroup simbiot-asr-*.scope, реальный whisper через scope 11.5с, тесты 6/6 2026-10-04 17:10:46 +00:00
Simbiot Harness
47352897ce test: видео→текст в voice-пайплайне (t-261004160531-ed25ed) — extract_audio_track на живых ffmpeg-фикстурах (ogg/opus, без дорожки→None), роутинг kind=video ≤60с сразу в large-v3-turbo, >60с через base-лестницу, audio_track_failed, e2e MessageReceived→транскрипт+идемпотентность; 6 тестов pytest+plain 2026-10-04 17:05:06 +00:00
Simbiot hour
0d5dd17709 hour digest 11:10 UTC: аудит improve-ui уже на проде (проверено), найден+исправлен артефакт (showcase-стили в noscript, d5aff30), деплой-канал сломан (ssh нет по политике, git push 403) — эскалация e-261004110909-bd70b0 critical 2026-10-04 16:09:55 +00:00
Simbiot hour
087d47d9c5 landing v2 live: showcase-стили вынесены из noscript в основной <style> (артефакт применения аудита t-261002151425 — с JS секция live-product была без стилей); локальный ориентир синхронизирован с продом 2026-10-04 16:09:55 +00:00
Simbiot Harness
cbacc99b7b voice: звук из TG-видео (t-261004152714) + tools/tui_chat.py в репо (t-261004153216)
- voice.py: kind=video в TRANSCRIBABLE_KINDS; extract_audio_track() — ffmpeg
  вытягивает дорожку (моно 16к opus) из видеоконтейнера; речь ≤60с
  (voice/video_note/video) сразу идёт в faster-whisper-large-v3-turbo
  (base на видео давал кашу). E2E: m-516173698 расшифрован.
- tg_inbox.py: поллер транскрибирует и msg.video, не только voice/audio/video_note.
- tools/tui_chat.py: TUI-чат (t-261004132716) лежал только у Volya (33301d3) —
  в origin его не было, из-за этого терминал не грузился у 6 агентов.
2026-10-04 16:08:52 +00:00
Simbiot Harness
7e19e1b3f6 fix: _default_chat_id не выбирает tui:*-чат личкой Alex
Тестовое TUI-сообщение (t-261004132716, chat_id=tui:local) стало
последним в inbox → notify_chat/send_document целились в несуществующий
Telegram-чат → уведомления тихо SKIP'ались при живом чате. Фильтр
локальных каналов расширен: portal:* И tui:*.
2026-10-04 15:28:00 +00:00
Simbiot Harness
3f2300700c fix(e-261004144805): смерть тика не воскрешает закрытые задачи
Слепой TaskPromoted/TaskFailed по списку claimed возвращал в очередь
задачи, уже закрытые воркером ВНУТРИ тика до таймаута (кейс: полная
миграция Гермеса→Vybirai complete+delivery в 14:31, тик убит 14:48,
задача воскрешена — двойная работа и риск дублей).

_task_still_active(): живая проекция как истина; только running
ре-кьюится/фейлится. Ошибка чтения → прежнее поведение (True).
2026-10-04 15:07:31 +00:00
Simbiot Harness
8fa3fc68b5 fix(e-261004134613): cli.py task <task_id> — чтение по id вместо клона
title, совпадающий с формой t-NNNNNNNNNNNN-XXXX, теперь показывает задачу
(или ERROR exit 2, если не найдена), а не создаёт само-клон. Корень
эскалации: мин-агент звал 'cli.py task t-...' для чтения задачи.
2026-10-04 14:03:13 +00:00
simbiot
b780c9ba9e feat(migration): полный ингест истории Гермеса в стандартную миграцию (--apply, шаг 6.5)
- tools/hermes_history_ingest.py: параметры --hermes-db/--rag-db/--prefix/--cutoff/--sessions-cards; rag.DB перекрывается атрибутом (вендор фиксирует при импорте); cutoff='' = вся история
- scripts/migrate_hermes.py: --history-full по умолчанию ON в --apply (rag_index → ingest), --no-history-full / --history-agent <имя> для префикса
- docs/migration-hermes.md: раздел 6.5
- e2e: полный apply на смоук-базе — +350 чанков / 75 файлов за 24с, history_full.ok=true
2026-10-04 13:12:54 +00:00
root
139fbb1202 hour digest 13:06 UTC: разбор m-973940607 доставлен (fa307ad), эскалация 'list' закрыта с фикс-гардом (bc59609), тесты 15/15 2026-10-04 16:06:42 +03:00
root
fa307ad70c разбор голосового m-973940607: HTML-страница (ландшафт, смыслы, бизнес, шаги, транскрипт) — t-261004125611 2026-10-04 16:06:03 +03:00
root
bc59609d27 guard мусорных заголовков задач: 'list'/id без деталей → ValueError (e-261003094628, повтор e-261001082241); тест 14/14 2026-10-04 16:03:07 +03:00
Simbiot Harness
3dc6ca6ab9 t-261004113351: изоляция памяти инстанса — SIMBIOT_HOME (репо = чистый код)
- harness/paths.py: единая карта персистентных путей; SIMBIOT_HOME → db/ rag/
  env/ docs/ digests/ audit/ inbox/ run/ voice/; без него — legacy-пути без
  изменений; точечные env (SIMBIOT_DB и пр.) сильнее схемы
- es/tg_inbox/voice/portal_channel/aum/audit/runtime/rag_lookup/isolated_
  runner/cli: все записи-чтения памяти через paths
- scripts/init_instance.py: новый инстанс — чистая база + идентичность
  владельца + его доки (+RAG) + селективный импорт выжимок/доков
- tests/test_instance_isolation.py: копия с пустой памятью не вспоминает
  наши проекты (контекст тика/RAG/прод — 14 проверок ALL PASS, регресс 7/7)
- scripts/migrate_to_home.sh: перенос боевого инстанса в хом (тихое окно,
  идемпотентно, RAG-корпус коопа сохраняется точечным SIMBIOT_RAG_DB)
- install.sh/service/README: свежие установки сразу с ~/.simbiot-data
2026-10-04 12:34:45 +00:00
Simbiot Harness
7d995e75da docs: hourly digest 2026-10-04 01:00 UTC (batch 2/2 closed: mascots plan + presale launch-kit, tracking live-verified) 2026-10-04 01:13:27 +00:00
Simbiot Harness
a979061186 docs: presale launch-kit (Show HN/Reddit/X drafts EN, UTM plan, live tracking verification, publish schedule) 2026-10-04 01:10:56 +00:00
Simbiot Harness
81ed2f0e4c docs: AI-mascots product plan (call-87) + presale tracking live-verify log 2026-10-04 01:06:58 +00:00
Simbiot Harness
e52651facb day-консолидация r2: HTML-деливераблы часовых сеансов — вариант лендинга dashboard-темы + материалы звонка №136 с Юлией (proposal/recap) 2026-10-04 00:17:02 +00:00
Simbiot Harness
6eb03e9961 day-консолидация: деливераблы часовых сеансов 03.10 — дайджесты 0600/1400/1600 (image-gen e2e, память Гермеса в RAG, harness-aware repair), доки (график Alex 3-через-3, вопросы синка ReelsUp, варианты image-провайдеров, конвейер истории Гермеса) + tools/hermes_history_ingest.py 2026-10-04 00:16:49 +00:00
Simbiot Harness
f286f1b8ed AUM v1: метрика цели измерима (t-261004000834-ed84f5, day-20731): balances.json + авто-refresh из API (OpenRouter credits, Stripe live; livemode-only), AUM=26.7 (было None), aum --record обновил aum_target для всех тиков; тесты test_aum +4 (mock API, livemode=False→None) — ВСЕ ОК; hour-тик: task list без клонов-задач + tg_inbox env-fallback (e-261003125707); дневной отчёт day-2026-10-04 2026-10-04 00:16:09 +00:00
Simbiot Harness
f1c6aa85af digest: hour-2026-10-03-1500 — Vybirai back to Hermes + switch fixes + кнопка «Вернуть на Hermes» 2026-10-03 15:22:41 +00:00
Simbiot Harness
8b8b750293 hour digest 10:00 UTC (hour-497506): авто-схлопывание failed>24ч в проде, ea2fa5 done, эскалация fd7c10 закрыта, 5 задач requeue'd; migration-hermes.md — слипшаяся строка расцеплена 2026-10-03 10:17:31 +00:00
Simbiot Harness
3b3e3d17e9 scheduler: батч-фаза закрывает ТОЛЬКО ещё-running (пустой _log-стаб убран)
Воркер мог сам решить судьбу задачи: complete (done), requeue (ready),
close в архив (closed). Дайджест тика больше не перезаписывает его решения
TaskCompleted'ом — иначе requeue'd задачи нечестно закрывались бы дайджестом
(поверх проверенного результата «последний-победил»). found при e-261003094432
2026-10-03 10:14:54 +00:00
Simbiot Harness
d8a7c89ef9 auto-collapse stale failed (e-261003094432, просьба Alex): failed>24ч → closed архивом
- es: TaskClosed → статус closed (терминальный, обратимый через requeue; closed_by manual|archive)
- commands: close_task (ручной, только failed, идемпотентен), archive_stale_failed(max_age_hours=24, now=None) — демон-архиватор
- scheduler._delivery_and_orphans_loop: каждый проход (15с) архивирует failed>24ч
- requeue принимает closed → ready (доработка из архива)
- cli: simbiot close <id> [-r reason]
- dashboard: порядок ready→running→failed→done→архив, счётчик «архив» в статусбаре, схема закрытых фейлов под одной строкой-счётчиком (тумблер показывает полностью), pill.closed
- тест tests/test_close_stale_failed.py: 15 проверок (закрытие, порог через симуляцию +25ч, done не трогается, идемпотентность, полный цикл closed→ready→failed→closed)
2026-10-03 10:11:40 +00:00
Simbiot Harness
03d3dffeb8 fix isolated_runner: TimeoutExpired has no .pid (e-261003004801) — Popen start_new_session + killpg(proc.pid), group+children reaped; scheduler None-guard in r2 double-close guard (mocked es in tests); regression test test_timeout_kill 2026-10-03 01:17:34 +00:00
Simbiot Harness
98511453d7 cron-migrate r2 fixes (t-261002222610): scheduler guard против дайджест-перезаписи уже закрытых задач; runner ledger-first (best_completed_answer: projection могла быть перетёрта digest-закрытием); generation-only промпт (легаси-ротацию из промпта убрал — теперь только runner ведёт темы); дата выпуска в details 2026-10-03 01:08:02 +00:00
Simbiot Harness
4bf5ef9d77 day: agent-details (t-261002175316, /api/agent + view-agent, hour-сеанс) + cron-migrate v2 (t-261002222610): d-job runner (inline-промпт+ротация тем, M→hour, quality-gate, ретрай _r1, sha-деливери) + systemd таймеры на Rita; e2e r1 прошёл, r2 в работе 2026-10-03 00:35:03 +00:00
Simbiot Harness
933c55bb35 landing v2: два варианта по Гермес-методу (t-261002155821): hour-сеанс docs/simbiot-landing-v2.html + day-вариант docs/simbiot-landing-v2-live.html (превью жив: https://presale.cil.by/v2.html, оба доставлены в TG) 2026-10-03 00:09:14 +00:00
Simbiot Harness
17d676e66d hour digest 23:10 UTC: батч 6/6 закрыт, дашборд deep-link ?view=chat, лендинг v3 product-showcase, тесты 15 сидов зелёные 2026-10-02 23:07:25 +00:00
Simbiot Harness
f63274469e dash: deep-link ?view=chat (chat открывается по ссылке); landing v3: product-showcase секция с честными скринами живого дашборда/чата (/static/*.png), prod synced 2026-10-02 23:07:11 +00:00