c8746b1ca1
Seven cases wrote straight into the shared table and told their rows apart by a call_id prefix. Reading was never the problem; the prefix did that correctly, and it was built for concurrent runs. What it could not do was stop those writes and deletes from moving a row count that another test was watching, which is how issue #18 turned red. They now write into sandbox schemas, which also ends the orphan rows a killed run used to leave in there. Six fixtures collapse into factory calls; what they yield is unchanged, so the cases that consume them did not have to be touched, which is what makes them worth anything as a check on the move. Two of the seven kept something. The pool footprint case needs a unique application_name, since connections are an instance-wide resource that schema isolation does not reach, so it generates its own uuid instead of borrowing the run prefix. And the frozen-columns case was querying information_schema without a schema filter, so any leftover table of the same name anywhere in the database could fail it: the file already knew this, in a comment explaining why another fixture cleans up so carefully. It now filters, and gets checked against a leftover table planted on purpose. The gate that keeps the literal out of tests/ is a smoke alarm, not proof. Concatenation and parameterised queries walk straight past it. The isolation is the factory withholding the admin connection and the script running as a role with no grant.