Что произошло
Установка 0.38.3 (bash update.sh --yes в FMT-exocortex-template/) удалила десять файлов с пометкой «(удалён: устарел)»:
sessions/2026-06/2026-06-17-01-kimi-setup/{00-writer,01-peer,02-writer,03-peer}.md
sessions/2026-06/2026-06-17-01-kimi-setup/{meta.yaml,report.md}
docs/developer/{README,card-template,developer-guide,testing-as-spec}.md
Источник — секция устаревших файлов в update-manifest.json (строки 2405-2445). Там же значатся docs/developer/code-style.md и docs/developer/working-with-claude.md; локально их не оказалось, поэтому в удаление они не попали.
Все эти файлы канон по-прежнему держит в upstream/main:
git -C FMT-exocortex-template cat-file -e upstream/main:docs/developer/README.md # выходит успешно
git -C FMT-exocortex-template cat-file -e upstream/main:docs/developer/code-style.md # тоже
Почему это дефект, а не косметика
Каталог FMT-exocortex-template/ играет две роли одновременно:
- рабочая копия поставки, куда
update.sh кладёт скачанные файлы;
- git-зеркало канона (
origin — форк пользователя, upstream — канон).
Список устаревших файлов написан для первой роли, а git видит результат по второй. После обновления git status показывает десять удалений, и дальше развилка без хорошей ветки:
- закоммитить — форк разойдётся с каноном на десять файлов, и
merge --ff-only при следующей синхронизации перестанет проходить;
- не коммитить — каталог остаётся грязным, а проверки чистоты деревьев на закрытии дня и недели ругаются;
- вернуть файлы (
git restore docs/developer sessions/2026-06) — до следующего обновления, после которого всё повторится.
Список устаревших файлов из манифеста не убирается, поэтому ситуация воспроизводится при каждом запуске обновления.
Что ожидалось
Одно из двух, на ваш выбор:
- удаление устаревших файлов не применяется внутри каталога, который является git-зеркалом канона (признак: у каталога есть remote
upstream, указывающий на канон); либо
- канон сам удаляет эти файлы из своей истории — тогда список устаревших не нужен, зеркало приведёт каталог в то же состояние обычным fast-forward.
Промежуточный вариант — обновление явно сообщает о конфликте ролей, а не оставляет пользователя с грязным деревом.
Шаги воспроизведения
- Держать
FMT-exocortex-template/ как форк канона с remote upstream.
- Синхронизировать зеркало:
git fetch upstream && git merge --ff-only upstream/main.
- Прогнать
bash update.sh --yes.
git status --short — десять удалений, которых канон не делал.
Контекст
- Файл:
update.sh + секция устаревших файлов в update-manifest.json
- Дата: 2026-08-13
- IWE commit: b4f24c6 (0.38.3)
- Установка: Linux (Manjaro)
Что произошло
Установка 0.38.3 (
bash update.sh --yesвFMT-exocortex-template/) удалила десять файлов с пометкой «(удалён: устарел)»:Источник — секция устаревших файлов в
update-manifest.json(строки 2405-2445). Там же значатсяdocs/developer/code-style.mdиdocs/developer/working-with-claude.md; локально их не оказалось, поэтому в удаление они не попали.Все эти файлы канон по-прежнему держит в
upstream/main:Почему это дефект, а не косметика
Каталог
FMT-exocortex-template/играет две роли одновременно:update.shкладёт скачанные файлы;origin— форк пользователя,upstream— канон).Список устаревших файлов написан для первой роли, а git видит результат по второй. После обновления
git statusпоказывает десять удалений, и дальше развилка без хорошей ветки:merge --ff-onlyпри следующей синхронизации перестанет проходить;git restore docs/developer sessions/2026-06) — до следующего обновления, после которого всё повторится.Список устаревших файлов из манифеста не убирается, поэтому ситуация воспроизводится при каждом запуске обновления.
Что ожидалось
Одно из двух, на ваш выбор:
upstream, указывающий на канон); либоПромежуточный вариант — обновление явно сообщает о конфликте ролей, а не оставляет пользователя с грязным деревом.
Шаги воспроизведения
FMT-exocortex-template/как форк канона с remoteupstream.git fetch upstream && git merge --ff-only upstream/main.bash update.sh --yes.git status --short— десять удалений, которых канон не делал.Контекст
update.sh+ секция устаревших файлов вupdate-manifest.json