Simbiot Harness
9d13e59742
адресация в группах: Коди больше не встревает в чужие разговоры
...
Кейс «Правления»: бот отвечал на каждое сообщение группы — «Доброе
утро!», реплики Alex для Vlad, ответы Vlad на вопросы Alex: фильтра не
было, любое сообщение разрешённого человека будило минутный LLM.
harness/addressing.py — триаж ДО гейта, без LLM:
- личка/портал/агенты — как раньше;
- группа, детерминированно: @juno42bot, reply на бота, имя (Коди/Cody,
SIMBIOT_BOT_NAMES) → боту; reply на человека → не боту;
- серая зона — decision-модель, choice «кому адресовано»: бот / человек /
группа; P(бот) ≥ 0.5 (SIMBIOT_ADDRESSING_MIN_P). В истории — только
ответы бота на адресованное: «встревания» сбивали модель. Замер на
истории правления: адресованное 0.93, остальные 14 ≤ 0.22 (noul с
полной историей давал 4 ошибки). Модель недоступна → молчим.
Вердикт: MessageTriaged{addressed} (+ 👀 только тогда) или
MessageIgnored{not_addressed}. Поллер пишет reply_to_user_id/is_bot и
mentions_bot; 👀 в группах ставит триаж, а не приём.
Тест: test_addressing 25 PASS; полный набор — без регрессий.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 07:04:56 +00:00
Simbiot Harness
2b266caab5
сжатие стора с подписью + «сначала ответ, потом работа» на мин-уровне
...
harness/compact.py + cli.py compact [--dry-run|--vacuum|--verify-archives]:
шум сек-уровня (CycleTicked sec, ReflexObserved без алерта/команд/каналов)
старше часа → архив jsonl.gz (0600, строки целиком со sig) → мост цепочки
(подписи унесённых строк, на которые ссылаются остающиеся, + маркеры
boundary:<id> для legacy-границ) → подписанный StoreCompacted с sha256
архива/строк/моста → удаление пачками. audit.verify_events принимает мост
только при совпадении хеша с подписанным событием; проекции подгружают
мост лениво, если хвост перекрыл сжатый диапазон (rebuild с нуля).
Репетиция на копии прода: 1389 → 200 МБ, verify 484 с/3.4 ГБ → 29 с/420 МБ,
архив 246 МБ — все 2.47 млн подписей проверены; rebuild_projections OK.
Найдено репетицией: legacy-граница (id 466633) и коллизия id сжатия в
одну секунду — оба покрыты тестом. scripts/compact-store.sh — процедура
с VACUUM под остановленными писателями.
мин-уровень: если до ответа нужна работа >30 с — сначала короткий
tg-reply, итог — cli.py tg-reply <id> --followup (в чат входящего:
группа → группа; идемпотентно по тексту). p90 «старт LLM → ответ» был 223 с.
hour: лимит 300 вызовов оставлен — реальный пик 205 (p90 169), 100
оборвал бы 8 из 19 тиков.
Тесты: test_compact 25 PASS, test_followup 10 PASS; полный набор — без регрессий.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:10:26 +00:00
Simbiot Harness
b257c32558
аудит @juno42bot 2026-10-16: медиа без подписи в триаже, мин-тик по входящему, тишина сек-уровня, изоляция тестов
...
- фото/документ/видео без подписи выпадали из триажа (_pending_inbox и
build_context пускали только текст/голос): висели до 23 ч, все 4
неотвеченных за неделю — такие. Один фильтр _is_pending, медиа с тегом
и путём файла; окно свежести SIMBIOT_MEDIA_PENDING_H=6 — старые не
будят LLM задним числом; стикер без текста — не повод.
- MinNudge: мин-тик через 3 с тишины после MessageReceived/Transcribed, не
ждём границы минуты (было: медиана 36 с до старта LLM, p90 93 с при
24 с самой модели). Слот следующего такта, граница его пропускает;
SIMBIOT_MIN_NUDGE=0 — выключить.
- сек-уровень: CycleTicked+ReflexObserved каждую секунду = 1.35 млн
подписанных событий/нед (98% стора 1.37 ГБ). Теперь heartbeat раз в
60 с + такты с событием (алерт, команды, каналы); «reflex ok» не
спамит журнал.
- 6 тестов писали в боевой стор под SIMBIOT_HOME тика (TTFTWatchdogRetry
с бюджетом 0.5 с в проде — это они): изоляция SIMBIOT_DB.
Тест: tests/test_tick_latency_noise.py 20 PASS; полный набор — без регрессий.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:32:15 +00:00
Simbiot Harness
88bb2c0a95
decision-модель в тиках: Ollama Cloud clef:27b → локальная nimble (systemone-bench)
...
harness/decision.py — клиент /v1/systemone по схеме router42 бенча:
механика — быстрый путь, decision-модель — арбитр, недоступна → фолбэк.
- порядок батча задач: из 9 старейших первой — самая ценная для AUM (on);
- тема инициативной реплики: выбор вместо round-robin (on);
- серая зона гейта (только warn/info): P(нужен LLM) < 0.35 → тихий такт (shadow);
- cli.py decide: статус бэкендов, вопрос 2–9 вариантов / P(да), --stats.
Бэкенды: облако clef:27b (~0.7 с, SIMBIOT_DECISION_API_KEY) → nimble на
CPU (10–30 с); предохранитель на бэкенд, кеш детерминированных ответов,
DecisionMade (backend/model/ms/applied) — policy trace для GA-сшивки.
Дефолт SIMBIOT_DECISION=off — старые тесты герметичны.
Тест: tests/test_decision.py 34 PASS (фейковый эндпоинт); полный набор — без регрессий.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:21:29 +00:00
Simbiot Harness
c7b7996faf
digest: hour 2026-10-16 17:00 — MCP-токены: показ на деталях агента + тул agent_token_issue + свой токен у mon (батч 2/2)
2026-10-16 17:11:51 +00:00
Simbiot Harness
6a8d1c832a
digest: hour 2026-10-16 16:00 — Mon на своём сервере, фиксы claude-панелей (батч 4/4)
2026-10-16 16:11:39 +00:00
Simbiot Harness
b2391c2b5b
set-tg-bot: 3 попытки getMe timeout=15 + backoff 3/6с (t-261016141220)
2026-10-16 14:19:22 +00:00
Simbiot Harness
0f7d63722c
digest: hour 2026-10-16 13:00 — bypass-развертка claude code, gennady закрыта
2026-10-16 13:04:54 +00:00
Simbiot Harness
b9755187cf
deploy-claude-code: bypass permissions + root по умолчанию (t-261016120111)
2026-10-16 13:04:02 +00:00
Simbiot Harness
ecc9765996
member_create в описаниях тула портала (t-261016064519): describe_tools + промпты min/hour
2026-10-16 07:15:46 +00:00
Simbiot Harness
fc8d848bc5
hour-2026-10-15-2300: дайджест часа — тихий час (0 неотвеченных), фикс памяти контекста e-261015222515 ( 0daf101), эскалаций 0, burn 7д 193.68→238.62
2026-10-15 23:03:34 +00:00
Simbiot Harness
0daf10135c
e-261015222515: память разговора в контексте тика — секция НЕДАВНИЙ РАЗГОВОР (отвеченные реплики + наш ответ тех же чатов, cap 12) рядом с батчем неотвеченных; мин-уровень больше не теряет нить после ReplySent; тест +6 PASS
2026-10-15 23:02:41 +00:00
Simbiot Harness
2432b6f012
t-261015090129: отложенный рестарт лестницы (ждёт конца LLM-воркера) — демон подхватит рефлекс agent-channel
2026-10-15 10:30:05 +00:00
Simbiot Harness
9fa188bccb
t-261015090129: канал агент↔агент через MCP — poll_messages (портал: очередь agent_message + курсор per-agent) → инбокс триажа (chat_id=portal:agent:<имя>, kind=agent_message), ответ ask_agent из send_reply/send_batch_reply; рефлекс демона раз в минуту; тест 24 PASS + регрессии чисто
2026-10-15 10:11:11 +00:00
Simbiot Harness
acedc438f1
t-261015083454: отчёт аудита меты событий — карта полей по 30 типам, пробелы (ToolCalled/ToolResult 68k без trace_id/level/ts; TaskCompleted без level), внедрённое ( f3ab66e) и план на 6 следующих шагов
2026-10-15 09:08:20 +00:00
Simbiot Harness
f3ab66e19e
t-261015083454: мета-информация в событиях — trace_id+level+ts в каждом trace-событии (ToolCalled/ToolResult 68k были без связи с тиком), duration_ms/ok/exception в ToolResult, имя инструмента вместо '?', level+trace_id в TaskCompleted/TaskFailed; смоук + 5 тестов PASS
2026-10-15 09:07:32 +00:00
Simbiot Harness
f667ab6d2c
t-261015000631: атомарный клейм задач (claim_task_if_ready) — гонка двойного claim hour/day закрыта на уровне стора
2026-10-15 01:15:44 +00:00
simbiot
91a7815938
аудит burn 9router 7д (t-261014152017): топ-потребители + рекомендации −10% burn
2026-10-14 18:05:02 +00:00
Simbiot Harness
acfdf3e5b9
e-261014163808-4da3ec: TTFT-watchdog+ретрай висящего апстрим-вызова в LLM-воркере — зависание до первого токена больше не роняет весь тик (2 павших hour-тика 13:08/16:11, batch TaskFailed); тест test_ttft_retry 7 PASS
2026-10-14 17:08:27 +00:00
Simbiot Harness
744edd537e
iishnitsa: правки описаний спикеров (Simbiot/avatar.cil.by/vybirai.cil.by), варианты анонса v2-v4 + session-лендинг; аватары через Kie AI (t-261013153213, t-261013153320)
2026-10-13 16:18:20 +00:00
Simbiot Harness
a4b5b62c28
landing: публичный URL landing.cil.by (статика через Caddy), туннель localhost.run выпилен (e-261013154449)
2026-10-13 16:04:20 +00:00
Simbiot Harness
fa815cd55b
footer: ссылки на проекты simbiot/avatar/vybirai.cil.by (по просьбе Alex)
2026-10-13 15:21:52 +00:00
simbiot-hour
d850d4828a
t-261013131228: резолв цели реплая без текста — reply_to_desc из инбокса (chat_id, reply_to_message_id); build_context показывает содержимое документа вместо «reply на сообщение без текста»; тест 8 PASS (документ/текст/вне инбокса/контекст)
2026-10-13 13:15:44 +00:00
Simbiot Harness
5b1d30a0ff
t-261013113629: маршрутизация ответов TG в чат-источник — chat_type/chat_title в MessageReceived, дефолтный чат уведомлений = личка Alex (chat_id>0 фолбэк для старых записей); тест 11 PASS (группа→группа, личка→личка, смешанный батч, дефолт)
2026-10-13 11:44:43 +00:00
Simbiot Harness
5a889e42a4
merge origin/master (hour digests, systemone-bench skill) + конфликт skills/README.md разрешён объединением строк
2026-10-12 09:11:25 +00:00
Simbiot Harness
ebaa677c69
t-261012090606: порог load-алертов по умолчанию 0.75*nproc (16 ядер → 12.0), policy cpu_alert_threshold переопределяет; фикс 230 ложных алертов/час
2026-10-12 09:09:52 +00:00
Simbiot Harness
e6f09ac08a
hour 11:00 26-10-11: редизайн лендинга cil.by от Alex (m-516174040) задеплоен в прод, бэкап прежней версии
2026-10-11 11:18:29 +00:00
Simbiot Harness
dfa3b2d8a8
t-261010093054: MCP портала кооператива как стандартный тул харнеса — portal_mcp (booking_slots/booking_create, реестры, казна, лента), guardrail на деньги-тулы, 4 вызова/тик, трейс PortalMcpCalled, cli mcp-call, тест 18 PASS
2026-10-10 10:19:09 +00:00
Simbiot Harness
57a0f97318
t-261010092931: typing «печатает…» весь тик LLM — без привязки к pending-инбоксу; чаты из всего TG-инбокса, фолбэк на чат харнеса; тест: всё seen/пустой инбокс/только портал/чат неизвестен (25 PASS)
2026-10-10 10:05:14 +00:00
root
7f445392ee
hour digest 18:26 UTC: session_productize дубль №6 — корень дублей починен (гонка core42.json 18% битых чтений → ложное НЕЗНАКОМО; фикс a1114a2, 0/300 после), backup.service восстановлен после 21ч простоя, эскалаций 0, очередь пуста
2026-10-09 21:26:44 +03:00
root
b14559a706
session_productize: 6-й тик — product_create всё ещё 500 (карточка id 13 жива), КОРЕНЬ дублей починен: гонка core42.json -> ложное НЕЗНАКОМО -> анти-спам пропускал дубли (фикс в systemone-bench a1114a2: атомарная запись + retry чтения; после фикса 'знакомо', 0/300 гонка-падений)
2026-10-09 21:18:17 +03:00
Simbiot Harness
58cc3785c6
t-261009160906: анти-гонка уровней min/hour на входящих TG — привязка артефакта к сообщению (-m), guard в deliver_artifact, reply_artifact в read model, тест гонки (8 PASS) + концепт ИИШНИЦЫ
2026-10-09 16:16:09 +00:00
root
aa781359f1
hour digest 2026-10-09 15:05: systemone-insight done (t-261009141729), очередь пуста
2026-10-09 18:04:51 +03:00
root
48c497329e
hour digest 13:05 UTC: батч 2/2 — шаблон гипотез + рыночная симуляция (E[dAUM]: вход +24..94k vs −1.5k), эскалаций 0, очередь пуста
2026-10-09 16:12:55 +03:00
root
54beef9dd7
market simulation: logit конкуренция + сегменты + сценарии входа, MC 400 trials, E[dAUM] по сценариям + чувствительность (t-261009123019-a32bb3)
2026-10-09 16:12:04 +03:00
root
f8985ca596
product hypothesis template v1: конкуренты/цена/профиль клиента/сегменты+каналы (t-261009122125-45922c)
2026-10-09 16:03:14 +03:00
root
c82b412632
hour digest 12:05 UTC: session_productize дубль №5 закрыт по cooldown (500 жив, карточка id 13 new), витрина без изменений, эскалаций 0, очередь пуста
2026-10-09 15:05:34 +03:00
root
0c885470fb
session_productize: 5-й тик — product_create всё ещё 500, карточка id 13 жива (t-261009110039)
2026-10-09 15:04:20 +03:00
root
d7f34967b9
session_productize: 4-й тик — product_create всё ещё 500, карточка id 13 жива (t-261009045856)
2026-10-09 08:03:38 +03:00
root
fcadbc9890
hour digest 23:05 UTC: session_productize дубль №3 закрыт по cooldown (500 жив, витрина замерена), эскалаций 0, очередь пуста
2026-10-09 02:06:22 +03:00
root
962b6a0dc8
session_productize: третий дубль-тик (t-261008225713) — product_create всё ещё 500 (проба 23:0x), голос карточки id 13 восстановлен (votes=1), витрина кооператива замерена для price_ladder_audit, ранбук актуализирован
2026-10-09 02:05:54 +03:00
Simbiot Harness
37fe77f923
ui.cil.by компакт-лендинг (m-516173960/62): черновик out/, деплой static/index-compact.html; прод / = компакт, прежний на /index-full.html; форма на живую /api/apply; фикс crash-loop simbiot-ui (порт 8905 держал сирота)
2026-10-08 18:07:36 +00:00
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