Misalignment of handles on curves after 2048 UPM change
In almost all glyphs and all their layers, the handles are misaligned (vertically/horizontally off by a unit).

Also note that the baseline overshoot does not adhere to the defined zone.
Thank you. I believe this was an unfortunate side effect of downscaling to 2048 UPM (there were LOTS of alignment issues introduced by that change.)
Interestingly I see different things. Maybe I "accidentally" fixed some while working on opsz.

Your screenshot shows O, mine o. Did a fresh pull right before taking the screenshot, should be up to date :)
Indeed, Glyphs caused ~75% of Bézier handles on curves to become misaligned during UPM scaling. (Either a floating-point bug or lack of ceil/floor to round coordinates to the grid. cc @schriftgestalt) Thanks for finding this!
Do you happen to have a version just before the scaling to 2048? And how exactly did you do it?
Do you happen to have a version just before the scaling to 2048? And how exactly did you do it?
Yes! This is the .glyphs file just before conversion: https://github.com/rsms/inter/raw/633839ad550073f9d12e6cea7964a30523974b68/src/Inter.glyphs
I did it by opening font info and then the "arrows" icon next to the UPM.

I can reproduce the result (just tried it.)
Before scaling:

After scaling:

I found the issue. You have set a grid of 2 units. When rounding coordinates, offcurve nodes are always rounded to a 1 unit grid, otherwise round dots in pixel fonts would be difficult. I’ll see if I can increase the threshold a bit.
I found the issue. You have set a grid of 2 units. When rounding coordinates, offcurve nodes are always rounded to a 1 unit grid, otherwise round dots in pixel fonts would be difficult. I’ll see if I can increase the threshold a bit.
Ah. Interesting. I wonder if you could improve this "magic" by rounding offcurve nodes that are part of an angle-locked anchor (i.e. is green-colored) with the same constraints as the anchor itself. Maybe pixel fonts uses that?
I'm too far gone now to start over with the scaling, but if I did, would first doubling the grid and then doing the scaling "fix" it? (We're getting OT here, so feel free to ignore this :•)
I wrote & ran a script to attempt to repair off-by-one handles, landed in d1272ce9c904201c97e68da030b2fa9530e895a7 — this shouldn't be an issue anymore. However the programmatic approach I took is conservative so there may still be some misaligned handles that will have to be manually corrected.