← 1.0.0 backlogs ISS-24 Done

A frame constant checked against another repository's source, and a refresh command that 404s

Type
Bug — a contract check that had stopped being a contract check
Found while
SAPE-24
Triage
Fix in 1.0.0
Status
Done
Version
1.0.0

Description

The PHP client tests against a pinned snapshot of the shared fixtures, taken from the server's repository. That snapshot stood at a commit made before the server grew the establish frame. Its types object therefore listed thirteen entries, and FrameType::ESTABLISH could not be put in the hand-written comparison table without reddening it against the fixture.

The workaround at the time was honest and inadequate in exactly the way it said it was: a test of its own, checking the constant against a hand reading of internal/protocol/frame.go in another repository. That proves the number is 14. It proves nothing about the contract, which is the only thing a shared fixture is for.

Underneath it sat a second problem. The README told anyone refreshing the snapshot to run npm install @ecosy/sapedb and copy the fixtures out of node_modules. Measured: npm view @ecosy/sapedb answers 404 — that package is unpublished. The documented procedure would have failed for every person who followed it.

Evidence

What was done

Condition on this measurement

Verified in CI, not locally: there is no php on the machine this was written on. That is not a footnote — it is why ISS-25 had to be fixed first for this one to be checkable at all.