Context
The sequential Bun corpus frontier has advanced through js/sql/sqlite-url-parsing.test.ts and now reaches js/sql/tls-sql.test.ts at position 3946/4708. This follows #206 and remains part of #205 / #66.
First observed gap
The PostgreSQL client sends the generic Home startup marker where the mock server expects the exact 8-byte SSLRequest frame (00 00 00 08 04 d2 16 2f). This prevents the protocol-confusion tests from verifying that TLS negotiation rejects PostgreSQL/MySQL messages received in place of the one-byte SSL answer.
Acceptance criteria
- PostgreSQL TLS startup emits the exact SSLRequest frame before startup/authentication traffic.
- PostgreSQL protocol frames received as the SSL response are rejected deterministically.
- MySQL TLS negotiation rejects plaintext/protocol packets after the TLS capability exchange.
- Errors retain stable SQL error identity and do not leak native stack/transport internals.
js/sql/tls-sql.test.tspasses completely and is pinned in the permanent SQL contract gate.- Existing SQLite and SQL adapter gates remain green.