Skip to content

Releases: eduardtomasek/agent-code-intel

6.2.0

Choose a tag to compare

@eduardtomasek eduardtomasek released this 14 Sep 14:36

Added

  • LICENSE — the project is now released under the MIT License. Free private
    and commercial use, modification and redistribution; the only condition is
    that the license text and the attribution stay with the copies you
    distribute. README has a "License" section and a badge for it.

Changed

  • README is now entirely in English and carries badges in its header (license,
    release, platform, Python, Node.js, MCP). The content, the commands and the
    error messages do not change, only the language of the text.
  • This changelog is now written in English, including all historical entries.
    Only the language changes, no record was added, removed or reworded in
    substance.

Fixed

  • --apply and its preview handle a CLAUDE.md that is a symlink to
    AGENTS.md (or the reverse). The shared file now gets the code-intel block
    once, the AGENTS.md variant, and preview reports keep instead of a
    rewrite on every run. Before, the block was replaced twice in the same file
    and the plan always showed REWRITE CLAUDE.md code-intel block.

6.1.0

Choose a tag to compare

@eduardtomasek eduardtomasek released this 11 Sep 13:59
cc98e44

Přidáno

  • code-intel-dash 1.5.0 umí projekt pozastavit a vyřadit, ne jen ukázat, že
    stojí. Stack, který hlídá projekty, na kterých už nikdo nepracuje, pálí CPU,
    disk i místo ve vektorové databázi zbytečně, a obě nápravy jsou po projektech.
    Každý projekt má dvě tlačítka:

    • Pause indexing / Resume indexing zastaví a znovu spustí GrepAI
      watcher daného workspace; index zůstává, jak je. Pozastavení si dashboard
      pamatuje v <conf>/dash-paused.json, takže pozastavený projekt je šedý se
      štítky config ok a watcher paused — ne červený s „opravou“ --refresh
      nebo --apply, která by pozastavení zrušila. agent-code-intel počítá
      zastavený watcher do ok projektu; u pozastaveného projektu proto
      dashboard čte nový seznam drift (níže) a config je v pořádku, když
      v něm je jen watcher. code-intel-dash --once kvůli pozastavení
      nevrací 2. Poznámka platí jen do chvíle, kdy watcher cokoli zapíše do
      svého logu: spustí-li ho mezitím --refresh nebo --apply, pozastavení
      skončilo, a když potom spadne, je to zase červená chyba.
    • Remove from code-intel… po potvrzení zastaví watcher a vyřadí projekt
      z registru — a nic víc. .grepai/, .gitnexus/, kolekce v qdrantu,
      routing skilly i blok v CLAUDE.md zůstávají, takže návrat nestojí
      reindex. Vyřazené projekty si dashboard pamatuje v <conf>/dash-retired
      a ukazuje je dole v sekci Removed from code-intel s tlačítkem
      Bring back; vrácený projekt má watcher dál pozastavený. Záměrně to
      není --remove, který tohle všechno maže: „přestaň hlídat hotový projekt"
      a „tohle už není code-intel projekt" jsou dvě různé věci.

    Zápisy jdou jen přes POST z vlastní stránky: server odmítne cizí Host
    (DNS rebinding), cizí Origin a požadavek bez hlavičky X-Code-Intel, na
    kterou by se cizí stránka musela ptát preflightem, jenž server nikdy
    nezodpoví. Registr, konfigurační adresář i workspace projektu bere
    z agent_code_intel, ne z vlastní implementace, a registr i seznam
    vyřazených přepisuje pod zámkem — dvě vyřazení dokončená naráz by jinak
    jeden projekt ztratila z obou seznamů. Verdikt o watcheru je jeho skutečný
    stav, ne návratový kód grepai watch --background, který po minutě čekání
    vrací 1, i když watcher běží.

    JSON dashboardu (--once, /api/status) má nové klíče: u projektu
    paused a config_ok, v kořeni retired (vyřazené projekty) a
    action_error (proč akce nejdou, když chybí balík agent_code_intel).
    --once rozhoduje podle config_ok místo ok.

    Verze 1.2.0 a 1.4.0 se v téhle řadě nevydaly — nesly rozpracovanou práci na
    otevřených issues. Dashboard tak jde z 1.1.0 na 1.3.0 a odtud na 1.5.0;
    s touhle číselnou řadou se počítá i dál. (#110)

  • --status --json má u každého projektu klíč drift: seznam kontrol, které
    selhaly, jménem (workspace, mapping, embedder, chunking, ignores,
    watcher, legacy_refresh_script, routing_skills,
    session_start_hook; u zkrácených řádků code_intel nebo exists).
    ok je přesně „seznam je prázdný". Kdo potřebuje verdikt bez jedné
    kontroly — dashboard u watcheru, který sám pozastavil — se zeptá seznamu a
    nemusí zbytek verdiktu odvozovat znovu. Klíč stojí těsně před ok; ostatní
    klíče ani jejich pořadí se nemění. (#110)

Změněno

  • Minimální verze Node.js je 24.11.0 a bere se z toho, co si žádá GitNexus,
    ne z hádání podle jedné funkce. Preflight dosud testoval přítomnost
    module.registerHooks, která přibyla v řadě 22.15 — gitnexus 1.6.11 ale
    deklaruje engines: ^22.18.0 || >=24.11.0, takže Node mezi 22.15 a 22.18
    kontrolou prošel, i když ho GitNexus nepodporuje. Z deklarovaného rozsahu
    bereme horní větev jako jedno minimum; je to o něco přísnější, než co GitNexus
    připouští, ale je to jedno číslo místo dvou rozsahů. Hláška teď říká
    node vX is below the 24.11.0 that gitnexus requires.
  • --status --json má u tool.node dva nové klíče: version_ok (proti čemu se
    rozhoduje) a version_min. register_hooks zůstává, protože pojmenovává
    přesný projev indexu postaveného pod starým Nodem. code-intel-dash svůj
    verdikt bere z version_ok.
  • README má v kapitole 10 referenční tabulku všech režimů, přepínačů
    a návratových kódů, ověřenou proti --help. Včetně toho, že
    --status --json vrací nulu i při rozpadu, protože stav se čte z klíče ok.
  • README uvádí minimum 24.11.0 v přehledu součástí, v seznamu požadavků, v tabulce
    tří úrovní závislostí, v kapitole 7 a v popisu dashboardu.
  • code-intel-dash ukazuje sekci Stack jako pět řádků pod sebou místo mřížky
    karet. Karty se lámaly podle šířky okna, takže MCP servery na běžném monitoru
    padaly samy na další řádek a stejné údaje byly u každé komponenty jinde —
    kdo hledal, co je špatně, musel číst kartu po kartě. Teď má každá komponenta
    vlevo stav a název, vpravo hodnoty v pěti sloupcích, které lícují napříč
    všemi řádky, a varování s opravou přímo pod nimi; řádek, který potřebuje
    pozornost, má i podbarvené pozadí. Nadpis Stack nese souhrn all ok, nebo
    N of 5 need attention — MCP bez běžícího serveru se nepočítá, protože je to
    běžný stav. Data, verdikty ani texty varování se nemění. (#108)
  • code-intel-dash má verzi 1.3.0. --install přepisuje dashboard jen
    tehdy, když se jeho verze liší od nainstalované, takže bez zvednutí by stroj
    s 1.1.0 nový vzhled Stacku z #108 nikdy nedostal — instalace by hlásila
    code-intel-dash 1.1.0 already installed a nechala starou kopii. Verze 1.2.0
    se přeskakuje: nese ji build z forku (pozastavení a odebrání projektu), který
    v tomto repozitáři není, a dva různé dashboardy se stejným číslem by
    instalátor nerozlišil. (#109)

Opraveno

  • Oprava konfigurace v přehledu projektu v code-intel-dash radila vždy
    agent-code-intel --path … --agent claude --apply. Od 6.0.0 --agent
    přebíjí a přepisuje agenty zaznamenané v .code-intel, takže u projektu
    zapojeného pro both by rada potichu přepnula projekt jen na Clauda. Rada
    teď uvádí přesně ty agenty, proti kterým --status řádek posuzoval (klíč
    agents). (#110)
  • Čtecí endpointy code-intel-dash byly otevřené stránce s DNS rebindingem:
    cizí web přesměrovaný na 127.0.0.1 je pro prohlížeč stejný původ, takže
    mohl číst report, spouštět hledání a číst vrácené úryvky kódu. Kontrola
    hlavičky Host, dosud jen u zápisů, teď platí pro každý požadavek. Dál:
    /api/files čte index z qdrantu, jak ho nahlásil agent-code-intel, a
    parametr url z požadavku ignoruje (dřív šlo jeho přes něj poslat POST na
    libovolnou adresu); ws u čtecích endpointů musí být platné jméno
    workspace; a dotaz pro grepai search jde za --, takže text začínající
    pomlčkou není přepínač. (#110)

Testy

  • test/unit/test_dash.py je první sada pro samotný dashboard: pozastavení
    a jeho poznámka (včetně dvou pozastavení naráz a watcheru, který po restartu
    spadne), vyřazení a návrat nad skutečným registrem v dočasném stromu včetně
    dvanácti vyřazení dokončených naráz, verdikt --once, a brány před zápisy
    i čtením proti skutečnému serveru na loopbacku. GrepAI je v nich falešný
    watcher v paměti a konfigurace míří do dočasného stromu; na skutečný
    registr ani watcher testy nedosáhnou. DriftContractTest ověřuje
    config_ok proti skutečnému --status --json. (#110)

agent-code-intel 6.0.0

Choose a tag to compare

@eduardtomasek eduardtomasek released this 10 Sep 20:08
eaa16ec

.code-intel si pamatuje, pro které agenty byl projekt zapojený. Hlavní
verze se zvedá kvůli schématu toho souboru, ne kvůli rozsahu změn.

Funkci přinesl @Hessevalentino v #102.

Co to řeší

--agent bylo jediné místo, které umělo odpovědět „které agenty tenhle projekt
používá", takže se to muselo říkat při každém běhu. Projekt zapojený jen pro
Clauda hlásil bez --agent claude drift na chybějícím Codex routing skillu
a Codex hooku:

$ agent-code-intel --status --all
              codex routing skill is missing at .agents/skills/agent-code-intel-routing/SKILL.md
              codex SessionStart hook is missing at .codex/hooks.json
  DRIFT     ai-hand  /Users/…/AI-hand

Červená, kterou nešlo uklidit ničím jiným než instalací agenta, který uživatele
nezajímá. A --status --all na to nemohl odpovědět vůbec, když na jednom stroji
leží projekt pro Clauda vedle projektu pro oba.

Co se změnilo

--apply volbu zapíše do projektu:

SCHEMA=2
WORKSPACE=muj-projekt
PROJECT=muj-projekt
AGENTS=claude

--status, --refresh i --remove ji pak čtou zpět, takže každý projekt se
posuzuje, obnovuje a odstraňuje proti tomu, pro co byl skutečně zapojený.
--status --all to řeší pro každý řádek zvlášť.

Přednost má vždy --agent na příkazové řádce — a je to způsob, jak volbu
projektu změnit. Hlavička říká, odkud hodnota pochází:

Agents:    claude (from .code-intel)
Agents:    both (--agent)
Agents:    both (default)

⚠️ Nekompatibilita — jen jedním směrem

Starší projekty fungují dál. SCHEMA=1 se čte, --status u nich přidá
řádek .code-intel predates AGENTS, který není drift. Spuštění --apply
není povinné.

Opačný směr ne. Jakmile projekt projde --apply ze šestky, starší verze
nástroje jeho .code-intel odmítne s unsupported SCHEMA=2. Po downgradu je
potřeba --apply z té starší verze.

Držíš-li na jednom stroji dvě verze nástroje, aktualizuj obě.

JSON

--status --all --json má u každého projektu dva nové klíče: agents (proti
čemu se řádek posuzoval) a agents_recorded (co říká jeho vlastní soubor,
null u schématu 1). Ostatní klíče, jejich pořadí ani typy se nemění a
meta.schema zůstává 1, takže code-intel-dash to neovlivní.

Ověření

333 unit testů (302 v 5.1.0) a 53 black-box scénářů. Chování bylo
před mergem ověřené naživo, ne jen přečtené z popisu:

  • claude-only projekt bez --agent — žádné codex řádky, claude (from .code-intel)
  • SCHEMA=1 projekt — čte se, non-drift řádek
  • druhý --apply se stejným agentem — soubor bajtově shodný
  • --agent both — přepíše AGENTS a doinstaluje codex artefakty
  • --status --all — tři projekty, každý posouzený proti svému záznamu
  • --remove bez flagu — řídí se záznamem a uklidí všechno

Součástí je i oprava neuzavřeného file handle na .grepai/config.yaml.

Upgrade z 5.x

cd ~/src/agent-code-intel
git pull --ff-only
python3 ./agent-code-intel --install
agent-code-intel --install-deps
cd /cesta/k/projektu
agent-code-intel --agent both --apply     # nebo --agent claude / --agent codex

Podrobně v README, sekce Aktualizace na 6.0.0.

agent-code-intel 5.1.0

Choose a tag to compare

@eduardtomasek eduardtomasek released this 10 Sep 18:57
1d29a8f

Drobné vydání navazující na 5.0.0. Dvě opravy, obě našel vlastní audit vydané
pětky.

Preflight pozná BSD ctags od Universal Ctags (#99)

Přítomnost byla u tohohle jednoho nástroje špatná otázka. macOS má
/usr/bin/ctags na každém stroji
, takže Mac bez universal-ctags
z Homebrew dostával zelené ok ctags on PATH — zatímco příkaz, který
předepisuje skill code-context i SessionStart hook, nemohl fungovat
vůbec: BSD ctags neumí --_xformat ani %{end}.

před po
preflight / --status ok ctags on PATH warn s vlastní příčinou, odlišený od chybějícího ctags
--install-deps nic nechybí universal-ctags se skutečně dostane na brew install

Stack.ctags_is_universal() kontroluje version banner, ne cestu, takže
Universal Ctags nainstalovaný kdekoliv se počítá.

ctags zůstává doporučený nástroj s ověřeným fallbackem na ast-grep,
ne povinná závislost — rozhodnutí R3 z #80 se nemění.

--apply ignoruje .DS_Store (#98)

.DS_Store přibyl vedle .grepai/ a .gitnexus/, takže ho --apply zapíše
do .gitignore každému projektu, který nástroj zapojí.

Přidávání je jen doplňující: ručně udržovaný .gitignore si zachová své
pořadí i obsah, a projekt, který .DS_Store už ignoruje, nedostane nic.
Projekty zapojené starší verzí to do prvního --apply hlásí jako drift
.gitignore += …; vypnout to lze přes gitignore_entries v defaults.toml.

Z repozitáře zmizel docs/.DS_Store, commitnutý omylem v e87a298.

Ověření

  • ./test/unit.sh 302/302 (8 nových testů), ./test/run.sh 53/53,
    git diff --check čistý.
  • Oba stavy ctags ověřené naživo proti skutečné systémové binárce:
    s PATH=/usr/bin:/bin přijde warn … not Universal Ctags a
    universal-ctags na brew install řádce; s normálním PATH dál
    ok ctags on PATH.
  • Testy sondy kladou na reálný PATH reálný soubor jménem ctags a fakeují
    jen výstup --version, takže nezávisí na tom, co má běžící stroj
    nainstalováno.

Co se vědomě nemění

--status --json pořád hlásí present jako přítomnost v PATH. Přidat tam
pole o schopnosti znamená zvednout meta.schema z "1" a upravit
code-intel-dash — samostatné rozhodnutí.

Upgrade z 5.0.0

agent-code-intel --install
agent-code-intel --apply      # v každém projektu, ať .gitignore dostane .DS_Store

Žádná breaking změna; --apply není nutný, dokud ti drift v .gitignore
nevadí.

agent-code-intel 5.0.0

Choose a tag to compare

@eduardtomasek eduardtomasek released this 10 Sep 18:01
0c5edde

Vydání vlastního code-context řetězce pro Claude a Codex: spravované skilly,
repo-lokální SessionStart hooky a kontrola doporučených nástrojů.

Plný záznam rozhodnutí, měření a oprav vlastních závěrů je v issue #80.

Proč tohle vydání existuje

Zadání znělo posoudit, jestli vedle GrepAI a GitNexusu přidat Graft. Nepřidává se — každý jeho příkaz má levnější náhradu bez závislosti. Měření ale odhalilo něco jiného: agent hádal okna řádků a 6 z 9 čtení bylo hádané okno, jedno useklo cílovou funkci a závěr o jejím chování byl vzat z docstringu.

Problém nebyl chybějící nástroj, ale chybějící návyk — a ten nedodá skill, protože se nevyvolá. Dodá ho hook:

Konfigurace Odvozený přesný rozsah
bez čehokoli 1/9 = 11 %
skill nainstalovaný, v zadání nezmíněný 0/6 = 0 %
hook, skill nezmíněný 3/3 = 100 %

Breaking

  • --apply nově zapisuje nástrojem vlastněné repo-lokální SessionStart hooky
    a druhý skill code-context; pro projekty, které si hooky spravují samy,
    je k dispozici --no-hook.

Přidáno

  • Samostatný režim --install-deps, který kontroluje devět nástrojů a na
    macOS po potvrzení nabídne instalaci dostupných Homebrew balíčků.
  • SessionStart hook pro Claude i Codex a tři podmínky aktivace Codex hooku
    zdokumentované v README.
  • code-context jako druhý byte-identický, spravovaný skill pro oba agenty;
    status, refresh a remove rozlišují jeho stav a vlastnictví.

Změněno

  • ctags a rg jsou v preflightu doporučené nástroje s fallbackem; chybějící
    ast-grep, fd, rga, tokei a scc se hlásí jako doporučení.
  • README uvádí ověřené jazyky, postup pro neověřené jazyky a rozšířené volby
    --no-hook a --no-install-deps.

Testy

  • 292 unit testů a 53 hermetických black-box scénářů.

  • Behaviorální měření code-context řetězce splnilo práh 80 %: tři ze tří
    čtecích operací ve fresh relaci použily odvozený rozsah nebo celý malý
    soubor po ověření jeho velikosti.

  • Acceptance report zachycuje živé ověření všech
    projektových režimů pro claude, codex i both na čistých projektech a
    samostatnou kontrolu --install-deps.

  • README přepsán na kratší podobu: zkrácený titul, sjednocené číslování obsahu
    a nový hero obrázek (hero.jpg).

Odstraněno

  • Zmrazený Bash reference harness, diferenční scénáře a jeho shellové helpery.
    Aktivní Pythonová testovací sada zůstává; fixture pro podporovanou migraci
    existujících refresh-intel.sh projektů je nyní malý Pythonový pomocník.
  • Sdílený test/lib/isolated_path.sh resolver interpretu; test/unit.sh teď
    bere Python 3.11 přímo a ACI_PYTHON volí doplňkový interpret explicitně.

Opraveno

  • .code-intel s mezerou v hodnotě je nyní čitelný zpět. --apply zapisuje
    PROJECT jako holý basename adresáře bez uvozovek, ale _LINE_RE vyžadovalo
    \S+, takže projekt v adresáři jako CS Imager (test) skončil při každém
    dalším --status a --refresh chybou malformed line. Hodnota se rozšířila
    na .+; validace klíčů (malé písmeno, řádek bez =, prázdná hodnota) se
    nemění.

Ověření před vydáním

  • ./test/unit.sh — 292/292; ./test/run.sh — 53/53.
  • --apply / --status --json / --refresh / --remove --apply na čistých projektech pro claude, codex i both — všechno exit 0, nic mimo repozitář.
  • Codex SessionStart hook ověřen koncem ke konci na codex-cli 0.154.0.
  • Behaviorální brána v nezávislém měření na Codexu: 16/16 čtecích operací byl cílený dotaz nebo odvozený rozsah, žádné čtení celého zdrojového souboru a žádné hádané okno.

Celý report: #80 (comment)

Instalace

agent-code-intel --install
agent-code-intel --install-deps
agent-code-intel --agent both --apply

Codex: samotný .codex/hooks.json nestačí — musí být [features] hooks = true v ~/.codex/config.toml, projektová vrstva .codex/ musí být důvěryhodná a hook schválený přes /hooks. Podrobně v README.

Upgrade z 4.x: viz sekce „Aktualizace na 5.0.0" v README.

agent-code-intel 4.1.0

Choose a tag to compare

@eduardtomasek eduardtomasek released this 09 Sep 11:42

4.1.0 přidává spravovaný skill agent-code-intel-routing pro Claude i Codex. Skill volí GrepAI pro sémantické hledání, GitNexus pro vztahy a dopady a volitelný ripgrep pro přesné dotazy a ověření. --apply respektuje --agent claude|codex|both a byte-identickou kopii nemění.\n\nREADME nově obsahuje quickstart od instalace závislostí přes inicializaci projektu, postup aktualizace a popis volitelného ripgrep (rg). --install zároveň instaluje dashboard podle jeho vlastní verze.\n\nOvěřeno: 260 unit testů, 53 hermetických scénářů, 53 referenčních scénářů a úspěšný refresh obou indexů.

agent-code-intel 4.0.0

Choose a tag to compare

@eduardtomasek eduardtomasek released this 09 Sep 10:00

Stable 4.0.0 Python release. CLI requires Python 3.11 or newer; includes the standalone launcher, TOML configuration, status/refresh/apply/remove/install workflows, and the approved acceptance evidence. Full release notes: CHANGELOG.md. code-intel-dash remains at 1.1.0 and is not part of this release.

3.0.0

Choose a tag to compare

@eduardtomasek eduardtomasek released this 08 Sep 08:46
221d682

Sloučení refresh-intel.sh do agent-code-intel --refresh — celá wayfinder
mapa #2, řezy
#11–#20.

Breaking

  • Nástroj přejmenován z code-intel-init na agent-code-intel. --install
    starou binárku v ~/.local/bin/ smaže; žádný compat symlink na staré jméno
    (#11).
  • refresh-intel.sh se už negeneruje ani nepoužívá. Existující repozitáře se
    zmigrují automaticky při prvním --apply po aktualizaci — nedotčená
    vygenerovaná kopie se smaže, ručně upravená se nikdy nesmaže, jen nahlásí a
    ponechá (#16).
  • --force-script odstraněn (#17).
  • --status --all --json už nevrací klíč project.N.script_state (#17).
  • Pravidlo v ~/.claude/settings.json se změnilo z projektově-relativního
    Bash(./refresh-intel.sh) na globální Bash(agent-code-intel --refresh);
    --install staré pravidlo automaticky odstraní (#15).

Přidáno

  • Nový režim --refresh: přeindexuje GitNexus, nastartuje GrepAI hlídač,
    pokud neběží, a zaudituje oba. Návratové kódy sjednoceny: 0 ok, 1 nešlo
    spustit, 2 drift (#14).
  • Soubor .code-intel nese identitu repozitáře (WORKSPACE, PROJECT)
    přímo ve verzovaném repu. --apply ho zakládá (#13); nástroj ho čte a
    upřednostňuje před odvozením z basename i před registrem (#12).
  • Automatická migrace nezmigrovaných repozitářů zabudovaná přímo do --apply
    — žádný samostatný přepínač (#16).

Změněno

  • Blok pro AI agenty v CLAUDE.md/AGENTS.md mluví o chybějícím příkazu
    agent-code-intel, ne o selhaném skriptu; plné vysvětlení "proč selhání
    nevadí" se přestěhovalo do --help (#18).
  • README.md kompletně sladěn s novou realitou — nové jméno binárky všude,
    refresh-intel.sh nahrazeno --refresh, doplněna poznámka o nutném
    přeinstalování code-intel-dash (#19).
  • code-intel-dash (→ 1.1.0): opraven, aby uměl najít přejmenovanou binárku
    — od #11 ji vůbec nedokázal najít, dokud to tenhle řez nespravil — a
    přestal číst zrušený klíč script_state (#17).

Odstraněno

  • Generátor refresh-intel.sh (render_refresh(), ~310řádková šablona)
    (#17).

Testy

  • Sada testů rozšířena z 13 na 53, hermeticky, bez závislosti na skutečném
    stacku. Formálně zdokumentováno, že happy path --apply zůstává ověřován
    ručně na živém stacku, ne stuby — přehledně na jednom místě v
    test/run.sh (#20).