Skip to content

6.1.0

Choose a tag to compare

@eduardtomasek eduardtomasek released this 11 Sep 13:59
· 6 commits to main since this release
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)