feat: introduce Nix environment and Playwright Docker browser setup#2405
Open
jcscottiii wants to merge 2 commits intomainfrom
Open
feat: introduce Nix environment and Playwright Docker browser setup#2405jcscottiii wants to merge 2 commits intomainfrom
jcscottiii wants to merge 2 commits intomainfrom
Conversation
This commit introduces Nix as an alternative development environment to DevContainers and sets up an isolated Playwright browser server in Docker to ensure repeatable E2E screenshots. It also updates all relevant documentation and agent skills to reflect the new workflow. KEY CHANGES Environment and Tooling: - Added flake.nix and flake.lock to define the Nix development environment with pinned tools (Go, Node, Terraform, etc.). - Added .envrc to support automatic environment loading via direnv. - Updated .gitignore to exclude .direnv, .envrc, and cached Nix browsers. Playwright and E2E Testing: - Created images/playwright.Dockerfile to run a Playwright browser server isolated in a container. - Added global-setup.ts to build and manage the Playwright container during tests. - Updated playwright.config.ts to connect to the remote Docker browser by default when running under Nix. - Added playwright-docker-stop target to Makefile for cleanup. CI/CD and Documentation: - Added .github/workflows/ci-nix.yml to run continuous integration tests inside the Nix environment. - Created docs/nix-setup.md with instructions for using the new environment. - Updated README.md, DEVELOPMENT.md, and docs/maintenance.md to reference Nix. - Updated GEMINI.md to track the addition of the Nix environment. Agent Skills: - Updated all 8 skill files in .agent/skills/ to provide correct guidance for both DevContainer and Nix workflows, including tool management and container runtime requirements. Corrected Assumptions and Learnings: - Discovered that the VS Code direnv extension conflicts with host shell hooks, causing PATH clobbering. Updated docs to recommend relying on the shell hook instead. - Found that the Nix package for Go 1.26.1 still reports as 1.26.0 in its binary, which is an upstream quirk we are tracking but ignoring for now.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This commit introduces Nix as an alternative development environment to DevContainers and sets up an isolated Playwright browser server in Docker to ensure repeatable E2E screenshots. It also updates all relevant documentation and agent skills to reflect the new workflow.
KEY CHANGES
Environment and Tooling:
Playwright and E2E Testing:
CI/CD and Documentation:
Agent Skills:
Corrected Assumptions and Learnings: