Skip to content

Fix Apple normalization of integral floating wire properties - #296

Merged
tiensonqin merged 1 commit into
mainfrom
devin/1793495626-apple-float-wire-review
Nov 1, 2026
Merged

tiensonqin merged 1 commit into
mainfrom
devin/1793495626-apple-float-wire-review

Conversation

@tiensonqin

Copy link
Copy Markdown
Collaborator

Summary

Normalize integral JSON numbers for all 36 FloatValue properties before retained-wire validation. Swift's decoder can interpret letter-spacing: 2.0 as .int(2), causing otherwise valid startup batches to roll back atomically. Property admission, finite/range checks, and rollback semantics are unchanged; booleans and strings remain rejected.

Adds one table-driven contract covering integral, decimal, exponent and fractional encodings, plus migration guidance. The original Reader startup bytes fail on the old backend and both batches are accepted after this fix.

Local validation on the macOS child: focused contract 1/1 passed; full suite 211/212 passed. The legacy full-width pin-focus test also fails on the exact old baseline (210/211), so it is not changed here. Reader native/Melange contracts and iOS simulator/device builds passed with the original identical Swift sources. No iOS UI pass is claimed.

Link to Devin session: https://app.devin.ai/sessions/c47297d38dc34fd181b18f63166e5679
Open in Devin Desktop: https://app.devin.ai/desktop/session/c47297d38dc34fd181b18f63166e5679?variant=devin
Requested by: @tiensonqin

@devin-ai-integration

Copy link
Copy Markdown
Contributor

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@tiensonqin
tiensonqin merged commit 75bb1ab into main Nov 1, 2026
15 of 16 checks passed
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.

1 participant