---
type: JS Module
title: migration-cache.mjs
resource: npm/skills/taze/js/migration-cache.mjs
docgen:
  crc: c9ebf692
  model: openai-codex/gpt-5.5
  tier: cloud-avg
  score: 100
  judgeModel: openai-codex/gpt-5.4-mini
---

## Огляд

Файл підтримує дисковий кеш нотаток про міграції пакетів між версіями для повторного використання між прогонами й репозиторіями, щоб повторне звернення до тих самих даних не виконувало зайву роботу. `DEFAULT_CACHE_DIR`, `migrationCacheKey`, `readMigrationCache`, `writeMigrationCache` і `withKnownMigrationNotes` задають спільні точки доступу до цього кешу.

Якщо кеш недоступний, запис непридатний або операція читання кешу не може бути виконана, обробка продовжується без винятків назовні й за потреби повертає порожнє значення замість збою.

## Поведінка

DEFAULT_CACHE_DIR задає спільне місце зберігання результатів аналізу міграцій для всіх репозиторіїв на машині. Кеш не прив’язаний до поточного проєкту, тому повторне оновлення того самого пакета між тими самими версіями може повторно використати вже підготовлені нотатки.

migrationCacheKey формує стабільний безпечний ключ для пари пакет-версії. Цей ключ використовують readMigrationCache і writeMigrationCache, щоб звертатися до одного й того самого запису незалежно від репозиторію чи worktree.

writeMigrationCache зберігає підсумок ізольованого LLM-аналізу міграції. Дані потрапляють у спільний кеш і стають доступними для наступних прогонів із тим самим ключем.

readMigrationCache на початку наступного прогону шукає готовий запис у спільному кеші. Якщо запис відсутній або непридатний для читання, кеш вважається недоступною оптимізацією й повертається порожній результат замість помилки; основний процес міграції має продовжитися без кешованих нотаток.

Коли readMigrationCache знаходить запис, withKnownMigrationNotes додає його підсумок до базового промпта. Результат спрямовує runner не повторювати вже виконане CHANGELOG/diff-дослідження, а одразу перевіряти використання API в поточному проєкті та застосовувати релевантні зміни.

## Публічний API

- DEFAULT_CACHE_DIR — Каталог за замовчуванням для кешу міграцій — спільний для всіх репо на цій
машині (не прив'язаний до конкретного worktree/репо), бо ключ кешу — сам
пакет+діапазон версій, а не проєкт.
- migrationCacheKey — Санітизує `(pkg, from, to)` у безпечне імʼя файлу — крос-репо ключ кешу.
Той самий `(pkg, from, to)` у різних репо/воркспейсах дає той самий ключ.
- readMigrationCache — Читає кешований запис міграції для `(pkg, from, to)`, якщо інший
repo/worktree на цій машині вже проганяв через LLM ту саму пару версій.
Відсутній/побитий файл — `null` (мовчки, не провал прогону: кеш —
оптимізація, а не залежність, від якої залежить коректність).
- writeMigrationCache — Зберігає результат ізольованого LLM-виклику для `(pkg, from, to)` — щоб
наступний репо з тим самим bump-ом на цій машині не повторював
CHANGELOG-дослідження з нуля (див. `readMigrationCache`).
- withKnownMigrationNotes — Дописує до промпта `provider.promptFor(entry)` підсумок відомої міграції,
якщо кеш її знайшов — каже runner-у пропустити крок 1 (CHANGELOG/diff-
дослідження) і одразу шукати використання в поточному проєкті.

## Гарантії поведінки

- Перехоплює помилки операцій кешу, для яких кеш є необовʼязковою оптимізацією, і не пропускає їх назовні.
- За певних помилок повертає порожнє значення (напр. `null`) замість винятку.
- Кешує результати на диску для повторного використання між прогонами й репозиторіями.
