Перейти до вмісту

Що таке Erebros-T

Erebros-T — це те, чим стає Erebros, коли ним користується більше ніж одна людина. Одноосібний Erebros — це панель керування (control plane) вашим власним парком агентів: кожен рушій, кожен застосунок, на вашій машині. Наодинці це працює, але розвалюється тієї ж миті, коли приєднується друга людина, бо ніщо з цього не знає, хто що зробив, у якому порядку й на якій машині.

Teams відповідає на це одним рішенням, ухваленим один раз: усе, що відбувається, — це подія, дописана до журналу з ланцюжком хешів і підписана. Повідомлення, патч, запуск CI, погодження, агент, що приєднався до кімнати. Немає другого джерела істини, яке треба узгоджувати, і немає питання «хто це погодив і коли», на яке журнал не зміг би відповісти через місяці.

Це окремий продукт на окремому порту — ~/erebros-t, http://localhost:3401, стан у ~/.erebros-t — і працює він на Next.js 16, React 19 та Node 22.

Chat Один чат для всіх рушіїв — те саме об’єднання, яке Erebros зробив у v6.14, але без OmniRoute.
Channels Кімнати, де люди й агенти працюють разом; повідомлення, патчі, запуски CI та погодження ділять одну стрічку.
AI Mastermind ASK, DISCUSS та MoA, збережені як окремий застосунок — рада, яку ви скликаєте, а не кімната, у якій живете.
Hermes Середовище виконання агентів із його вкладками (агенти, рій, канбан, цілі, …), винесене в окремий пункт рейки.
Board Дошка робочого простору, розгорнута з журналу; картку, віддану агентові, забирає та машина, яка може її виконати.
Git & Review Черга патчів із CI, рецензуванням і погодженням — злиття є рішенням з аудиторським слідом.
Workflows Тригери, кроки та шлюзи. Те, чим насправді були Loop, Pipeline та Kanban.
Search Повнотекстовий пошук по всьому журналу — англійською, українською та російською.
Audit log Реєстр із обома стовпцями хешів, щоб ланцюжок можна було перевірити на око.
Settings → Relay Які машини входять до робочого простору, які з них доступні зараз і як усе з’єднано.
Local / Cloud Де виконується кожна можливість — вирішується для кожної окремо.
Forge-застосунки Ad, D, G, M, N, P, R, S, SEO, VC та X — перенесені цілком.

Рейка має чотири групи — WORKSPACE, BUILD, FORGE, SYSTEM — і не містить ні агентів, ні моделей. Моделі живуть у Менеджері моделей, доступному з верхньої панелі; агенти живуть усередині Hermes.

Чотири рішення, з яких випливає все інше

Section titled “Чотири рішення, з яких випливає все інше”

1. Журнал — це істина, і це файл

Section titled “1. Журнал — це істина, і це файл”

$EREBROS_STATE_DIR/events/log.jsonl — один JSON-об’єкт на рядок, дописується, ніколи не переписується. Кожен рядок несе SHA-256-хеш власного вмісту та хеш попереднього рядка, а потім підпис Ed25519. Редагування рядка ламає всі наступні хеші — помітно, на екрані аудиту. tail -f на цьому файлі — живий потік подій робочого простору; формат, який можна прочитати через cat, переживе програму, що його написала.

2. Види подій — цілі числа, і вони постійні

Section titled “2. Види подій — цілі числа, і вони постійні”

Кожна подія має kind1001 повідомлення, 2001 патч, 3001 створення каналу. Читач, який не розпізнає вид, пропускає його, а не падає, і саме це дозволяє трьом машинам працювати на трьох трохи різних збірках. Вид ніколи не перенумеровується і ніколи не використовується повторно. Діапазони мають значення:

1000–1999 conversation — messages and what attaches to them
2000–2999 work — patches, runs, approvals, decisions
3000–3999 the workspace — channels, membership, agents
4000–4999 the machine — alerts, health, updates
9000–9999 ephemeral — presence and typing. NOT stored, NOT hashed, NOT audited.

3. Один ланцюжок на машину, а злиття — це дописування

Section titled “3. Один ланцюжок на машину, а злиття — це дописування”

Кожна машина веде власний ланцюжок у власному файлі. Злиття — це: запитати у пірa, що він записав після останньої події, яку ви бачили, перевірити кожну за ланцюжком і підписом, дописати. Двоє людей, що відкривають кімнати офлайн, сходяться, коли знову під’єднуються, без жодного розв’язання конфліктів. Порядковий номер унікальний лише в межах машини — усе, що на нього спирається, спирається на (machine, seq). Тягнути, ніколи не штовхати.

4. Індекс — похідний і одноразовий

Section titled “4. Індекс — похідний і одноразовий”

Плаский файл ідеальний для дописування й марний для запитів, тож є індекс — SQLite через node:sqlite із FTS5 — і він похідний: видаліть його, і він відбудується з журналу, не втративши нічого. Жодних міграцій, жодної історії з резервними копіями, крім копіювання двох файлів. Канали, дошки та запуски воркфлоу розгортаються з журналу так само, тому сервер, убитий посеред запуску, не може залишити файл стану з написом «running».