Commit Graph

  • 4301589429 Revert "feat(opencode): рабочий serve для dev стартует из папки репозитория; пул покрывает внешним сервером подкаталоги" main ki.sagidullin 2026-08-24 23:37:28 +05:00
  • 75132bc5f5 fix(analyst): steps устойчив к строке — не роняет decide при string-steps (аналог repos) ki.sagidullin 2026-08-24 22:42:42 +05:00
  • 2005421739 feat(opencode): рабочий serve для dev стартует из папки репозитория; пул покрывает внешним сервером подкаталоги ki.sagidullin 2026-08-24 19:36:38 +05:00
  • 6c0b903794 feat(analyst): этапы задачи — аналитик раскладывает на steps с критериями готовности, dev идёт по ним feat/1b4529256001b256 ki.sagidullin 2026-08-24 18:05:06 +05:00
  • 6546f18348 fix(worker): постмортем получает транскрипт сессий dev/reviewer по session_id ki.sagidullin 2026-08-24 16:48:43 +05:00
  • 89d571b483 Sort session messages link by desc (newest first) feat/5a3f04abb9181fe8 ki.sagidullin 2026-08-24 15:48:52 +05:00
  • ed13386612 fix(core): /retry чистит postmortem-трассы — на новом прогоне постмортем запускается заново ki.sagidullin 2026-08-24 14:56:39 +05:00
  • 9cb174a5d3 fix(agents): постмортем-агент — отключены файловые/системные тулы (bash/read/edit/grep/glob/list), чтобы не уходил в timeout; тест: agents/ вместо agent/ ki.sagidullin 2026-08-24 13:32:45 +05:00
  • 5b43da4564 feat(opencode): в лог при создании сессии — ссылка на сообщения (order=asc) ki.sagidullin 2026-08-24 12:14:19 +05:00
  • 46be641967 fix(agents): запрещаем question всем агентам — конвейер не должен зависать на интерактиве ki.sagidullin 2026-08-24 12:00:14 +05:00
  • 6fae81bac6 feat(agents): tools в frontmatter аналитика, dev и ревьюера ki.sagidullin 2026-08-24 11:32:00 +05:00
  • 8545315f49 fix(analyst): repos как строка или массив — устойчивый парсинг вердикта ki.sagidullin 2026-08-24 11:16:12 +05:00
  • 6586285992 feat(agents): permissions в frontmatter аналитика, dev и ревьюера ki.sagidullin 2026-08-24 10:41:53 +05:00
  • 94521488b6 feat(agents): человекочитаемые вердикты аналитика, ревьюера, dev и постмортема в панель «Логи» ki.sagidullin 2026-08-24 10:33:45 +05:00
  • c9ab753c1e fix(opencode): x-opencode-directory, Content-Length, warmup /api/model; serve без явного Env ki.sagidullin 2026-08-24 08:38:59 +05:00
  • 88b455203f fix(opencode): serve передаёт OPENCODE_CONFIG — детерминированный выбор модели ki.sagidullin 2026-08-23 20:27:24 +05:00
  • 3c51ffee4e refactor(config): удалена опция opencode.config (OPENCODE_CONFIG) ki.sagidullin 2026-08-23 18:18:25 +05:00
  • 8c91c83024 fix(opencode): агенты — в <worktree>/.opencode/agent, OPENCODE_CONFIG_DIR больше не выставляем ki.sagidullin 2026-08-23 17:54:35 +05:00
  • d731a7429d feat(config): отключаемый Telegram-канал (telegram.enabled) ki.sagidullin 2026-08-23 17:36:05 +05:00
  • 4c0dc80aa8 fix(opencode): выбор модели — только глобальный конфиг opencode; агент передаётся в сессию ki.sagidullin 2026-08-23 17:22:36 +05:00
  • 0ad53e338d Merge pull request 'feat/b9d901435d3248cd' (#14) from feat/b9d901435d3248cd into main Teraonious 2026-08-23 14:49:18 +05:00
  • 8cf4fc9f7c fix(opencode): reasoning-fallback в вердикте + API-логи в debug-уровень feat/b9d901435d3248cd ki.sagidullin 2026-08-23 14:43:05 +05:00
  • 963e7b478e feat(worker): постмортем-анализ после failed/timeout ki.sagidullin 2026-08-23 09:52:13 +05:00
  • cd0619926e perf(chat,update): пул воркеров per-user вместо сериальной очереди + HEAD-проба обновлений ki.sagidullin 2026-08-22 11:44:34 +05:00
  • 2854697415 chore(opencode): не логировать тела API-запросов/ответов, только метаданные ki.sagidullin 2026-08-22 10:15:30 +05:00
  • ef812bb3d7 feat(ui): кнопка «Перезапустить» — полный аналог /retry N feat/213d506fe05a8608 ki.sagidullin 2026-08-22 00:19:39 +05:00
  • 23bae9a68f Merge pull request 'perf(ui): инкрементальный рендер ленты логов (дельта вместо полного пересбора)' (#13) from feat/213d506fe05a8608 into main Teraonious 2026-08-22 00:10:58 +05:00
  • 70287140ec perf(ui): инкрементальный рендер ленты логов (дельта вместо полного пересбора) ki.sagidullin 2026-08-21 23:59:59 +05:00
  • d9d043ec8e feat(scripts): GCC_PATH из .gitea-creds для gcc в build-publish-ui.ps1 ki.sagidullin 2026-08-21 23:12:20 +05:00
  • b87092aa98 Merge pull request 'feat(ui): filtr urovney logov + cap bufera 10MB' (#12) from feat/710a3625da1aa989 into main kamelion 2026-08-21 23:04:08 +05:00
  • ee47785e1a perf(ui): кап буфера логов 10MB, O(1) вытеснение, дебаунс рендера feat/710a3625da1aa989 ki.sagidullin 2026-08-21 23:01:54 +05:00
  • a762a1df80 feat(ui): фильтр уровней логов в панели «Логи» ki.sagidullin 2026-08-21 21:35:37 +05:00
  • ee76f9d89f fix(ui): поле ввода композитора в центр (не за край окна) ki.sagidullin 2026-08-21 20:41:28 +05:00
  • 37cc29e4cd feat(ui): нативный максимум окна через Win32 (над панелью задач) ki.sagidullin 2026-08-21 20:14:43 +05:00
  • 180afb1336 chore(serena): актуализировать память cgo-winlibs-gcc (PATH не гарантирован) ki.sagidullin 2026-08-21 18:51:33 +05:00
  • 0c88272bf0 Merge pull request 'feat(ui): каждая вкладка chat — независимая LLM-сессия' (#11) from feat/ui_llm_chat into main Teraonious 2026-08-21 18:44:27 +05:00
  • 9420b276e9 feat(ui): каждая вкладка chat — независимая LLM-сессия feat/ui_llm_chat ki.sagidullin 2026-08-21 10:33:05 +05:00
  • de21ec9f31 Merge pull request 'feat/project_utils' (#10) from feat/project_utils into main Teraonious 2026-08-21 00:10:21 +05:00
  • 5c82229a00 chore(serena): обновить память проекта (onboarding) feat/project_utils ki.sagidullin 2026-08-21 00:08:45 +05:00
  • 612446d65b chore(scripts): add build-publish-ui.ps1 ki.sagidullin 2026-08-21 00:05:54 +05:00
  • 307a2b4173 Merge pull request 'feat/ui-refactor' (#9) from feat/ui-refactor into main Teraonious 2026-08-21 00:00:18 +05:00
  • 8ba1a8aa00 refactor(ui): вынести панель «Состояние» (StatePanel) из монолита окна feat/ui-refactor ki.sagidullin 2026-08-20 23:54:27 +05:00
  • 5c93642cf8 refactor(ui): вынести панель «Диалог» (ChatPanel) из монолита окна ki.sagidullin 2026-08-20 23:48:54 +05:00
  • 4c44956d3e refactor(ui): вынести панель «Детали задачи» (TaskDetailPanel) из монолита окна ki.sagidullin 2026-08-20 23:43:52 +05:00
  • 6274aad369 refactor(ui): вынести панель «Список задач» (TaskListPanel) из монолита окна ki.sagidullin 2026-08-20 23:31:08 +05:00
  • fdd73cab61 refactor(ui): вынести панель «Логи» (LogPanel) из монолита окна ki.sagidullin 2026-08-20 23:26:18 +05:00
  • 0b76734652 fix(scripts): сборка UI через массив аргументов + UTF-8 BOM feat/new_ui ki.sagidullin 2026-08-20 17:59:05 +05:00
  • 5e7fb58049 fix(ci): headless в CI, UI-бинарь собирается локально ki.sagidullin 2026-08-20 17:51:25 +05:00
  • 60a6966a95 Merge pull request 'feat/new_ui' (#8) from feat/new_ui into main Teraonious 2026-08-20 14:50:07 +05:00
  • c2272137b3 feat(ui): команды, snapshots, Fyne-окно и интеграция (--noui) ki.sagidullin 2026-08-20 08:54:55 +05:00
  • baf2ad7147 feat(ui): контроллер — подписчик шин и мост к Fyne-представлению ki.sagidullin 2026-08-20 08:15:42 +05:00
  • 66e40d384e feat(events): типизированный Hub — подписчик шины с диспетчеризацией ki.sagidullin 2026-08-20 07:17:57 +05:00
  • 4957a5552e feat(events): внедрить Publisher в Core/Worker/Analyst + шины в app ki.sagidullin 2026-08-20 04:30:29 +05:00
  • 1f7ab9a67e feat(events): EventBus + domain-модель статусов ki.sagidullin 2026-08-20 01:02:31 +05:00
  • 408d137747 Merge pull request 'fix(opencode): считать реальный прогресс стрима для idle-детекции' (#7) from feat/3c8528d into main Teraonious 2026-08-19 19:12:56 +05:00
  • be4d749c45 fix(opencode): считать реальный прогресс стрима для idle-детекции feat/3c8528d ki.sagidullin 2026-08-19 19:11:26 +05:00
  • 0b31e18d85 Merge pull request 'test: починить тесты на Windows' (#6) from feat/3c8528d into main Teraonious 2026-08-19 10:50:23 +05:00
  • b5fb583c90 test: починить тесты на Windows ki.sagidullin 2026-08-19 10:47:55 +05:00
  • 3c8528dbd9 Merge pull request 'feat(opencode): переход на v2 HTTP API opencode (хардпин модели, поллинг вердикта)' (#5) from feat/ad025c1 into main Teraonious 2026-08-19 08:55:16 +05:00
  • 9f64be4ea5 feat(opencode): переход на v2 HTTP API opencode (хардпин модели, поллинг вердикта) feat/ad025c1 ki.sagidullin 2026-08-19 08:29:11 +05:00
  • ad025c1668 Merge pull request 'refactor: чистка мёртвого кода, лимит ходов D3, HTML-экранирование и UTF-8 обрезка в Telegram' (#4) from feat/83bf5b6fbb8b238c into main Teraonious 2026-08-18 23:14:50 +05:00
  • 1459670ce9 refactor: чистка мёртвого кода, лимит ходов D3, HTML-экранирование и UTF-8 обрезка в Telegram feat/83bf5b6fbb8b238c ki.sagidullin 2026-08-18 23:13:04 +05:00
  • 7eb3a0292c fix(opencode): убрать смешение слоёв API — перейти целиком на experimental (/session) Hermes 2026-08-18 20:49:34 +05:00
  • a64e3d6cc3 feat(chat): асинхронная обработка входящих — отзывчивый интерфейс Hermes 2026-08-18 19:55:46 +05:00
  • 774ebf135a fix(opencode): отправка сообщения — путь без /api (POST /session/:id/message) Hermes 2026-08-18 19:28:45 +05:00
  • e1167c9537 feat(opencode): v1.18 — перейти с POST /session/:id/prompt на /session/:id/message Hermes 2026-08-18 18:58:23 +05:00
  • ad9c2dd522 feat(config): уровень логирования log.level (info|debug), по умолчанию info Hermes 2026-08-18 18:44:37 +05:00
  • f77a6000c7 build: bump version to 0.2.1 Hermes 2026-08-18 18:32:04 +05:00
  • ae00556923 feat(debug): логировать все API-вызовы к opencode serve с содержимым Hermes 2026-08-18 18:23:56 +05:00
  • baf7179085 fix: windows-сборка — заглушка setpgid/killGroup для отсутствия POSIX process-group Hermes 2026-08-18 13:45:05 +05:00
  • 733e63339a feat: opencode через HTTP API — пул serve-серверов вместо spawn/NDJSON Hermes 2026-08-18 13:36:54 +05:00
  • b60978121d chore: bump version to 0.2.0 Hermes 2026-08-18 08:59:42 +05:00
  • 2f26b6ae88 feat: opencode serve — постоянный сервер вместо разовых subprocess (вариант A) Hermes 2026-08-18 08:35:09 +05:00
  • ed11879cbd Merge pull request 'feat: авто-уведомления о статусах и хендоффах задачи' (#3) from feat/48f52f8bf4354293 into main kamelion 2026-08-17 23:54:45 +05:00
  • 631387fda7 fix: CI — тесты падали на сборке пакета app и на старом переходе Hermes 2026-08-17 23:50:29 +05:00
  • 07bae203c3 feat: авто-уведомления о статусах и хендоффах задачи feat/48f52f8bf4354293 ki.sagidullin 2026-08-17 23:32:26 +05:00
  • 18b48bfdc4 Merge pull request 'chore: onboard Serena — add .serena with project memories' (#2) from feat/2efdd0d048b719a5 into main kamelion 2026-08-17 23:22:59 +05:00
  • 7c7afa6875 chore: onboard Serena — add .serena with project memories feat/2efdd0d048b719a5 ki.sagidullin 2026-08-17 22:48:53 +05:00
  • 43266ea04f feat: воркер берёт задачи только после одобрения (approved) Hermes 2026-08-17 19:03:42 +05:00
  • f12ff04966 test: E2E перезапуск задачи /retry из различных состояний Hermes 2026-08-17 18:24:19 +05:00
  • a8a2de12c3 Merge pull request 'feat/200acbbe17dab7c1' (#1) from feat/200acbbe17dab7c1 into main kamelion 2026-08-17 16:05:54 +05:00
  • 1b24468abc feat(main): log version line at startup feat/200acbbe17dab7c1 ki.sagidullin 2026-08-17 15:58:22 +05:00
  • d41c0d172f feat(app): add semantic Version constant 0.1.0 ki.sagidullin 2026-08-17 15:58:14 +05:00
  • bdd9b41e56 fix: git push не поддерживает --config → глобальная опция -c перед подкомандой Hermes 2026-08-17 15:46:35 +05:00
  • bb9f0bdc43 fix: ревьюер не извлекал вердикт из NDJSON-потока → всегда двойной запуск и failed Hermes 2026-08-17 14:54:55 +05:00
  • 262c3a0c1c fix: убрать вложенные бэктики в шаблоне prompt.go — ломали компиляцию Hermes 2026-08-17 14:19:27 +05:00
  • 46065f84fd feat: фаза ready — черновик готов как есть, без требований к изменённым полям Hermes 2026-08-17 14:07:05 +05:00
  • 168b0042c7 fix: открыть буфер bufio.Scanner до 64МБ — NDJSON-строка с text-партом вердикта >64КБ роняла сканер (ErrTooLong), терялся весь поток после первого события (step_start); добавить диаг. лог lines/bytes/scanerr Hermes 2026-08-17 11:53:24 +05:00
  • e9f7017571 debug: логировать хвост вердикта аналитика и извлечённый JSON (диагностика A3 phase="") Hermes 2026-08-17 11:36:49 +05:00
  • 9c5f38698c fix: idle-таймер сбрасывается по live-стриму LLM + дефолт 5м; агенты opencode в agents/ с mode: primary Hermes 2026-08-17 10:57:19 +05:00
  • da775ac227 feat: наблюдение за живой opencode-сессией (/status N показывает что делает агент) Hermes 2026-08-17 08:05:15 +05:00
  • 2255917949 fix: перезапуск задачи начинается с чистого worktree (reset+clean перед checkout -B) Hermes 2026-08-17 00:05:00 +05:00
  • a3c6b5f153 fix: разрешить timeout/failed → collecting (перезапуск сбора через /start и /retry) Hermes 2026-08-16 23:45:05 +05:00
  • 80c1097a72 log: логировать каждый переход статуса задачи (task N: status "from" → "to") Hermes 2026-08-16 23:33:13 +05:00
  • 76ec7d21f1 fix: блокировать ввод в running-задачу (S3: нельзя running→collecting); разрешены /cancel и /status N Hermes 2026-08-16 23:21:30 +05:00
  • c8cd425b29 fix: генерить task_tag (UUID) при создании задачи; защита feat/' при пустом tag Hermes 2026-08-16 23:07:30 +05:00
  • 35d9a74ef1 fix: разрешить формат owner/repo в имени репозитория (E3 был слишком строг, слэш ≠ эскейп) Hermes 2026-08-16 23:00:56 +05:00
  • 4044c0866f fix: создавать каталог worktree при старте app (decider запускается до воркера) Hermes 2026-08-16 22:13:36 +05:00
  • e055d1937c fix: создавать каталог worktree в prepareRepos (decider: не могу сменить папку на ./worktrees) Hermes 2026-08-16 22:04:16 +05:00
  • f0794300b5 docs: подробная инструкция по сборке и автообновлению из Gitea Packages Hermes 2026-08-16 21:43:06 +05:00