feat: global --source-root — index/mv/check/fix one subtree; deterministic Java FQN resolution in monorepos with duplicate packages (guava vs android/guava); move mv_reject to output.rs

This commit is contained in:
loki5512344 2026-09-15 16:48:57 +02:00
parent 7f568fd0c9
commit d5d34afb00
Signed by: boba
GPG key ID: 253067914055423B
13 changed files with 278 additions and 64 deletions

View file

@ -74,9 +74,10 @@ AI оставляем СНАРУЖИ: при неоднозначности jmov
- [ ] (после fix) повторить обе перемещения как `mv` + авто-`fix` и добить compile до SUCCESS
(паттерн воспроизведён и закрыт локально: mv файла с bare-ссылкой на соседний пакет →
`fix` добавил импорт → javac SUCCESS; на реальном guava ещё не прогонялось)
- [ ] Индексация в monorepo с дублями пакетов (guava vs android/guava в одном --root):
FQN-коллизии → class_index оставляет первый по сортировке, импорт резолвится не туда.
Нужен выбор/фильтр source root (например `--source-root` или авто-определение по mv-цели)
- [x] Индексация в monorepo с дублями пакетов (guava vs android/guava в одном --root):
глобальный `--source-root DIR` — индексирует (mv/check/fix) только поддерево,
FQN-коллизии исчезают, соседнее дерево не трогается; авто-определение по mv-цели
осознанно НЕ делаем (явный флаг предсказуемее, см. KISS)
## Phase 2
- [ ] Кэш индекса на диске (bincode/rkyv) → .jmove/index