simbiot-harness/harness
Simbiot Harness 2f4e3d22a7 feat(scheduler): батч-обработка задач в тике — пачка ready-задач в бюджете контекста (t-260930101325-010ba3)
Причина: find_task возвращал ОДНУ ready-задачу за такт — при 5+ ready
очередь росла быстрее исполнения (1 задача/такт).

Теперь:
- select_task_batch: ВСЕ ready-задачи класса уровня, старейшая первой;
- кап пачки MAX_TASK_BATCH (min=3, hour=6, day=6; env SIMBIOT_BATCH_MAX_<LEVEL>);
- бюджет контекста: секция задач <= ctx_tokens*3*0.5 символов,
  мандат/выжимки/эскалации/инбокс остаются в тике; старейшая берётся всегда;
- run_level_tick: claim всего батча ДО воркера; TaskCompleted/TaskFailed
  ПО каждой отдельно (смерть воркера не теряет батч в running);
- build_context: секция 'ТЕКУЩАЯ РАБОТА — БАТЧ из N' с постановками,
  инструкция закрывать каждую задачу cli.py complete <id> -a;
- CLI complete: закрытие running-задачи с результатом
  (commands.complete_task_with_delivery — доставка в TG идемпотентна).

Тесты: tests/test_task_batch.py — 28 проверок (ALL PASS), набор 8/8 зелёный.
2026-09-30 14:13:30 +00:00
..
__init__.py Simbiot Harness v0.1: тактовая лестница на Strands + CQRS/ES-спина 2026-09-29 15:28:50 +00:00
_fw_asr_worker.py feat(voice): транскрипция голосовых TG в рантайме — полный путь file_id→download→ASR→MessageTranscribed (t-260929171234-cad7af) 2026-09-30 00:02:30 +00:00
_llm_worker.py feat(gate): гейт важности LLM-тика по per-level порогу + model в событиях 2026-09-30 08:29:54 +00:00
commands.py fix(delivery): идемпотентная автодоставка артефактов в TG — три атомарных барьера против дублей (t-260930083937) 2026-09-30 13:41:34 +00:00
dashboard.html feat(dashboard): детали задачи по клику — метаданные, промоушены, отчёт закрытия, JS-раскрытие строки (t-260929220004-033c0f) 2026-09-30 06:42:08 +00:00
dashboard.py feat(dashboard): детали задачи по клику — метаданные, промоушены, отчёт закрытия, JS-раскрытие строки (t-260929220004-033c0f) 2026-09-30 06:42:08 +00:00
es.py fix(delivery): идемпотентная автодоставка артефактов в TG — три атомарных барьера против дублей (t-260930083937) 2026-09-30 13:41:34 +00:00
events.db feat(tg-cmd): без-LLM команды бота /лестница /статус /задачи /помощь — мгновенные ответы сек-рефлексом + setMyCommands (t-260929210755-9bf6a6) 2026-09-30 02:30:27 +00:00
isolated_runner.py fix(spend): BudgetSpent пишется воркером инкрементально + живой usage из 9router (t-260929170544-adebea) 2026-09-29 20:20:15 +00:00
levels.py fix(delivery): идемпотентная автодоставка артефактов в TG — три атомарных барьера против дублей (t-260930083937) 2026-09-30 13:41:34 +00:00
proactive.py feat(proactive): инициативные реплики харнеса в чат — ритм/анти-спам/банк тем AUM (t-260930073419) 2026-09-30 11:15:49 +00:00
rag_lookup.py feat(rag)+fix(timeout): RAG-инструмент в тиках + хард-кап шагов воркера 2026-09-30 04:16:46 +00:00
runtime.py feat(gate): гейт важности LLM-тика по per-level порогу + model в событиях 2026-09-30 08:29:54 +00:00
scheduler.py feat(scheduler): батч-обработка задач в тике — пачка ready-задач в бюджете контекста (t-260930101325-010ba3) 2026-09-30 14:13:30 +00:00
tg_commands.py feat(tg-cmd): без-LLM команды бота /лестница /статус /задачи /помощь — мгновенные ответы сек-рефлексом + setMyCommands (t-260929210755-9bf6a6) 2026-09-30 02:30:27 +00:00
tg_inbox.db feat(tg-cmd): без-LLM команды бота /лестница /статус /задачи /помощь — мгновенные ответы сек-рефлексом + setMyCommands (t-260929210755-9bf6a6) 2026-09-30 02:30:27 +00:00
tg_inbox.py fix(delivery): идемпотентная автодоставка артефактов в TG — три атомарных барьера против дублей (t-260930083937) 2026-09-30 13:41:34 +00:00
voice.py feat(voice): транскрипция голосовых TG в рантайме — полный путь file_id→download→ASR→MessageTranscribed (t-260929171234-cad7af) 2026-09-30 00:02:30 +00:00