feat: Add presence heartbeat for Matrix online status

- matrix-gateway: POST /internal/matrix/presence/online endpoint
- usePresenceHeartbeat hook with activity tracking
- Auto away after 5 min inactivity
- Offline on page close/visibility change
- Integrated in MatrixChatRoom component
This commit is contained in:
Apple
2025-11-27 00:19:40 -08:00
parent 5bed515852
commit 3de3c8cb36
6371 changed files with 1317450 additions and 932 deletions

67
node_modules/.vite/deps/_metadata.json generated vendored Normal file
View File

@@ -0,0 +1,67 @@
{
"hash": "cf7c0b08",
"configHash": "321cc214",
"lockfileHash": "b188fd1a",
"browserHash": "cb507a3d",
"optimized": {
"react": {
"src": "../../react/index.js",
"file": "react.js",
"fileHash": "1d7cadc2",
"needsInterop": true
},
"react-dom": {
"src": "../../react-dom/index.js",
"file": "react-dom.js",
"fileHash": "90de7336",
"needsInterop": true
},
"react/jsx-dev-runtime": {
"src": "../../react/jsx-dev-runtime.js",
"file": "react_jsx-dev-runtime.js",
"fileHash": "e98c4019",
"needsInterop": true
},
"react/jsx-runtime": {
"src": "../../react/jsx-runtime.js",
"file": "react_jsx-runtime.js",
"fileHash": "e1b36904",
"needsInterop": true
},
"react-dom/client": {
"src": "../../react-dom/client.js",
"file": "react-dom_client.js",
"fileHash": "72fc4336",
"needsInterop": true
},
"react-router-dom": {
"src": "../../react-router-dom/dist/index.js",
"file": "react-router-dom.js",
"fileHash": "b8fb415c",
"needsInterop": false
},
"@tanstack/react-query": {
"src": "../../@tanstack/react-query/build/modern/index.js",
"file": "@tanstack_react-query.js",
"fileHash": "f80ae43b",
"needsInterop": false
},
"lucide-react": {
"src": "../../lucide-react/dist/esm/lucide-react.js",
"file": "lucide-react.js",
"fileHash": "d98d1931",
"needsInterop": false
}
},
"chunks": {
"chunk-XBADDG25": {
"file": "chunk-XBADDG25.js"
},
"chunk-HL5FOTE3": {
"file": "chunk-HL5FOTE3.js"
},
"chunk-UYNX3HOC": {
"file": "chunk-UYNX3HOC.js"
}
}
}