Skip to content

Releases: nyxandro/osinara

Osinara v0.16.6

Choose a tag to compare

@github-actions github-actions released this 24 Aug 15:29
Immutable release. Only release title and notes can be modified.
4c8722a

Osinara v0.16.6

Patch-релиз ограничивает ожидание пользовательского подтверждения, после которого Eve держала
turn припаркованным бессрочно.

Confirmation Window

  • Неотвеченные tool-approval и question отменяются через пять минут; tool не исполняется.
  • Причина уходит в session context, поэтому агент предупреждает пользователя, что подтверждение
    не получено и действие не отработало, и продолжает работу.
  • Повторный запрос того же подтверждения агент не делает, пока пользователь не попросит явно.
  • Framework session-limit и OAuth-авторизация в окно не входят; строки без доказанного типа
    запроса fail-closed и не отменяются никогда.

Почему это понадобилось

Approvals не имели срока жизни, а sessionNeedsRotation безусловно ветовал ротацию, пока
pending_operation истинно. Один неотвеченный запрос от 21 августа заморозил личный чат владельца
почти на трое суток: каждый следующий turn парковался с неразрешённым input batch, ответа не было,
при этом группы работали в своих сессиях. Ручное восстановление уже применялось в v0.16.3 и v0.16.4,
но механизма самовосстановления не появилось.

Границы

  • Ответ Eve несёт заново провалидированный Telegram auth: Eve заменяет auth сессии доставленным,
    и фиктивный принципал лишил бы возобновлённый turn прикладного контекста.
  • Отмена берёт строку под lease и требует, чтобы сессия всё ещё владела припаркованным Eve run.
  • Терминальное состояние пишется только после того, как Eve приняла отмену.
  • Погашенное по таймауту подтверждение не является доказательством исполнения tool.
  • Sweep живёт за приватным роутом, недоступным с edge и защищённым внутренним токеном.

Проверка

  • Unit- и integration-контракты на окно, lease, гонку с нажатием кнопки, исключение session-limit
    и fail-closed для строк без типа.
  • TypeScript typecheck, полный Vitest suite и Docker Compose gate с реальной PostgreSQL.

Osinara v0.16.5

Choose a tag to compare

@github-actions github-actions released this 21 Aug 17:20
Immutable release. Only release title and notes can be modified.
99f4c1c

Osinara v0.16.5

Patch-релиз закрывает внешний Telegram-контур от зависающих child-agent turns и технических
запросов на продление model budget.

External Input Boundary

  • Synthetic Eve session-limit во внешней группе завершается fail-closed до session parking,
    approval persistence и Telegram delivery.
  • Участник внешней группы больше не может выдавать зависшему turn новый token budget.
  • Проверяется и request kind, и synthetic tool name, поэтому неверно классифицированный framework
    prompt не обходит запрет.

External Delegation

  • Нативный root-only agent удаляется из runtime external mode по точному Eve fingerprint и
    заменяется same-name denial tool.
  • Модель внешней группы больше не получает delegation-инструкцию и не может запускать child session.
  • Authored tools и declared subagent lookalikes не затрагиваются; trusted private/family delegation
    сохраняется.
  • Для оставшихся trusted turns действует общий circuit breaker в 32 model steps.

Проверка

  • Unit contracts проверяют отсутствие Telegram, parking, route и approval side effects для
    external session-limit.
  • Runtime patch contract исполняет установленную Eve-функцию и проверяет external, private, family,
    review и lookalike cases.
  • Tool-surface и prompt contracts проверяют полный запрет external child delegation.

Osinara v0.16.4

Choose a tag to compare

@github-actions github-actions released this 21 Aug 14:19
Immutable release. Only release title and notes can be modified.
3a69c56

Osinara v0.16.4

Patch-релиз останавливает один agent turn до того, как повторяющиеся model calls превращаются в
неограниченный цикл и блокируют durable Telegram ingress.

Model Step Safety

  • Один turn ограничен 32 model calls: разрешены zero-based steps с 0 по 31.
  • На следующем step Eve получает валидную fail-closed AI SDK model, которая завершает оба пути
    вызова стабильной ошибкой AGENT_TURN_MODEL_STEP_LIMIT_EXCEEDED без обращения к provider.
  • Blocking model исключает небезопасное поведение Eve 0.32.0, при котором ошибка dynamic resolver
    логируется, а выполнение продолжается через fallback model.
  • Некорректные step coordinates или конфигурация лимита также блокируют model call с кодом
    AGENT_TURN_MODEL_STEP_STATE_INVALID.

Production Recovery

  • Зависший ingress update терминально закрыт без повторного model call, а canonical session
    ротирована после подтверждённого неоднозначного side-effect boundary.
  • Telegram backlog полностью обработан после controlled restart; pending и processing updates
    отсутствуют.
  • Экземпляр sandbox зависшего Eve run удалён после проверки labels и отсутствия полезных процессов.

Проверка

  • Добавлены unit contracts для точной границы, обоих AI SDK call paths и fail-closed invalid state.
  • GitHub Actions Docker Compose test suite и автоматическое code review прошли успешно.

Osinara v0.16.3

Choose a tag to compare

@github-actions github-actions released this 20 Aug 08:34
Immutable release. Only release title and notes can be modified.
57d5844

Osinara v0.16.3

Patch-релиз ограничивает размер durable Eve-сессий до того, как filesystem workflow journal
перестаёт укладываться в жёсткий replay deadline.

Session Rotation

  • Canonical session теперь ротируется после 50 завершённых turns вместо 250.
  • Pending HITL и OAuth операции по-прежнему закреплены за исходной session до terminal boundary.
  • Порог выбран с запасом по production incident: journal с 118 turns, 1195 workflow events и
    239 steps превысил максимальную длительность replay Eve в 240 секунд.
  • Добавлен regression test для точной границы: 49 turns сохраняют session, 50 turns создают новую
    generation.

Production Recovery

  • Зависший ingress update терминально закрыт без автоматического повтора после подтверждённого
    REPLAY_TIMEOUT.
  • Повреждённая canonical session ротирована с сохранением старого durable journal.
  • После controlled restart очередь полностью обработана, новый Telegram turn получил ответ через
    свежую Eve session, а agent вернулся к нормальной загрузке.

Проверка

  • Targeted session rotation policy test.
  • TypeScript typecheck и полный Vitest suite.

Osinara v0.16.2

Choose a tag to compare

@github-actions github-actions released this 20 Aug 02:27
Immutable release. Only release title and notes can be modified.
8cccd8b

Osinara v0.16.2

Patch-релиз синхронизирует изменённый model bearer key между root deployment process и candidate
Docker Compose после one-time Codex bridge.

Model Environment

  • После атомарной замены MODEL_API_KEY в /opt/osinara/.env bridge также обновляет exported
    MODEL_API_KEY текущего systemd process.
  • Quoted dotenv token безопасно преобразуется в runtime value без eval; неподдерживаемый синтаксис
    по-прежнему отклоняется до миграции.
  • Это закрывает приоритет shell environment над docker compose --env-file: candidate agent больше
    не получает прежний NeuralDeep key при первом запуске после Codex cutover.
  • Добавлены regression tests для update и explicit initial deployment с заранее экспортированным
    устаревшим model key.

Production Recovery

  • v0.16.0 успешно прошёл backup, migration, CLIProxy upstream smoke и promotion.
  • Первый agent container получил старый process-level key и вернул MODEL_CALL_FAILED; данные и
    OAuth не пострадали.
  • Agent был пересоздан из promoted release с чистым env-file. Internal /v1/models и реальный
    gpt-5.6-luna completion после восстановления вернули 200.

Проверка

  • Production bridge tests для quoted/unquoted dotenv и process environment precedence.
  • Полный controller source-order test и bash -n.
  • TypeScript typecheck и полный Vitest suite.

Osinara v0.16.1

Choose a tag to compare

@github-actions github-actions released this 20 Aug 01:55
Immutable release. Only release title and notes can be modified.
ecedcb0

Osinara v0.16.1

Patch-релиз исправляет загрузку root-owned production controller перед миграцией на Codex.
Application runtime, модель gpt-5.6-luna, OAuth volume и Compose graph не меняются относительно
v0.16.0.

Production Controller

  • Release downloader и one-time bridge больше не объявляют один readonly asset constant под
    одинаковым именем при последовательном source модулей.
  • Добавлен regression test, который загружает common, database, release, bridge и backup
    в точном production-порядке и отклоняет любые глобальные collisions.
  • Ошибка v0.16.0 происходила до claim approved proposal, остановки сервисов, миграции и изменения
    данных. Текущая production версия оставалась healthy, а предложение сохранило статус approved.

Проверка

  • bash -n для entrypoint и всех deployment modules.
  • Runtime source-order test для полного controller module set.
  • Полный Vitest suite: 246 файлов passed, 82 skipped; 1603 теста passed, 277 skipped.
  • TypeScript typecheck.

Osinara v0.16.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 01:16
Immutable release. Only release title and notes can be modified.
f0b65ac

Osinara v0.16.0

Релиз переводит production agent с текущего NeuralDeep qwen3.8-27b transport на подписочный OpenAI Codex через
изолированный CLIProxyAPI, исправляет доставку scheduled Telegram turns и обновляет production
controller для безопасной миграции OAuth-состояния.

GPT-5.6 Luna

  • Основной и vision route используют gpt-5.6-luna через OpenAI Chat Completions.
  • Reasoning зафиксирован на medium; запрос отправляет явный reasoning_effort.
  • Контекст установлен в 372 000 токенов, максимальный ответ ограничен 128 000 токенов.
  • Модель поддерживает text, image input и application tools без отдельного неявного vision fallback.
  • Schema разрешает plain HTTP только для точного Docker DNS endpoint
    http://cli-proxy-api:8317/v1; любые другие HTTP model endpoints отклоняются.

Codex OAuth Gateway

  • CLIProxyAPI обновлён с v7.2.73 до v7.2.137 и закреплён точным image digest.
  • OpenCode OAuth преобразуется в нативный Codex auth record без повторного входа; agent не получает
    access token, refresh token или account ID.
  • OAuth хранится в именованном volume osinara-production-cli-proxy-auth; обновлённые CLIProxy
    токены переживают container replacement и входят в последующие pre-deploy backups.
  • Gateway запускается только при наличии полного writable credential с правами 0600.
  • Management API, control panel, plugins, request retries, cooldown scheduling и file logging
    отключены. Клиентский доступ защищён отдельным внутренним bearer key.
  • Agent зависит от здорового CLIProxy service; gateway health проверяет авторизованный /v1/models.

Production Cutover

  • Добавлен одноразовый bridge только для перехода с точной v0.15.14 на v0.16.0.
  • Controller проверяет attested Codex model config, root-owned OAuth seed, точный hash текущего
    NeuralDeep config, обязательные model/proxy assignments и сохранённый DeepSeek rollback credential
    до изменения runtime state.
  • OAuth volume создаётся backup preflight как candidate-only и удаляется при безопасном
    pre-migration failure.
  • Root-controller --initial 0.16.0 создаёт отсутствующий OAuth volume отдельно, фиксирует его root
    как 10001:10001 0700 и использует тот же проверенный seed; standalone installer остаётся на
    direct-provider Compose без CLIProxy.
  • После остановки writers и проверенного snapshot controller отмечает irreversible migration,
    заполняет пустой volume, атомарно меняет model config и связывает MODEL_API_KEY с существующим
    CLI_PROXY_API_KEY.
  • Root seed удаляется только после успешного gateway, agent и edge health check.
  • До promotion controller выполняет один bounded upstream completion на gpt-5.6-luna с
    reasoning_effort=medium; локального /v1/models недостаточно для подтверждения OAuth.
  • Legacy MiniMax compatibility config и MODEL_UPSTREAM_API_KEY удалены.

Scheduled Telegram Delivery

  • Plain Telegram sender принимает первый proactive delivery receipt даже когда Eve ещё не успела
    заполнить channel.state.chatType.
  • Receipt сохраняет подтверждённые chatType и messageId, а последующая boundary-проверка сверяет
    фактическую Telegram delivery target с scheduled target.
  • При ошибке доставки сохраняется исходный stable code; secondary confirmation error больше не
    маскирует первопричину.
  • Добавлены regression tests для отсутствующего initial chat type, target mismatch и failure code.

Проверка

  • Реальный локальный OAuth smoke подтвердил импорт текущей OpenCode-сессии, наличие
    gpt-5.6-luna в /v1/models и успешный Chat Completions ответ с reasoning_effort=medium.
  • Добавлены tests для OAuth entrypoint, internal transport schema, reasoning payload, persistent
    volume, root controller allowlist и одноразового v0.16.0 bridge.
  • Production-equivalent Docker Compose gate включает migrations, typecheck, полный Vitest suite и
    eve build.

Osinara v0.15.14

Choose a tag to compare

@github-actions github-actions released this 19 Aug 12:29
Immutable release. Only release title and notes can be modified.
b6f9ca4

Osinara v0.15.14

Patch-релиз восстанавливает надёжную запись памяти после Telegram HITL и в публичных группах,
добавляет единый контракт исправления tool errors и закрывает неоднозначные повторы внешних
side effects. Также уточнены Google Workspace, файловые и skill-контракты.

Память и Telegram HITL

  • После подтверждения Telegram HITL восстанавливается точный verified actor текущего callback:
    telegramActorId и telegramActorKind больше не теряются при resume.
  • Resume памяти разрешён только при совпадении application session, Eve session, turn и actor с
    сохранённым source set; чужой, устаревший или несвязанный callback отклоняется до записи.
  • Scheduled turns больше не получают remember и не могут создавать память без текущего
    пользовательского сообщения-источника.
  • remember принимает строго проверенный JSON-сериализованный subject, который NeuralDeep может
    вернуть вместо вложенного объекта. Невалидный JSON, лишние поля, неизвестный subject type и
    неподтверждённые refs по-прежнему отклоняются.
  • Model-facing schema и описание remember теперь явно объясняют basis, scope, subject,
    sourceSequence и атомарные thread create/attach операции.

Исправление ошибок инструментов

  • Все mode-scoped application tools используют единый model-facing error contract с полями
    code, category, reason, correction, retryable и sideEffectStatus.
  • Исправляемые input/not-found ошибки указывают безопасный следующий вызов; authorization и
    неоднозначные side effects запрещают автоматический повтор.
  • Неожиданные внутренние ошибки преобразуются в безопасную диагностику без утечки transport,
    filesystem, token и stack-trace деталей в модельный контекст.
  • Descriptors всех private, family, external, scheduled, subagent и memory-review surfaces теперь
    описывают назначение, вход, результат и правила восстановления после ошибки в общем ограниченном
    prompt budget.
  • Добавлен opt-in model eval для трёх траекторий: исправление input, read-проверка после ambiguous
    mutation и корректная обработка Google Workspace policy rejection.

Google Workspace

  • Gmail resource и method передаются отдельными argv элементами; schema discovery использует
    top-level форму schema gmail.<resource>.<method>.
  • Reviewed allowlist различает read и mutation команды и объясняет ошибку синтаксиса без ложного
    вывода о read-only OAuth-профиле.
  • Пустые, слишком длинные и содержащие NUL аргументы отклоняются до запуска runner.
  • Access token удаляется из stderr и diagnostics; пустой token считается ошибкой авторизации и не
    передаётся в runner.
  • Timeout, cancellation и transport failure учитывают тип команды: read можно ограниченно
    повторить, mutation получает sideEffectStatus=unknown и не повторяется вслепую.
  • Trusted GWS skills синхронизированы с реальным allowlist для Gmail mutations, route-specific
    flags и запрета runtime-генерации отсутствующих skill packages.

Файлы, вложения и локальные сервисы

  • Transport failure при скачивании Telegram attachment возвращает безопасную структурированную
    ошибку и не запускает скрытый повтор.
  • Повреждённый или неполный Telegram send response классифицируется как ambiguous delivery, чтобы
    модель не отправила файл повторно после возможного успешного side effect.
  • После подтверждённой отправки сбой локальной persistence или group-journal projection логируется,
    но результат сохраняет delivered=true, sideEffectStatus=completed и retryable=false.
  • Ошибки vision provider и локального E5 embedding service больше не раскрывают сетевые детали и
    дают явную инструкцию не повторять вызов автоматически.
  • DOCX, PDF и XLSX skills используют абсолютные materialized skill paths; исправлены регистр
    supporting-файлов PDF и отсутствующий Node.js import в DOCX quick start.

Scheduled turns и T-Invest

  • Scheduled Telegram auth содержит verified actor identity, но scheduled surfaces остаются без
    memory и behavior mutations, для которых нужен живой источник текущего сообщения.
  • Любая T-Invest торговая операция в sandbox и full требует preview и явный --confirm для
    конкретной заявки. stonksMode больше не отменяет эту границу Osinara.
  • Full mode дополнительно сохраняет deployment trading gate; order replace и stop-order требуют
    заранее выбранный idempotency key.

Проверка

  • Production-equivalent Docker Compose gate: 325 test files, 1862 tests, migrations, typecheck и
    eve build.
  • Отдельно проверены AI SDK validation точного production payload remember, все mode-scoped tool
    surfaces, Google Workspace recovery, Telegram delivery ambiguity и skill package integrity.
  • Изменений схемы PostgreSQL и production Compose graph в релизе нет.

Osinara v0.15.13

Choose a tag to compare

@github-actions github-actions released this 17 Aug 11:48
Immutable release. Only release title and notes can be modified.
caa1068

Osinara v0.15.13

Patch-релиз включает документированную session-sticky маршрутизацию NeuralDeep для повторного
использования upstream KV-cache в многошаговых и многораундовых диалогах.

NeuralDeep session cache

  • Каждый model step NeuralDeep передаёт непрозрачный Eve session ID в OpenAI-compatible поле
    user, которое NeuralDeep использует для закрепления сессии за одним upstream.
  • Все шаги одного turn и последующие turns текущей Eve-сессии используют одинаковый routing key;
    штатная session rotation автоматически создаёт новый ключ.
  • Telegram user ID, chat ID, family ID и другие прикладные идентификаторы провайдеру в этом поле не
    передаются.
  • Для DeepSeek, MiniMax, OpenCode Go и OpenRouter provider options не изменились.
  • Sticky routing повышает вероятность повторного использования KV-cache, но не превращает его в
    durable cache: NeuralDeep не публикует TTL и не гарантирует cache hit.

Eve build contract

  • Основной direct model выбирается через Eve step.started, поскольку только step-scoped resolver
    может безопасно вернуть live AI SDK model вместе с session-specific provider options.
  • Post-build validator принимает числовые bundler-алиасы defineDynamic, сохраняя строгую проверку
    единственного step.started tool resolver и запрет replay-prone scopes.

Проверка

  • Production-equivalent Docker Compose gate: 320 test files, 1778 tests, typecheck и eve build.
  • Transport contract подтверждает, что providerOptions.neuraldeep.user отправляется корневым полем
    user в JSON запроса /v1/chat/completions.

Osinara v0.15.12

Choose a tag to compare

@github-actions github-actions released this 17 Aug 10:10
Immutable release. Only release title and notes can be modified.
6d9f511

Osinara v0.15.12

Patch-релиз добавляет verified Telegram channel senders, закрывает публикацию технических ошибок в
общих чатах и подключает NeuralDeep как третий прямой model provider.

Telegram channel senders

  • Channel_Bot и sender_chat классифицируются отдельно от Telegram user identity.
  • Channel sender получает отдельную service identity и не может подтверждать HITL, выполнять
    owner-only операции или наследовать пользовательские tools и skills.
  • Timeline сохраняет channel attribution, а memory provenance привязана к точному вызывающему actor.
  • Migration 075 добавляет actor-bound source identity и обновляет persisted memory contracts.

Private failure notifications

  • Terminal turn.failed и session.failed отправляются только в Telegram private chats.
  • Группы, supergroups, channels и неизвестный chat type не получают служебных сообщений об ошибках.
  • Текстовые HITL refusals не публикуются в общих чатах; приватный callback alert сохраняется.
  • Failed state, session rotation, scheduled-run terminalization, logs и HITL cleanup выполняются как
    прежде.

NeuralDeep

  • Добавлен строгий OpenAI-compatible endpoint https://api.neuraldeep.ru/v1.
  • Модель qwen3.8-27b проверена на text, vision, tool call и continuation после tool result.
  • Используется нативный reasoning модели без неподтверждённого reasoning_effort; вариант
    qwen3.8-27b-noreason не выбирается для основного agent loop.
  • Переключение provider остаётся атомарным: preflight, restart, health verification и rollback
    используют существующий production model-config controller.

Проверка

  • Production-equivalent Docker Compose gate: 318 test files, 1773 tests, typecheck и eve build.
  • Live NeuralDeep smoke: catalog, text, vision и двухшаговый tool-call flow.