Skip to content

Development (RU)

Baidak.D edited this page Jul 11, 2026 · 1 revision

English · Русский

Доработка familiar

Homebrew-сборка — для повседневной работы. Чтобы доработать familiar, склонируй репозиторий и переключи конфиг на клон, а по завершении верни релизную сборку — всё на рабочем ~/.config/kitty:

brew install denoby/familiar/familiar
familiar enable --all          # обычное использование — релизная сборка

git clone https://github.com/DenoBY/familiar && cd familiar
./bin/familiar enable --all    # переключить боевой конфиг на этот клон
# правишь plugins/**, reload kitty (Cmd+Ctrl+,) — изменения видны

familiar enable --all          # вернуться на Homebrew-сборку

И familiar из brew, и ./bin/familiar из репо пишут один и тот же ~/.config/kitty/familiar.conf, поэтому переключение — это просто запуск другого, без дублей и без уборки. familiar запекает абсолютные пути от места запуска: brew-сборка → /opt/homebrew/opt/familiar/libexec, клон → твоя папка. familiar status печатает wired root: — установку, которую kitty реально исполняет — рядом с app root: вызванной копии и предупреждает, если они разошлись; familiar disable убирает полностью.

Тесты

unittest из стандартной библиотеки, без внешних зависимостей, гоняются вне kitty:

python3 -m unittest discover -s tests -t tests

Что покрыто — в tests/README.ru.md в репозитории. Стиль проверяет ruff check . (настроен в pyproject.toml).

Демо-стенд

Все скриншоты этой wiki сняты на воспроизводимом демо-стенде: сгенерированный git-репозиторий с фотогеничной историей и незакоммиченными правками (для review и log) плюс фейковое хранилище Claude Code с живыми сессиями и богатым транскриптом (для session). Когда UI меняется — стенд пересобирается и скрины переснимаются:

python3 tools/demo_stand.py --dir /tmp/familiar-demo    # --wipe для пересоздания

Дальше запускается отдельный инстанс kitty, нацеленный на фейковое хранилище:

CLAUDE_CONFIG_DIR=/tmp/familiar-demo/claude \
  /Applications/kitty.app/Contents/MacOS/kitty --detach --directory /tmp/familiar-demo/repo

(Переменная должна попасть в окружение процесса kitty — киты наследуют её оттуда. Запуск из шелла — простейший способ; строка env в kitty.conf тоже работает, но требует полного перезапуска и правит боевой конфиг.)

В этом окне:

  • Cmd+Shift+Ssession: три проекта; у проекта repo есть живые сессии busy и waiting, фоновый агент , сессия с custom-заголовком и богатый транскрипт («Fix sunset rounding bug») для превью.
  • Cmd+Shift+Rreview: в дереве все статусы (staged utils.py, modified core.py / test_core.py, renamed app.py, untracked notify.py); в диффе core.py — word-diff (int(raw_minutes)round(raw_minutes)) и символы для go-to-definition (normalize_degrees, minutes_to_time определены в utils.py).
  • Cmd+Shift+Llog: ~18 коммитов, merge --no-ff ветки feature/moon-phase и незасли́тая feature/timezones (a — все ветки, i — панель подробностей).

Clone this wiki locally