Skip to content

Preserve numeric kinds in CLI history exports - #913

Merged
rmcdaniel merged 3 commits into
mainfrom
fix/912-preserve-export-floats
Oct 23, 2026
Merged

rmcdaniel merged 3 commits into
mainfrom
fix/912-preserve-export-floats

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

CLI history exports serialize whole-valued floats as integers, so their memo projection disagrees with the retained Avro authority and their canonical checksum. The exporter now preserves zero fractions, including signed zero and nested values, in compact and pretty JSON. Fixes #912.

The new regression drives real workflow/activity jobs with original 30-second budgets, exports waiting and completed states, and invokes integrity-only replay verification against the untouched file. It preserves integer values and rejects a deliberately lossy representation without recalculating its checksum.

Validation: all four cases fail against normally installed 2.11.3 and the unchanged parent source; corrected source passes 4 tests / 56 assertions. Focused PHPStan and ECS pass. The initial fixture also compared noncanonical memo map order; the corrected fixture still fails all four parent cases specifically on numeric types. Normal repository checks are qualifying the exact candidate. Compatible 2.11.4 metadata is prepared; nothing is published yet. The independently confirmed Server HTTP transport is separate follow-through in Server #692 / PR #693.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel
rmcdaniel marked this pull request as ready for review October 23, 2026 11:36
@rmcdaniel
rmcdaniel merged commit ae6bf6c into main Oct 23, 2026
23 checks passed
@rmcdaniel
rmcdaniel deleted the fix/912-preserve-export-floats branch October 23, 2026 11:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CLI history export loses whole-float memo kinds and fails its own verifier

1 participant