Linear: https://linear.app/engineereddev/issue/ENG-278
What's in this PR (3 files):
.tangled/workflows/e2e.yml(nixery): one workflow sharing the Nix andpnpm install --frozen-lockfilesetup, thene2e:serverwith native MinIO (PNEUMO_E2E_MINIO=native) ande2e:webwith Playwright 1.64.1 Chromium from a pinned nixpkgs revision (Chromium and headless shell only,PLAYWRIGHT_BROWSERS_PATH),--workers=2. PR trigger unfiltered (hosted quirk); push trigger path-filtered. pnpm store cached.- MinIO for the test fixture comes from an archived nixpkgs pin, because unstable refuses the abandoned package; loopback-only, documented.
scripts/ci/run-nixery.sh: writes a minimal/etc/passwdwhen missing (server subprocesses withoutHOMEstill callos.homedir()via the AWS SDK).docs/agents/tangled.md: CI coverage table rows for e2e server/web (CI), e2e docker and e2e android (local-only, with reasons), plus the timing budget.
Verify (implementer, local): native e2e:server 17 passed; native e2e:web 42 passed (also with CI=true --workers=2); the exact workflow commands on native Linux arm64 with Nix passed (server 11 s, web 57 s); e2e:docker cold amd64 270 s (why it stays local-only). Lead: mise run check:infra exit 0 (4 workflows valid).
Hosted verification is this PR's acceptance: the lead reads this PR's pipeline (cold and warm) and updates the coverage table with measured durations before review.
🤖 Generated with Claude Code