← всі звіти · handoff-desktop-claude-wiki-recovery.md

Handoff: Desktop Claude — wiki-sync recovery 2026-04-21

Дата: 2026-04-21 (заміни на поточну якщо виконуєш пізніше) Хто ти: Desktop Claude на машині Сергія (Windows, PowerShell, mcp__computer-use__request_access) Хто на іншому кінці: VPS Claude на 31.131.26.203, має доступ до /srv/wiki/ (git clone того ж repo) Канал спільної пам'яті: https://github.com/serhiivereschak/ag-wiki (repo) + Telegram для повідомлень Сергію


Контекст (навіщо це потрібно)

Щоденна задача wiki-memory-sync сьогодні (2026-04-21) завалилась з критичним станом:

Паралельне розслідування VPS Claude встановило ширший контекст:

Висновок: Desktop не має self-heal'ити за старим токеном. Спершу Сергій ротує PAT, потім обидві сторони конкурентно виконують recovery.


Твої кроки (у точному порядку)

Фаза 0: Чекання нового PAT

НЕ починай нічого з git, поки Сергій не дасть новий GitHub PAT. Очікуй у Telegram / Claude Desktop інтерфейсі повідомлення вигляду:

«Новий PAT: ghp_xxx... [або fine-grained: github_pat_xxx...]. Зберіг у 1Password / пасспартут, поклади у Windows Credential Manager.»

Якщо Сергій не написав токен через 20 хв після цієї задачі — пінгни його в Telegram: «Чекаю новий PAT для wiki-recovery, повідом коли готовий».


Фаза 1: Оновити Windows Credential Manager

Коли PAT отримано:

# Видалити старий запис
cmdkey /delete:git:https://github.com

# Додати новий (або використай GUI — Start → Credential Manager → Windows Credentials)
# Найпростіше через Git Credential Manager:
git credential-manager configure

Альтернативно — постав PAT у Credential Manager вручну (Control Panel → Credential Manager → Windows Credentials → Add a generic credential):


Фаза 2: Прибрати старий PAT з remote URL

cd D:\Users\Sergey.Vereschak.DELTAMEDICAL\Documents\ag-wiki
git remote set-url origin https://github.com/serhiivereschak/ag-wiki.git

Перевір:

git remote get-url origin
# Має бути: https://github.com/serhiivereschak/ag-wiki.git  (БЕЗ токена)

Фаза 3: Preflight перевірка нового токена

git ls-remote origin HEAD

Має повернути SHA. Якщо знову Invalid username or token — СТОП, повідом Сергію і НЕ йди далі.


Фаза 4: Врятувати uncommitted роботу

git stash push -u -m "pre-recovery 2026-04-21" -- README.md infrastructure/README.md open-tasks.md projects-overview.md user-profile.md sessions/cowork-2026-04-21.md _git_sync.bat

Перевір що stash створений:

git stash list
# Має показати: stash@{0}: On main: pre-recovery 2026-04-21

Фаза 5: Зняти stale locks і абортнути мертвий rebase

Remove-Item .git\HEAD.lock, .git\REBASE_HEAD.lock, .git\index.lock, .git\packed-refs.lock -ErrorAction SilentlyContinue
git rebase --abort
git status
# working tree має бути clean (крім твого stash який ти сам зберіг)

Якщо git rebase --abort все ще падає — спробуй:

Remove-Item -Recurse -Force .git\rebase-merge, .git\rebase-apply -ErrorAction SilentlyContinue
git status

Якщо і це не допомагає — СТОП, повідом Сергію.


Фаза 6: ЧЕКАННЯ VPS

ТЕПЕР ЧЕКАЙ поки VPS Claude НЕ зробить свій push 38 commits на GitHub.

Сигнал готовності від VPS Claude буде через Telegram Сергію (і Сергій перекаже тобі, АБО ти побачиш у GitHub через git fetch --dry-run):

«VPS push 38 commits — done. Heading SHA: xxx. Desktop може тягнути.»

Перевір самостійно:

git fetch origin --dry-run
git log origin/main --oneline -3
# Має бачити недавні commits "auto: session update 2026-04-xx" — якщо це найсвіжіші, значить VPS вже запушив.

Якщо VPS ще не готовий — НЕ тягни. Почекай або повідом.


Фаза 7: Pull з GitHub (тепер вже з VPS commits)

git fetch origin
git pull --rebase origin main

Локальний 1 commit (якщо є) replay'ниться поверх remote. Якщо rebase падає з конфліктами — зупинись, повідом Сергію, НЕ резолви автоматично. Покажи git status + список конфліктних файлів.


Фаза 8: Повернути stashed зміни

git stash pop

Можуть бути конфлікти з VPS commits (вони чіпали ті ж файли — open-tasks.md, projects-overview.md). У такому разі:

# Переглянь конфлікти
git status
# Для кожного конфліктного файлу — відкрий у редакторі, резолви руками (об'єднай що з VPS + що зі stash)
git add <resolved-files>
git commit -m "resolve: merge stash with VPS session updates 2026-04-21"

Фаза 9: Push твоїх накопичених змін

git push origin main

Якщо push впав — глянь .last-push.log (або stderr), повідом Сергію з причиною.


Фаза 10: Перевірка синхронності

git fetch origin
git log origin/main..main
# Має бути порожнім (нема нічого unpushed)
git rev-parse HEAD
# Порівняй з SHA який VPS Claude покаже після свого pull

Фаза 11: Звіт Сергію

У Telegram (або у відповідь на handoff-задачу), одним повідомленням:

✅ Desktop wiki-recovery 2026-04-21 — done.
- PAT оновлено у Credential Manager
- Rebase abort + stash pop ✓
- Pushed: [N commits] своїх + merge з [38 VPS commits]
- HEAD: [хешSHA]
- Stash empty: [yes/no]

Наступне: wiki-memory-sync можна re-run нормально через заплановану задачу.

Fail criteria (зупинись і повідом, НЕ workarounding)


Що ти НЕ робиш (навіть якщо спокушаєшся)


Після recovery

Коли все чисто:

  1. Запусти wiki-memory-sync вручну один раз щоб переконатись що нормальний cycle працює
  2. Якщо пройшло — задача повернулась у нормальний ритм, нічого не роби додатково
  3. Додай reminder у open-tasks.md: PAT rotation at 2026-07-20 (90 днів)

Контакт з VPS Claude

Якщо треба синхронізуватись у реальному часі з VPS Claude — Сергій є posredником. Напиши йому в Telegram що ти хочеш передати, він перекаже. Не намагайся SSH'ити у VPS з Desktop — у тебе немає ключів і це не в сценарії.