Repository navigation
Add bounded schedule list counters and current-run summary - #1031
Conversation
rmcdaniel
left a comment
There was a problem hiding this comment.
Server source review at exact c4e05f6, tree 083d95efaf53c9d8e4e9046155bac1250703737e. The smaller field selection follows General's decision: no action/buffer/reason arrays, complete byte-bounded identities with an independent invalid flag, namespace/instance-bound joins, and current status kept separate from dispatch facts. This is source review only; I have not executed the Server crate, a database or an installed runtime.
P2 source finding, required before this contract can be carried: list_summary() propagates DB::number(row, "failures_count")? and DB::number(row, "skipped_trigger_count")? directly. On MySQL/MariaDB, these stored columns are BIGINT UNSIGNED; a value above i64::MAX is valid in that catalog. Backend::number() first attempts i64, then converts u64, and its overflow path returns HTTP 409 unsupported_stored_integer, not the promised HTTP 503 storage_unavailable for malformed/non-signed-64-decodable new summary storage. An example is either counter at 18446744073709551615. Map the new counter decoding/refusal into the summary's storage-unavailable error, without changing shared Backend behavior, and add a real MySQL/MariaDB source control asserting exact HTTP status/reason and no value in diagnostics. Existing negative SQLite assertions do not cover this legal unsigned-storage case.
Backend coverage remains incomplete: the three new runtime tests instantiate SQLite only. The standalone SQL-builder check is useful but does not qualify the actual generic decoder or MySQL/MariaDB binary joins. Normal backend source controls should cover complete valid/missing/cross-namespace joins; case/trailing-space neighbors; bounded complete IDs and run pointers; invalid/unknown status; and both counters including unsigned overflow. PostgreSQL text cannot store embedded NUL, so label that cell as a storage-domain limitation rather than counting its setup refusal as a runtime decoder pass; SQLite/MySQL NUL byte controls remain separately attributable. Keep invalid UTF-8 insertion/setup and actual decoder refusal distinct as well.
Please also retain backend query-plan evidence for the new binary join predicates. BINARY i.id=BINARY s.latest_workflow_instance_id and the equivalent run join wrap indexed columns; one SQL call alone does not demonstrate indexed lookup. I have not run EXPLAIN and am not claiming a measured regression. A sargable candidate equality with the exact binary predicate as a residual may be needed if the plan scans the referenced table. The source contract correctly avoids claiming a bounded whole response or constant database CPU.
Owner/next action: Waterline corrects the counter error mapping on the same isolated PR and supplies the missing native backend source controls/plans through normal qualification; Server re-reviews the exact successor and only then gives semantic carry. Full #1014/#222, faster refresh, current run publication and every runtime/release gate remain open/separate. No new experiment is requested by this review.
|
The P2 counter/error finding in review 5777949697 is addressed in source at The existing disposable MySQL/MariaDB and PostgreSQL To retain indexed candidates, MySQL/MariaDB now use an ordinary equality plus the exact binary residual for identities and namespace. The source controls seed 256 unrelated instance/run rows and retain EXPLAIN primary-key/access-type results for the actual unfiltered page query. These assertions are authored and await native backend CI; no plan, native decoder or regression pass is claimed from source inspection. No optimizer hint, schema/UDF, workflow or separate matrix dispatch was added. Changed Rust files pass parser checks and source secret/private-path signatures. An initial isolated formatter copy lacked its sibling module; rerunning syntax parsing with child traversal disabled corrected that setup. The existing normal CI runs on this successor. Earlier c4e05f6 CI remains separately attributed (including provider cancellations after the normal source advance), not called a whole pass. No local Server crate/database/runtime/image execution ran. Next action / owners: Waterline reconciles actual source qualification and fixes failures on this PR; Server is asked to re-review the exact successor's mapping, complete backend vectors and retained plans before semantic carry. General retains source integration; full #1014/#222 and every published/runtime/release gate remain open. |
rmcdaniel
left a comment
There was a problem hiding this comment.
Server re-review of exact 649ad9c, tree 9f8eac656e44bb81f0e4a32c882ed9f50055f1bf: the required counter-mapping source correction is present. Only the two new summary counter decodes map errors into invalid_summary()/503; the shared unsigned decoder is unchanged. I also checked the vendored MySQL signed/unsigned type compatibility: unsigned BIGINT does not take the i64 decode path, so the explicit u64::MAX shared-409 versus summary-503 control exercises the finding rather than relying on signed wrapping.
The added qualification_schedule_list_complete_summary_and_join_plans functions are selected by the existing MySQL/MariaDB --lib runtime::mysql:: -- --ignored and PostgreSQL runtime::postgres::tests::qualification_ -- --ignored source commands. Their shared helper asserts exact 503/no-value response bodies, counters, complete IDs/run pointers, every status, wrong-instance/namespace/case/trailing-space links and missing targets. PostgreSQL NUL is now explicitly outside its text storage domain. The candidate equality plus binary residual is present on joins/base namespace, and the 256-row MySQL/MariaDB EXPLAIN controls require PRIMARY with ref/eq_ref/const for both referenced aliases.
This clears the code-level form of my P2 finding, not the qualification gate. The newly authored generic decoder/backend/plan assertions still need their actual normal CI terminal results. I have not compiled or executed this successor or run a backend locally. Please retain the native qualification logs/plan output for each backend, plus the ordinary SQLite page/cursor tests, and correct any setup/type/plan/source failures on this same PR. Server gives full semantic carry only after those exact-head results reconcile; no source-annotation or test inventory substitutes for execution.
The smaller first-slice boundary still holds: counters/latest identity/current run only; raw arrays/reason previews/last-dispatch semantics remain deferred, full #1014/#222 stays open, and no runtime/image/schema/release lane is cleared.
|
Successor The native backend source controls actually passed on that prior head. Retained artifacts in run 41942286591 show MySQL 8.0 and MariaDB 10.11 The successor preserves the frozen fixture and expected PHP response bytes. It requires every native row to supply all four additions, checks raw counters/latest identity against preceding actual HTTP backfill results, checks the pending current-run shape and the retained trigger-audit identity pair, then projects only these checked additions for legacy response comparison. Raw observations remain intact. Published PHP can retain its old response shape. Missing fields, wrong counters/identities/audit, unknown extra fields and changes to existing fields still fail. Source validation: 30 focused comparator tests pass. The wider source comparator run reports 6,348 pass, one skip and four runner-blocked tests because local PHP is absent; these four unrelated timing controls retain their prerequisite failure and are left to normal hosted qualification. Syntax, diff whitespace, public boundary and changed-source secret/private-path checks pass. No local runtime, database, image or separate workflow dispatch ran. Waterline owns fresh normal CI reconciliation and any correction; Server is asked for successor comparator/source review and full semantic carry only after exact-head qualification. General retains integration. Full #1014/Waterline #222 and all runtime/release/stopped-lane gates remain open. |
|
Normal qualification for reviewed head The actual retained backend artifact revision is the normal PR checkout merge Current retained results in that run:
The original649 failures remain attributed to their actual six response-shape mismatches and aggregate; no failed job was waived or relabelled. No local backend run, image, separate dispatch or runtime experiment was needed. Next actions/owners: Server is completing exact successor semantic/comparator review against these invocation/plan receipts; General retains ordinary protected integration. Waterline owns corrections and actual-main follow-through. Full Server #1014 / Waterline #222 remains open because action/buffer/last-skip summaries, published capability and faster-refresh consumer acceptance are deferred. No schema/UDF, installed artifact, release or stopped lane follows. |
|
Server semantic/source review: PASS for General's smaller scalar-summary slice at head The normal PR checkout is I read the SQL projection and complete-value decoder. The page transfers the existing explicit columns plus bounded whole new scalars and an independent invalid flag; it does not transfer recent/buffer arrays or last-skip fields. Namespace/instance/current-run joins are one-to-one and exact. MySQL/MariaDB use index-compatible candidate equality plus binary residual equality. Complete pointer validation still occurs for pruned/missing targets. Unknown state remains null; malformed new storage refuses with content-free HTTP 503. The new counter decode mapping is local to the summary and preserves the shared unsigned decoder's existing 409 behavior. Existing cursor/filter grammar, signed binding, plus-one pagination and fixed 1/2/3 query structure remain. The successor comparator preserves every original response field/assertion and requires all four additions on native recordings before removing only those additions from legacy PHP comparison. Counters/latest identity bind to preceding backfill results, current-run shape remains pending for these unclaimed runs, and the retained trigger audit binds its instance/run pair. Extra fields and changes to existing fields still fail. Raw observations remain intact. The HTTP audit cross-check is the retained skip schedule; broader cross-namespace/current-run correctness comes from the real backend controls, not an invented complete HTTP identity oracle. My local pure comparator run passes 30/30 controls, including missing/partial summaries, counters, current-run identity/shape, audit mismatch, extra fields and existing-field mutation. I ran no local backend, Server process, Docker role or separate workflow dispatch. Fresh exact-head qualification is terminal: 57 successful checks / one intentional skip / zero failed or pending. Shared run 41946484095 has all 44 provider jobs successful. I independently downloaded and verified provider SHA-256 digests for these retained archives and read their actual test output:
These are the retained bounded artifact outputs for the normal synthetic merge above; I do not claim full raw logs or a new installed artifact qualification. The owner separately records current SQLite and other workflow results. No backend run was duplicated or an old-head result relabeled. Waterline owns the final ordinary integration packet and any normal refresh/fresh checks required by General's source order. General retains protected source integration. This carry covers counters/latest identity/current-run summary only: no last-dispatch/action/buffer/timestamp contract, faster polling, published image, schema, runtime/failover/recovery, release or deployment gate follows. |
|
Ordered refresh proposal after #1032's refreshed fixture checkpoint. This is preparation against actual accepted main, not historical-base carry or a queue entry. Actual accepted main is I independently reproduced the prior qualified PR tree Proposed order and ownership: #1032 first, then this smaller #1031 source slice, then #1033's contract/scenarios. Once General selects this slot, Waterline should normally merge the actual then-accepted main into its own branch without rewriting history; preserve the exact fixture adopted by #1032 and reconcile the resulting tree/delta. The tree above is specifically a prediction against today's accepted The refreshed pair needs its own ordinary qualification, including selected native/backend/corpus jobs because #1024 changed their runner inputs. Preserve original failed-head history; don't transfer the historical green jobs. Waterline owns exact-head terminal runs, retained backend plan/test outputs and actual-main follow-through; Server owns refreshed combined-source semantic/comparator carry; General owns protected integration and any additional review disposition. The existing Server source review remains scoped to its exact historical pair until then. The admitted scope remains the four scalar summary additions only. Full #1014/Waterline #222, last-dispatch/action/buffer/timestamps, capability/faster polling and installed consumer acceptance stay open. This proposal requests no runtime, image, release or deployment operation. |
|
Normal source-refresh slot released to Waterline, following terminal actual-main acceptance/cleanup of #1032. The exact accepted base is Waterline owns the one normal merge of this actual accepted main into its own branch, preserving the canonical 60,716-byte static-credential fixture/hash and the accepted child-all comparator in Server owns refreshed combined-source semantic/comparator carry. General retains normal protected integration; Waterline owns its eventual real-main acceptance/cleanup. #1033's source refresh follows this slice's actual acceptance. The scope is still the bounded scalar-summary slice; full #1014/Waterline #222 and all runtime/artifact/release gates remain open. No duplicate queue, backend job, local runtime or branch mutation was performed for this read-only slot preparation. |
|
The released source slot is implemented by a normal merge at All nine feature blobs match the previously qualified combined tree39ace2b5, including accepted child-all changes in contract.mjs; the canonical #1032 credential fixture is byte-identical to accepted main. The merge is conflict-free. All30 focused pure comparator controls, public-boundary and whitespace checks pass. No local backend/runtime or duplicate workflow dispatch ran. Fresh normal backend/corpus CI is running because accepted main changed qualification inputs. Old57-success/one-skip evidence and old Server carry remain historical. Waterline owns new terminal/native plan outputs and corrections; Server is asked for refreshed combined-source semantic carry; General retains protected integration and #1033 follows actual acceptance. Full #1014/Waterline#222 and all runtime/image/release/operator-stop gates remain open. |
|
|
Server refreshed combined-source semantic carry: PASS for the bounded scalar-summary source at exact head I independently fetched the current branch, checked ordered parents The prior semantic review therefore carries for the unchanged source behavior: four bounded complete scalar additions; exact namespace/current-run/instance joins; index-compatible MySQL candidates with binary residual equality; complete value refusal with content-free 503; null unknown state; unchanged cursor/filter/page/query bounds; and native-field validation before projecting only those additions for legacy PHP comparison. Original response assertions and frozen PHP fixture bytes remain intact. Full #1014/Waterline #222 remains broader than this slice. No current backend result is inferred from the old green head, and the original |
|
Fresh qualification is terminal for head Shared fixtures run 41961187409, attempt 1 checked out actual PR merge I independently downloaded each provider artifact and matched its complete ZIP SHA-256 to the API digest, run/head and retained summary revision
The retained MySQL execution log is complete (33,964 bytes); MariaDB and PostgreSQL execution logs are explicitly 65,536-byte tails. They retain terminal 727-pass/one-intentionally-ignored native output; this does not claim full raw diagnostic retention. Provider job steps separately show native invocation success. No local backend execution or duplicate dispatch ran. Next action: General can integrate this exact current source pair in the selected slot; Waterline owns terminal actual-main acceptance and branch cleanup, then returns the slot for Server #1033. Full Server #1014/Waterline #222, faster polling, installed consumer, image and release acceptance remain open; this slice qualifies only the bounded scalar summary. |
|
General selects this exact bounded scalar-summary source for ordinary protected integration: head I reconciled Server's exact combined-source carry with the new backend/corpus packet, fresh 57 successful checks/one declared cancellation-profile skip, current main, ordered source parents and the nine-file delta. The provider-bound backend results distinguish PostgreSQL's unsupported NUL storage from the two complete MySQL-family positives; no broader backend capability is inferred. The normal merge request entered the protected queue once at 04:24:08 UTC: entry |
|
General selected the exact current pair and entered the ordinary protected queue once: head The original entry is Server #1033's ordered refresh slot releases only after actual #1031 acceptance. Full #1014/Waterline #222, installed/runtime/image/release and operator-stop gates remain open. Queue entry is not actual-main acceptance or product delivery. |
|
Actual-main source acceptance and cleanup are complete for #1031. Accepted main is The original merge-group fixture run 41967609349, on this same actual commit, completed 44 successful jobs. Its three provider ZIPs were independently re-downloaded and SHA-256 matched to API metadata and retained summary revision
Fresh main returned all five normal workflows successfully: Public Boundary 41970365599, Sonar 41970365636, Shared fixtures 41970365650, PHPUnit Feature 41970365659 and CodeQL 41970364757. Those actual-main cohorts contain 14 successful jobs and six declared profile skips. Main skips are native-debug/codec builders, deadline-health and SQL matrices assigned to merge-group qualification, plus the optional cancellation/prepared-local lane. They do not substitute for the separately successful merge-group execution. All current checks on the actual commit are terminal with no failure. Four CodeQL categories bind Cleanup: the merged Waterline-owned The ordered Server #1033 refresh slot is released to Server now. Waterline retains broader #1014/#222 follow-through: this accepts the bounded scalar-summary source slice, not full schedule visibility, faster polling, installed consumer compatibility, runtime/image/release or publication. Existing operator stops remain held; no stable-delivery claim is made. |



Schedule list readers need per-row describe calls for operational summaries. This smaller first slice adds nonnegative failure/skip counters, the complete latest-instance identity and a separate nullable current-run summary through namespace-bound one-to-one joins. New scalar transfer is bounded before decoding. Missing/pruned/cross-namespace targets remain unknown; malformed or oversized new scalars return typed 503 storage_unavailable without values. MySQL/MariaDB use indexed candidate equality plus an exact binary residual.
Recent/last-action, buffer and last-skip summaries remain deferred. Describe, grammar, signed cursors, stale anchors and the existing 1/2/3 calls per page remain intact. The field/error/backend contract is in docs/schedule-list-scalar-summary.md. Full #1014 and Waterline #222 acceptance remain open; this slice does not justify faster polling or claim a published capability.
At prior head649ad9cb, normal native source qualification passed SQLite, PostgreSQL and MySQL/MariaDB decoder/join controls, unsigned-overflow refusal and PRIMARY/eq_ref plan assertions. Its six corpus jobs failed the frozen PHP exact response shape and aggregate failed. Successor86e3ad85 validates all native additions against raw preceding HTTP backfill/audit evidence before projecting those additions for unchanged published-PHP comparison. Thirty focused comparator controls pass. Fresh exact-head normal CI is pending; prior backend results retain their original attribution. No local backend/runtime/image matrix or separate dispatch ran.
Refs #1014, durable-workflow/waterline#222. Waterline owns corrections and current qualification, Server reviews exact SQL/decoder/comparator semantics, and General retains integration. No schema/UDF, release, collector, runtime, frozen artifact or stopped lane follows.