Skip to content

Chief of Staff: show a light time on each message #420

Closed

Description

@barelyworkingcode

User story

As a person reading the Chief of Staff thread, I want to see when each message was posted, so that I can tell how fresh a reply or request is.

Acceptance criteria

  • Each person message shows the time it was sent.
  • Each Chief of Staff post shows the time it was posted.
  • The time uses light, italic, secondary text that does not compete with the message.
  • A message from today shows the time only; an older message also shows the date.
  • The time uses the browser's locale and time zone.
  • The time is hidden on phone-width layouts.
  • Screen readers read the full date and time.

What I'd notice

A small italic time under each message in the Chief of Staff thread on desktop.

Tasks

  • Render from the post's existing creation time
  • Phone breakpoint hides it
  • Playwright check on desktop and phone widths
  • docs/FEATURES.md row

Contract

Ownership: public/chief-of-staff-page.js, public/apple/chief-of-staff.css, docs/FEATURES.md (new row G6.82), docs/design-chief-of-staff.md (thread section), test/e2e/g6-cos.spec.js, design/homework/mockups/16-cos-message-time-built*.png.

Behaviour (client only; every post already carries at, an ISO time eve sets in _addPost; no server change):

  • Every rendered post (person and Chief of Staff, every kind) ends with one <time class="cos-time" datetime="<post.at>">. A post whose at does not parse renders no time.
  • Visible text: Intl.DateTimeFormat(undefined, { timeStyle: 'short' }) when at is on the browser's local today, else { dateStyle: 'medium', timeStyle: 'short' }. That text is aria-hidden; a visually hidden span (.cos-sr) carries { dateStyle: 'full', timeStyle: 'short' } for screen readers.
  • Person posts: the bubble keeps exactly the person's text (existing exact-text locators stay valid); the time sits under the bubble, right-aligned, outside it. Every existing testid stays.
  • Style: font-style: italic; font-weight: 300; color: var(--text-secondary); footnote size. Hidden (display: none) under the phone breakpoint (max-width: 599.98px).
  • Alert and finished posts drop the clock from their meta line (the project stays; an empty meta line is not rendered), so each post shows its time once.

Waits: the spec waits on the post in the feed, then reads its time; no durations.

Decisions made for the owner

  • One time per post: alerts and finished posts move their clock from the top meta line to the light time under the post. On phones they then show no clock, like every other post; the card's "Waiting on you · 5 min" age stays.
  • "Today" is decided when the post renders; a page left open past midnight shows yesterday's posts time-only until the next render.

Activity

  1. barelyworkingcode commented on Oct 12, 2026

    @barelyworkingcode
    OwnerAuthor

    Approved by the owner on 2026-10-12. Removing needs-review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions