Skip to content

Zoznam zmien ​

Tu sú uvedené všetky podstatné zmeny. Projekt sa riadi sémantickým verzovaním; do verzie 1.0 môžu minor verzie meniť konfiguráciu alebo formát záznamov, vždy s poznámkou k migrácii.

0.10.2 (2026-11-01) ​

Brief, ktorý sa dá prečítať. Keď sa riadiace záznamy nezmestili, zameraný brief vypísal stenu identifikátorov. Kým sa zmestia všetky, vypíše ich ako doteraz; potom vypíše toľko kompaktných riadkov, koľko sa zmestí, od najbližších, a nakoniec +N more governing: ctx_why <path>. Nič riadiace nezmizne potichu: počet hovorí, koľko ostáva a ako to zobraziť.

ctx_brief stojí toľko, koľko hovorí jeho rozpočet. Štruktúrovaný výsledok je {text, entries} a entries sú tie, ktoré text menuje. Zoznam governing opakoval riadky každej cesty vedľa textu, čo na veľkom úložisku posunulo jedno volanie cez 60 KB.

0.10.1 (2026-10-29) ​

Oprava: necommitnutá úprava záznamu človekom je konflikt, nie zastaraná revízia. drafts.extend, drafts.stage s amends, drafts.retire a drafts.revise najprv porovnali revíziu, takže súbor záznamu s necommitnutými úpravami v checkoute odpovedal stale_entry („prečítaj ho znova“) namiesto operation_conflict („stage-ni alebo vráť svoje úpravy“), ako hovorila 0.9.0. Teraz sa nestage-nutá alebo nesledovaná zmena súboru záznamu hlási prvá, ako operation_conflict so slovom „unstaged“ v správe; revízia, ktorá sa posunula commitom alebo tým, čo kontext sám stage-ol, je stále stale_entry. Nič iné sa nemení.

0.10.0 (2026-10-29) ​

Sľuby znova platia: verify príkazy s trust pinom, poctivé overenie, brief, ktorý zachová každý riadiaci záznam, čerstvý index, dodatky, ktoré len pridávajú, a MCP rozhranie roku 2026.

Bezpečnosť ​

  • verify: beží až po pine. Príkaz v poli verify: záznamu je kód z repozitára. Spustí sa, len keď trust.toml drží SHA-256 pin cesty záznamu a textu príkazu ([repos.<slug>.verify]). Bez neho nebeží nič: kontext verify aj drafts.verify zlyhajú s untrusted_verify, ktorého chyba nesie id, command, command_sha256 a hint (kontext trust --verify <id>). Úprava príkazu pin zruší. Capability drafts.verify.pinned.
  • kontext trust --verify [<id>|--all] pinuje verify príkazy len z interaktívneho terminálu a vypíše, čo pinuje. Žiadny MCP nástroj ani operácia ctx_api nepinuje.
  • Cez MCP sa nepinnutý príkaz vráti, nespustí, a rovnako pinnutý, kým má súbor záznamu alebo jeho riadené cesty necommitnuté zmeny (ran: false, reason: untrusted_verify | dirty_tree). Agent ho spustí vo vlastnom sandboxe; výsledok sa zapíše ako agent pečiatka, nie ako verify.
  • Runner pustí len povolené premenné prostredia (PATH, HOME, USER, LANG, LC_*, TMPDIR, TERM a [verify] pass_env len z tvojej vlastnej konfigurácie), rediguje output_tail, necommitnuté riadené cesty uvedie v riadku denníka ([dirty: <cesty>], vo výsledku dirty, dirty_paths), 2 s po skončení shellu prestane čítať stdout a zabije skupinu procesov. MCP server zabije bežiacu kontrolu, keď sa zatvorí stdin alebo sa požiadavka zruší.
  • ctx_verify má anotácie destructiveHint: true, openWorldHint: true. dir nástrojov ctx_verify, ctx_inbox a ctx_prepare_commit je obmedzený na tento repozitár, jeho worktrees a submoduly.
  • Trust piny adaptérov sú SHA-256 nad kanonickým TOML zdieľaných adapters, vars a project.name. Starý 12-hex FNV pin sa odmietne s hláškou, nikdy sa ticho nepovýši. Zdieľané [vars] nikdy neprepíšu vars používateľského ani lokálneho adaptéra; zdieľané project.name musí byť slug; {{repo.remote}} nenesie userinfo. kontext trust beží len z terminálu.
  • ctx_threads prijme len claude:, codex:, superset:, last a cesty pod známymi koreňmi prepisov a cez MCP odmietne -. ctx_read file: odmietne .git/, .git-credentials a .ssh. ctx_prepare_commit drop najprv overí každé id a odmietne kandidáta, ktorého zapísal iný worktree.

Čo sa agent dozvie ​

  • Brief s focusom zachová každý riadiaci záznam. Rezervovaná sekcia Governs <focus> (N) ide prvá: jeden kompaktný riadok na záznam (plné id, názov, značky, commity odvtedy), zoradené podľa špecifickosti cesty (súbor, adresár, glob, **) a potom od najstaršieho. Čo sa nezmestí, vymenuje jeden vždy vytlačený riadok also governing:; pod veľkosťou sekcie sa tlačia len id. Ostatné druhy sa orezávajú po riadkoch a končia … N more (K govern your focus). Päta sa ráta do rozpočtu.
  • Cesty ostanú cestami. Položka focusu s /, glob znakom alebo známou príponou je cesta, aj kým súbor neexistuje. Prekryv funguje oboma smermi vrátane úvodných wildcardov a úvodného lomítka. [slug] sa najprv porovná doslovne, potom ako glob.
  • Poctivé riadky aktuálnosti. Brief píše read by <kto>, stamped by agent, bulk stamp, check passed alebo CHECK FAILING; „verified“ sa objaví len tam, kde overenie platí. Riadok briefu použije rule_text, keď zhrnutie pravidlo neobsahuje.
  • MCP server vidí iné procesy. Index sa znova načíta, keď ho obnovil iný proces (capture z CLI, kontext status, druhá session); nová schéma sa stavia v dočasnom adresári a premenuje. Vetva sa číta pri každej požiadavke; chyba parsovania konfigurácie sa vráti ako varovanie.
  • Viditeľné od prvého kola. ctx_brief nesie _meta["anthropic/alwaysLoad"]; prvých 512 znakov inštrukcií servera stojí samostatne a celok ostáva pod 4 096 znakmi.

Nahrádzanie a parsovanie ​

  • Nahradenie sa odvodzuje od aktívnych nástupcov. Záznam uvedený v supersedes aktívneho záznamu je nahradený a superseded_by sa doplní. Sekcia ## Status v štýle adr-tools sa číta aj zapisuje vo vlastnom štýle. Odkazy sa zapisujú ako plné id; nejednoznačný cieľ sa odmietne. kontext check hlási jednostranné nahradenie a kontext repair [--dry-run] dopíše chýbajúcu stranu.
  • Záznamy sa parsujú tak, ako ich píšu ľudia a formátery: viacriadkové flow zoznamy, blokové zoznamy, koncové komentáre, BOM. Neparsovateľný záznam je chyba check. Statusy retired, archived alebo emoji sa čítajú ako deprecated s varovaním; nelatinkové názvy dostanú krátke hash id.
  • Dodatky len pridávajú. drafts.stage amends prijme telo, len keď je staré telo jeho bajtovým prefixom a zvyšok sú sekcie ## Added <YYYY-MM-DD>; inak amend_not_additive s odkazom na nahradenie. Názov a všetky polia mimo tela musia ostať rovnaké. drafts.extend s llm už nič nezapracúva: poznatok pridá tak, ako bol napísaný (as_written: true). extends prejde cez ctx_capture, inbox aj povýšenie.
  • Námietky ostávajú v stave resolving, kým nový blob záznamu nepristane v HEAD.
  • since počíta podľa predkov. since a čerstvosť počítajú ne-merge commity na riadených cestách dosiahnuteľné z HEAD a nie z commitu pohľadu, takže sa zaráta aj vetva zlúčená po potvrdení. Zlyhaná kontrola sa ukáže, ale nie je pohľad.
  • Čo je overené: čítanie človekom alebo prejdená kontrola. Dátum checked: bez riadku v denníku je druh cache a hlási verified: false; kontext confirm --migrate-legacy pre také záznamy zapíše bulk riadky. CLI zapíše read len na termináli (inak agent; --kind read ho vynúti s varovaním); MCP nikdy nezapíše read; kontext api zapíše by: application:<meno>.
  • Drift potrebuje základ a pohľad v poslednej riadenej zmene rozsahu alebo po nej; bez základu povie prečo a --fail skončí kódom 3.

Redakcia a outbox ​

  • Redakcia maskuje, čo sľubuje, a zlyháva zatvorene: celé PEM bloky, národné telefónne čísla, IPv6 a každý výskyt na riadku. Neplatný vzor secrets.redact hlási status a distill, threads aj autopilot odmietnu poslať čokoľvek modelu. Tvoje vlastné zoznamy redact a allow sa spájajú s repozitárovými, nenahrádzajú ich. Chyby adaptérov neobsahujú query string ani userinfo. Výstupy bash režimu a zhrnutia kompaktácie z Claude vlákien vypadnú.
  • Outbox nič ticho nestratí. Pokus sa ráta len adaptéru, ktorý sa naozaj skúsil; po opakovaných zlyhaniach sa eventy presunú do outbox.dead.jsonl, ktorý ukáže status, a kontext outbox retry ich vráti do frontu. Eventy pre adaptér preskočený cez when ostanú vo fronte.

Init ​

  • kontext init skip mod:<modul> platí. Klastre dec:, ktorých commity už cituje záznam alebo trailer Decision:, sa znova neplánujú; stav úloh dec: sa odvodzuje z gitu a z <store>/init-covered.log (commitnutý, zlučovaný ako union), takže kolega aj čerstvý klon sa zhodnú. Id úloh dec: sú dec:<modul>-<sha7> najstaršieho commitu klastra.
  • Opätovné vykreslenie modulového dokumentu zachová ručne upravené paths, tags a summary. Výber modulu a id klastrov sú deterministické.
  • Autori-boti sa do skórovania nerátajú; slovenské a české rozhodovacie slová sú dodávané, [init] decision_words = { strong, rationale, contrast } pridá kmene v tvojom jazyku a [init] bot_authors pomenuje ďalších botov. Odmietnutie hookov zapíše len výslovné --no-hooks. init.jobs sa rešpektuje.

Vyhľadávanie a eval ​

  • Tieňové polia. Zložené a anglicky stemované title_f a body_f sa prehľadávajú s nižším boostom, takže namietka nájde námietka a adapter nájde „Adapters“. Verzia schémy indexu stúpla; index sa pri prvom použití prestavia.
  • Reviewované znalosti prvé. Lokálne zdroje sa pred spojením vážia (záznamy 1.0, kúsky dokumentácie 0.7, commity 0.6; vstavané, kľúče [search] sú plánované); nahradené výsledky dostanú nižšiu váhu a znejú → superseded by [id] Title, nikdy sa neskryjú; kópie sa hľadajú podľa digestu názvu a textu; deduplikácia nikdy nenechá nahradené dvojča nad aktívnym nástupcom; výsledky adaptérov sa radia podľa mapovaného skóre.
  • Graded eval. tests/eval/qrels.tsv s nDCG@5, recall@10 a MRR po rezoch (identifikátory, množné číslo, slovenčina s diakritikou aj bez, parafráza, briefy s focusom od 200 do 1 400 tokenov). Očakávania píše iná session než tá, ktorá zmenu implementuje.

Politika API v1 ​

  • Politika kompatibility je zapísaná. V rámci verzie 1 môžu pribúdať operácie, voliteľné vstupy, polia, kódy chýb, enum hodnoty a capability reťazce a klienti ignorujú, čo nepoznajú. Zúženie vstupu je dovolené len tam, kde staré správanie odporovalo zaznamenanému rozhodnutiu alebo bezpečnostnému sľubu, a oznamuje sa capability reťazcom a poznámkou k migrácii. Pozri Kompatibilita.
  • api.describe vráti JSON Schema vstupu každej operácie.
  • Jeden pojem revízie: blob id. Posunutá revízia je všade stale_entry so starým operation_conflict v error.aliases; model_unavailable uvádza llm_unavailable. Guard prijme blob id, plný hash commitu alebo staršiu 12-hex revíziu; HEAD alebo meno vetvy je invalid_input.
  • Polia overenia last_verified, since_verified, failing a amended_since stoja vedľa existujúcich. entries.changed nesie status a číta commitnutú konfiguráciu každej revízie; commitnuté záznamy nesú date, verify, review_by, supersedes, commits a author. Replay vráti uložený receipt aj po neskoršej úprave; operations.get nájde routované receipty.
  • Nové kódy chýb: untrusted_verify, amend_not_additive; stale_entry všade.
  • drift.ordered: entries.drift nesie base_source (explicit, origin-head, origin-main, upstream, default-remote, fallback-none) a bez základu warning; kontext drift --fail a kontext ci --strict vtedy skončia kódom 3.
  • drafts.confirm prijme operation_id, takže opakovanie nepridá druhý riadok do denníka; drafts.capture zachová extends.
  • Nové capability reťazce: api.describe, drafts.stage.amends.additive, drafts.capture.extends, drafts.confirm.operation_id, drafts.verify.pinned, verification.last_verified, drift.ordered.

MCP, hooky, štruktúrované výsledky, skills a pluginy ​

  • MCP pre obe éry. Schopnosti už neobsahujú logging. Server odpovedá na bezstavovú revíziu 2026-07-28 (server/discover, _meta na požiadavkách bez initialize, resultType, ttlMs/cacheScope) aj na starý initialize, ktorý padá späť na 2025-11-25. Neznáma verzia je -32022, neznámy nástroj -32602; resources/list stránkuje cez cursor; tools.listChanged môže byť true: je, keď adaptéry vystavujú nástroje.
  • Štruktúrované výsledky. ctx_brief, ctx_search, ctx_read, ctx_why, ctx_inbox a ctx_drift vracajú structuredContent s outputSchema vedľa textu a bloky resource_link na kontext://entry/{id}. kontext brief --format json vráti rovnakú štruktúru.
  • Hooky. kontext hook --host claude|codex|cursor číta hook JSON hostiteľa zo stdin a odpovedá v jeho tvare. SessionStart (startup, resume, clear, compact) a SubagentStart dostanú brief; PreToolUse na Edit|Write|MultiEdit (Codex: apply_patch|Edit|Write; Cursor: postToolUse) dostane riadiace záznamy pre upravené súbory, len tie v session ešte nepovedané. Jeden rozpočet na session, zdieľaný s ctx_brief, keď pozná session (session_id, CLAUDE_SESSION_ID): [hooks] session_budget_tokens (6000), edit_budget_tokens (900). Fail-open; vypínač KONTEXT_HOOKS=off alebo [hooks] enabled = false. Inštaluje ich len kontext connect <host> --hooks; každé --write nainštaluje aj strážcu shellu, ktorý agentovi zamietne kontext trust. Pozri Hooky.
  • Poctivé schvaľovanie. Vystavené nástroje adaptérov si ponechajú anotácie zo zdroja; chýbajúce sú readOnlyHint: false, openWorldHint: true. kontext connect codex --write zapíše default_tools_approval_mode = "prompt" a tabuľku [mcp_servers.kontext.tools.<tool>] pre každý nástroj: approval_mode = "approve" pre čítacie nástroje a inbox, "prompt" pre ctx_verify, ctx_api a ctx_init.
  • Skills a pluginy. Skills idú do .claude/skills aj .agents/skills; značka kontext-skill-hash chráni tímové úpravy a connect skills --write --force ich nahradí. Plugin pre Claude Code (.claude-plugin/plugin.json) a plugin pre Codex sa stavajú z rovnakých zdrojov ako connect. Parametre dostali aliasy (id/uri, focus/paths, kind/kinds (aj reťazec), limit/max, budget_tokens, reason/why/because); nič sa nepremenovalo. ctx_read stránkuje dlhý text (part, offset).
  • Odolnejší server. Panic v jednej požiadavke odpovie -32603 a server beží ďalej; HTTP MCP klient sa po 404 znova inicializuje; mimo git repozitára to server povie a dir funguje.
  • Nové príkazy a voľby: kontext repair [--dry-run], kontext trust [--yes] a --verify [<id>|--all], kontext confirm --kind read|agent a --migrate-legacy, kontext distill --force, kontext outbox retry, kontext hook --host, kontext connect <target> [--write] [--hooks] [--force].

Migrácia.

  • Minimum je Rust 1.90 (rust-version v Cargo.toml).
  • Staré FNV piny adaptérov sa odmietajú: spusti kontext trust znova v každom repozitári so zdieľanými adaptérmi.
  • Verify príkazy nebežia, kým nie sú pinnuté: kontext trust --verify <id> alebo --all, v termináli.
  • Peer: drift.ts musí mapovať untrusted_verify na „neoverené, ukáž príkaz“.
  • Záznam, ktorého jediným dôkazom je dátum checked:, teraz hlási verified: false (druh cache); kontext confirm --migrate-legacy pre ne zapíše bulk riadky.
  • Počty since môžu narásť: commity zlúčené po pohľade sa teraz rátajú.
  • drafts.extend nikdy nezapracuje zistenie do tela: s llm aj bez neho sa pridá tak, ako je napísané, a as_written je vždy true.
  • entries.export bez commitnutej konfigurácie hlási config_source.kind: "defaults" (úložisko .ai), nie local_configuration.
  • Námietka ostáva v zozname ako resolving (resolving v inbox.list), kým nový blob záznamu nepristane v HEAD, nie keď prepare_commit zmenu stagne.
  • Polia API sú aditívne a verzia API ostáva 1. Klient, ktorý posielal HEAD ako revíziu, dostane invalid_input, neaditívne telo amends amend_not_additive.
  • Vyhľadávací index sa raz prestavia (zvýšená verzia schémy).

0.9.0 (2026-10-29) ​

Doplnenia upravia záznam na mieste, nové záznamy sa prepoja s tým, na čom stavajú, a zmeny medzi commitmi sa dajú vypísať.

  • drafts.extend pripraví návrh záznamu s poznatkom doplneným do tela: rovnaké id, súbor aj polia, staré telo vedľa, nič sa nezapíše. S llm poznatok zapracuje model; inak sa pridá doslovne pod ## Added <dátum> (as_written: true). Len konvencie, poznatky a incidenty: rozhodnutie sa odmietne s decision_not_amended, lebo sa mení len nahradením. Posunutá revízia je stale_entry. Pozri Doplnenie záznamu.
  • drafts.stage prijíma amends: {id, revision}, ktoré zapíše toto telo do vlastného súboru záznamu a frontmatter ponechá bajt po bajte (vylučuje sa so supersedes), a entry.extends: [ids], ktoré prepojí nový záznam so záznamami, na ktorých stavia (unknown_entry pre id, ktoré úložisko nemá). Pozri Doplnenie a prepojenie.
  • entries.changed {base, head} vypíše commitnuté záznamy pridané, upravené, nahradené (so superseded_by) alebo vyradené medzi dvoma commitmi, bez modelu. Pozri Zmenené záznamy.
  • Kandidáti z entries.related nesú revision, hodnotu, ktorú obe operácie vyššie prijímajú. status.capabilities uvádza drafts.extend, entries.changed, drafts.stage.amends a drafts.stage.extends. Verzia API ostáva 1.

Známe problémy (opravené v 0.10.0): príkaz verify: beží cez sh bez trust brány, preto nevolaj ctx_verify, drafts.verify ani kontext verify v repozitári, ktorému neveríš; drafts.extend s llm a amends s ľubovoľným telom prepíšu záznam na mieste, proti rozhodnutiu z 2026-10-27.

0.8.0 (2026-10-28) ​

Skills na údržbu znalostí a flows v briefe.

  • Skills. kontext connect skills --write nainštaluje štyri recepty SKILL.md do .claude/skills/ (projektový rozsah, na commitnutie): kontext-audit (pohľad s rozpočtom na záznamy, ktoré sú najskôr zastarané: potvrdiť, spochybniť alebo nahradiť, nikdy nemazať), kontext-flows (preusporiadanie skladu do flows), kontext-verify (príkaz verify pre záznamy) a kontext-merge (duplicity a rozpory cez entries.related, jeden nahrádzajúci záznam na skupinu). Sú skompilované do binárky; opätovné spustenie po aktualizácii vráti súbory na dodávaný text. Pozri Claude Code.
  • Flows. Záznam druhu architecture s id flow-<name> (alebo štítkom flow) je kurátorská trasa cez znalosti pozdĺž jedného procesu: ## Trail s krokmi [[id]] — veta. ctx_brief s focusom vypíše flows, ktorých paths sa s focusom prekrývajú, s počtom krokov, pod Flows cez focus; brief bez focusu povie v jednom riadku, koľko flows existuje. Pozri Flows.

0.7.0 (2026-10-27) ​

Zachytenie uvedie príkaz, ktorý ho dokázal, a overenie povie, kde pristálo.

  • Zachytenie s dôkazom. kontext capture --verify "<príkaz>", verify v ctx_capture a v entry operácie drafts.capture zapíšu príkaz, ktorý poučenie alebo rozhodnutie dokázal; overuje sa ako pole záznamu (jeden riadok, najviac 500 znakov) a zachová sa cez inbox aj povýšenie. Hovorí to aj návod na zachytávanie (popis nástroja, inštrukcie servera a blok v AGENTS.md). Pozri Zachytávanie.
  • Návrh ho dostane neskôr. kontext inbox verify <id> "<príkaz>" (--clear), ctx_inbox s action=verify a nová operácia inbox.verify nastavia alebo odstránia príkaz návrhu v inboxe.
  • Kde pristálo. verification.landed je commit v histórii HEAD, ktorý ako prvý pridal najnovší riadok záznamu v denníku, alebo null, kým je riadok len stagnutý alebo v pracovnom strome; pri samotnom dátume checked: posledný commit, ktorý zmenil súbor záznamu. since sa nemení. Verzia API ostáva 1. Pozri aplikačné API.

0.6.0 (2026-10-27) ​

Overenie je commit v denníku a brief hovorí, čo sa odvtedy zmenilo. Dátum checked: bola pečiatka, ktorú mohol nastaviť ktokoľvek, často hromadne, a merge ju mohol potichu nahradiť staršou. Teraz:

  • Denník. kontext confirm, ctx_confirm a drafts.confirm pridajú aj riadok do .ai/confirmations.log: čas v UTC, záznam, spôsob pohľadu (read z CLI, agent z MCP nástroja, bulk pri viac ako piatich záznamoch jedným volaním), commit, na ktorý ukazoval HEAD, kto a voliteľný dôvod (--because). kontext init aj prvý zápis pridajú do .ai/.gitattributes riadok confirmations.log merge=union, takže vetvy sa zlúčia bez konfliktu. checked: sa zapisuje ďalej ako vyrovnávacia kópia. Pozri Overenia.
  • Oprava. kontext check varuje, keď checked záznamu zaostáva za denníkom; kontext confirm --repair (drafts.confirm s repair: true) ho podľa denníka prepíše.
  • Spustiteľné kontroly. Záznam môže mať verify:, jeden shellový príkaz. kontext verify <id>, ctx_verify a nové drafts.verify ho spustia z koreňa repozitára s časovým limitom (KONTEXT_VERIFY_TIMEOUT_SECS, predvolene 120) a zapíšu do denníka, či prešiel.
  • Čo sa odvtedy zmenilo. Pri každom zázname, ktorý riadi cesty z focus, ctx_brief povie, ako bol naposledy overený (druh, krátky commit, deň) a koľko commitov sa odvtedy dotklo jeho ciest, s ich prvými predmetmi; raz za brief vyzve tieto záznamy prečítať pred zmenou ich ciest.
  • API. Záznamy z entries.list, entries.get, entries.search, entries.governing a entries.drift nesú verification, since, verify a premises; checked je novší z hodnoty v súbore a v denníku. drafts.confirm prijíma because, kind, ids a repair. Verzia API ostáva 1. Pozri aplikačné API.
  • Zmenené predpoklady. Aktívny záznam, ktorý odkazuje na nahradený, vyradený alebo zastaraný záznam ([[id]], supersedes, extends), je označený v briefe, v API a informačným riadkom v kontext check; nič sa neprepíše.
  • Brána. kontext hooks status a dokumentácia odporúčajú tímom kontext drift --fail v kontrolnom skripte alebo v CI, čo pokryje aj commity z jj; žiaden hook commit pre drift neblokuje.

Migrácia. Netreba. Prvé potvrdenie vytvorí .ai/confirmations.log a pridá riadok do .ai/.gitattributes; commitnite oboje. kontext check nepočíta informačné riadky ani medzi chyby, ani medzi varovania.

0.5.0 (2026-10-26) ​

Rozhodnutia môžu povedať, čo zamietli. Záznam rozhodnutia môže mať nepovinnú sekciu ## Alternatives medzi ## Decision a ## Consequences: zvážené možnosti a prečo každú zamietli, aby neskoršia námietka ani drift znova neotvárali tú, ktorá už neprešla. Je to voľný Markdown, nie front matter, a nič ju nevyžaduje. Pozri formát záznamu.

  • ctx_init_submit pri úlohách dec: prijíma nepovinný reťazec alternatives a zapíše z neho sekciu; prázdna hodnota nezapíše nič.
  • Nápoveda k telu v ctx_capture a prompt pre distill sekciu spomínajú, takže ju agenti vyplnia, keď nejaké alternatívy naozaj boli.
  • Jednoriadkové zhrnutie a to, čo záznam káže, sa stále berú z ## Decision, takže brief aj vyhľadávanie čítajú záznamy ako doteraz.

Migrácia. Žiadna: záznamy bez sekcie ostávajú platné a staršie verzie kontextu čítajú sekciu ako bežný text tela.

0.4.1 (2026-10-20) ​

Oprava: opätovné potvrdenie záznamu v ten istý deň nič nevyčistilo. kontext confirm zapisoval len dátum, takže druhé potvrdenie v ten istý deň nechalo súbor bajt po bajte rovnaký a drift, ktorý záznam považuje za pozretý, len keď sa jeho súbor v rozsahu zmení, ho po ďalších commitoch vypisoval ďalej. Potvrdenie (kontext confirm, ctx_confirm, drafts.confirm) teraz zapíše čas v UTC na sekundu, checked: 2026-10-20T14:05:09Z, a vráti ten istý reťazec. checked prijme tento tvar alebo samotný YYYY-MM-DD (oba sa validujú, ani jeden nesmie byť v budúcnosti); aktuálnosť počíta po sekunde času a od nasledujúceho dňa v UTC po dátume. Netreba nič meniť: už zapísané dátumy ostávajú platné. Pozri Potvrdenia.

0.4.0 (2026-10-20) ​

Znalosti, ktoré idú za kódom, ktorý riadia. Review jedného repozitára našlo asi desať záznamov, ktoré už nezodpovedali kódu. kontext už vypisoval záznamy pokrývajúce stagnutú zmenu, ale len z git hookov, ktoré tím commitujúci cez jj nikdy nespustí; aktuálnosť sa nevynulovala, ani keď niekto záznam overil, a sledovala len rozhodnutia; a nič neodpovedalo, ktoré záznamy rozsah commitov nechal za sebou. Teraz, bez modelu a rovnako pod gitom aj jj:

  • Potvrdenia. Záznam môže niesť checked: YYYY-MM-DD, posledný deň, keď niekto potvrdil, že stále platí. kontext confirm <id> / ctx_confirm / drafts.confirm ho nastavia na dnešok v súbore záznamu (jednoriadkový diff) a stagnú ho, takže potvrdenie prejde review so zmenou. Pozri Potvrdenia.
  • Drift. kontext drift / ctx_drift / entries.drift vypíšu aktívne záznamy, ktorých paths pokrývajú súbory zmenené v base..head, kým ich vlastný súbor sa v rozsahu neupravil, nevyradil ani nepotvrdil. Base je predvolene miesto, kde vetva opustila predvolenú vetvu remote; bez head sa počíta aj pracovný strom, čo je presne pracovná kópia jj. Pozri Drift.
  • CI. kontext ci skontroluje všetky záznamy a vypíše drift commitov pull requestu, ako text alebo Markdown pre súhrn jobu; drift je varovanie, kým nepoužiješ --strict. Workflow pre GitHub Actions na skopírovanie je vo Validácii znalostí v CI.
  • Aktuálnosť sleduje okrem rozhodnutí aj konvencie a poučenia a počíta commity od najneskoršieho z: dátumu záznamu, jeho potvrdenia a posledného commitu, ktorý zmenil jeho súbor. Pozri Aktuálnosť.
  • prepare-commit bez stagnutej zmeny povie, že prečítal zmeny pracovného stromu voči HEAD, a poradí, ako potvrdiť záznam, ktorý stále platí. S jj ho (alebo kontext drift) spusti pred jj commit / jj git push: pozri jj.
  • Aplikačné API. Nové operácie entries.drift a drafts.confirm (uvedené v status.capabilities); načítané záznamy aj CommittedEntry vo vkladacej fasáde nesú checked.

Migrácia. checked je nové voliteľné pole; v .ai/ netreba nič meniť. Čo si môžeš všimnúť:

  • kontext status a brief môžu teraz označiť aj konvencie a poučenia a píšu „N entr(y|ies) may need a refresh … since they were made, edited or confirmed“ namiesto „N decision(s) …“. Počty sú často nižšie: commit, ktorý naposledy zmenil súbor záznamu (zvyčajne ten, ktorý ho pridal), a commity pred ním sa už nepočítajú.
  • checked je pole záznamu: existujúci kľúč checked: sa presúva z extra do vlastného poľa v JSON záznamu aj v CommittedEntry, kontext check odmietne checked, ktorý nie je dátum alebo leží v budúcnosti, a drafts.* ho ako kľúč v extra odmietnu.
  • Riadok správy prepare-commit o pracovnom strome znie „Nothing staged yet — read the working tree's changes against HEAD (untracked files included): …“.

0.3.0 (2026-10-19) ​

Znalosti, ktoré ostanú správne aj po zápise. Brief a vyhľadávanie už nenechajú návrh vyzerať ako prijaté pravidlo, spájanie zdrojov už nezahodí iné tvrdenie len preto, že začína rovnako, a zaznamenané znalosti môžu niesť termín kontroly a svoje zdroje, dajú sa napadnúť a vyradiť, vždy cez review. Merané novou evaluačnou sadou s 33 scenármi: na 0.2.1 prešlo 8 (nájdených 23 zo 64 očakávaní, 2 výsledky nesprávne potlačené, 1 so šumom); teraz prejde všetkých 33 (69 zo 69, nič potlačené, žiadny šum).

  • Značky autority. Riadok v briefe a výsledok hľadania povedia, keď záznam nie je prijatý ((proposed), (deprecated)), keď je jeho súbor nový, zmenený alebo stagnutý a nikto ho neschválil (local, unapproved), keď uplynul termín kontroly (review due), keď je lokálne napadnutý a koľko má zdrojov. Prijaté a commitnuté záznamy značku nemajú. Pozri Značky.
  • Bezpečná deduplikácia. Vyhľadávanie zlúčilo výsledky, ktorých prvých 90 normalizovaných znakov sa zhodovalo, takže jedno z dvoch rôznych tvrdení zmizlo. Teraz vypadnú iba preukázané kópie (rovnaké URI, kópia lokálneho záznamu z adaptéra, zhoda celého textu); podobný výsledok sa ukáže pod prvým s tým, čím sa líši.
  • Zmenené od posledného briefu. Brief vypíše najviac v piatich riadkoch znalosti pridané, zmenené alebo odobrané od posledného briefu v tomto worktree (bez neho posledných 14 dní) a povie, ktorý záznam nový nahrádza. Brief bez zmien nepridá nič. Pozri Zmenené od posledného briefu.
  • Termíny kontroly. review_by: YYYY-MM-DD pri ľubovoľnom zázname; po termíne je záznam označený v briefe, vo vyhľadávaní a v kontext status, nikdy nie skrytý. Voliteľná predvolená lehota podľa druhu [store.kinds.<kind>] review_after = "90d", predvolene vypnutá. Pozri Termín kontroly.
  • Evidencia. Zachytenia prijímajú evidence: [{ref, quote?}] s odkazmi pr:, issue:, task:, code:<repo>@<rev>:<cesta>#L<a>-<b> a url:, uložené v extra.external_refs. Citát pri odkaze na kód tohto repozitára sa overí voči danej revízii; čokoľvek iné sa označí ako neoverené, nikdy sa neodmietne. Pozri Evidencia.
  • Námietky a vyradenie. ctx_challenge / kontext challenge zaznamenajú, že záznam už neplatí; ctx_prepare_commit retire=[id] ho vyradí (stav deprecated a poznámka ## Retired, stagnuté) alebo ho nahradí náhrada. Vyradenie aj nahradenie fungujú pre každý druh. Pozri Námietky.
  • Súvisiace znalosti. ctx_capture pomenuje záznamy, ktoré nový môže duplikovať, rozširovať alebo im protirečiť, s dôvodom (podobné znenie, rovnaké cesty); stará poznámka „update it instead“ zmizla. Model sa pýta iba na vyžiadanie, cez entries.related, a jeho odpoveď sa ukladá.
  • Vyhľadávanie. Frázový bonus za celý dopyt dá presnému zneniu prvé miesto (v evaluačnej sade sa dopyt s presnou frázou posunul z 2. na 1. miesto; dopyty vlastnými slovami si poradie udržali). [search] adapters = "fallback" sa pýta vyhľadávacích adaptérov, iba keď je lokálnych zásahov menej ako min_local_hits, alebo na vyžiadanie (adapters: true, --adapters); predvolene ostáva always.
  • Aplikačné API. Nové operácie entries.related, drafts.retire a drafts.revise (uvedené v status.capabilities); drafts.capture, drafts.stage a drafts.formalize vracajú aj evidence a related_entries, drafts.stage aj resolved_challenges; záznamy nesú review_by a pracovné čítania publication.blob_hash, revíziu obsahu jednotlivého záznamu. Pozri Údržba znalostí.

Aplikácie môžu používať spoločný engine znalostí cez aplikačné API: verzované JSON CLI a štruktúrované MCP, dotazy na nakonfigurované úložisko, platnosť podľa ciest, extrakciu bez zápisu, idempotentný staging návrhov a commitnuté exporty overené voči review refu. Existujúce príkazy pre ľudí a nástroje pre agentov zostávajú kompatibilné.

Migrácia. V .ai/ netreba nič meniť. Čo si môže všimnúť skript alebo klient:

  • kontext search (text) už v metadátach výsledku nevypisuje accepted a podobný výsledok vypíše ako nečíslovaný riadok ↳ similar, differs: …; výsledky v --json môžu mať similar_to.
  • Riadky rozhodnutí v briefe môžu mať za titulkom značky, môže pribudnúť sekcia Changed since … a brief zapisuje malú cache (brief-head) do lokálneho stavu worktree pod .git/kontext/.
  • Poznámky z ctx_capture a kontext capture znejú related, check: … <kx:id> — <dôvod> namiesto similar existing entry: … — update it instead.
  • review_by (a review-by) sú teraz polia záznamu: ako kľúč v extra pri drafts.* sú odmietnuté ako rezervované; posielajte entry.review_by.
  • inbox.list môže vrátiť kandidátov druhu challenge; ako záznamy sa stagnúť nedajú (invalid_input).

0.2.1 (2026-10-03) ​

Agenti konajú podľa rozhodnutí, ktoré riadia zmenu. Vo vlákne testu dostal agent brief vložený na začiatku session, ktorý ukazuje len najnovšie rozhodnutia, a urobil zmenu, ktorá odporovala staršiemu. O konflikte sa dozvedel až pri commite, z jednoriadkového zhrnutia, v ktorom pravidlo chýbalo, a nič nezaznamenal. Teraz:

  • brief bez focusu povie, že ctx_brief s focus vypíše rozhodnutia, ktoré riadia menené cesty,
  • ctx_prepare_commit cituje pravidlo každého dotknutého rozhodnutia (odsek ## Decision) namiesto zhrnutia a povie, ako zaznamenať nahrádzajúce rozhodnutie a povýšiť ho do toho istého commitu.

Tá istá úloha potom skončila s nahrádzajúcim rozhodnutím v commite a trailerom Decision:.

0.2.0 (2026-10-03) ​

Migrácia: kontext hooks install --dir <dir> je teraz --hooks-dir <dir> (rovnako uninstall). --dir pomenúva repozitár, rovnako ako -C.

Znalosti v submoduloch a iných worktree. Session, ktorá začala v repozitári aplikácie, ale pracovala v submodule, v inom worktree alebo v susednom projekte, dostala od kontextu „not set up“ a jej zachytenia skončili v inboxe, z ktorého sa nedali povýšiť. Teraz rozhodujú cesty, ktorý repozitár odpovie, a každý nástroj prijíma dir. Pozri Viac repozitárov.

Súkromné poznámky sa dajú znova nájsť. Súkromné zachytenie v repozitári bez úložiska sa raz zapísalo a už nikdy neprečítalo, lebo vyhľadávanie inbox nepokrývalo. ctx_search teraz nájde poznámky v inboxe a brief uvedie tie, ktoré zodpovedajú jeho focusu.

Neaktuálne rozhodnutia sú označené. Rozhodnutie sa zapíše raz, ale jeho kód sa ďalej mení. Stav v briefe a kontext status vypíšu rozhodnutia, ktorých cesty od ich prijatia zasiahlo [freshness] threshold_commits (predvolene 20) commitov. Pozri Aktuálnosť.

Kratšie odpovede. Riadok rozhodnutia už neopakuje svoj titulok ako id: odkazy sú najkratšia jednoznačná predpona ([2026-09-28-adapters]), takže riadok je asi o 20 % kratší. ctx_threads zmení každú notifikáciu o úlohe na pozadí z Claude Code na jeden riadok. Vlákno, ktoré rozdeľovalo prácu, sa zmenšilo z 81 000 na 30 000 znakov a časť (predvolene 20 000 znakov) sa teraz zmestí do jedného výsledku nástroja.

Čerstvé klony. Klon od orchestrátora alebo z CI nemá git hooky. Brief to povie a ctx_prepare_commit už nesľubuje trailery, ktoré žiadny hook nepridá.

Codex sa riadi AGENTS.md, nie inštrukciami MCP servera. kontext connect agents-md --write patrí k jeho nastaveniu.

0.1.5 (2026-09-29) ​

Autopilot

  • llm-claude beží na subscription prihláseného účtu (ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN sa pre jeho volania zahodia), bez nástrojov, MCP serverov a s krátkym systémovým promptom (zhruba desatina tokenov na úlohu) a volania sa neukladajú ako sessions Claude Code. Nová premenná effort (predvolene high); časový limit 10 minút. Opus: kontext adapters add llm-claude --force --var model=claude-opus-5-5.

Init

  • kontext init --no-hooks sa zapamätá pre klon: neskoršie init či init --deepen z akéhokoľvek worktree už nenainštaluje hooky tam, kde ich niekto odmietol; kontext hooks install ich pridá.

0.1.4 (2026-09-29) ​

Citlivé vlákna

  • Prepisy vlákien (kontext distill, ctx_threads) a to, čo sa z nich vydestiluje, maskujú okrem tajných údajov aj e-mailové adresy, telefónne čísla, IBAN, čísla kariet a IP adresy; secrets.redact pridá tvoje vlastné vzory (meno klienta, id integrácie).
  • Model má pokyn písať roly namiesto mien ľudí a vynechať kontakty, záznamy, prístupové údaje a hosty; jeho záznamy sa znova zamaskujú.
  • Namerané na klientskom vlákne: 52 e-mailových adries, 2 telefónne čísla a 13 IP adries sa už nedostane k modelu a vydestilované záznamy nikoho nemenovali.

0.1.3 (2026-09-29) ​

Znalosti z vlákien agentov

  • kontext distill číta vlákna Claude Code a Codexu (všetky účty Claude, $CODEX_HOME), workspaces v Supersete (podľa id, názvu worktree, cesty alebo vetvy; samotné --superset znamená aktuálny) alebo akýkoľvek text a trvalé rozhodnutia, konvencie, úskalia a incidenty, ktoré v nich nájde LLM adaptér, zachytí do inboxu spolu s cestami, commitmi, origin: thread a vláknom ako zdrojom. Prepisy sa skrátia a zamaskujú, dlhé vlákna sa rozdelia na časti a porovnajú sa s tým, čo už je zapísané. Pozri Znalosti z vlákien agentov.
  • ctx_threads (len na čítanie) dá pripojeným agentom tie isté prepisy po častiach; prompt kontext-distill prevedie agenta spracovaním vlákna cez ctx_capture, ktorý teraz prijíma source a commits.
  • Vlákna workspace v Supersete, ktoré bežali v inom repozitári, sa preskočia a workspace iného repozitára sa odmietne.

0.1.2 (2026-09-29) ​

Z nasadenia kontextu do toho monorepa s pripojeným Claude Code a Codexom.

Zavádzanie

  • Volania LLM z autopilota sa už nedostanú k vlastnému MCP serveru kontextu a prompt žiada len JSON odpoveď: keď bol kontext pripojený ku Codexu, model každú úlohu zapísal sám cez ctx_init_submit a druhýkrát cez odpoveď, takže poznatky a rozhodnutia vznikali dvakrát (…-2). Preset llm-codex odovzdáva -c mcp_servers.kontext.enabled=false, llm-claude --strict-mcp-config. Presety žijú v tvojom configu: obnov ich cez kontext adapters add llm-codex --force (a llm-claude).
  • Kým beží kontext init --deepen, ctx_init_submit z iného procesu úlohy tohto behu odmietne.
  • Opakovane odovzdaná úloha nahradí vlastné skoršie poznatky a rozhodnutia namiesto pridávania kópií a záznamy, ktoré napísali ľudia, nechá na pokoji.
  • Vetva bez tímových znalostí sa dozvie, keď ich má iná vetva (bootstrap čakajúci na review): brief odporučí zlúčenie a ctx_init odmietne založiť druhé, konfliktné .ai/.
  • Záznamy vyťažené initom nedostanú trailery commitu: pochádzajú zo starších commitov uvedených v ich commits a bootstrap commit už nenesie desiatky riadkov Decision: / Learning:.

Agenti

  • Keď je kontext zaregistrovaný pre všetky repozitáre (user scope), tam, kde ho nikto nezaviedol, len číta: v repozitári bez úložiska znalostí to povedia MCP inštrukcie, ctx_capture odmietne tímové záznamy (súkromné poznámky fungujú ďalej), povýšenia sa odmietnu a ctx_init zavádza len s bootstrap=true (odovzdá ho prompt kontext-init).
  • Rozhodnutie alebo poznatok zachytený bez paths a povýšený so zmenou sa vzťahuje na súbory tej zmeny (konvencie zostávajú pre celý repozitár), takže ho ctx_why nájde pri kóde, ktorý vysvetľuje.
  • kontext connect codex zapisuje do $CODEX_HOME/config.toml, keď je CODEX_HOME nastavené (ako to robia obaly prepínajúce účty), v prípade potreby vytvorí adresár a zálohu spomenie, len keď ju naozaj vytvoril.

0.1.1 (2026-09-28) ​

Opravy z testu v praxi na monorepe s 74 modulmi (moon/Cargo), na ktorom paralelne pracujú agenti Claude Code a Codex.

Agenti

  • Codex už pri approval_policy = "never" neodmieta nástroje kontextu: každý nástroj nesie MCP anotácie (readOnlyHint, destructiveHint, title) a kontext connect codex --write pridá default_tools_approval_mode = "approve" (aj do existujúceho záznamu).
  • Paralelné worktree: ctx_prepare_commit, pripomienka v pre-commit hooku a brief ponúkajú len kandidátov z inboxu zachytených v aktuálnom worktree; kandidáti iného živého worktree sa vypíšu zvlášť („not for this commit“), kandidátov zmazaného worktree si môže prevziať ktokoľvek.
  • Brief vypíše každý AGENTS.md / CLAUDE.md medzi koreňom a zameranou cestou a zameranému modulu bez dokumentu modulu dá fakty zo skenu.
  • Prázdne hodnoty v zoznamových argumentoch (--paths a,, agentove [""]) sa zahodia, namiesto toho aby sa stali cestami, tagmi alebo nahradeniami záznamu.

Git

  • git commit --amend -m … zachová trailery Decision: / Convention: … (amend sa meria od rodiča HEAD); dostanú ich aj commity z git merge --squash.
  • Hooky čítajú stagnuté znalosti jedným git cat-file --batch a cesty záznamov porovnávajú bez opakovanej kompilácie globov: commit 44 súborov znalostí sa skrátil zo 4,2 s na 0,4 s.
  • Vyhľadávací index zabudne commity, ktoré z histórie vypadli (amend, rebase).

Zavádzanie

  • Hľadanie rozhodnutí rozpozná voľby formulované ako pravidlá („X, not Y“, „never“, „no longer“, „is gone“), viac slov zdôvodnenia a dlhé vysvetľujúce telá aj zakladajúci commit; keď prah prejde málo commitov, doplnia sa ďalšie najlepšie až do štvrtiny histórie. Malé zhluky sa pridajú k nadradenému modulu, veľké sa rozdelia na chronologické časti po najviac 8 commitoch; init.max_decision_tasks je predvolene 20. Z vyťažených správ sa odstránia trailery s autorstvom.
  • Popisy modulov sa v núdzi vezmú z dokumentačného komentára balíka (docstring v __init__.py, //! dokumentácia crate, doc.go); úvody README, ktoré končia uvádzacou vetou (…:), si zachovajú prvé vety.
  • Prehľad vymenuje moduly bez dokumentu a spočíta súbory s pravidlami pre agentov, ktoré nevypisuje.

Vyhľadávanie

  • Federované vyhľadávanie spája zdroje váženým recipročným poradím, takže stlačené skóre podobnosti adaptéra už nevytláča lokálne znalosti; kópie lokálnych záznamov z adaptéra (synchronizované …/<id>.md) splynú s lokálnym výsledkom.

Bezpečnosť

  • Tajné údaje zapísané vo vetách („the secret is …“, „rotate the token …“) sa zachytia, keď hodnota vyzerá náhodne; cesty a zástupné hodnoty zostanú nedotknuté.

0.1.0 (2026-09-28) ​

Prvé verejné vydanie.

Úložisko znalostí

  • Markdown záznamy (decision, convention, learning, incident, architecture) s plochým front matter alebo klasické ADR s poliami **Status:**; číslovanie podľa dátumu, sekvenčné alebo žiadne; nahrádzanie; validácia; generovaný .ai/README.md zlučovaný cez union.

Agenti

  • MCP server cez stdio: ctx_brief, ctx_search, ctx_read, ctx_why, ctx_log, ctx_capture, ctx_inbox, ctx_prepare_commit, ctx_init, ctx_init_submit; prompty kontext-init, kontext-commit, kontext-reflect; zdroje kontext://brief a kontext://entry/{id}.
  • kontext connect pre Claude Code (projektový .mcp.json, hook SessionStart), Codex, Cursor, OpenCode a AGENTS.md.

Zavedenie

  • kontext init: scan (jazyky, manifesty vrátane Nx a moon, stack, moduly a oblasti, závislosti, ADR, pravidlá pre agentov), history (signály rozhodnutí, výmeny závislostí, churn, konvencie), render, wire a protokol prehĺbenia pre agentov alebo LLM adaptér, ktorý sa dá prerušiť a obnoviť.

Vyhľadávanie

  • Tantivy BM25 nad záznamami, dokumentmi rozdelenými na sekcie a históriou commitov s rozkladaním identifikátorov; federované vyhľadávanie naprieč adaptérmi; ctx_why pre cesty, rozsahy riadkov, commity a symboly; časová os rozhodnutí.

Adaptéry

  • Generické drivery mcp (stdio a streamable HTTP), http a command; operácie, udalosti (capture, promote, sync), naväzovanie argumentov MCP zo schémy, mapovanie výsledkov (items, split, where, map s cestami, re:, tpl:, literálmi), federované a deklarované nástroje, podmienky when, dôvera pre adaptéry deklarované v repozitári.
  • Presety: OpenViking, CodeGraph, Serena, Agent LCM, sessions, LLM Claude/Codex/Ollama, Slack webhook.

Git

  • Hooky (validácia a skenovanie tajných údajov v pre-commit, trailery v prepare-commit-msg, synchronizácia v post-commit/merge/rewrite) inštalované popri existujúcich hookoch, core.hooksPath a husky; outbox s opakovaním; lokálny stav, ktorý pozná worktree.

Vydané pod licenciou MIT alebo Apache-2.0.