Skip to content

harnsy v0.8.0

Latest

Choose a tag to compare

@butschster butschster released this 30 Sep 21:20
· 1 commit to main since this release

This release is about one thing: nothing waits for you in silence. A badge in the header counts the agents waiting for your answer or permission, a refused action can be allowed with one rule from the dashboard, every open task says who it waits for and since when, and a task you defer comes back on its own. Windows gets a terminal of its own, so agents can be opened there, and upgrading on Windows really stops the old harnsy. Upgrading is one step: run the installer again.

New

  • A «Waiting for you» badge in the header. On every page a badge counts the agents that wait for
    your answer or your permission, with the longest wait. It is hidden at zero, amber, and solid after
    10 minutes. A click opens the list, oldest first: the agent, its team and role, what it waits for and
    for how long. Answer a question or a permission request right there; a refusal opens the agent's tab.
    Only real waits are counted, not tasks or notices.
  • Allow a refused action from the dashboard. On the red «denied» card of a Claude Code agent (Home,
    Agents, and the header list) press «Allow…»: choose how far the rule reaches (this command, the same
    prefix, the whole tool) and where it is kept (this project's .claude/settings.local.json or all
    projects' ~/.claude/settings.json). You see the exact rules and the file change before anything is
    written. harnsy adds them to permissions.allow, touches nothing else, keeps a backup, tells the agent
    «allowed, retry» and closes the card. On a permission prompt, «Allow always» sits next to «Allow once».
    Only you can press it, not an agent.
  • Every open task says what it waits for. Cards on the board, the task dialog and sub-items show
    «waits for … · who · how long»: an agent, the lead, you, a review or something outside. A task you
    block now says whether it waits for you or for something external.
  • Defer a task and get it back. «Defer until…» on a task puts it away until a date («return next week»).
    On that day it returns by itself and its lead is told. A task in review can be snoozed the same way:
    it stays in review but does not wait for you until then. The Tasks board has its own «Deferred» column
    (folded by default, soonest first, each card shows its return date), so deferred cards no longer sit
    in «In review» or «Backlog». «Don't defer» puts a deferred task back where it was.
  • Sleep and Turn off. Two separate actions for an agent and for a whole team. «Sleep» closes the tab
    and keeps the seat, the session and the memory; wake brings it back. «Turn off» closes it and frees the
    seat for good. When harnsy skips an agent it did not open, the message says why, grouped by reason.
  • Agents without a seat do not pile up. Freeing a seat after the successor took over turns the old
    agent off (keep it with «Free the seat», which leaves it running). An agent harnsy opened that has no
    seat and a full context is turned off 30 minutes after its seat was freed (release.turn_off_after).
  • Organizations. A new section: organizations and their projects on the left, the content on the
    right. Rename an organization or a project in place. An organization with no projects can be deleted
    (a red «Delete» with a confirmation that shows what goes with it: its folders, role catalog and goals;
    it cannot be undone, and the node's log records who did it). «Roles» moved here from «System».
  • Terminals on Windows. harnsy has its own terminal for Windows 10 1809 and later (terminal.driver: conpty): agents open in tabs of their own, you read their screen and watch them live in the dashboard,
    and they keep running when harnsy restarts. The Windows installer offers it. No splits or windows, and
    no tray on Windows yet.
  • An installer that does not ask. harnsy install --accept=service,hooks,statusline,tray (or
    --yes) answers yes up front, also without a terminal. Your answers are kept in config.yaml and an
    upgrade does not ask again. If you already have a status line, harnsy can wrap it instead of replacing
    it (Linux and macOS, and on Windows a plain line: a program harnsy can start without a shell); uninstall
    puts yours back.
  • Markdown on the task card. Criteria, results and the history render tables, lists and links. Tables
    written without the |---| row work too.
  • Each project keeps its own board view (columns, filters, sub-items).
  • Tasks › All projects is a summary. Per project and in total: open, in work, waiting for you, stale,
    backlog; created, done and dropped today, in 7 and in 30 days, with a 30-day chart.
  • A scrollable view-only terminal. A locked terminal in the dashboard scrolls its history with the
    wheel, touchpad, a finger or PageUp/PageDown; «Back to live» or End returns. Nothing is typed into the
    agent.

Improved

  • The task history is folded by default into a narrow strip with its event count; a click opens it.
  • Decisions do not get lost. If you accepted or asked for rework on a card and the lead has not
    recorded it, the lead is reminded (after 10 minutes by default, again later, then a row on Home), and a
    successor sees it in whoami. A comment of yours that the lead has not answered is raised the same way
    (30 minutes, then 2 hours on Home). Both are switchable.
  • «Yours now» wakes an idle agent. An assignment, and a new task for a role, now arrive at once even
    with batching on, together with everything queued for that agent.
  • A refusal is never silent. An agent that stopped after Claude Code refused a tool (auto mode or a
    rule) shows the red «waits for you» row until it gets a new prompt, and its lead is told at once.
  • The right context window for Sonnet 5.5. harnsy took sessions started with --model claude-sonnet-5-5 for a 200k window, so 180k looked like 90% and raised false «hand over» notices.
    Sonnet 5 and Opus 5 are now 1M.
  • Smaller fixes to the layout. Long agent names are no longer cut in the first column of Agents, the
    agent's «…» menu reads properly, the role card's sessions block no longer repeats itself, «copy the
    command» shows the current text, and the dashboard's pages fit narrow screens.
  • Codex: the roster shows the agent's name instead of a thread id, and a hung codex queue now
    fails the send after 30 seconds instead of holding it for good.
  • Installing on Windows runs from %LOCALAPPDATA%\harnsy, never the temp folder, and INSTALL.md says
    what to do if Windows Defender removes the file.

Fixed

  • Windows: Microsoft Defender no longer blocks harnsy.exe. Earlier packs were flagged as
    Trojan:Win32/Gracing.I, a false positive caused by how the binary was built. This release is built
    as a plain Go program, which Defender lets through.
  • Windows upgrades stop harnsy. The scheduled task now ends serve with its wrapper, so the
    installer replaces a running harnsy.exe. Without a terminal it prints the exact command and says
    whether you answered no or there was no terminal to ask. Agents keep running.
    A busy harnsy.exe no longer leaves the node down: the installer sets the running file aside and puts
    the new one in place first, and only then stops the node; if that fails, nothing is stopped. Agents
    keep running when the terminal host runs outside harnsy's task; otherwise the installer says so.
  • Project folder on Windows: the field in Roles accepts c:\Users\… paths, and a path that lost a
    backslash is refused instead of opened in the wrong place.
  • Windows: answers of install --accept are kept in config.yaml (every kind except service,
    which is asked on each run).
  • A Claude Code window started by hand inside another Claude Code session inherited its variables and
    was invisible to harnsy. INSTALL.md (Windows) says which to clear; agents harnsy opens now drop them.
  • Text is no longer lost on Windows. When an agent put JSON in a curl argument, Git Bash's curl
    re-encoded it and Cyrillic in task notes became «?». The node now refuses a body that is not UTF-8
    with 400 bad_utf8 instead of saving damaged text, and the agent guide sends text through stdin.
  • Project setup: a draft sent to goals, catalog or roster is refused (no_drafts) instead of being
    lost, and an agent's invitation over the team's headcount is refused unless forced.
  • A lead can read the screen of an agent tab of its own team (it could not before).
  • Allow for a refusal of auto mode in the header list now writes the rule instead of only closing
    the window.

Upgrading

  • Run the install command below again. The database updates itself on first start. The installer
    restarts the running node on the new build (it asks first at a terminal).

Install

Limits of harnsy

  • 1 project, at most 10 agents running at once, one machine (no nodes or cluster mode).

Русский

В этом релизе одна мысль: ничто не ждёт вас молча. Значок в шапке считает агентов, которые ждут вашего ответа или разрешения; отказанное действие можно разрешить правилом прямо из дашборда; каждая открытая задача говорит, кого она ждёт и с какого времени; отложенная задача сама возвращается в срок. У Windows появился свой терминал, агентов там можно открывать, а обновление на Windows действительно останавливает старый harnsy. Обновиться просто: запустите установщик ещё раз.

Новое

  • Значок «Ждут вас» в шапке. На каждой странице значок считает агентов, которые ждут вашего ответа
    или разрешения, и показывает самое долгое ожидание. При нуле он скрыт, потом янтарный, с 10 минут
    сплошной. Клик открывает список, самые давние сверху: агент, его команда и должность, чего он ждёт и
    сколько. Вопрос и запрос разрешения можно закрыть тут же; отказ открывает вкладку агента. Считаются
    только настоящие ожидания, без задач и уведомлений.
  • Разрешить отказанное действие из дашборда. На красной карточке «отказано» у агента Claude Code
    (Главная, Агенты, список в шапке) нажмите «Разрешить…»: выберите охват правила (эта команда, тот же
    префикс, весь инструмент) и где его хранить (.claude/settings.local.json проекта или
    ~/.claude/settings.json для всех проектов). До записи видны точные правила и изменение файла.
    harnsy добавляет их в permissions.allow, больше ничего не трогает, делает копию, говорит агенту
    «разрешено, повторите» и закрывает карточку. У запроса разрешения рядом с «Разрешить один раз» есть
    «Разрешать всегда». Нажать может только человек, не агент.
  • Каждая открытая задача говорит, чего ждёт. На карточках доски, в окне задачи и в подзадачах видно
    «ждёт … · кого · сколько»: агента, лида, вас, проверку или что-то внешнее. Заблокированная вами задача
    теперь указывает, ждёт она вас или внешнего.
  • Отложить задачу и получить её обратно. «Отложить до…» убирает задачу до даты («вернуть через
    неделю»). В этот день она возвращается сама, а её лид получает сообщение. Задачу на проверке можно
    отложить так же: она остаётся на проверке, но до срока вас не ждёт. На доске задач есть отдельная
    колонка «Отложено» (свёрнута по умолчанию, ближайшие сверху, на каждой карточке дата возврата), поэтому
    отложенное больше не лежит в «На проверке» и «Бэклоге». «Не откладывать» возвращает задачу туда, откуда её
    отложили.
  • «Усыпить» и «Выключить». Два разных действия для агента и для всей команды. «Усыпить» закрывает
    вкладку, а место, сессия и память остаются; «Разбудить» возвращает. «Выключить» закрывает и насовсем
    освобождает место. Если harnsy пропустил агента, которого не открывал, сообщение говорит почему, по
    причинам.
  • Агенты без должности не копятся. Освобождение места после того, как преемник принял дела,
    выключает прежнего агента (чтобы оставить, жмите «Освободить место»: агент продолжает работать).
    Агент, открытый harnsy, без места и с заполненным контекстом выключается через 30 минут после
    освобождения места (release.turn_off_after).
  • Организации. Новый раздел: организации и проекты слева, содержимое справа. Организацию и проект
    можно переименовать на месте. Организацию без проектов можно удалить (красная кнопка «Удалить» с
    подтверждением, где видно, что уйдёт вместе с ней: папки, каталог должностей и цели; отменить нельзя,
    кто удалил, записывается в журнал узла). «Должности» перенесены сюда из «Системы».
  • Терминалы на Windows. У harnsy есть собственный терминал для Windows 10 1809 и новее
    (terminal.driver: conpty): агенты открываются каждый в своей вкладке, их экран читается и виден вживую
    в дашборде, а при перезапуске harnsy они продолжают работать. Установщик для Windows предлагает его.
    Без сплитов и окон; трея на Windows пока нет.
  • Установщик, который не спрашивает. harnsy install --accept=service,hooks,statusline,tray (или
    --yes) отвечает «да» заранее, в том числе без терминала. Ваши ответы сохраняются в config.yaml, при
    обновлении вопросов нет. Если у вас уже есть строка состояния, harnsy может обернуть её, а не
    заменить (Linux и macOS, а на Windows обычную строку: программу, которую harnsy запускает без shell); при
    удалении ваша возвращается.
  • Markdown на карточке задачи. Критерии, результат и история показывают таблицы, списки и ссылки.
    Таблицы без строки |---| тоже работают.
  • У каждого проекта свой вид доски (колонки, фильтры, подзадачи).
  • Задачи › Все проекты — сводка. По проектам и в сумме: открыто, в работе, ждут вас, зависшие,
    бэклог; создано, сделано и отброшено за сегодня, 7 и 30 дней, с графиком за 30 дней.
  • Терминал только для просмотра прокручивается. Залоченный терминал в дашборде листает историю
    колесом, тачпадом, пальцем или PageUp/PageDown; «К живому» или End возвращает. В агента
    ничего не вводится.

Улучшено

  • История задачи по умолчанию свёрнута в узкую полосу с числом событий; клик раскрывает.
  • Решения не теряются. Если вы приняли задачу или вернули на доработку, а лид не записал, ему
    напомнят (по умолчанию через 10 минут, потом ещё раз, затем строка на Главной), а преемник увидит это
    в whoami. Ваш комментарий, на который лид не ответил, поднимается так же (30 минут, затем 2 часа
    на Главной). Оба напоминания отключаются.
  • «Задача теперь ваша» будит простаивающего агента. Назначение и новая задача для должности теперь
    приходят сразу, даже при включённой пакетной доставке, вместе со всем накопленным для этого агента.
  • Отказ не остаётся незамеченным. Агент, остановившийся после отказа Claude Code (авто-режим или
    правило), показывает красную строку «ждёт вас», пока не получит новый запрос, а его лид узнаёт сразу.
  • Верное окно контекста для Sonnet 5.5. harnsy считал сессии, запущенные с --model claude-sonnet-5-5, окном в 200k, и 180k выглядели как 90% и давали ложные «пора передавать дела».
    Теперь у Sonnet 5 и Opus 5 окно 1M.
  • Мелкие правки вёрстки. Длинные имена агентов больше не обрезаются в первой колонке «Агентов»,
    меню «…» агента читается нормально, блок сессий в карточке должности не повторяется, «копировать
    команду» показывает актуальный текст, страницы дашборда помещаются на узких экранах.
  • Codex: в списке должностей видно имя агента вместо id треда, а зависший codex queue теперь
    обрывает отправку через 30 секунд, а не держит её навсегда.
  • Установка на Windows идёт из %LOCALAPPDATA%\harnsy, а не из временной папки; в INSTALL.md
    сказано, что делать, если Windows Defender удалил файл.

Исправлено

  • Windows: Microsoft Defender больше не блокирует harnsy.exe. Прежние пакеты определялись как
    Trojan:Win32/Gracing.I: ложное срабатывание из-за способа сборки. Этот релиз собран как обычная
    программа на Go, которую Defender пропускает.
  • Обновление на Windows останавливает harnsy. Задача планировщика теперь завершает serve вместе с
    обёрткой, и установщик заменяет работающий harnsy.exe. Без терминала он печатает точную команду и
    говорит, вы ответили «нет» или спросить было негде. Агенты продолжают работать.
    Занятый harnsy.exe больше не оставляет узел лежать: установщик сначала откладывает в сторону
    работающий файл и кладёт на его место новый, и только потом останавливает узел; если не вышло,
    ничего не останавливается. Агенты продолжают работать, когда хост терминалов запущен вне задачи
    harnsy; иначе установщик так и скажет.
  • Папка проекта на Windows: поле в «Должностях» принимает пути вида c:\Users\…, а путь, потерявший
    обратную косую, отклоняется, а не открывается не там.
  • Windows: ответы install --accept сохраняются в config.yaml (все виды, кроме service, о
    котором спрашивают при каждом запуске).
  • Окно Claude Code, запущенное вручную внутри другой сессии Claude Code, наследовало её переменные и
    было не видно harnsy. В INSTALL.md (Windows) сказано, какие очистить; агенты, которых открывает harnsy,
    теперь их сбрасывают.
  • Текст не теряется на Windows. Когда агент клал JSON в аргумент curl, curl из Git Bash
    перекодировал его, и кириллица в заметках задач превращалась в «?». Теперь узел отклоняет тело не в
    UTF-8 с ответом 400 bad_utf8, а не сохраняет испорченный текст, а руководство для агентов передаёт
    текст через stdin.
  • Настройка проекта: черновик, присланный в цели, каталог или список должностей, отклоняется
    (no_drafts), а не теряется; приглашение агента сверх числа мест в команде отклоняется без force.
  • Лид может читать экран вкладки агента своей команды (раньше не мог).
  • «Разрешить» для отказа авто-режима в списке шапки теперь записывает правило, а не просто закрывает
    окно.

Обновление

  • Запустите команду установки ниже ещё раз. База обновится сама при первом запуске. Установщик
    перезапустит работающий узел на новой сборке (в терминале сначала спросит).

Установка

Ограничения harnsy

  • 1 проект, не больше 10 агентов одновременно, одна машина (без узлов и кластера).