Skip to content

Commit d0fdaa2

Browse files
NathanFlurryclaude
andcommitted
chore: mark US-024 complete and update progress log
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent c0d0669 commit d0fdaa2

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

progress.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2762,3 +2762,15 @@ PRD: ralph/kernel-hardening (46 stories)
27622762
- Buffer round-trip through BYTEA works via parameterized queries ($1) — pg handles Buffer serialization to bytea wire format in user-space JS
27632763
- No additional bridge fixes needed for type parsing — all type coercion happens in pg's JS type parser code
27642764
---
2765+
2766+
## 2026-03-19 - US-024
2767+
- Added pg-errors e2e-docker fixture for error path coverage
2768+
- Tests 4 error scenarios: syntax error (bad SQL), undefined table, unique constraint violation, connection refused (wrong port)
2769+
- SQL errors serialize message/code/severity/constraint from pg protocol; connection error serializes message only
2770+
- Files changed: packages/secure-exec/tests/e2e-docker/pg-errors/{package.json,fixture.json,src/index.js}
2771+
- **Learnings for future iterations:**
2772+
- pg SQL errors (syntax, undefined table, unique violation) propagate all protocol fields (message, code, severity, constraint) identically through the sandbox — these come from the Postgres server, not the socket layer
2773+
- Connection refused errors only serialize message (not code/errno) per codebase pattern — net bridge _onError only propagates err.message
2774+
- Each error test uses its own Client instance to avoid connection state contamination after errors
2775+
- Unique constraint test uses DELETE before INSERT to ensure clean state, and PRIMARY KEY as the constraint
2776+
---

0 commit comments

Comments
 (0)