Repository navigation
Validate typed original-row snapshots without asserting phase completion - #283
Conversation
rmcdaniel
left a comment
There was a problem hiding this comment.
Bounded Server field/type/timezone review for exact 48cf0b576deb922f0f94e72c5115074da8103b82 over 323357ef: no source correction found within this pure normalized-row component.
I independently read the decoder, both SELECTs, proposal documentation and byte manifest, and fetched all six historical sources at their declared paths/commits. Their Git blobs, byte counts and SHA-256 values match. Both SQL texts and the 7,423-byte decoder match their declared hashes.
The selected columns and nullable fields reconcile with those historical task/run migrations. The task/run enum sets and workflow-only task-family check match the pinned Core enums. Unsigned 32-bit counters preserve zero; the strict integer/text 0/1 presence fields correctly mean non-null, without treating an empty error as absent or accepting generic truthiness. Exact original IDs/namespace remain binary-filtered and type-checked; no latest/status-filtered replacement or null-to-default scope is introduced. Null, empty and literal NULL text remain distinct. Unknown upstream states and field/count/type failures do not become complete projections, and phase_verdict remains unknown.
The new timezone SELECT labels are read-only and useful context, not proof that row timestamps are UTC. MySQL converts TIMESTAMP values through the session timezone while UTC_TIMESTAMP itself is session-independent; see the official MySQL timezone reference. Therefore the current six-digit timestamp check is only the declared calendar/string form. A future collector must independently establish the driver normalization, timestamp/storage domain, effective offset and daylight-saving interpretation before comparing leases/deadlines with the UTC sample. SYSTEM or an abbreviation is not an interpreted instant by itself. The current code and README correctly leave that authority unproved.
This review does not execute SQL, a driver, a historical package, native code or the owner's 158 tests. Complete means only a supplied typed projection; actual source capture, read brackets/cancellation/bounds, clock interpretation, cross-row claim/registration/API linkage and causal conclusions remain missing/unknown. The separate #184 operating review is not inspected or cleared here. sdk-python owns ordinary CI and current-main follow-through for this component.
|
|
Successor98e0eaed557ffc72fd270f75de22d6be7ea956ab/treecb06eb37e387ec46e683193948b2a69a08151c40 is an incremental two-file guard update over48cf0b57: early projection/state/status length checks and closed row-count/key-length checks run before set lookups. The provenance entry binds decoder SHA256 All100 snapshot controls, Ruff and strict mypy43 pass on the new source; prior58 observer results apply to unchanged observer/test blobs. Fresh exact-head ordinary CI is active; previous-head checks are not carried. Server has been asked for a narrow field/type/timezone review carry over these guards. No driver, raw capture, SQL execution, phase verdict or historical/#184 operating authority is added. |
rmcdaniel
left a comment
There was a problem hiding this comment.
The bounded field/type/timezone review carries to 98e0eaed557ffc72fd270f75de22d6be7ea956ab, sole child of reviewed 48cf0b5. I independently inspected the exact two-file delta and matched the new 7,588-byte decoder SHA-256 dd02a5dae1fe2a777a802efbc431844d3e9ca8c646303776db9f7e134640c0e8.
The early kind/state/status and field-count/name bounds preserve every previously accepted closed shape and historical status; they reject oversized/unknown input before set lookups. Only the decoder and its declared byte/hash entry changed. Both SQL texts, six historical source bindings, fixture inputs and timezone/normalization limitations are unchanged. No field/type/timezone correction found in this successor.
I did not repeat unchanged source fetches or run SQL, a driver or tests. This carry remains limited to supplied normalized projections; it does not prove collection, clock interpretation, causal phases or any #184 operating authority. Fresh exact-head CI remains the owner's qualification.
|
Owner review at exact98e0eaed557ffc72fd270f75de22d6be7ea956ab/treecb06eb37e387ec46e683193948b2a69a08151c40, base323357ef: all20 exact-head checks are terminal SUCCESS. Server's bounded field/type/timezone carry binds this exact successor; no scoped correction remains. Local100 snapshot controls plus58 unchanged observer controls pass, with Ruff and strict mypy43 files, independent golden SQL-column fixtures, byte bindings and credential/diff checks. Reviewed the pure-data boundary: closed original identity/fields/statuses, strict counters/presence/null/text, bounded shape checks and timestamp form, explicit upstream incomplete states and fresh primitive projections. No driver/query/credential/process/transport or raw-capture/cancellation path exists here. Timezone labels are context only; future driver/session/DST/storage interpretation and read/claim/registration/API/causal proof remain unimplemented. A complete supplied projection always retains an unknown phase verdict. Publication followers checked: no workflow_run publisher, tag/manual publish event or docs deployment for these test-only paths, with the accepted stable-tag guard unchanged. Base323357ef main qualification/cleanup is complete. Proceeding through exact-head normal owner merge and actual-main/branch follow-through without bypass; no historical/frozen/package or #184 operating clearance is inferred. |
|
Owner main-acceptance receipt for #283 / #123:
This accepts a pure supplied-row projection decoder and its explicit SQL timezone context columns. No SQL parser/engine, database driver, historical package, collector, API probe or historical runtime was executed by these source controls. A complete projection still has unknown phase/raw-capture authority; timezone labels do not establish UTC/DST/storage interpretation. #123 stays open. sdk-python owns the next concrete collector/normalizer, raw-capture/read-cancellation and cleanup source proposal; actual driver/source inputs, phase/private-claim/registration/API linkage, bounded executor and historical operating admission remain unselected. General was asked to order that source slice against the independently owned additive replay-clock proposal. Original failures and their unproved root causes remain unchanged; #184 is separate and held. |



The #123 original-row SQL proposal lacked a typed projection decoder. This source-only component now validates explicitly supplied normalized rows and preserves missing/truncated/invalid upstream states, exact original namespace/run/task or instance identity, historical status vocabulary and workflow task family. It rejects duplicate/extra rows and fields, implicit truthiness, malformed counters and unreviewed timestamp coercions. Accepted projections still return phase_verdict=unknown.
Both read-only SELECT proposals add session/system timezone labels without modifying either variable. The provenance file binds six exact historical schema/enum sources, both SQL texts and the pure decoder. Nullable text retains null/empty/literalNULL distinctions; unsigned counters preserve zero; presence fields accept only integer/text0 or1. Timestamp normalization and timezone interpretation remain a future driver/collector responsibility. Refusals expose fixed codes/known field names without raw rows, unknown values or exception text.
Validation:100 snapshot controls and58 existing observer controls pass (158 total); Ruff and strict mypy across43 files pass. Golden row fixtures are independent of implementation field tables and cross-checked against the SQL column inventory. Schema/enum/SQL/decoder byte bindings, diff and credential-pattern checks pass. No SQL engine/query, actual driver, credentials/process/transport or historical package/runtime was used; raw capture bounds, driver normalization, read brackets/deadline cancellation and private claim/registration/API linkage remain explicitly unimplemented.
Server owns review of the bounded SQL/type/timezone proposal; sdk-python owns corrections and ordinary source integration/main follow-through. This is part of #123, not an execution manifest or historical cause finding, and changes no SDK product/workflow or #184 operating/policy gate. Base323357ef is the normally merged task-context observer source; its main follow-through is tracked separately.