Skip to content

fix(web): honor clock preferences in detail views - #74

Closed
saphid wants to merge 1 commit into
docs/consistency-clock-formatfrom
fix/consistency-clock-format
Closed

saphid wants to merge 1 commit into
docs/consistency-clock-formatfrom
fix/consistency-clock-format

Conversation

@saphid

@saphid saphid commented Sep 20, 2026 •

Copy link
Copy Markdown
Owner

What Changed

Secondary web views could ignore an explicit 12-hour/24-hour clock choice because they used raw locale formatters. Request-error times, provider-auth expiry, pull-request details, connection details and device-account updates now use the client's current preference. Full dates and existing seconds precision remain intact.

Why

This implements the audited web bypasses in the proposed clock-preference invariant. Cached formatter keys include preference and precision. Relative ages, durations, number/date-only formatting and machine timestamps keep their purpose. React Native has its own system-scoped preference model and is unchanged.

Stacked on docs/consistency-clock-format in the fork, independently of other invariant pairs.

Validation

  • 50 tests passed across timestampFormat, MobileClientsUserProfilePage logic and useSettings.
  • Web package typecheck and scoped lint exited 0; existing unrelated warnings/suggestions remain.
  • Direct devin -p --model swe-2-max independent review exited 0: no actionable code bugs in the frozen formatter and consumer diff. It identified the missing runtime and before/after proof below; no merge-readiness claim.

UI Changes

Runtime proof (2026-09-20, isolated proof app; base d6f2913 vs this branch): with Timestamp format set to 24-hour, the slow-request toast detail reads "Started 9:43:03 PM" on base and "Started 21:45:09" on this branch.

Before: https://github.com/user-attachments/assets/185e971d-c140-4209-abb6-910b67cd07e7
After: https://github.com/user-attachments/assets/6b818bb0-99a6-428a-b64d-77488cbe2936
Context: https://github.com/user-attachments/assets/8840b02b-c6d4-44c7-8a79-e60f86641e1a

The Connections pairing-link and PR-summary timestamp surfaces were not reachable on a loopback-only seeded environment; those paths are covered by the shared formatter tests.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for UI changes

Implemented by GPT-6 Astra (medium reasoning) in Codex; independently reviewed by SWE-2 Max in Devin CLI.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Sep 20, 2026
@saphid

saphid commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

Superseded by pingdotgg#12867 — the implementation PR now lives upstream against main (it contains the docs commit until the paired docs PR merges). Same head branch, same commits; this fork draft is closed to avoid a duplicate review surface.

@saphid saphid closed this Sep 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant