Repository navigation
Align calculation interfaces and add independent altitude policies - #31
Merged
Merged
Conversation
…t/altitude-ui-parity
…t' into feat/altitude-ui-parity # Conflicts: # scripts/test-ios.mjs
Stanback
enabled auto-merge (squash)
October 20, 2026 00:34
This was referenced Oct 20, 2026
Stanback
disabled auto-merge
October 20, 2026 00:56
Stanback
enabled auto-merge (squash)
October 20, 2026 01:19
Stanback
disabled auto-merge
October 20, 2026 01:26
Stanback
enabled auto-merge (squash)
October 20, 2026 01:27
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.
What changed
Turnmark now uses the same input-first conversion flow and calculation explanations across web, iOS, Android, the widget, and MCP Apps. NCAA remains the default course method; a quiet NCAA/Colorado comparison describes their gap as a method difference. Standards and points assess the original swim. The web gives standards their own row, collapses recent conversions, and separates saved comparisons and reference material.
One Calculation options disclosure groups Course conversion and optional Altitude policy on every interface. The controls remain independent: choose feet/meters and USA Swimming (default) or the pinned NCAA 2026–27 Division I policy. Rust deducts altitude from the original event before course conversion and returns both provenance records. Settings show a compact adjustment preview; details compare the two policies. Native logging retains the actual entered swim. Enabled saved altitude settings restore expanded on both native apps, keeping the adjustment visible. The MCP card requests the calculation through the host and retains its empty network CSP.
The form heading is Your swim, arrival uses direct blank time entry, and the sample button is removed. Altitude fields have consistent grouping and spacing; About has breathing room after history and the reference disclosures no longer stack redundant separators. Shared colors and vector glyphs remain token-driven. Current screenshots replace outdated captures; 45 unreferenced older images are removed.
The documented Colorado SCM/SCY distance-freestyle rule now has an explicit caveat. The regression 4:11.36 SCM 400 free retains its documented Colorado result 3:46.45, with correct 500 yd context; NCAA gives 4:47.30. Coefficients were not silently changed.
This combines and supersedes #29 and #30, including their native automation fixes. The research/model follow-up #24 stays separate and private datasets remain ignored. No npm release is included; SDK 0.2.0 / MCP 0.3.0 remain unreleased source versions.
Validation
The hosted sheet-dismissal scroll-helper failure is corrected by using the stable app viewport instead of stale navigation/tab accessibility frames. Focused Reset, accessibility benchmark, and rotation cases pass locally (17s / 65s / 21s); all target visibility and workflow assertions remain. Converter text replacement now uses its actual Clear time action and verifies the entered string before rotation, avoiding assumptions about caret position.
UI automation disables animation only in DEBUG with its explicit harness environment; production behavior is unchanged. Per-test time bounds prevent runaway simulator idle waits.
Evidence