nessie

Отдалечени изпълнители

Дайте на агент истински компютър за работа – с Linux, macOS или Windows.

Какво е отдалечен изпълнител

Агентът в Nessie няма компютър. Той може да чете какво има в Nessie, да разговаря с хора и да извиква свързани инструменти през мрежата, но не може да отвори файл на лаптоп, да изпълни команда или да види страница, която съществува само зад нечий вход в профил. Отдалеченият изпълнител е начинът да дадете на агента машина, с която да работи.

Изпълнителят е малка фонова програма (демон), която инсталирате на компютър, който контролирате. Той се сдвоява навън с вашата инстанция на Nessie, доказва коя машина е с ключ, който никога не напуска устройството, и след това предлага фиксиран, поименуван набор от операции — нищо друго. Работата пристига като отделни подписани команди; резултатите се връщат като ограничени, структурирани разписки. Машината никога не приема входяща връзка от Nessie.

Важно е да уточним какво не е изпълнителят, защото повечето инструменти за отдалечен достъп са точно от тези неща, а изпълнителят умишлено не е нито едно от тях. Няма SSH, няма общ отдалечен shell, няма прикачване към терминален мултиплексор, който вече имате отворен, няма стандартен вход от облака и няма общ прокси за локалната мрежа. Той не е MCP сървър и не е контейнер или облачна среда за изпълнение — Nessie вече разполага с такива и те са нещо различно. Изпълнителят е крайна точка с възможности и затворен списък от операции, а този списък е целият му обхват.

На кого принадлежи изпълнителят

Всеки изпълнител се създава с точно един обхват, който не може да се променя впоследствие. Обхватът определя кой може да го извиква и кой може да го администрира.

ОбхватКой може да го извикваКой управлява достъпа
ЛиченЛицето, което прави заявката, и точно извиканият агент трябва и двамата да са посочени като определени изпълнители. Нито един от тях сам не е достатъчен.Определен човек администратор. Агентите могат да използват личен изпълнител, но никога да го администрират.
ПроектЛице с право върху точно този проект — и то само от изпълнение в този проект.Мениджър на организацията, или собственик или администратор на проекта.
ОрганизацияЛице с право в организацията.Мениджър на организацията.

Личният изпълнител винаги трябва да има поне един активен администратор, който е човек. Премахването на последния директно се проваля; ако процес по напускане на служител би оставил изпълнителя без администратор, той спира да приема нова работа, довършва това, което има, и се отнема от самия себе си. Собственик на организация има аварийен път, който може само да отнема: той прекратява изпълнител, който иначе не управлява, без да му показва списъка на личните му участници, сесиите или съдържанието. Личният достъп никога не се прехвърля тихомълком на друг човек.

Какво може да прави агентът с изпълнителя

Речникът на операциите е зададен в кода, а не се конфигурира за всяка инсталация. Той се дели на две групи, а разделението определя какво трябва да инсталирате: някои операции демонът обслужва от собствената си работна папка без виртуална машина, а останалите изискват гост виртуална машина за всяка сесия на хоста.

ОперацияКакво правиГост VM
file.list, file.readИзброява и чете файлове в рамките на единствената коренна папка на работното пространство, избрана при сдвояването.Не
file.writeПише в чернова с копиране при запис на това работно пространство. Никога не отваря реалната коренна папка за запис.Не
workspace.reviewДокладва какво е променила черновата — до 100 относителни пътя с вид и размер в байтове, плюс дайджест на манифеста. Не съдържа съдържание на файлове.Не
sandbox.stopПрекратява сесията, която принадлежи на това изпълнение.Не
command.runИзпълнява една команда като вектор от аргументи без shell в гост среда без изходящ достъп. В този път няма никакъв shell низ.Да
browser.open, browser.observe, browser.actУправлява браузър в госта спрямо списък от origin адреси, настроен на машината. Наблюдението връща ограничено дърво на достъпността и по желание намалено изображение; действията са navigate, click, type, press и scroll, извършвани върху възел, който агентът току-що е наблюдавал — никога селектор, координати или скрипт.Да
coding.launch, coding.observeСтартира управлявана Codex сесия в госта и връща типизирано състояние на жизнения цикъл. Няма прикачване към терминал и няма канал за подкани: агентът научава дали сесията работи, но не и какво се показва на екрана ѝ.Да
workspace.promoteПрилага прегледана чернова към реалното работно пространство. Това е единствената операция, която пише на хоста, и умишлено не се предлага на моделите изобщо.Не

Операциите, които не изискват гост, са пакетът за работно пространство. Хост, който не може да стартира гост, не е счупен изпълнител: той се сдвоява нормално, докладва своя sandbox backend като none и обявява само пакета за работно пространство. Точно в това състояние попада Windows издание без Hyper-V или Linux машина, чийто потребител не може да използва /dev/kvm, а интерфейсът го назовава, вместо да се провали неясно.

Агентът никога не започва работа с браузър по собствена инициатива. Обикновеният маршрут за обвързване на единична операция отказва browser.open и browser.observe без изключение; изпълнение с браузър се стартира от човек в канал като един пакет от четири операции в ново изпълнение, и към него не може да се добави друго обвързване по-късно. Управляваните сесии за кодиране работят по същия начин.

В кода има още две групи, които умишлено не са достъпни. Операциите за управление на Chrome раздел, в който вече сте влезли, имат пълна локална реализация и разширение за native messaging, но контролният слой отказва да ги рекламира, докато сървърът не може да докаже, че разговорът, от който идват, е бил личен, и да запише кой какво е разкрил. Основата е умишлено неактивна, а разширението не се доставя в нито един инсталатор. Освен това няколко операции за кодиране — прикачване, подкана, прекъсване и затваряне — са посочени в схемата, но нямат реализация, така че не могат да бъдат предоставени.

Как работи

Връзката винаги е изходяща

Демонът създава изходящи HTTPS и WSS връзки към вашия Nessie API и към нищо друго. Nessie никога не се свързва към лаптоп, никога не държи адрес за него и никога не третира крайна точка от каталога като машинен транспорт. Затова изпълнителят работи от домашна мрежа, зад NAT, в корпоративна VPN мрежа, без пренасочване на портове и без правило за входяща защитна стена — и затова спирането на демона е пълно и незабавно прекъсване на връзката.

API адресът трябва да е HTTPS. Единственото изключение е loopback адрес за хората, които работят с Nessie на собствената си машина, и то през отделна променлива на средата; никой обикновен флаг не превръща продукционен адрес в обикновен HTTP.

Сдвояването доказва коя е машината, а човек потвърждава

Сдвояването е двустранно доказателство. Упълномощен човек създава изпълнителя в Nessie със съответния обхват, а Nessie издава регистрационна заявка: 256-битово случайно предизвикателство, от което Nessie съхранява само SHA-256 проверителна стойност. Заявката е валидна десет минути и може да се използва само веднъж.

На машината демонът генерира Ed25519 двойка ключове, съхранява я в защитено от операционната система хранилище, достъпно само за собственика, и записва точната подписана заявка на диска преди да направи каквото и да е мрежово обръщение — така че загубен отговор може да се повтори със същия подготвен ключ, а не да сдвои изпълнителя тихомълком два пъти. След това изпраща идентификатора на регистрацията, предизвикателството, публичния ключ и подписа за доказване. Nessie съхранява публичния ключ и неговия отпечатък. Той никога не съхранява частния ключ.

След това Nessie показва този отпечатък на човек, който го потвърждава. Докато няма това потвърждение и последващо доказване на притежание, изпълнителят остава офлайн. Сдвояването никога не може да се завърши от текст в чат или от запис на терминал: нужно е съзнателно човешко действие в уеб или десктоп интерфейса.

Машина, която е загубила ключа си, не може да възстанови записа на своя изпълнител. Той се отнема и се регистрира отново като нов изпълнител. Смяната на ключ, напротив, е една транзакция, подписана едновременно със стария и новия ключ.

Дескрипторът е подписаното твърдение на машината за самата нея

Сдвоеният демон публикува дескриптор: подписано, монотонно ревизирано твърдение само за структурни факти — кои схеми на операции поддържа, своите ресурсни и мрежови ограничения, платформата си и дайджест на локалната си политика. Той не съдържа пътища на хоста и не създава никаква власт в облака.

Нова ревизия никога не се активира при получаване. Тя се съхранява като чакаща преглед и упълномощен човек трябва да я види и потвърди, преди да може да повлияе на това, което е налично. Именно това спира обновяването на възможностите да предостави тихомълком нова власт: нова рекламирана операция започва отказана.

Бъдете ясни какво доказва подписът. Дескриптор, подписан с ключа на сдвоен изпълнител, доказва, че този ключ е направил твърдението. Той не доказва, че хостът е непокътнат, и интерфейсът е длъжен да го каже.

Изпращане: кандидат, обвързване, команда, разписка

Агентът никога не назовава изпълнител. Преди едно изпълнение да може да го използва, Nessie превръща логическата операция в непрозрачен, краткотраен кандидат за наличност. Отговорът не съдържа идентификатор на изпълнител; базата данни пази само дайджест на дръжката заедно с това кой и за какво е бил разрешен. Моделите и клиентите получават дръжка, а не машина, която могат да избират.

Наличността е един резолвър, използван еднакво от API, работника, интерфейса и асистента:

available(operation, human, agent, immutableRunContext) =
  human may discover executor
  ∩ exact executor-agent-operation grant allows operation
  ∩ stable logical tool grant allows operation
  ∩ scope matches immutable run context
  ∩ executor is online and descriptor is approved
  ∩ local policy permits operation

Консумирането на кандидата създава обвързване под заключване в базата данни, което проверява наново всяка една от тези проверки и увеличава монотонно граничния номер (fence). Изпращането ги проверява отново. Следствието е, че отнет достъп, стеснена политика или отнет изпълнител между две стъпки спира работата, вместо да бъде забелязан по-късно — а повторен опит никога не може да попадне на различна машина от тази, към която изпълнението е било обвързано.

Самата команда се движи по обикновената опашка на Nessie и по жизнения цикъл на извикването на инструмент, а не през втора собствена опашка. Демонът търси работа през своя удостоверен контролен канал; към него никога не се изпраща push. Командата преминава през четири разписки и никакви други:

leased → accepted → started → result-acknowledged

Всеки кадър свързва идентификатора на командата, произхода на изпълнението, номера на обвързването (fence), ревизията на възможностите, срока на валидност, ключа за идемпотентност и дайджестите както на аргументите, така и на данните. Демонът отхвърля несъответствие, остаряла политика, повторно изпращане или втори резултат за команда, която вече е завършена. Аргументите и крайните резултати се шифроват с AES-256-GCM при съхранение; базата данни пази ограничен шифротекст и канонични дайджести, а не съдържание.

Ако потвърждение се загуби, Nessie не приема, че операцията е успешна. Командата се записва като неизвестен резултат, изпълнението следва обичайния път на възстановяване, а демонът, който записва локално всяка доставена команда, преди да започне работа, няма да повтори страничния ефект. Късна разписка все още може да разреши неяснотата честно.

Граница на доверие

УчастникМожеНе може
ЧовекДа сдвоява изпълнител, да го управлява, когато има право, и да потвърждава достъп и промени в политиките.Да разширява политика, която самата машина отказва, или да действа без актуално право.
Агент, включително личният асистентДа извиква операция, която вече му е налична; да подготви предложена промяна на достъпа за човека, който е поискал.Да администрира достъп, да се одобрява сам, да избира машина, да променя локалната политика или да прилага промяна, която сам е подготвил.
Контролният слой на NessieДа разрешава наличността, да обвързва изпълнение, да отдава команди на демона (lease) и да пази редактирани одитни данни.Да се свързва с машината, да разширява локалната политика, да достига до идентификационни данни на хоста или да третира текст от терминал като разрешение или резултат.
Демон на изпълнителяДа налага локалната политика, да се сдвоява навън, да управлява гост средата и шлюза и да потвърждава команди.Да разширява собствения си обхват, да приема остаряла или повторена работа, да излага работното пространство или идентификационните данни на хоста директно или да изпраща сурови локални данни в одитния запис.
Гост VM и инструментите в неяДа работят в copy-on-write sandbox, като достигат мрежата само през шлюза.Да достигат файлове, идентификационни данни, пряка мрежа или DNS на хоста, или да прилагат промяна на хоста.

Инсталиране и сдвояване на изпълнител

Инсталирайте Mac CLI с Homebrew, Mac приложенията с Homebrew casks, Linux CLI през APT или DNF, или Windows изпълнителя през WinGet. Всеки сдвоен екип има отделни права, съхранявани на компютъра. Nessie управлява достъпа в рамките на екипа; той не може да променя локалните ресурси.

Ръководството за инсталиране и сдвояване съдържа точните команди, двустранния процес с осемцифрен код, локалните настройки, стартирането, обновяванията и премахването.

Колко добре е проверена всяка платформа

Състоянието на трите гост sandbox-а е различно и разликата е съществена. macOS е бекендът с работещ, изпробван гост път. Firecracker бекендът на Linux и Hyper-V бекендът на Windows са реализирани и покрити от тестове на хоста — последователността на стартиране, дисковите образи, транспортите за управление и изход, протоколът за чернови — но в непрекъснатата интеграция (CI) на проекта нито един гост още не е стартиран на реално хардуерно устройство, защото това изисква машина с KVM или Hyper-V, а задачите, които биха го доказали, никога не са имали такава. Пакетът за работно пространство, който не изисква гост, е изпробван от край до край на Windows срещу реален контролен цикъл. Третирайте операциите с гост на Linux и Windows като недоказани, докато не ги проверите на собствения си хардуер. Екранът за сдвояване в Nessie казва същото със собствени думи.

Сигурност и изолация

Една коренна папка на работното пространство, а пътят ѝ остава на машината

При сдвояването се избира точно една каноническа коренна папка на работно пространство: една директория, а не набор от папки и никога най-близкият им общ родител. На Nessie се съобщава базовото име на коренната папка, за да може човек да разпознае границата в интерфейса; пълният път остава в защитеното състояние на машината, достъпно само за собственика, и никога не се качва. Смяната на коренната папка е възможна, но само след като всички локални чернови и sandbox-ове са премахнати, и създава нова ревизия на дескриптора, която минава през същия човешки преглед като всяка друга промяна на политиката. Тя никога не може тихомълком да се разшири до родителска директория.

Файловите операции приемат само относителни пътища. Те отхвърлят пътища, които излизат извън папката (например с „..“), и всеки компонент, който е символична връзка; проверяват отново, че конфигурираната коренна папка все още е обикновена директория, и връщат ограничени структурирани резултати без път на хоста.

Записите отиват в копие, а прилага ги само човек

Агентът никога не пише във вашите файлове. file.write създава ограничено дърво с копиране при запис в собствената работна папка на демона, свързано с изпълнението; по-късните четения и изброявания за това изпълнение виждат черновата. Работата в госта, включително сесиите за кодиране, използва същото работно пространство с копиране при запис.

Прилагането на чернова към реалното работно пространство е една операция — workspace.promote — и това е единственият запис към хоста в системата. Тя няма изобщо схема, видима за моделите: никакъв агент, асистент или път, подаден от извикващия, не може да превърне чернова в запис на хоста. Вместо това човек отваря Вашите прегледани чернови, натиска Прегледайте прилагането и потвърждава с текущата си парола. Сървърът тогава проверява потвърдения дайджест на прегледа, дайджеста на манифеста, изпълнението, от което е дошла, потребителя и агента, ревизията на оторизацията, операционното разрешение и активната локална политика, преди да създаде командата. На машината демонът сам преизгражда манифеста и отхвърля дайджест, който се е променил — така че редакция, направена след прегледа, не може да се вмъкне под одобрението му.

Самото прилагане е базирано на дескриптори и се записва в журнал. Родният помощник получава коренната папка на работното пространство и черновата като вече отворени директорийни дескриптори, никога като пътища; проверява всеки компонент с операции без проследяване на връзки, отказва символични връзки, твърди връзки, специални файлове и преминавания през точки на монтиране и поддържа журнал „всичко или възстановяване“, така че при срив или да се доизпълни проверения манифест, или да се възстанови оригиналът, преди да се изпълни каквото и да е друго.

Гостът няма мрежа, а изходът е принуден

Когато операция има нужда от гост, тя се изпълнява в Linux микро-VM за всяка сесия, без начална директория на хоста, без Docker сокет, без SSH агент, без наследена среда и без монтиране на хоста, освен споделянето на работното пространство. Монтирането на изпълнимата среда е само за четене, а монтирането на записваемото работно пространство забранява изпълнение, така че всичко, което се изпълнява, идва от проверения пакет на средата, а не от нещо, написано от агент. Гостът слиза до непривилегирована идентичност, преди да отвори какъвто и да е сокет, а споделяне, притежавано от root, проваля стартирането, вместо да остави работещ привилегирован процес.

Най-важното е, че гостът няма мрежов интерфейс. На Linux последователността на стартиране умишлено никога не конфигурира такъв и не се създава TAP устройство; на Windows виртуалният мрежов адаптер, който Hyper-V добавя по подразбиране, се премахва при настройката. Единственият път на гостя навън е loopback прокси в него, тунелиран през виртуален сокет (virtual socket) към мост на хоста, който предава байтовете на собствения шлюз на демона — локален сокет слушател, достъпен само за собственика, без TCP слушател и без общ режим на препращане. Именно там се налага политиката за HTTP, CONNECT, WebSocket, пренасочване, origin, сваляне и качване, като се използва съществуващият механизъм на Nessie за фиксирано изтегляне, а не втора реализация на същите правила. Няма NAT мост и няма пряк DNS резолвър: алтернативният DNS, суровият TCP, QUIC и заобикалянето на прокси са всички забранени.

Списъкът с origin адреси, който шлюзът налага, се конфигурира на машината от нейния собственик и умишлено никога не се качва. Интерфейсът назовава това отсъствие, вместо да се преструва, че Nessie е редактор на origin политики: за да знаете какво може да достига браузър изпълнителят, попитайте човека, който притежава машината.

Идентификационни данни

Никакво хост хранилище за идентификационни данни никога не се монтира в гост. Нито Keychain, нито ~/.codex или ~/.claude, нито глобален CLI токен, нито променлива на средата с API ключ. Единственият поддържан вход за управлявана сесия за кодиране е файл за удостоверяване, личен за собственика, чието съдържание се чете единствено от инструмента за изграждане на initrd, контролиран от собственика — никога от Nessie, никога от дескриптора, никога от журнал или аргумент на команда — и се премества веднъж в личната директория в госта, която се унищожава заедно с VM-а. Този гост може да достигне точно един origin.

Браузър изпълнителят е още по-строг: всяка сесия получава нов личен браузърен профил и отказва профил, подготвен от работното пространство, така че започва без бисквитки, без разширения и без наследено състояние на влизане в профили.

Сурови локални данни могат да достигнат до доставчик на модел само в рамките на изрично, ограничено изпълнение. Nessie съхранява редактирани манифести, дайджести на аргументи и политики, дайджести на резултати и структурирано състояние. Съдържанието на файлове, изходът от терминала, DOM на браузъра, идентификационните данни и факторите за удостоверяване са забранени в записи в базата данни, одитни записи, журнали, събития в реално време и доклади за грешки.

Какво дава операторът и как го отнема

Правото да се използва изпълнител не е един превключвател. Агентът може да извика операция само когато има право за точно този изпълнител и за точно тази операция, и обичайната логическа политика за инструменти я разрешава, и обхватът на изпълнението съвпада, и локалната политика на машината я позволява. Даването на един изпълнител на една операция затова не разрешава нищо на друг, а обновяването на възможностите не може да разширява нищо, защото новите операции пристигат отказани.

Достъпът на агента и споделянето влизат в сила веднага на самата страница, без потвърждение чрез продължение, искане за парола или нова стъпка за удостоверяване. В раздела Агенти на изпълнителя управителят включва или изключва директно достъпа на агент до машината; в Споделяне дава на човек право Може да използва или Администратор, или разширява използването до проект или до всички в текущия екип, по същия начин. Само във вашия собствен разговор с асистента — никога в споделен канал, планирано задание или изпълнение на друг агент — асистентът може вместо това да подготви промяна на достъпа на агент или на назначението, която публикува карта за потвърждение в този разговор; нищо не се променя, докато не натиснете Разрешете достъп върху нея, а текст от чат никога не е потвърждение.

Три промени все още изискват да въведете отново текущата си парола в момента на потвърждението: активиране на ревизия на дескриптора; подготвено от асистента назначение, което дава машината на човек, а не на агент; и постоянна политика, която позволява на колеги да стартират команди на машината като нейн собственик — политиката за работа по задачи без надзор. Прекъсването на връзката или изтриването на машина умишлено не изисква нито едно от двете, защото аварийният изключвател (kill switch) никога не трябва да е по-труден за достигане от това, което спира. Прилагането на прегледана чернова винаги изисква парола. Одитният запис отделно отбелязва действащия човек и участието на асистента.

Изпълнителят преминава през малък, изричен набор от състояния:

pending_pairing → online ↔ offline
        │             ↓
        └──────────→ draining → revoked
                         ↓
                       error

Менюто Компютър в горната част е мястото, където управителят подготвя всяка промяна в жизнения цикъл: да постави изпълнителя на пауза, да го пусне отново след пауза, да прекъсне връзката му или да го изтрие. Паузата оставя изпълнителя онлайн, но той спира да приема команди. Прекъсването на връзката анулира клиентските му сертификати и всяка висяща дръжка на кандидат и не може да се отмени — прекъснат изпълнител се сдвоява отново като нов. Изтриването прави същото и освен това премахва изпълнителя от списъка; за разлика от прекъсването то се предлага независимо от състоянието на изпълнителя, включително при чакащо сдвояване и вече прекъснат, защото е единственият начин да се излезе от списъка. Изчерпването — довършване на работата, която вече има, преди да спре да приема нова — е истинско трето състояние в протокола и интерфейсът може да покаже машина в него, но нищо тук не го стартира: това прави само пряко извикване към API. Всяка потвърдена промяна на достъпа, преглед на дескриптор и преход в жизнения цикъл, изчерпването включително, също увеличава епохата на връзката на демона, така че следващата му контролна заявка — най-много секунда по-късно — се проваля затворено и спира всеки активен гост, преди да може да се свърже отново. Отнемането не е заявка, която машината може да игнорира.

Работа с изпълнител

Проверка дали работи нормално

Собственият отговор на Nessie е проверка за активност. Демонът подписва сигнал за активност, а изпълнител, чиято последна удостоверена активност е по-стара от шестдесет секунди, се маркира трайно като офлайн, преди да може да бъде показан, избран или да му бъде изпратена работа. Изпълнител, който се показва като онлайн, е доказал себе си през последната минута.

На машината няма крайна точка за проверка на състоянието — демонът не слуша на никакъв порт за оператор, и това е умишлено. На macOS и Linux питайте CLI директно:

nessie-executor status                # every paired executor, plus linger state
nessie-executor status <executorId>
systemctl --user status nessie-executor@<executorId>

На macOS статусът показва launchd агента на всеки екип. Командата systemctl е само за Linux. На Windows иконата в системната област е бързият отговор, менюто ѝ назовава причината, а журналът на услугата съдържа подробностите. На всяка от платформите разделът Общ преглед на изпълнителя в Nessie показва одобрените му профили, границата на данните, кога за последен път е виждан и всяко чакащо предложение за локална политика, което очаква преглед.

Журнали

ПлатформаКъде
Linuxjournalctl --user -u nessie-executor@<executorId>; демонът не води собствен файл с журнал
Windows%ProgramData%\Nessie Executor\logs\service.log, който се отваря с Отворете папката с журнали от иконата в системната област

Всеки отказ, който човек може да предприеме нещо по него, попада там: неподписана или подменена среда за изпълнение, директория на състоянието, която не може да се защити, или изпълнител, който не се е стартирал при зареждане. Там никога не попадат предизвикателство за сдвояване, ключ или изход от дъщерен процес. Няма настройка за ниво на журнала, която да се повиши, защото няма по-подробно нещо за включване.

Mac CLI записва журнала на услугата на всеки екип в ~/Library/Logs/NessieExecutor/<executorId>.log.

Обновяване

Обновете CLI през Homebrew, APT или DNF, след което рестартирайте услугата на всеки екип с disable, а после с enable. WinGet обновява Windows изпълнителя. Директните инсталатори на Nessie Desktop предлагат подписани обновявания в приложението; инсталациите от MSI и Debian използват своя мениджър на пакети. Сдвояванията и локалните права оцеляват при обновяване.

Спиране и премахване

Спирането е плавен път, който демонът контролира сам, а не принудително прекратяване. Той получава сигнал за прекратяване, спира всяка гост сесия, освобождава своя lease и излиза. На Linux юнитът чака петнадесет секунди за десетсекундния бюджет за приключване и умишлено никога не прибягва до непрехващаемо убиване — защото демон, убит по средата на приключването, оставя микро-VM и работно наслагване без процес, който да ги почисти. Спиране, което увисне, затова е видимо в systemctl --user status, а не тихо, и прибягването до принудително прекратяване е изрично човешко решение.

За да премахнете Linux пакета:

nessie-executor disable <executorId>   # stops and disables the service
sudo apt remove nessie-executor
loginctl disable-linger                # only if your user manager should stop running at boot too

На Windows msiexec /x спира и премахва услугата, нейните записи в регистъра и записа за стартиране на иконата в системната област. И на двете платформи сдвоеното състояние умишлено остава — ~/.local/state/nessie-executor/ на Linux и %ProgramData%\Nessie Executor на Windows. Сдвояването е ключ на машината и подписана ревизия на политиката, а деинсталирането на програма не е заявка да ги унищожи; при повторно инсталиране те се намират там, където са били. За да забравите сдвояване, изтрийте директорията ръчно, а за да го прекратите и от другата страна, отнемете изпълнителя в Nessie.

Иконата в системната област на Windows и десктоп помощникът предлагат Забравете сдвояването на този компютър като основно действие: то спира локалния демон, премахва ключа на машината и избора на папка и след едно потвърждение от операционната система трайно изтрива локалните копия на черновите — като оставя на собственика да запази или отнеме самия изпълнител в сървърната част и историята му в одита.

Чести грешки

СимптомКакво означава
Изпълнителят се сдвоява, но предлага само файлови операцииХостът не е докладвал използваем sandbox backend. На Linux проверете дали можете да четете и записвате /dev/kvm и дали сте в групата kvm — излезте и влезте отново, след като се добавите. На Windows изданието няма Hyper-V; това е издание, а не настройка.
Контролите на изпълнителя липсват напълноСборката не е проверимо от очаквания издател. На Linux средата за изпълнение трябва да принадлежи на root и да няма бит за запис за група или за всички; на Windows и macOS подписът трябва да съвпада с издателя или екипа, закрепен в сборката. Всяко от тези условия отказва с думи и назовава решението, вместо да скрива контролите.
Услугата работи, но не стартира демон и отказва всяка командаНещо в инсталацията е заменено след опаковането. Това е очакваното поведение: подменена инсталация отговаря с причината, вместо да изчезне, защото спряна услуга би накарала иконата да назове грешното решение.
Изпълнение завършва с неизвестен резултатТерминалното потвърждение е загубено. Nessie няма да докладва резултат, който не е получил: командата се отбелязва като неизвестна, изпълнението минава по пътя за възстановяване и страничният ефект не се повтаря. Късна разписка от демона все още може да го разреши.
Операция, която вчера работеше, днес е отказанаПроверка се е променила между обвързването и изпращането, а проверките се повтарят на всяка стъпка: отнет достъп, ревизия на дескриптор, която чака преглед, стеснена локална политика, обхват, който вече не съвпада с изпълнението, или отнемане. Отказът назовава коя от тях.
Агент поиска браузър и му е казано, че не можеРаботата с браузър и кодиране се стартира от човек от канал като цял пакет в ново изпълнение. Обикновеният маршрут за обвързване ги отказва по замисъл, а към изпълнение, което вече върши нещо друго, не може да се добави браузърна операция.