Show reply timestamp in the native More menu

Merged
TE
2d ago
+90-3

Add the reply time as a quiet, disabled header at the top of the assistant reply’s native More/right-click menu. The pane formats the date when opening the menu; the native shell uses a standard menu item and preserves existing actions.

Leo: “in general lawrence was askin ab parity wrt the chatgpt DESIGN as a whole for our gui/app/functionality and stuff...”

Private reference id: chatgpt/live/transcript-worked-for-branch-menu (the Today/time header). Design spec: design/menus.md in leo-workspace. Prior art: #24350 (native More menu), #31640 (timestamp visibility while open), #31229 (popup placement); this extends the existing native menu.

Changelog

  • Show the localized reply date/time above the native reply menu’s actions.

Performance

MetricBeforeAfterDeltaHarness or run
Timestamp headers supplied per reply-menu opening01+1Paired report harness, 500 openings per revision
Report preparation p950.036108 ms0.044905 ms+0.008797 msSame paired harness, 500 samples after 100 warmups

Formatting is on demand, with no new timer, observer, animation or transcript pass. Ships on by default; reverting this commit restores the prior menu.

Observed

  • git diff --check and static pre-push checks passed.

  • Final-head fleet step de58e6a3ab263f61e7cb20ff: both focused web test files passed (date/localization and More-button bridge), with zero failures or timeouts.

  • Invalid/unknown timestamps omit the header; the regression test includes zero.

  • Localization audit found no new or changed macOS keys or web English keys; existing catalog parity debt remains on base.

  • Native compile and all 7 AgentPaneMenuLookTests passed in fleet step 697f46cddcc8a7b9dedff552.

Checks

  • Chromium Objective-C contract job is red on the same version/hash mismatch on base 31ffec470c461d37bdc64d2a4d42b60dc0e9745c: the reviewed CEF contract and pinned engine differ. The menu changes neither file. Failure.
  • Independent Claude Opus 5.5 medium review: SHIP at 1596bc31170176917f99bf57e329701acd07f237.
  • Paired lint/measurement run: https://github.com/manaflow-ai/cmux/actions/runs/41759545539 measured implementation head 8a878213fa62c8142cb999af7c538e0ec0c793fd against base 31ffec470c461d37bdc64d2a4d42b60dc0e9745c. It found a formatter wrap corrected before the final head, plus existing base type/format/design-token findings. The final head also rejects unknown timestamps.

Not run

  • No capture: no real-app capture yet. This change uses standard native menu chrome; a light/dark capture remains a follow-up.

🤖 Generated with Codex

Agent session: agent session