Expand auto-formatting to CSS, SCSS, and JSON:
* [x] Ignore symlinked SCSS file from `components`.
* [x] Ignore package manifest files, `package.json` and `bower.json`,
as they are already formatted by their package manager.
* [x] Skip locale JSON files (already managed by Transifex tools).
* [x] Format all stylesheets.
Grouping of notifications is not supported on Windows 7 due this bug:
https://github.com/electron/electron/issues/11189
* [x] Disable notification grouping (using `tag`) on Windows 7.
* [x] Log notification grouping support.
* [x] **Infrastructure:** Use 2-space indentation for all files
(better integration with Prettier.)
* [x] Log updates to last message (message preview) in conversation list.
Should help debug cases such as:
https://github.com/signalapp/Signal-Desktop/issues/2323
* [x] Use structured logs:
* [x] Use static prefix (easier to search)
* [x] Capitalize log message and use present tense
(consistent with Git logging conventions).
* [x] Attach metadata as JSON serializable object. This has the benefit
that all fields are named and can be searched for.
* [x] Remove newlines from group IDs during redaction so they don’t break up
log lines.
* [x] Test notifications on Windows 7.
* [x] Switch to Electron native notifications on Window 7.
* [x] Disable **Play audio notification** setting on Windows 7 since they are
not natively supported.
* [x] Improve logging for notification status.
* [x] Investigate whether Electron notification support choosing custom sound
on Windows. Answer: no.
Source: 82329124ff/docs/api/notification.md (new-notificationoptions-experimental)
* [x] Remove `node-notifier`.
* [x] **Infrastructure:** Port `OS` and `types/Settings` to TypeScript.
* [x] Add support for specifying minimum Windows version with
`OS.isWindows(minVersion?: string)`.
* [x] OT: While testing on Windows 7, I confirmed spell checking worked
for me.