Repository navigation
test: bound historical snapshot normalization and read reservations - #287
Conversation
|
|
Normal protected source merge is verified as Actual-main CI42132835034, Sonar42132834889, CodeQL42132834908 and PublicBoundary42132834882 are the fresh follow-through; they are not yet all terminal. This tests-only delta triggered no docs publisher. |
|
Actual main Fresh anonymous readback confirms all five restored portal byte identities still match; PyPI/tag/wheel remain published2.14.1, and docs queued/in_progress/waiting/pending/requested counts are all zero. This tests-only merge triggered no docs deployment. The exact merged remote branch3012ada was deleted and independently read back absent; its clean local worktree/branch were removed after main fast-forwarded. This completes the ordinary source/main/cleanup checkpoint for this slice. Actual driver/socket/TLS coverage, framing, process cancellation/cleanup, historical inputs and root cause remain unqualified as documented on #123. P0285's shared browser prerequisite and all #184 operating/review gates remain separate. |



The historical startup reconstruction has no validated boundary between raw driver values and its proposed SQL projections. This adds pure source helpers that bind the two immutable SQL texts to separate original-identity parameters, validate exact ordered23/9-column byte/null rows, and feed the existing strict projection decoder. Native-type coercion, changed aliases, duplicate rows and malformed timestamp normalization refuse; complete supplied projections retain an unknown phase verdict.
A separate callback wrapper reserves reads before invocation, enforces the proposed32KiB/request and64KiB/phase limits, keeps reservations after failure, refuses retries, and checks one monotonic deadline before and after each callback. It cannot interrupt a blocked callback. The actual driver/private-method adapter, complete packet/terminator proof, process owner, framing, cancellation and cleanup remain unimplemented and unselected.
Validation:170 pure tests pass (42 raw-row/binding,28 callback-budget,100 existing projection), Ruff passes, focused mypy passes. No PyMySQL import, package acquisition/install, socket, query, historical API, child process or runtime was used. Historical evidence and operating gates are unchanged. This is source preparation for #123, not an execution or root-cause result.