Настройки автора Git
Engram хранит профиль автора, чтобы авторство памяти было явным и переносимым. Разрешённое имя записывается в frontmatter будущих воспоминаний (адрес электронной почты — только если memory.include_author_email равно true), а полная личность передаётся коммитам Git, создаваемым Engram, через переменные окружения уровня процесса. Конфигурация Git репозитория не изменяется.
Настройки автора влияют только на будущие воспоминания. Существующие воспоминания изменяются только явной командой миграции.
Глобальный автор
Задайте личность Engram по умолчанию для всех рабочих пространств:
engram author set --name "Jane Doe" --email "jane@example.com"
engram author show
engram author --help
engram author set --help
Новые файлы памяти записывают только author_name. Адрес электронной почты остаётся в вашем профиле автора и в коммитах Git, поэтому он не попадает в файлы памяти, находящиеся под контролем версий. Чтобы записывать и его, включите опциональный ключ memory.include_author_email (по умолчанию false):
engram config set memory.include_author_email true
author_name: Jane Doe
author_email: jane@example.com # opt-in: only with memory.include_author_email: true
Обновление существующего воспоминания перезаписывает его поля автора, поэтому устаревший author_email удаляется при следующем обновлении, если опция не включена.
Устаревший author: jane@example.com остаётся читаемым, но новые воспоминания его не записывают.
Переопределение для рабочего пространства
Рабочее пространство может переопределить глобальный профиль Engram, не затрагивая другие рабочие пространства:
engram author set --scope workspace --name "Workspace Jane" --email "jane@work.com"
engram author show --scope workspace
Переопределение для рабочего пространства никогда не меняет глобальную конфигурацию Git. Оно хранится в рабочем пространстве и используется только для воспоминаний и коммитов, создаваемых Engram, в этом рабочем пространстве.
Порядок разрешения
Engram определяет личность в таком порядке:
- Автор Engram рабочего пространства.
- Глобальный автор Engram.
- Резервный вариант только для чтения: действующие Git
user.nameиuser.email. - Не определён.
engram author show
engram author show --json
engram author show --help
Перед записью памяти требуются полные корректные имя и адрес электронной почты. Коммиты, создаваемые Engram, получают GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, GIT_COMMITTER_NAME и GIT_COMMITTER_EMAIL; локальная и глобальная конфигурация Git остаются без изменений.
В Entry после разрешённого имени показывается компактный значок источника: WORKSPACE для переопределения рабочего пространства, GLOBAL для глобального профиля Engram, GIT для резервного варианта из Git и UNRESOLVED, если полной личности нет.
Удаление профиля автора
engram author unset --scope workspace
engram author unset --scope global
engram author unset --help
Web UI запрашивает подтверждение. CLI удаляет профиль сразу после явной команды unset. После удаления активным становится следующий источник в порядке разрешения.
Глобальная конфигурация Git
Entry показывает существующие Git-настройки глобальной памяти только на вкладке Global в разделе Settings → Git. Они продолжают использовать общий конфигурационный бэкенд; перенос элементов управления не создаёт второго хранилища конфигурации Git.
На вкладке Global можно редактировать global_git.enabled, global_git.remote, global_git.remote_url, global_git.branch, global_git.auto_sync и global_git.auto_resolve. Эти поля рискованны, поэтому Entry проверяет изменение, показывает точные изменённые ключи и требует проверки перед сохранением. Вкладка Workspace никогда не отображает эти глобальные элементы управления.
Синхронизация с глобальным Git
В глобальную конфигурацию Git можно скопировать только глобальный профиль Engram. Сначала предпросмотр, затем явное подтверждение:
engram author sync-git-global --plan
engram author sync-git-global --confirm
engram author sync-git-global --help
Подтверждённая операция записывает git config --global user.name и git config --global user.email, проверяет оба значения и восстанавливает точные прежние значения, если запись или проверка любого из них не удалась. Профиль рабочего пространства никогда не допускается к этой операции.
Миграция существующих воспоминаний
Дозаполните author_name (и author_email — только если memory.include_author_email равно true), когда доступна полная детерминированная личность:
engram author migrate-memories --plan
engram author migrate-memories --scope workspace --confirm
engram author migrate-memories --scope both --confirm
engram author migrate-memories --help
Миграция сохраняет тело Markdown, записывает резервную копию .pre-author-v3.bak в backups/author-v3/, пропускает архивы и некорректные файлы и идемпотентна. Она никогда не угадывает отсутствующее имя. Вывод предпросмотра перед любой записью перечисляет подходящие, актуальные, пропущенные и некорректные файлы.
Чтобы удалить адреса электронной почты, которые прежние выпуски уже записали в файлы памяти, используйте очистку. --strip-email по умолчанию только строит план и записывает лишь с --confirm; он сохраняет author_name, удаляет author_email и адреса в устаревшем author:, обновляет хеши и индексы и сохраняет оригинал в backups/author-strip-email-<date>/:
engram author migrate-memories --strip-email --scope both
engram author migrate-memories --strip-email --scope both --confirm
Воспоминания, записанные этим выпуском, содержат имя без адреса электронной почты, поэтому более старый Engram не сможет их индексировать; обновите Engram у всех коллег, прежде чем полагаться на воспоминания только с именем.
Entry Web UI
Откройте engram entry, затем выберите Settings → Git. Вкладки Global и Workspace показывают сохранённые профили, значок разрешённого источника, диалоги проверки перед сохранением и предпросмотр миграции памяти. Вкладка Global дополнительно содержит Global Git configuration и явный предпросмотр синхронизации с Git; на вкладке Workspace эти элементы скрыты. Каждая информационная кнопка открывает эту локализованную страницу в новой вкладке и показывает соответствующую команду CLI --help.
Конфиденциальность и устранение неполадок
Имена становятся долговременными метаданными в Markdown и истории Git; адреса электронной почты не попадают в файлы памяти, если вы не включили memory.include_author_email. Коммиты, создаваемые Engram, по-прежнему содержат ваш адрес электронной почты автора, поэтому используйте адрес, подходящий для уровня видимости репозитория. Если при сохранении сообщается о неопределённом авторе, выполните engram author show, задайте глобальный профиль или профиль рабочего пространства либо настройте резервные значения Git. Глобальная синхронизация с Git никогда не выполняется автоматически.