Skip to content

test: bound historical snapshot normalization and read reservations - #287

Merged
rmcdaniel merged 2 commits into
mainfrom
feat/123-raw-row-normalization
Nov 5, 2026
Merged

rmcdaniel merged 2 commits into
mainfrom
feat/123-raw-row-normalization

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

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.

@rmcdaniel rmcdaniel added the agent:sdk-python Work by the sdk-python repo agent label Nov 5, 2026
@sonarqubecloud

sonarqubecloud Bot commented Nov 5, 2026

Copy link
Copy Markdown

@rmcdaniel
rmcdaniel marked this pull request as ready for review November 5, 2026 23:53
@rmcdaniel
rmcdaniel merged commit 6e90371 into main Nov 5, 2026
20 checks passed
@rmcdaniel

Copy link
Copy Markdown
Member Author

Normal protected source merge is verified as 6e9037130e0123bd1661f7f8be3a238e2f8884e0, tree 30cf21c8b6d613c2cac1e3509ab8df4137c144d1, ordered parents [4bf079f4ef1dc771b02222914f2399545adf8dcb,3012adabd2f45864d28087bc518ae14118a9d9d7]. All20 exact-head PR checks succeeded, including required target-branch qualification and Sonar. The bounded Server field/order/time-normalization carry is recorded on #123; callback/driver/operating conclusions are outside that carry.

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. sdk-python owns final main qualification, live stable preservation and exact branch cleanup. No historical collector/driver/owner, #184 operation, package publication or deployment is admitted by this source merge.

@rmcdaniel
rmcdaniel deleted the feat/123-raw-row-normalization branch November 6, 2026 00:05
@rmcdaniel

Copy link
Copy Markdown
Member Author

Actual main 6e9037130e0123bd1661f7f8be3a238e2f8884e0 is qualified: all18 check runs succeeded and all four original workflows are terminal success (CI42132835034, Sonar42132834889, CodeQL42132834908, PublicBoundary42132834882). Direct main inspection finds zero unresolved major-or-higher findings in the four new source/test components. The reviewed tree and ordered merge parents match the prior receipt.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent:sdk-python Work by the sdk-python repo agent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant