Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
bbab856
docs: add socket.io to ws migration design spec
Innei Aug 14, 2026
feba380
feat(ws-client): add isomorphic raw WebSocket client package
Innei Aug 14, 2026
afc643d
refactor(events): rewrite BusinessEvents to Stripe-style dot values
Innei Aug 14, 2026
b992c92
feat(webhook)!: regenerate models for dot-style BusinessEvents, bump …
Innei Aug 14, 2026
6264308
feat(gateway): ws infrastructure (bus, presence, rooms, registry, env…
Innei Aug 14, 2026
4bd68fb
fix(gateway): close room-cleanup check-then-act race with atomic Lua
Innei Aug 14, 2026
3fe10de
chore(gateway): swap socket.io deps for @nestjs/platform-ws
Innei Aug 14, 2026
07c8980
refactor(gateway)!: replace socket.io with raw ws
Innei Aug 14, 2026
bf1dd42
refactor(gateway): update ws consumers and crud event names
Innei Aug 14, 2026
75633f2
test(gateway): align crud factory spec with dot event names
Innei Aug 14, 2026
8bbaa57
fix(gateway): drop phantom presence on a connect/close race
Innei Aug 14, 2026
8016964
test(gateway): ws e2e coverage for web/admin gateways and cross-node …
Innei Aug 14, 2026
489a151
test(gateway): drop non-load-bearing comments from ws e2e harness
Innei Aug 14, 2026
aaddf0b
refactor(admin)!: switch realtime to @mx-space/ws-client
Innei Aug 14, 2026
e36765c
fix(admin): defer unsubscribe for a stale ai_task subscribe ack
Innei Aug 14, 2026
c079e5e
fix(admin): scope unsubscribe decisions across sibling ai_task subscr…
Innei Aug 14, 2026
e5940c3
fix(gateway): final review fixes
Innei Aug 14, 2026
7a46116
docs: correct ws migration spec against implemented behavior
Innei Aug 14, 2026
fb6301e
fix(gateway): subscribe ws bus only after the redis client is ready
Innei Aug 15, 2026
3e57f39
fix(gateway): address codex review findings
Innei Aug 15, 2026
d7f2962
fix(gateway): harden ws bus subscription and presence self-reconcilia…
Innei Aug 15, 2026
4d41d60
fix(gateway): cap ws maxPayload and restore lost presence writes
Innei Aug 15, 2026
a983b32
fix(ws-client): reject envelopes from unsupported protocol versions
Innei Aug 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions apps/admin/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ Admin dashboard for MX Space Core — a React 19 SPA served by the core server a

## Tech Stack

| Component | Technology |
|-----------|------------|
| Framework | React 19 + Vite 8 (+ React Compiler) |
| Routing | react-router 8 (HashRouter, routes generated from `src/views`) |
| State | Jotai + Zustand + TanStack Query |
| UI | Base UI primitives + Tailwind CSS v4 |
| Editor | Lexical (`@haklex/rich-*`), CodeMirror, Monaco, Excalidraw |
| Auth | Better Auth + passkeys |
| Realtime | socket.io-client |
| Component | Technology |
| --------- | -------------------------------------------------------------- |
| Framework | React 19 + Vite 8 (+ React Compiler) |
| Routing | react-router 8 (HashRouter, routes generated from `src/views`) |
| State | Jotai + Zustand + TanStack Query |
| UI | Base UI primitives + Tailwind CSS v4 |
| Editor | Lexical (`@haklex/rich-*`), CodeMirror, Monaco, Excalidraw |
| Auth | Better Auth + passkeys |
| Realtime | @mx-space/ws-client |

Workspace contracts: `@mx-space/ai` (agent SSE events), `@mx-space/editor` (block node types).

Expand All @@ -36,12 +36,12 @@ For the full stack, run the core server alongside (`pnpm dev` at the repo root),

All variables are optional (empty = safe defaults); see `.env.example`.

| Variable | Purpose |
|----------|---------|
| `VITE_APP_BASE_API` | mx-core API endpoint |
| `VITE_APP_WEB_URL` | Blog frontend origin ("view on site" links) |
| `VITE_APP_GATEWAY` | Socket.IO gateway (derived from API origin if empty) |
| `VITE_APP_PUBLIC_URL` | Vite `base` for production builds |
| Variable | Purpose |
| --------------------- | ---------------------------------------------------- |
| `VITE_APP_BASE_API` | mx-core API endpoint |
| `VITE_APP_WEB_URL` | Blog frontend origin ("view on site" links) |
| `VITE_APP_GATEWAY` | Socket.IO gateway (derived from API origin if empty) |
| `VITE_APP_PUBLIC_URL` | Vite `base` for production builds |

Runtime URL resolution precedence: server-injected `window.injectData` → build-time `VITE_APP_*` → fallbacks (see `src/constants/env.ts`).

Expand Down
2 changes: 1 addition & 1 deletion apps/admin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
"@monaco-editor/react": "4.7.0",
"@mx-space/ai": "workspace:*",
"@mx-space/editor": "workspace:*",
"@mx-space/ws-client": "workspace:*",
"@pierre/diffs": "1.3.5",
"@rehookify/datepicker": "6.6.8",
"@simplewebauthn/browser": "13.3.0",
Expand Down Expand Up @@ -110,7 +111,6 @@
"react-router": "8.3.0",
"recharts": "3.10.1",
"shiki": "^4.4.3",
"socket.io-client": "4.8.3",
"sonner": "2.0.8",
"streamdown": "^2.5.0",
"tailwind-merge": "^3.6.0",
Expand Down
Loading