Adds chat_read_state migration (employee_id + space_id, last read
message + timestamp) wired through ChatService.markSpaceRead, IPC
markChatSpaceRead, and an effect in ChatPage that flushes the active
space whenever the latest message id changes.
Shell.computeBadges now derives the Messages badge from
(message.createdAt > read_state.last_read_at) minus messages the viewer
sent, so the sidebar shows true unread instead of total throughput.
- Port design tokens, sidebar, topbar, and icons to inline SVG set
- Rewrite each page (Home/Team/Work/Chat/Files/Approvals/Social/Settings)
to drive real snapshot data and match the bento, kanban, three-pane chat,
file tree + pinned cards, approval queue, social schedule + calendar,
and settings sub-nav layouts
- Split Chat and Settings into per-concern subcomponents so every file
stays under 500 lines
- Add schema v4 for pinned files and scheduled posts plus IPC + service
wiring; cover new behavior in unit tests
- Update onboarding labels and Hire form to remove ambiguity for the
expanded e2e suite (all settings tabs + 8 routes at 1280 and 980)