Skip to content

Support Visual Regression Testing harness#164

Merged
ejfine merged 11 commits into
mainfrom
vrt
May 28, 2026
Merged

Support Visual Regression Testing harness#164
ejfine merged 11 commits into
mainfrom
vrt

Conversation

@ejfine
Copy link
Copy Markdown
Contributor

@ejfine ejfine commented May 28, 2026

Why is this change necessary?

Need some more gitignores and library versions, and eslint config update

How does this change address the issue?

Adds it

What side effects does this change have?

None

How is this change tested?

Downstream repos

Other

Fixed WSL2 issue with the executable scripts not also being registered in git

Updated devcontainer Jinja config so it is usable in grandchild repos even if they don't use python

Summary by CodeRabbit

Release Notes

  • Chores
    • Updated development tooling and dependencies, including PNPM (11.3.0 → 11.4.0), FastAPI, Nuxt UI, and other libraries
    • Improved handling of build and test artifacts in version control
    • Enhanced Git configuration management for file permissions
    • Refined testing framework linting rules and updated development container templates

Review Change Stack

@ejfine ejfine self-assigned this May 28, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 28, 2026

📝 Walkthrough

Walkthrough

This PR applies coordinated maintenance updates across the template infrastructure: dependency versions are bumped across base and template files, Git permissions are expanded for checkout operations, executable file mode handling is improved for WSL2 compatibility, test artifacts are added to gitignore, and devcontainer/IDE environment templates are refined to respect Python usage flags.

Changes

Maintenance and Configuration Updates

Layer / File(s) Summary
Dependency and Tool Version Bumps
extensions/context.py, .devcontainer/install-ci-tooling.py, template/extensions/context.py.jinja-base
pnpm updated from 11.3.0 to 11.4.0; ty from >=0.0.38 to >=0.0.39; fastapi from >=0.136.1 to >=0.136.3; uvicorn from >=0.47.0 to >=0.48.0; pytest_asyncio from >=1.3.0 to >=1.4.0; nuxt_ui from ^4.7.1 to ^4.8.0; template_uses_python flag added to context.
Git Permissions and Executable File Mode Handling
.claude/settings/permissions/bash.jsonc, copier.yaml, template/copier.yml.jinja-base
git checkout command added to allowed Bash operations; executable permissions tasks now conditionally run git update-index --chmod=+x for tracked files to ensure exec-bit changes persist when core.fileMode=false (e.g., WSL2).
Test and Build Cache Exclusions
.gitignore
Added ignore patterns for test-screenshots, playwright-report, test-results, .vitest-attachments directories and *.tsbuildinfo TypeScript incremental build cache files.
Devcontainer and IDE Environment Template Configuration
.devcontainer/devcontainer.json, template/.devcontainer/devcontainer.json.jinja-base
Devcontainer context hash updated; Python feature conditionally receives enableShared: true when deploy_as_executable is set; VS Code extensions (Claude, Python) and Ruff settings now conditionally emit based on template_uses_python flag to avoid Python-specific config in non-Python templates.
Playwright E2E Linting Configuration
template/copier_template_resources/eslint.config.mjs
ESLint override added for tests/e2e/**/*.spec.ts to disable vitest rules that conflict with Playwright's test/expect fixtures: vitest/prefer-expect-assertions, vitest/prefer-importing-vitest-globals, and vitest/require-hook.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested reviewers

  • zendern
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Support Visual Regression Testing harness' directly aligns with the primary objective stated in the PR description and reflects the main addition of VRT harness support infrastructure.
Description check ✅ Passed The PR description addresses most required template sections with substantive content explaining the necessity, approach, side effects, and testing methodology, though the 'Link to Issue or Message thread' section is absent.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.claude/settings/permissions/bash.jsonc:
- Line 47: Remove or justify the unused "Bash(git checkout *)" permission entry
in .claude/settings/permissions/bash.jsonc: either delete the "Bash(git checkout
*)" string from the permissions array if no code uses git checkout, or add a
brief inline comment or PR description explaining its intended future use (e.g.,
needed for planned git branch switches in CI or external tools) so reviewers
know it's deliberate; locate the exact entry by searching for the "Bash(git
checkout *)" token and update accordingly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 78385736-cc7e-4275-ab3f-f46b49a04e9f

📥 Commits

Reviewing files that changed from the base of the PR and between 77bc8ff and 718d106.

📒 Files selected for processing (11)
  • .claude/settings/permissions/bash.jsonc
  • .devcontainer/devcontainer.json
  • .devcontainer/install-ci-tooling.py
  • .gitignore
  • copier.yaml
  • extensions/context.py
  • template/.devcontainer/devcontainer.json.jinja-base
  • template/copier.yml.jinja-base
  • template/copier_template_resources/{% if template_uses_typescript %}eslint.config.mjs{% endif %}
  • template/extensions/context.py.jinja-base
  • template/template/.devcontainer/devcontainer.json.jinja

// Git & Version Control
"Bash(git add *)",
"Bash(git branch *)",
"Bash(git checkout *)",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Search for git checkout usage in scripts, tasks, and documentation

# Search for git checkout in shell commands, scripts, and YAML task definitions
rg -n 'git\s+checkout' --type-add 'config:*.{yaml,yml,sh,bash,json,jsonc}' --type config

# Also check Python files that might shell out
rg -n 'git\s+checkout' --type py

Repository: LabAutomationAndScreening/copier-base-template

Length of output: 72


Remove or justify the git checkout permission in bash.jsonc.

The search for git checkout usage across the codebase found no matches. Since the PR's scope is WSL2 executable file mode handling (using git update-index and git ls-files in copier tasks), this permission appears unnecessary unless it's for future use or an unrelated improvement. Either remove it or explain its purpose.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/settings/permissions/bash.jsonc at line 47, Remove or justify the
unused "Bash(git checkout *)" permission entry in
.claude/settings/permissions/bash.jsonc: either delete the "Bash(git checkout
*)" string from the permissions array if no code uses git checkout, or add a
brief inline comment or PR description explaining its intended future use (e.g.,
needed for planned git branch switches in CI or external tools) so reviewers
know it's deliberate; locate the exact entry by searching for the "Bash(git
checkout *)" token and update accordingly.

@ejfine ejfine marked this pull request as ready for review May 28, 2026 17:25
@ejfine ejfine merged commit 8b65dce into main May 28, 2026
7 checks passed
@ejfine ejfine deleted the vrt branch May 28, 2026 18:00
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