Skip to content

chore: gitignore .screenshots/ + capture round 10 lessons in CLAUDE.md#92

Merged
TortoiseWolfe merged 1 commit into
mainfrom
chore/session-hygiene
May 14, 2026
Merged

chore: gitignore .screenshots/ + capture round 10 lessons in CLAUDE.md#92
TortoiseWolfe merged 1 commit into
mainfrom
chore/session-hygiene

Conversation

@TortoiseWolfe
Copy link
Copy Markdown
Owner

Summary

Two small hygiene changes that lock in this session's accumulated learnings.

1. .gitignore — match .screenshots/

The existing screenshots/ entry on line 120 didn't match the dot-prefixed variant. As a result .screenshots/ has been showing up in every git status run for weeks. One-line addition.

2. CLAUDE.md — new "CI & E2E Stability" section + stale-claim fix

New section between "Supabase Database Migrations" and "Important Notes" captures the round-10 lessons:

  • NEVER merge a PR while another PR's CI is running against the same backend — concurrency mutex protects this now (PR fix(ci): serialize E2E runs via repo-wide concurrency mutex #89), but the principle applies for any future shared backend.
  • NEVER bypass commit hooks (no --no-verify) — explicit user preference, codifies what gitleaks/husky/lint-staged are for.
  • Programmatic el.scrollTop = N does NOT fire scroll events reliably in WebKit — documents the fix pattern (dispatchEvent(new Event('scroll', { bubbles: true }))) so future test code doesn't re-trip on it.
  • Branch hygienedelete_branch_on_merge=true, fetch --prune after merge, no floating PRs, avoid stacked PRs (PR docs(auth): #85 replace stale Supabase project ref with placeholder #87 autoclose footgun documented).
  • CI logs API ≠ UIgh run view --json is authoritative; the Actions list page is misleading for in-progress matrix runs.

Plus a stale-claim fix on "Important Notes": the bullet saying "E2E tests are local-only, not in CI pipeline" was wrong. E2E now runs on every push and PR across 28 shards (chromium + firefox + webkit). Updated to reflect reality.

Why bundle this

Both changes are pure hygiene with zero risk. Two unrelated tiny commits = noise. One PR = clean.

Verification

  • git check-ignore -v .screenshots/ confirms .gitignore:121 now matches
  • git status no longer shows .screenshots/ as untracked
  • Pre-commit hooks ran clean (prettier + gitleaks)

🤖 Generated with Claude Code

Two small hygiene changes that lock in this session's learnings.

1. .gitignore — add `.screenshots/`. The existing `screenshots/` entry
   on line 120 didn't match the dot-prefixed variant, so .screenshots/
   has been showing up in every `git status` run for weeks. One-line
   fix.

2. CLAUDE.md — new section "CI & E2E Stability (Round 10 Lessons,
   2026-05-13)" between "Supabase Database Migrations" and "Important
   Notes", capturing:

   - NEVER merge a PR while another PR's CI is running against the
     same backend. The concurrency mutex in e2e.yml protects this
     now, but the rule still applies for any other shared backend
     introduced later.

   - NEVER bypass commit hooks. Husky + lint-staged + gitleaks catch
     real bugs; --no-verify is explicitly forbidden without user
     opt-in.

   - Programmatic `el.scrollTop = N` does NOT fire scroll events in
     WebKit reliably. The fix pattern (dispatch the scroll event
     explicitly) is now applied at 4 sites in tests/e2e/messaging/,
     and any future test code touching scrollTop should follow it.

   - Branch hygiene — delete_branch_on_merge=true, fetch --prune
     after merge, no floating unmerged branches, avoid stacked PRs
     (PR #87 auto-close footgun documented).

   - CI logs API ≠ UI. The Actions list page is misleading for
     in-progress matrix runs; use `gh run view --json` for
     authoritative state.

   Plus a small fix on the existing "Important Notes" bullet — the
   line claiming "E2E tests are local-only, not in CI pipeline"
   was stale. E2E now runs on every push and PR across 28 shards
   (chromium + firefox + webkit). Updated to reflect reality and
   point at the new CI section.

Verification:
- `git check-ignore .screenshots/` confirms it's now matched by
  the new line 121 entry
- `git status` no longer shows .screenshots/ as untracked
- Pre-commit hooks ran clean (prettier + gitleaks)

Refs: PR #89 (concurrency mutex), PR #87 (stacked-PR autoclose footgun),
      memory entries feedback_branch_hygiene.md and
      lesson_concurrent_ci_shared_backend.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@TortoiseWolfe TortoiseWolfe merged commit ef6f803 into main May 14, 2026
28 checks passed
@TortoiseWolfe TortoiseWolfe deleted the chore/session-hygiene branch May 14, 2026 04:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants