Vanish-risk mirror of mattermost/mattermost (Mattermost server monorepo) https://mattermost.com
  • TypeScript 49.7%
  • Go 42.6%
  • JavaScript 3.7%
  • SCSS 2.3%
  • HTML 1.4%
  • Other 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ben Schumacher 69102aba22
[MM-71589] Server Logs: show row times in the admin's timezone, with the date when needed (#39640)
* MM-71589 Server Logs: show row times in the admin's timezone, with the date when needed

Structured log rows showed only HH:MM:SS.mmm taken from the raw timestamp
string, so entries from different days looked the same and the times
didn't match the custom range dialog, which works in the admin's timezone.

- Rows now show the entry time in the admin's display timezone.
- When the listed entries fall on more than one day in that timezone,
  every row shows the date as well (YYYY-MM-DD HH:mm:ss.SSS), and the
  time column, header and details indent widen together through a CSS
  variable, so the other columns keep their alignment.
- A timestamp that doesn't parse is shown as logged.
- The tooltip, the expanded details, Copy JSON and Copy log line keep
  the raw server timestamp.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01FpCfx4b2os8EJtvKNdM4XK

* MM-71589 Address review: timestamp ellipsis, CSS fallback, test grouping

- Keep the time cell on one line so an over-long fallback is cut with an
  ellipsis instead of wrapping.
- Give the time column width variable a 96px fallback outside .LogViewer.
- Move the level label tests back under "rendering" and rename the
  fallback test to match the new behaviour.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01FpCfx4b2os8EJtvKNdM4XK

* MM-71589 Show the date for a past day and follow the clock display setting

- Rows also show the date when every listed entry falls on one day that
  isn't today in the admin's timezone, so past entries aren't read as
  today's.
- Row times follow the admin's Clock Display setting (12-hour or
  24-hour). The time column widens for the 12-hour format, with and
  without the date.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01FpCfx4b2os8EJtvKNdM4XK

* MM-71589 Simplify the time column: size it from the time format

- LogList builds the row time format once and passes it to each row,
  replacing the showDate and useMilitaryTime props.
- The time column width comes from the longest time that format gives,
  set as a character count on .LogViewer, replacing four fixed widths,
  two modifier classes and a combined selector.
- logsNeedDate checks whether any entry falls outside today, which is
  the same rule in fewer steps.
- Tests: format and date rules move to utils.test.ts; duplicate row
  tests are folded together; the list tests share one render helper
  that uses TestHelper.getPreferencesMock.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01FpCfx4b2os8EJtvKNdM4XK

* MM-71589 Simplify the Server Logs time handling and its tests

- Show an unparseable timestamp in full and let the column's ellipsis
  cut it, instead of a fixed 23-character slice.
- logsNeedDate builds today's moment once.
- Tests: one list render helper with optional admin settings; the list
  test only checks the format reaches the rows and the column, leaving
  the format cases to the utils tests; duplicate row and copy tests
  folded into the existing ones; stale comments fixed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01FpCfx4b2os8EJtvKNdM4XK

* MM-71589 Add the date when the admin's day ends with the list open

A list left open across midnight kept bare times for entries that were
now from yesterday, since nothing it depends on changed. Recheck at the
next midnight in the admin's timezone.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01FpCfx4b2os8EJtvKNdM4XK

* MM-71589 Keep the midnight recheck and failed-node rows current

Take the next midnight from the same clock reading as the date check, so
a render just before midnight can't schedule the recheck a day late.

A failed-node entry keeps its row key across polls while its time and
error change, so the cached row showed the first failure forever. Reuse
it only while its content is unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01FpCfx4b2os8EJtvKNdM4XK

* MM-71589 Recheck the date when the page comes back after midnight

Timers can stall while the computer sleeps, so an admin returning after
midnight could see yesterday's entries without a date until the timer
caught up. Recheck when the page becomes visible again.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01FpCfx4b2os8EJtvKNdM4XK

* Document Server Logs timezone and clock format in docs

---------

Co-authored-by: Claude <[email protected]>
2026-11-12 17:21:38 +01:00
.cursor Bump Go version to v1.26.10 (#39328) 2026-10-21 17:23:06 -03:00
.github [MM-71836] Plugin testhelper: run its integration tests in CI (#39966) 2026-11-12 11:22:27 +00:00
api [MM-71587] Bound Server Logs scans with a time and size budget (#39645) 2026-11-12 15:15:27 +01:00
docs [MM-71589] Server Logs: show row times in the admin's timezone, with the date when needed (#39640) 2026-11-12 17:21:38 +01:00
e2e-tests [MM-71587] Bound Server Logs scans with a time and size budget (#39645) 2026-11-12 15:15:27 +01:00
i18n The rules a new translation is held to (#39299) 2026-10-22 16:20:27 -03:00
server [MM-71587] Bound Server Logs scans with a time and size budget (#39645) 2026-11-12 15:15:27 +01:00
tools MM-71488: Add HA cluster support to the sharedchannel-test tool (#39635) 2026-11-11 18:13:41 -05:00
webapp [MM-71589] Server Logs: show row times in the admin's timezone, with the date when needed (#39640) 2026-11-12 17:21:38 +01:00
.editorconfig feat(docs): move docs-experimental content into monorepo docs/ (#37330) 2026-07-02 18:42:57 +03:00
.gitignore Agentic changelog phase 2 (from v12.2): scheduled runs, release-derived sections, doc links, link check and readiness report (#39380) 2026-11-03 16:08:06 +02:00
.gitmodules docs: vendor and stage Mattermost Agents docs for Docusaurus build (#37627) 2026-07-24 16:56:13 +03:00
.gitpod.yml Add .gitpod.yml to use mattermost-gitpod-config repo for Gitpod configuration (#19984) 2022-04-14 11:02:50 -04:00
.nvmrc Tag the build server image on its Node version (#38281) 2026-09-03 14:32:25 -03:00
.yamllint ci: add yamllint workflow to detect duplicate YAML keys (#36010) 2026-04-20 17:25:12 -04:00
AGENTS.md E2E/Test: Fix failing tests (#38981) 2026-10-04 12:35:53 +08:00
CHANGELOG.md Changelog link (#8805) 2018-05-30 10:23:25 -04:00
CODEOWNERS Require release team review for release documentation (#38097) 2026-08-24 13:22:51 +03:00
CONTRIBUTING.md update CONTRIBUTING.md and github ISSUE_TEMPLATE (#30862) 2025-04-29 15:42:40 +03:00
enable-claude-docs.sh Add optional Claude.md orchestration for Webapp folder (#34668) 2026-01-14 13:04:20 -05:00
LICENSE.enterprise Source available metrics (#24879) 2024-01-08 10:47:24 -04:00
LICENSE.txt Update LICENSE.txt to reflect new paths (#28241) 2024-10-01 09:47:09 -03:00
mise.toml Stop package-lock.json from losing its peer markers (#38265) 2026-09-17 17:17:14 +05:30
NOTICE.txt chore: Update NOTICE.txt file with updated dependencies (#39816) 2026-11-09 11:30:22 +01:00
README.md Drop RHEL 7/8 support: switch build image to golang-bookworm (#37229) 2026-08-18 10:59:32 +00:00
SECURITY.md MM-41988 Updated links to legacy domain about.mm.com (#19552) 2022-03-16 19:47:57 +08:00

Mattermost logo

Mattermost is an open core, self-hosted collaboration platform that offers chat, workflow automation, voice calling, screen sharing, and AI integration. This repo is the primary source for core development on the Mattermost platform; it's written in Go and React, runs as a single Linux binary, and relies on PostgreSQL. A new compiled version is released under an MIT license every month on the 16th.

Deploy Mattermost on-premises, or try it for free in the cloud.

mattermost user interface

Learn more about the following use cases with Mattermost:

Other useful resources:

Table of contents

Install Mattermost

Other install guides:

Native mobile and desktop apps

In addition to the web interface, you can also download Mattermost clients for Android, iOS, Windows PC, macOS, and Linux.

Get Mattermost on Google Play Get Mattermost on the App Store Get Mattermost on Windows PC Get Mattermost on Mac OSX Get Mattermost on Linux

Get security bulletins

Receive notifications of critical security updates. The sophistication of online attackers is perpetually increasing. If you're deploying Mattermost it's highly recommended you subscribe to the Mattermost Security Bulletin mailing list for updates on critical security releases.

Subscribe here

Get involved

Learn more

License

See the LICENSE file for license rights and limitations.

Get the latest news

Contributing

Small Image

Please see CONTRIBUTING.md. Join the Mattermost Contributors server to join community discussions about contributions, development, and more.