Repository navigation
Releases: eduardtomasek/agent-code-intel
Release list
6.2.0
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
--applyand its preview handle aCLAUDE.mdthat is a symlink to
AGENTS.md(or the reverse). The shared file now gets the code-intel block
once, theAGENTS.mdvariant, and preview reportskeepinstead of a
rewrite on every run. Before, the block was replaced twice in the same file
and the plan always showedREWRITE CLAUDE.md code-intel block.
6.1.0
Přidáno
-
code-intel-dash1.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ítkyconfig okawatcher paused— ne červený s „opravou“--refresh
nebo--apply, která by pozastavení zrušila.agent-code-intelpočítá
zastavený watcher dookprojektu; u pozastaveného projektu proto
dashboard čte nový seznamdrift(níže) a config je v pořádku, když
v něm je jenwatcher.code-intel-dash --oncekvů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--refreshnebo--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 vCLAUDE.mdzů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
POSTz vlastní stránky: server odmítne cizíHost
(DNS rebinding), cizíOrigina požadavek bez hlavičkyX-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
zagent_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ódgrepai watch --background, který po minutě čekání
vrací 1, i když watcher běží.JSON dashboardu (
--once,/api/status) má nové klíče: u projektu
pausedaconfig_ok, v kořeniretired(vyřazené projekty) a
action_error(proč akce nejdou, když chybí balíkagent_code_intel).
--oncerozhoduje podleconfig_okmístook.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) - Pause indexing / Resume indexing zastaví a znovu spustí GrepAI
-
--status --jsonmá 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_intelneboexists).
okje 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ředok; 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
deklarujeengines: ^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 --jsonmá utool.nodedva nové klíče:version_ok(proti čemu se
rozhoduje) aversion_min.register_hookszůstává, protože pojmenovává
přesný projev indexu postaveného pod starým Nodem.code-intel-dashsvůj
verdikt bere zversion_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 --jsonvrací nulu i při rozpadu, protože stav se čte z klíčeok. - 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-dashukazuje 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 souhrnall 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-dashmá verzi 1.3.0.--installpř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 installeda 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-dashradila 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 probothby 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-dashbyly 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čkyHost, dosud jen u zápisů, teď platí pro každý požadavek. Dál:
/api/filesčte index z qdrantu, jak ho nahlásilagent-code-intel, a
parametrurlz požadavku ignoruje (dřív šlo jeho přes něj poslat POST na
libovolnou adresu);wsu čtecích endpointů musí být platné jméno
workspace; a dotaz progrepai searchjde za--, takže text začínající
pomlčkou není přepínač. (#110)
Testy
test/unit/test_dash.pyje 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.DriftContractTestověřuje
config_okproti skutečnému--status --json. (#110)
agent-code-intel 6.0.0
.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=1projekt — čte se, non-drift řádek- druhý
--applyse stejným agentem — soubor bajtově shodný --agent both— přepíšeAGENTSa doinstaluje codex artefakty--status --all— tři projekty, každý posouzený proti svému záznamu--removebez 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 codexPodrobně v README, sekce Aktualizace na 6.0.0.
agent-code-intel 5.1.0
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.sh302/302 (8 nových testů),./test/run.sh53/53,
git diff --checkčistý.- Oba stavy
ctagsověřené naživo proti skutečné systémové binárce:
sPATH=/usr/bin:/binpřijdewarn … not Universal Ctagsa
universal-ctagsnabrew 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
ctagsa 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
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
--applynově zapisuje nástrojem vlastněné repo-lokálníSessionStarthooky
a druhý skillcode-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ů. SessionStarthook pro Claude i Codex a tři podmínky aktivace Codex hooku
zdokumentované v README.code-contextjako druhý byte-identický, spravovaný skill pro oba agenty;
status, refresh a remove rozlišují jeho stav a vlastnictví.
Změněno
ctagsargjsou v preflightu doporučené nástroje s fallbackem; chybějící
ast-grep,fd,rga,tokeiasccse hlásí jako doporučení.- README uvádí ověřené jazyky, postup pro neověřené jazyky a rozšířené volby
--no-hooka--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ů proclaude,codexibothna č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íchrefresh-intel.shprojektů je nyní malý Pythonový pomocník. - Sdílený
test/lib/isolated_path.shresolver interpretu;test/unit.shteď
bere Python 3.11 přímo aACI_PYTHONvolí doplňkový interpret explicitně.
Opraveno
.code-intels mezerou v hodnotě je nyní čitelný zpět.--applyzapisuje
PROJECTjako holý basename adresáře bez uvozovek, ale_LINE_REvyžadovalo
\S+, takže projekt v adresáři jakoCS Imager (test)skončil při každém
dalším--statusa--refreshchyboumalformed 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 --applyna čistých projektech proclaude,codexiboth— všechno exit 0, nic mimo repozitář.- Codex
SessionStarthook ověřen koncem ke konci nacodex-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 --applyCodex: 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
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
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
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-initnaagent-code-intel.--install
starou binárku v~/.local/bin/smaže; žádný compat symlink na staré jméno
(#11). refresh-intel.shse už negeneruje ani nepoužívá. Existující repozitáře se
zmigrují automaticky při prvním--applypo aktualizaci — nedotčená
vygenerovaná kopie se smaže, ručně upravená se nikdy nesmaže, jen nahlásí a
ponechá (#16).--force-scriptodstraněn (#17).--status --all --jsonuž nevrací klíčproject.N.script_state(#17).- Pravidlo v
~/.claude/settings.jsonse změnilo z projektově-relativního
Bash(./refresh-intel.sh)na globálníBash(agent-code-intel --refresh);
--installstaré 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:0ok,1nešlo
spustit,2drift (#14). - Soubor
.code-intelnese identitu repozitáře (WORKSPACE,PROJECT)
přímo ve verzovaném repu.--applyho zakládá (#13); nástroj ho čte a
upřednostňuje před odvozením zbasenamei 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.mdmluví 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.mdkompletně sladěn s novou realitou — nové jméno binárky všude,
refresh-intel.shnahrazeno--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--applyzůstává ověřován
ručně na živém stacku, ne stuby — přehledně na jednom místě v
test/run.sh(#20).