fix(tests): auto-init submodules when bats binary is missing #77

Merged
Claude merged 1 commits from docs/lessons-worktree-architecture into main 2026-07-05 13:49:49 +00:00
Collaborator

Summary

  • tests/run-bats.sh now auto-runs git submodule update --init --recursive when the bats binary is missing, instead of just erroring with instructions. Fresh worktrees don't have submodules checked out, so the pre-push run-tests hook previously failed on the very first push attempt in any new worktree.
  • Adds two LESSONS.md entries from this session: the repo root is a bare checkout with no working tree (edits there are invisible to git — worktrees are required for any real work), and local remotes/origin/* refs go stale after a merge, so remote branch state should be verified via the Gitea API before asking about cleanup.

Test plan

  • Verified in a throwaway worktree without submodules initialized: run-bats.sh auto-initialized submodules and the full bats suite (101 tests) passed
  • Pre-commit/pre-push hooks passed
## Summary - `tests/run-bats.sh` now auto-runs `git submodule update --init --recursive` when the bats binary is missing, instead of just erroring with instructions. Fresh worktrees don't have submodules checked out, so the pre-push `run-tests` hook previously failed on the very first push attempt in any new worktree. - Adds two `LESSONS.md` entries from this session: the repo root is a bare checkout with no working tree (edits there are invisible to git — worktrees are required for any real work), and local `remotes/origin/*` refs go stale after a merge, so remote branch state should be verified via the Gitea API before asking about cleanup. ## Test plan - [x] Verified in a throwaway worktree without submodules initialized: `run-bats.sh` auto-initialized submodules and the full bats suite (101 tests) passed - [x] Pre-commit/pre-push hooks passed
Claude added 1 commit 2026-07-05 13:48:41 +00:00
Fresh worktrees don't have submodules checked out, so the pre-push
run-tests hook failed on first push with a manual-fix error message.
run-bats.sh now runs `git submodule update --init --recursive`
automatically instead of just printing instructions.

Also records two lessons from working across bare-repo/worktree
boundaries this session: the repo root has no working tree (edits
there are invisible to git), and local remote-tracking refs go stale
after a merge — verify via the Gitea API before asking about cleanup.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FNJWdVvdgvZCHi1hZGqgVQ
Defame1297 approved these changes 2026-07-05 13:49:24 +00:00
Claude merged commit 060771b481 into main 2026-07-05 13:49:49 +00:00
Claude deleted branch docs/lessons-worktree-architecture 2026-07-05 13:49:49 +00:00
Sign in to join this conversation.