Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
6e33a95
chore: add testing policy to CLAUDE.md, expand PRD with Docker fixtur…
NathanFlurry Mar 19, 2026
2146a8f
feat: US-001 - Rewrite pi-headless.test.ts to run Pi inside the secur…
NathanFlurry Mar 19, 2026
b60e176
feat: US-001 - Run pg-connect fixture against real Postgres container…
NathanFlurry Mar 19, 2026
2325e93
feat: US-002 - Run mysql2-connect fixture against real MySQL containe…
NathanFlurry Mar 19, 2026
c76acda
feat: US-003 - Run ioredis-connect fixture against real Redis contain…
NathanFlurry Mar 20, 2026
18ea7e3
feat: US-004 - Run ssh2-connect fixture against real SSH container an…
NathanFlurry Mar 20, 2026
67197b9
feat: US-007 - Rewrite pi-interactive.test.ts to use kernel.openShell…
NathanFlurry Mar 20, 2026
c9eaf9b
feat: US-008 - Rewrite opencode-headless.test.ts to spawn opencode vi…
NathanFlurry Mar 20, 2026
6b2d903
feat: US-008 - Rewrite opencode-headless.test.ts to spawn opencode vi…
NathanFlurry Mar 20, 2026
77a6032
feat: add S3 and SQLite virtual file system driver examples
NathanFlurry Mar 20, 2026
804b033
feat: US-009 - Rewrite opencode-interactive.test.ts to use kernel.ope…
NathanFlurry Mar 20, 2026
cb997f9
feat: US-009 - Rewrite opencode-interactive.test.ts to spawn opencode…
NathanFlurry Mar 20, 2026
f90f3b3
feat: US-010 - Rewrite claude-headless.test.ts to spawn claude via sa…
NathanFlurry Mar 20, 2026
c577e82
feat: US-011 - Rewrite claude-interactive.test.ts to use kernel.openS…
NathanFlurry Mar 20, 2026
911a6a8
feat: US-011 - Rewrite claude-interactive.test.ts to use kernel.openS…
NathanFlurry Mar 20, 2026
c9997fc
feat: US-012 - Update cli-tool-e2e spec to reflect actual tool capabi…
NathanFlurry Mar 20, 2026
805d752
feat: US-012 - Update cli-tool-e2e spec to reflect actual tool capabi…
NathanFlurry Mar 20, 2026
bfbaa3f
fix: harden VFS drivers and add comprehensive tests
NathanFlurry Mar 20, 2026
9d244a8
chore: add SSH/SFTP test coverage stories to PRD
NathanFlurry Mar 20, 2026
850681e
feat: US-016 - Add SSH key-based authentication e2e-docker fixture
NathanFlurry Mar 20, 2026
e9fde4c
chore: add Postgres and TLS test coverage stories to PRD
NathanFlurry Mar 20, 2026
ce5e5f2
feat: US-017 - Add SSH port forwarding / tunneling e2e-docker fixture
NathanFlurry Mar 20, 2026
313afac
feat: US-018 - Add SFTP directory operations e2e-docker fixture
NathanFlurry Mar 20, 2026
53240f9
chore: mark US-018 complete and update progress log
NathanFlurry Mar 20, 2026
b106eba
feat: US-019 - Add SSH/SFTP error path e2e-docker fixtures
NathanFlurry Mar 20, 2026
076ea11
feat: US-020 - Add SFTP large file transfer and rename e2e-docker fix…
NathanFlurry Mar 20, 2026
0a0b08c
feat: US-021 - Expand pg-connect fixture with UPDATE, DELETE, and tra…
NathanFlurry Mar 20, 2026
9d194a6
chore: mark US-021 complete and update progress log
NathanFlurry Mar 20, 2026
c27a994
feat: US-022 - Add pg-pool e2e-docker fixture for connection pooling
NathanFlurry Mar 20, 2026
7503343
chore: mark US-022 complete and update progress log
NathanFlurry Mar 20, 2026
598d0e2
feat: US-023 - Add pg-types e2e-docker fixture for data type coverage
NathanFlurry Mar 20, 2026
c0d0669
feat: US-024 - Add pg-errors e2e-docker fixture for error path coverage
NathanFlurry Mar 20, 2026
d0fdaa2
chore: mark US-024 complete and update progress log
NathanFlurry Mar 20, 2026
677f5f9
feat: US-025 - Add pg-prepared e2e-docker fixture for prepared statem…
NathanFlurry Mar 20, 2026
7292809
chore: mark US-025 complete and update progress log
NathanFlurry Mar 20, 2026
a9cf5d3
feat: US-026 - Fix pg auth method discrepancy between local and CI
NathanFlurry Mar 20, 2026
91ea777
feat: US-027 - Add TLS database connection e2e-docker fixtures
NathanFlurry Mar 20, 2026
fe633d8
chore: mark US-027 complete and update progress log
NathanFlurry Mar 20, 2026
b216040
feat: US-028 - Add HTTPS error handling e2e fixture for TLS edge cases
NathanFlurry Mar 20, 2026
0ba7121
chore: mark US-028 complete and update progress log
NathanFlurry Mar 20, 2026
b43e6f3
fix: remove GH Actions e2e-docker workflow, use local Docker exclusively
NathanFlurry Mar 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 0 additions & 95 deletions .github/workflows/e2e-docker.yml

This file was deleted.

8 changes: 8 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,14 @@
- every publishable package must include a `README.md` with the standard format: title, tagline, and links to website, docs, and GitHub
- if `package.json` has a `"files"` array, `"README.md"` must be listed in it

## Testing Policy

- NEVER mock external services in tests — use real implementations (Docker containers for databases/services, real HTTP servers for network tests, real binaries for CLI tool tests)
- tests that validate sandbox behavior MUST run code through the secure-exec sandbox (NodeRuntime/proc.exec()), never directly on the host
- CLI tool tests (Pi, Claude Code, OpenCode) must execute inside the sandbox: Pi runs as JS in the VM, Claude Code and OpenCode spawn their binaries via the sandbox's child_process.spawn bridge
- e2e-docker fixtures connect to real Docker containers (Postgres, MySQL, Redis, SSH/SFTP) — skip gracefully via `skipUnlessDocker()` when Docker is unavailable
- interactive/PTY tests must use `kernel.openShell()` with `@xterm/headless`, not host PTY via `script -qefc`

## Tooling

- use pnpm, vitest, and tsc for type checks
Expand Down
Loading
Loading