No description
Find a file
mikproskuryakov f2d5ad10ef
Some checks failed
ci / lint (push) Successful in 50s
ci / test (push) Successful in 1m6s
deploy / deploy (push) Failing after 24s
feat(desktop): прогресс-дашборд грид + mastery% в заголовках секций (ref VERTA-2198)
Дашборд .dashboard flex→grid auto-fit — 5 карточек не обрезаются в узком окне.
Эмодзи 🔥/ убраны; level-summary/focus-now/levelup-distance удалены как шум;
mastery% зашит в заголовок секции топиков (group-pct-<cefr>). Мёртвые импорты
weakRuleCandidates/levelUpProgress и CSS-классы сняты. Absorb /verta:prototype.
2026-07-05 15:00:27 +03:00
.claude/skills feat(desktop): e2e key-op — drive-agent жмёт клавиши, drill-цикл клавиатурой против живого kairo dev (VERTA-1980) 2026-07-02 03:00:01 +03:00
.forgejo/workflows feat(kairo-api): verta id auth, openrouter provider, protected echo 2026-06-29 19:38:16 +03:00
assets feat(desktop): dock-иконка в рантайме + брендинг иконки приложения 2026-07-01 02:42:25 +03:00
cmd/kairo-api chore(api): harden repair path — eof check, write-error logs, fence case, prompt conflict (ref VERTA-2034) 2026-07-02 14:53:14 +03:00
deploy feat(kairo-api): verta id auth, openrouter provider, protected echo 2026-06-29 19:38:16 +03:00
desktop feat(desktop): прогресс-дашборд грид + mastery% в заголовках секций (ref VERTA-2198) 2026-07-05 15:00:27 +03:00
docs feat(desktop): прогресс-дашборд грид + mastery% в заголовках секций (ref VERTA-2198) 2026-07-05 15:00:27 +03:00
harness chore(api): reasoning-cap эксперимент c2/c5 — гипотеза опровергнута, cap откачен (ref VERTA-2076) 2026-07-02 16:54:10 +03:00
internal fix(kairo-api): ≤1 target_lexis на дрилл + naturalness — C1 без склейки фактов (ref VERTA-2109) 2026-07-03 00:07:51 +03:00
third_party/verta feat(kairo-api): verta id auth, openrouter provider, protected echo 2026-06-29 19:38:16 +03:00
.gitignore feat(desktop): захват JS/React-ошибок дев-сборки в repo-local лог (VERTA-1875) 2026-07-01 01:23:50 +03:00
AGENTS.md docs: add agent contract (CLAUDE.md + AGENTS.md symlink) 2026-06-29 16:18:14 +03:00
CLAUDE.md chore(desktop): расщепить run-local на run-local-desktop + run-local-api (VERTA-1876) 2026-07-01 01:24:00 +03:00
go.mod feat(kairo-api): verta id auth, openrouter provider, protected echo 2026-06-29 19:38:16 +03:00
README.md chore(api): латентность-метрики llm-вызовов (ref VERTA-2071) 2026-07-02 16:24:09 +03:00
vertaship.yaml chore: bring up kairo — provisioning, docs, vertaship manifest, api stub 2026-06-29 16:14:11 +03:00

Kairo

Desktop English trainer — заставляет производить язык (ru→en), а не смотреть переводы. ru→en грамма-дрилл с targeted sentence-transformation, error-driven приоритет, свой FSRS, словарик с контекстом, перевод выделенного в любом приложении. Под программиста-релоканта и любой уровень (curriculum для A1A2, error-driven для B1+).

Документы-нарратив:

  • Что и зачемdocs/prd.md (living PRD).
  • Как устроеноdocs/design.md (Профиль / Архитектура / Интеграции / Риски).

Форма

  • desktop/ — Tauri 2 (Rust boundary + React/Vite + SQLite), local-first. Каркас копируется из iskra (selection/paste/hotkey/overlay/secrets/db/тема).
  • cmd/kairo-api/ — Go LLM-прокси: Verta ID-auth, промпт-контракты C1C5, OpenRouter (ключи в Infisical). Доставка через Vertaship.

Профиль: inside-infra (Verta ID, Vertaship, Forgejo CI, Infisical). Бюджет MVP ~100ч.

Статус

Bring-up: репо + инфра провижинены через /verta:init. kairo-api — пока healthz-заглушка; продуктовая логика нарезается в Linear (/linear:plan).

LLM-метрики kairo-api (как читать)

Каждый LLM-вызов strict-контрактов (C1/C2/C5) пишет лог-запись llm call (VERTA-2071): contract, model, duration_ms, repair (bool — это repair-retry), prompt_bytes, completion_tokens. Читать по прод-логам:

vobs logs kairo-api | grep '"msg":"llm call"'
# медиана duration_ms по C2: фильтр '"contract":"C2"' → поле duration_ms
# доля repair: записи с '"repair":true' / все записи контракта