Paměť
Paměť, ne tracker.
Každý úkol s celou svou historií, podklady a rozhodnutími na jednom místě, destilovaný Eve a čtený vašimi programovacími agenty za tolik tokenů, kolik odpověď potřebuje. Bezpečná, spolehlivá a navržená pro tempo, kterým agenti pracují.
01
Stavěná pro tempo agentů
Jira i Plane vznikly v době, kdy tiket jednou napsal člověk a párkrát si ho někdo přečetl. Agenti dnes zapisují a čtou stokrát denně. Engine úkolů ve vitrince byl od první tabulky navržený s tímhle čtenářem v hlavě.
- Jiný čtenář — čtenářem je stejně často programovací agent jako člověk, takže každé čtení je tvarované tak, aby stálo jen tolik tokenů, kolik odpověď potřebuje.
- Nic se nepřepisuje — znovu nahraný soubor je další verzí toho předchozího a rodokmen zůstává. Historie, artefakty, konverzace i rozhodnutí zůstávají u úkolu.
- Nestojí v cestě — postavil ji vývojář s jediným záměrem: vitrinka vám nebude stát v cestě. Jiru si nechte; projekt zrcadlete, když tým chce, a nikdy na ní nezávisejte.
02
Co si úkol pamatuje
Každá změna úkolu připojí jeden řádek do deníku, ve stejné transakci jako změna sama. Podklady visí na úkolu podle druhu a úkol může být kterýmkoli z osmi typů.
- Deník — created, updated, deleted, linked, unlinked, commented, labelled, ranked, intake, mirrored, run: jeden řádek na každou změnu, zapsaný spolu s ní.
- Typované reference — session, snímek, nástěnka, soubor, pull request, běh, transcript, konverzace, brainstorm, plán, handoff, rozhodnutí, destilace, commit, final, brief a zápis ze schůzky. Připojené podle druhu, takže čtenář může chtít jen jeden z nich.
- Osm typů, jeden strom — task, bug, story, epic, todo, qa, journey a meeting, zanořené přes rodiče. Vazby blocks, relates, duplicates, supersedes nebo vlastní, a vazba smí vést napříč projekty.
03
Engine
Stavy, pole, pravidla a intake jsou běžné části enginu, ne doplňky. Hodnota se kontroluje uvnitř zápisu úkolu, pravidlo se spouští z deníku a návrh zůstává neviditelný, dokud ho někdo nepřijme.
- Stavy, priority, pole — pět skupin stavů se stavy na projekt, čtyři priority, štítky, sprinty s přenosem nedodělků, milníky a jedenáct druhů vlastních polí, každé ověřené ve stejné transakci jako úkol, ke kterému patří.
- Pravidla — spouštěč na událost z deníku nebo plán, podmínky na stav, prioritu, typ, řešitele, štítek, data a sloučený pull request, akce od změny stavu přes komentář po flow pro Eve. Zkušební běh přehraje pravidlo nad deníkem dřív, než se uloží; jedenáct jich je vestavěných.
- Intake — jedny dveře pro návrhy ze sessions, poznámek, hlášení, pull requestů, běhů, od Eve i z API. Návrh se porovná s tím, co už existuje, a zůstane mimo všechny pohledy, dokud není přijatý, odmítnutý nebo sloučený — na jedné obrazovce Intake pro celý workspace, kde se návrhy řadí do skupin podle zdroje a každý verdikt má jednu klávesu.
04
Jeden filtr, šest pohledů
Šest pohledů na úkoly čte jeden dokument filtru. Má stejný tvar na serveru i v prohlížeči, bajt po bajtu, a cestuje v URL, takže uložený pohled, sdílený odkaz a dotaz agenta jsou jedna a tatáž věc.
- Čtyři rozcestníky — Brief; Work — seznam, nástěnka, tabulka a časová osa; Plan — backlog a kalendář; Record — QA, aktivita, čas, nástěnky a artefakty. Intake má vlastní obrazovku pro celý workspace a domovská stránka workspace sbírá vaši vlastní práci ze všech projektů. Pohledy na úkoly se řadí podle pořadí, priority, termínu nebo vzniku a seskupují i podseskupují.
- Keyset, nikdy offset — stránka až 200 řádků pokračuje od kurzoru, který nese vlastní řazení. Fulltext přes FTS5, živé aktualizace přes server-sent events a klávesnice na prvním místě: c, ., j a k, e, a, m, x.
- Měřeno ve velkém — repozitář nese benchmarkový korpus o 500 000 úkolech a úložiště vrátí první stránku seznamu zhruba za 0,75 ms, měřeno na vrstvě úložiště na notebooku. Částečné indexy nesou živý predikát, takže každá stránka je jeden seek.
05
Jak to čte agent
Agent nelistuje úkoly, aby je spočítal. Zeptá se serveru, který agreguje v SQLite a odpoví čísly. Nástroje nesou stejnou sémantiku jako rozhraní pro lidi.
- Jeden report, ne štos stránek — summarize_tasks seskupuje a počítá na serveru. Jeden report nad 94 úkoly v 5 skupinách vyjde zhruba na 61 tokenů; vylistovat je stránku po stránce kvůli stejným počtům by stálo asi 10 900.
- Žádné skryté ořezávání — report s víc než 100 skupinami selže a řekne to, místo aby hádal. read_task_ref čte referenci proti rozpočtu, ask_task odpovídá o jednom úkolu a query je jeden SELECT jen pro čtení nad deníkem, auditovaný.
- Každé volání v záznamu — deník agent_calls zapisuje každé volání agenta s jeho velikostmi a nikdy s obsahem. Žádné z těchto čtení nevyžaduje model na straně serveru; jen ask_task odpovídá přes Eve a bez připojeného backendu to rovnou řekne.
06
Eve destiluje
Eve je vrstva navrchu, ne podlaha. Destiluje úkoly a jejich reference, píše ranní brief a navrhuje změny. Každý návrh je intake draft a nic se neprovede bez verdiktu.
- Destilované, originál vedle — dlouhý transcript nebo konverzace se stane destilací připojenou k úkolu; originál zůstává tam, kde byl.
- Brief — jedno ohraničené čtení: teď, dál, blokované, od vaší poslední návštěvy a lidé, s jejím textem navrchu, když je připojený backend.
- Plány jako návrhy — přeřazení, změna řešitele, sloučení: každý přistane jako draft s důvodem a člověk ho přijme nebo odmítne. Vypráví také plány QA a finální nástěnku featury. Úplně bez AI backendu engine funguje dál.
07
Vedle Jiry a GitHubu
Projekt, který bydlí v Jiře, se do vitrinky zrcadlí; projekt, který ne, tu prostě běží. Vazba na commit je trailer ve zprávě, který píše CLI, a sloučený pull request může úkol dokončit.
- Zrcadlo do Jiry — na projekt, se zvolenou stranou pravdy a mapou stavů. Název, text, štítky a stav se posílají; název, stav a řešitel se stahují; priorita a komentáře zůstávají lokální. Plane zatím zrcadlem není — dnes přijímá jeden zpětný komentář s odkazem za každou publikovanou sadu u issue, které určíte — a Confluence pokrývá parita stránek, bez konektoru.
- Commity a pull requesty — hook prepare-commit-msg z CLI zapíše trailer Vitrinka-Task; události push a pull request z GitHub App připojí commit i PR k úkolu a vestavěné pravidlo ho při sloučení může dokončit.
- Agenti jako viditelní pracovníci — běh úkolu se spouští a zastavuje z CLI a je vidět na úkolu; převzetí i vrácení úkolu zapíše jeho časovou osu, takže člověk vidí, který agent na čem je a co po sobě nechal.
08
Kde to bydlí
Titulek slibuje spolehlivou paměť, tak tady je, co za ní stojí, přesně v rozsahu toho, co kód dělá. Hostované nebo na vlastním serveru, pořád jeden binární soubor.
- Jedno úložiště na workspace — jedna SQLite databáze na workspace, nic sdíleného mezi tenanty. Nahrané podklady se šifrují ještě před zápisem na disk, soubory záloh také.
- Zapečetěné a připojované — přihlašovací údaje konektorů i klíče jsou zapečetěné; do auditního logu se jen připisuje, nikdy nepřepisuje, vynuceno triggery v databázi.
- Air-gap přežije — AIR_GAP nechá engine i každý flow fungovat s AI jako volitelnou, ve vaší síti, bez jediného volání ven, které jste si sami nenastavili.