Repository navigation
fix(run-result): replace inlined child envelopes with bounded per-child summaries - #3640
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Parent run_result envelopes no longer inline the full stored run_result of every child job. RunResultEnvelope::fromJobSummary() now emits a bounded per-child summary (job_id, status, counts, outcome class counts) at metadata.datamachine.child_job_summaries, with full child state hydrated by ref via the existing child_run_refs. This keeps fan-out parent engine_data bounded regardless of child count, fixing the engine_data_query_oversize rejections (3.5–4.7 MB parents observed on events.extrachill.com) and reducing multi-MB CAS writes on hot parent rows. Child rows are also fetched once per envelope build instead of twice.
What changed
How to test
homeboy review test data-machine; expect passes as recorded by Cook's deterministic gate.Compatibility
metadata.datamachine.child_job_envelopes is removed from newly built parent envelopes and replaced by child_job_summaries; a repo-wide grep found no other consumers of child_job_envelopes in inc/ or tests besides the updated test. Previously stored envelopes are untouched (existing valid stored run_results are never migrated, per the established rebuild-on-invalid policy). child_run_refs, outputs.child_jobs totals, and all other envelope fields are unchanged. CHANGELOG/versions untouched (release-owned).
Evidence
homeboy review test data-machine: status=succeeded; candidate commit5ad4cca1d303e651ac7ef98c0e75820891a1259a, tree67e727e1798e26d7ddd12749b6c7a67f4b4d9aaf, fingerprintcd8a49434dc96299d8327a67c52c2830bf84442ec848bc79965de3aa529b9a1d; durable gategate-1AI assistance