DSH: run.sh чинит dsh/bundle/hooks в worktree (#56) #58

Merged
aep merged 1 commits from fix/56-hooks-symlink into main 2026-10-24 18:04:51 +03:00
Owner

Issue: #56. Второй пункт из #52.

Что сделано

dsh/tests/run.sh перед прогоном проверяет dsh/bundle/hooks:

  • симлинк → пропуск;
  • каталог (опубликованный бандл с копией hooks/) → пропуск;
  • обычный файл с содержимым ../../hooks (эффект core.symlinks=false) → пересоздаёт симлинк и печатает repaired dsh/bundle/hooks -> ../../hooks (core.symlinks=false checkout);
  • иначе → FAIL с понятным сообщением вместо пяти невнятных BLOCKED.

Проверки (в новом worktree, где hooks был обычным файлом)

bash dsh/tests/run.sh
repaired dsh/bundle/hooks -> ../../hooks (core.symlinks=false checkout)
# 38/38

bash dsh/tests/run.sh   # второй прогон: без строки о починке, 38/38
bash tests/run.sh       # 630/630
git status              # только M dsh/tests/run.sh, hooks не в diff

Симлинк восстановлен, но в индекс не попадает: в git он и так симлинк, дерево чистое.

Не входит в PR

Подсказка в install.sh --check (это файл #42 — чтобы не пересекаться, оставлено на потом).

Issue: #56. Второй пункт из #52. ## Что сделано `dsh/tests/run.sh` перед прогоном проверяет `dsh/bundle/hooks`: - симлинк → пропуск; - каталог (опубликованный бандл с копией `hooks/`) → пропуск; - обычный файл с содержимым `../../hooks` (эффект `core.symlinks=false`) → пересоздаёт симлинк и печатает `repaired dsh/bundle/hooks -> ../../hooks (core.symlinks=false checkout)`; - иначе → `FAIL` с понятным сообщением вместо пяти невнятных `BLOCKED`. ## Проверки (в новом worktree, где hooks был обычным файлом) ``` bash dsh/tests/run.sh repaired dsh/bundle/hooks -> ../../hooks (core.symlinks=false checkout) # 38/38 bash dsh/tests/run.sh # второй прогон: без строки о починке, 38/38 bash tests/run.sh # 630/630 git status # только M dsh/tests/run.sh, hooks не в diff ``` Симлинк восстановлен, но в индекс не попадает: в git он и так симлинк, дерево чистое. ## Не входит в PR Подсказка в `install.sh --check` (это файл #42 — чтобы не пересекаться, оставлено на потом).
aep added 1 commit 2026-10-24 18:03:28 +03:00
При core.symlinks=false новый worktree получает dsh/bundle/hooks обычным
файлом с текстом ../../hooks, и пять guard-тестов падают на BLOCKED.
run.sh перед прогоном восстанавливает симлинк (печатает строку о починке),
каталог-копию принимает как есть, незнакомое содержимое — явный FAIL.

Co-Authored-By: DeepSeek Harness <noreply@deepseek.com>
aep merged commit ff551a9a82 into main 2026-10-24 18:04:51 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aep/claude-harness#58
No description provided.