chore(matrix): final scrub of stale matrix references

A grep audit after the previous matrix removal commits found a handful
of stragglers in non-runtime files that the earlier sweeps missed:

- services/mana-llm/CLAUDE.md: removed matrix-ollama-bot from the
  consumer-apps diagram and from the related-services table
- services/mana-video-gen/CLAUDE.md: removed "Matrix Bots" integration
  bullet
- packages/notify-client/README.md: removed sendMatrix() doc entry
  (the method itself was already gone in the prior cleanup)
- docker/grafana/dashboards/logs-explorer.json: dropped the "Matrix
  Stack" log row that queried tier="matrix" (would show no data forever)
- docker/grafana/dashboards/master-overview.json: dropped the "Matrix
  Bots" stat panel that counted up{job=~"matrix-.*-bot"}
- apps/mana/apps/landing/src/data/ecosystem-health.json: regenerated via
  scripts/ecosystem-audit.mjs to drop matrix from the app list, icon
  counts, file analytics, top offenders and authGuard missing list
- .gitignore: removed services/matrix-stt-bot/data/ pattern (the
  service itself was deleted long ago)

Production-side stragglers also addressed (not in this commit):
- DROP USER synapse on prod Postgres (the parallel cleanup commit
  2514831a3 dropped DATABASE matrix + DATABASE synapse but left the
  role behind)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-04-08 16:47:54 +02:00
parent 7f382138a1
commit bfeeef7819
7 changed files with 1259 additions and 734 deletions

1
.gitignore vendored
View file

@ -129,5 +129,4 @@ pip-delete-this-directory.txt
# ML Models (large files, downloaded on demand) # ML Models (large files, downloaded on demand)
mlx_models/ mlx_models/
services/matrix-stt-bot/data/
services/mana-sync/server services/mana-sync/server

View file

@ -1,30 +1,30 @@
{ {
"generatedAt": "2026-03-31T14:32:40.747Z", "generatedAt": "2026-04-08T14:46:05.166Z",
"overallScore": 72, "overallScore": 67,
"scores": { "scores": {
"sharedPackages": 90, "sharedPackages": 92,
"iconConsistency": 78, "iconConsistency": 86,
"modalConsistency": 19, "modalConsistency": 19,
"errorHandling": 16, "errorHandling": 0,
"i18nCoverage": 87, "i18nCoverage": 50,
"localFirst": 93, "localFirst": 100,
"styleConsistency": 87, "styleConsistency": 75,
"errorBoundaries": 52, "errorBoundaries": 50,
"typescriptStrict": 100, "typescriptStrict": 100,
"testCoverage": 73, "testCoverage": 50,
"pwaSupport": 4, "pwaSupport": 0,
"maintainability": 0, "maintainability": 79,
"securityHeaders": 73, "securityHeaders": 50,
"skeletonLoading": 77, "skeletonLoading": 50,
"toastConsistency": 100, "toastConsistency": 100,
"storePattern": 94, "storePattern": 100,
"sharedTypes": 53, "sharedTypes": 5,
"depFreshness": 80, "depFreshness": 60,
"bundleConfig": 100, "bundleConfig": 100,
"gitActivity": 97, "gitActivity": 100,
"a11yIndicators": 36, "a11yIndicators": 33,
"authGuardCoverage": 83, "authGuardCoverage": 50,
"dockerReadiness": 80 "dockerReadiness": 100
}, },
"weights": { "weights": {
"sharedPackages": 20, "sharedPackages": 20,
@ -53,496 +53,235 @@
}, },
"details": { "details": {
"icons": { "icons": {
"adoption": 78, "adoption": 86,
"phosphorFiles": 347, "phosphorFiles": 228,
"inlineSvgFiles": 98, "inlineSvgFiles": 38,
"perApp": { "perApp": {
"calc": {
"phosphor": 1,
"inlineSvg": 0
},
"calendar": {
"phosphor": 28,
"inlineSvg": 0
},
"chat": {
"phosphor": 18,
"inlineSvg": 0
},
"citycorners": {
"phosphor": 9,
"inlineSvg": 0
},
"clock": {
"phosphor": 3,
"inlineSvg": 7
},
"contacts": {
"phosphor": 27,
"inlineSvg": 4
},
"context": {
"phosphor": 13,
"inlineSvg": 0
},
"inventar": {
"phosphor": 12,
"inlineSvg": 1
},
"mana": { "mana": {
"phosphor": 34, "phosphor": 228,
"inlineSvg": 25 "inlineSvg": 38
},
"cards": {
"phosphor": 2,
"inlineSvg": 1
}, },
"manavoxel": { "manavoxel": {
"phosphor": 0, "phosphor": 0,
"inlineSvg": 0 "inlineSvg": 0
},
"matrix": {
"phosphor": 26,
"inlineSvg": 0
},
"memoro": {
"phosphor": 0,
"inlineSvg": 53
},
"moodlit": {
"phosphor": 5,
"inlineSvg": 0
},
"mukke": {
"phosphor": 21,
"inlineSvg": 0
},
"news": {
"phosphor": 1,
"inlineSvg": 0
},
"nutriphi": {
"phosphor": 6,
"inlineSvg": 1
},
"photos": {
"phosphor": 11,
"inlineSvg": 3
},
"picture": {
"phosphor": 27,
"inlineSvg": 0
},
"planta": {
"phosphor": 0,
"inlineSvg": 0
},
"playground": {
"phosphor": 4,
"inlineSvg": 1
},
"presi": {
"phosphor": 6,
"inlineSvg": 0
},
"questions": {
"phosphor": 7,
"inlineSvg": 0
},
"skilltree": {
"phosphor": 12,
"inlineSvg": 1
},
"storage": {
"phosphor": 25,
"inlineSvg": 1
},
"times": {
"phosphor": 13,
"inlineSvg": 0
},
"todo": {
"phosphor": 22,
"inlineSvg": 0
},
"uload": {
"phosphor": 3,
"inlineSvg": 0
},
"wisekeep": {
"phosphor": 2,
"inlineSvg": 0
},
"zitare": {
"phosphor": 9,
"inlineSvg": 0
} }
} }
}, },
"modals": { "modals": {
"adoption": 19, "adoption": 19,
"total": 63, "total": 21,
"sharedUsage": 12, "sharedUsage": 4,
"focusTrapUsage": 6 "focusTrapUsage": 0
}, },
"packages": { "packages": {
"coreAdoption": 90, "coreAdoption": 92,
"totalApps": 30, "totalApps": 2,
"perPackage": { "perPackage": {
"Auth": { "Auth": {
"count": 30, "count": 2,
"total": 30, "total": 2,
"adoption": 100 "adoption": 100
}, },
"UI": { "UI": {
"count": 29, "count": 2,
"total": 30, "total": 2,
"adoption": 97 "adoption": 100
}, },
"Theme": { "Theme": {
"count": 25, "count": 2,
"total": 30, "total": 2,
"adoption": 83 "adoption": 100
}, },
"Branding": { "Branding": {
"count": 29, "count": 1,
"total": 30, "total": 2,
"adoption": 97 "adoption": 50
}, },
"i18n": { "i18n": {
"count": 24, "count": 2,
"total": 30, "total": 2,
"adoption": 80 "adoption": 100
}, },
"Error Tracking": { "Error Tracking": {
"count": 25, "count": 2,
"total": 30, "total": 2,
"adoption": 83 "adoption": 100
}, },
"Icons": { "Icons": {
"count": 26, "count": 2,
"total": 30, "total": 2,
"adoption": 87 "adoption": 100
}, },
"Local Store": { "Local Store": {
"count": 28, "count": 2,
"total": 30, "total": 2,
"adoption": 93 "adoption": 100
} }
} }
}, },
"errors": { "errors": {
"adoption": 16, "adoption": 0,
"inline": 217, "inline": 103,
"shared": 40 "shared": 0
}, },
"i18n": { "i18n": {
"adoption": 87, "adoption": 50,
"withI18n": 26, "withI18n": 1,
"without": 4 "without": 1
}, },
"localFirst": { "localFirst": {
"adoption": 93, "adoption": 100,
"count": 28 "count": 2
}, },
"styles": { "styles": {
"themeAdoption": 83, "themeAdoption": 50,
"tailwindAdoption": 90 "tailwindAdoption": 100
}, },
"errorBoundaries": { "errorBoundaries": {
"adoption": 52, "adoption": 50,
"errorAdoption": 27, "errorAdoption": 50,
"offlineAdoption": 77, "offlineAdoption": 50,
"appsWithErrorPage": 8, "appsWithErrorPage": 1,
"appsWithOfflinePage": 23, "appsWithOfflinePage": 1,
"missing": { "missing": {
"error": [ "error": ["manavoxel"],
"calc", "offline": ["manavoxel"]
"chat",
"citycorners",
"clock",
"context",
"cards",
"manavoxel",
"memoro",
"moodlit",
"mukke",
"news",
"nutriphi",
"photos",
"picture",
"planta",
"playground",
"questions",
"skilltree",
"storage",
"uload",
"wisekeep",
"zitare"
],
"offline": ["manavoxel", "memoro", "moodlit", "news", "playground", "uload", "wisekeep"]
} }
}, },
"typescript": { "typescript": {
"adoption": 100, "adoption": 100,
"strictApps": 30, "strictApps": 2,
"nonStrict": [] "nonStrict": []
}, },
"tests": { "tests": {
"adoption": 73, "adoption": 50,
"e2eAdoption": 13, "e2eAdoption": 50,
"appsWithTests": 22, "appsWithTests": 1,
"appsWithE2e": 4, "appsWithE2e": 1,
"totalTestFiles": 122, "totalTestFiles": 27,
"noTests": [ "noTests": ["manavoxel"]
"calc",
"inventar",
"manavoxel",
"moodlit",
"news",
"playground",
"uload",
"wisekeep"
]
}, },
"pwa": { "pwa": {
"adoption": 4, "adoption": 0,
"manifestAdoption": 7, "manifestAdoption": 0,
"swAdoption": 0, "swAdoption": 0,
"appsWithManifest": 2, "appsWithManifest": 0,
"appsWithServiceWorker": 0, "appsWithServiceWorker": 0,
"noPwa": [ "noPwa": ["mana", "manavoxel"]
"calc",
"calendar",
"chat",
"citycorners",
"clock",
"contacts",
"context",
"inventar",
"mana",
"cards",
"manavoxel",
"matrix",
"moodlit",
"mukke",
"news",
"nutriphi",
"photos",
"picture",
"planta",
"playground",
"presi",
"questions",
"skilltree",
"storage",
"times",
"todo",
"wisekeep",
"zitare"
]
}, },
"fileSizes": { "fileSizes": {
"adoption": 0, "adoption": 79,
"totalLargeFiles": 42, "totalLargeFiles": 7,
"largestFile": { "largestFile": {
"path": "matrix: lib/matrix/store.svelte.ts", "path": "mana: routes/(app)/llm-test/+page.svelte",
"lines": 2019 "lines": 1138
}, },
"topOffenders": [ "topOffenders": [
{ {
"app": "matrix", "app": "mana",
"file": "lib/matrix/store.svelte.ts", "file": "routes/(app)/llm-test/+page.svelte",
"lines": 2019 "lines": 1138
}, },
{ {
"app": "calendar", "app": "mana",
"file": "lib/components/event/QuickEventOverlay.svelte", "file": "lib/modules/dreams/ListView.svelte",
"lines": 1816 "lines": 1070
}, },
{ {
"app": "contacts", "app": "mana",
"file": "lib/components/ContactDetailModal.svelte", "file": "lib/data/sync.ts",
"lines": 1502 "lines": 1001
}, },
{ {
"app": "todo", "app": "mana",
"file": "lib/components/TaskItem.svelte", "file": "routes/(app)/zitare/lists/[id]/+page.svelte",
"lines": 1194 "lines": 951
}, },
{ {
"app": "todo", "app": "manavoxel",
"file": "lib/components/board-views/ViewEditorModal.svelte", "file": "lib/engine/game.ts",
"lines": 1187 "lines": 757
}, },
{ {
"app": "contacts", "app": "manavoxel",
"file": "lib/components/NewContactModal.svelte", "file": "routes/+page.svelte",
"lines": 1130 "lines": 704
}, },
{ {
"app": "zitare", "app": "manavoxel",
"file": "routes/(app)/lists/[id]/+page.svelte", "file": "lib/editor/sprite-editor.svelte",
"lines": 958 "lines": 538
},
{
"app": "calendar",
"file": "lib/components/calendar/WeekView.svelte",
"lines": 946
},
{
"app": "calendar",
"file": "routes/(app)/settings/sync/+page.svelte",
"lines": 898
},
{
"app": "matrix",
"file": "routes/(auth)/login/+page.svelte",
"lines": 849
} }
] ]
}, },
"todos": { "todos": {
"totalCount": 33, "totalCount": 7,
"perApp": { "perApp": {
"mana": 13, "mana": 7
"memoro": 11,
"contacts": 5,
"todo": 2,
"chat": 1,
"picture": 1
} }
}, },
"securityHeaders": { "securityHeaders": {
"adoption": 73, "adoption": 50,
"appsWithHeaders": 22, "appsWithHeaders": 1,
"missing": [ "missing": ["manavoxel"]
"manavoxel",
"memoro",
"moodlit",
"news",
"playground",
"times",
"uload",
"wisekeep"
]
}, },
"skeletons": { "skeletons": {
"adoption": 77, "adoption": 50,
"appsWithSkeletons": 23, "appsWithSkeletons": 1,
"missing": ["citycorners", "cards", "manavoxel", "planta", "presi", "times", "zitare"] "missing": ["manavoxel"]
}, },
"toasts": { "toasts": {
"adoption": 100, "adoption": 100,
"sharedToast": 204, "sharedToast": 36,
"customToast": 0 "customToast": 0
}, },
"storePattern": { "storePattern": {
"adoption": 94, "adoption": 100,
"totalRunesStores": 177, "totalRunesStores": 9,
"totalOldStores": 12, "totalOldStores": 0,
"appsWithRunesStores": 24, "appsWithRunesStores": 1,
"appsWithOldStores": 5 "appsWithOldStores": 0
}, },
"sharedTypes": { "sharedTypes": {
"adoption": 53, "adoption": 5,
"sharedTypeImports": 8, "sharedTypeImports": 2,
"localTypeFiles": 7 "localTypeFiles": 40
}, },
"depFreshness": { "depFreshness": {
"adoption": 80, "adoption": 60,
"totalDeps": 1106, "totalDeps": 96,
"avgDepsPerApp": 37 "avgDepsPerApp": 48
}, },
"bundleSize": { "bundleSize": {
"adoption": 100, "adoption": 100,
"appsWithBundleConfig": 30 "appsWithBundleConfig": 2
}, },
"gitActivity": { "gitActivity": {
"adoption": 97, "adoption": 100,
"activeApps": 29, "activeApps": 2,
"perApp": { "perApp": {
"mana": 166, "mana": 94,
"todo": 135, "manavoxel": 16
"calendar": 125,
"contacts": 95,
"mukke": 90,
"storage": 87,
"zitare": 80,
"chat": 73,
"picture": 70,
"presi": 68,
"clock": 64,
"cards": 63,
"citycorners": 61,
"nutriphi": 56,
"photos": 56,
"planta": 55,
"context": 48,
"matrix": 48,
"skilltree": 46,
"questions": 39,
"inventar": 19,
"playground": 18,
"manavoxel": 11,
"uload": 10,
"calc": 6,
"moodlit": 5,
"times": 5,
"news": 4,
"wisekeep": 4,
"memoro": 0
} }
}, },
"a11y": { "a11y": {
"adoption": 36, "adoption": 33,
"altAdoption": 100, "altAdoption": 100,
"dialogAdoption": 0, "dialogAdoption": 0,
"trapAdoption": 7, "trapAdoption": 0,
"totalImgFiles": 21, "totalImgFiles": 7,
"totalImgWithAlt": 21 "totalImgWithAlt": 7
}, },
"authGuard": { "authGuard": {
"adoption": 83, "adoption": 50,
"appsWithAuthGuard": 25, "appsWithAuthGuard": 1,
"missing": ["mana", "manavoxel", "matrix", "memoro", "playground"] "missing": ["manavoxel"]
}, },
"docker": { "docker": {
"adoption": 80, "adoption": 100,
"appsWithDockerfile": 24, "appsWithDockerfile": 2,
"missing": ["context", "moodlit", "news", "planta", "questions", "wisekeep"] "missing": []
} }
}, },
"apps": [ "apps": ["mana", "manavoxel"]
"calc",
"calendar",
"chat",
"citycorners",
"clock",
"contacts",
"context",
"inventar",
"mana",
"cards",
"manavoxel",
"matrix",
"memoro",
"moodlit",
"mukke",
"news",
"nutriphi",
"photos",
"picture",
"planta",
"playground",
"presi",
"questions",
"skilltree",
"storage",
"times",
"todo",
"uload",
"wisekeep",
"zitare"
]
} }

View file

@ -1,5 +1,7 @@
{ {
"annotations": { "list": [] }, "annotations": {
"list": []
},
"editable": true, "editable": true,
"fiscalYearStartMonth": 0, "fiscalYearStartMonth": 0,
"graphTooltip": 1, "graphTooltip": 1,
@ -8,17 +10,27 @@
"panels": [ "panels": [
{ {
"collapsed": false, "collapsed": false,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 1, "id": 1,
"panels": [], "panels": [],
"title": "Overview", "title": "Overview",
"type": "row" "type": "row"
}, },
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"color": { "mode": "palette-classic" }, "color": {
"mode": "palette-classic"
},
"custom": { "custom": {
"axisBorderShow": false, "axisBorderShow": false,
"axisCenteredZero": false, "axisCenteredZero": false,
@ -26,68 +38,115 @@
"barAlignment": 0, "barAlignment": 0,
"drawStyle": "bars", "drawStyle": "bars",
"fillOpacity": 80, "fillOpacity": 80,
"stacking": { "group": "A", "mode": "normal" } "stacking": {
"group": "A",
"mode": "normal"
}
} }
} }
}, },
"gridPos": { "h": 6, "w": 12, "x": 0, "y": 1 }, "gridPos": {
"h": 6,
"w": 12,
"x": 0,
"y": 1
},
"id": 2, "id": 2,
"title": "Log Volume by Tier", "title": "Log Volume by Tier",
"type": "timeseries", "type": "timeseries",
"targets": [ "targets": [
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"expr": "sum by (tier) (count_over_time({tier=~\".+\"} [$__interval]))", "expr": "sum by (tier) (count_over_time({tier=~\".+\"} [$__interval]))",
"refId": "A" "refId": "A"
} }
] ]
}, },
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"color": { "mode": "palette-classic" }, "color": {
"mode": "palette-classic"
},
"custom": { "custom": {
"drawStyle": "bars", "drawStyle": "bars",
"fillOpacity": 80, "fillOpacity": 80,
"stacking": { "group": "A", "mode": "normal" } "stacking": {
"group": "A",
"mode": "normal"
}
} }
} }
}, },
"gridPos": { "h": 6, "w": 12, "x": 12, "y": 1 }, "gridPos": {
"h": 6,
"w": 12,
"x": 12,
"y": 1
},
"id": 3, "id": 3,
"title": "Errors & Warnings", "title": "Errors & Warnings",
"type": "timeseries", "type": "timeseries",
"targets": [ "targets": [
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"expr": "sum by (level) (count_over_time({tier=~\".+\"} |~ \"(?i)(error|warn|fatal|panic)\" [$__interval]))", "expr": "sum by (level) (count_over_time({tier=~\".+\"} |~ \"(?i)(error|warn|fatal|panic)\" [$__interval]))",
"refId": "A" "refId": "A"
} }
] ]
}, },
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"mappings": [], "mappings": [],
"thresholds": { "thresholds": {
"mode": "absolute", "mode": "absolute",
"steps": [ "steps": [
{ "color": "green", "value": null }, {
{ "color": "yellow", "value": 50 }, "color": "green",
{ "color": "red", "value": 200 } "value": null
},
{
"color": "yellow",
"value": 50
},
{
"color": "red",
"value": 200
}
] ]
} }
} }
}, },
"gridPos": { "h": 6, "w": 6, "x": 0, "y": 7 }, "gridPos": {
"h": 6,
"w": 6,
"x": 0,
"y": 7
},
"id": 4, "id": 4,
"title": "Errors (last 1h)", "title": "Errors (last 1h)",
"type": "stat", "type": "stat",
"targets": [ "targets": [
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"expr": "sum(count_over_time({tier=~\".+\"} |~ \"(?i)(error|fatal|panic)\" [1h]))", "expr": "sum(count_over_time({tier=~\".+\"} |~ \"(?i)(error|fatal|panic)\" [1h]))",
"refId": "A", "refId": "A",
"instant": true "instant": true
@ -95,27 +154,47 @@
] ]
}, },
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"mappings": [], "mappings": [],
"thresholds": { "thresholds": {
"mode": "absolute", "mode": "absolute",
"steps": [ "steps": [
{ "color": "green", "value": null }, {
{ "color": "yellow", "value": 100 }, "color": "green",
{ "color": "red", "value": 500 } "value": null
},
{
"color": "yellow",
"value": 100
},
{
"color": "red",
"value": 500
}
] ]
} }
} }
}, },
"gridPos": { "h": 6, "w": 6, "x": 6, "y": 7 }, "gridPos": {
"h": 6,
"w": 6,
"x": 6,
"y": 7
},
"id": 5, "id": 5,
"title": "Warnings (last 1h)", "title": "Warnings (last 1h)",
"type": "stat", "type": "stat",
"targets": [ "targets": [
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"expr": "sum(count_over_time({tier=~\".+\"} |~ \"(?i)warn\" [1h]))", "expr": "sum(count_over_time({tier=~\".+\"} |~ \"(?i)warn\" [1h]))",
"refId": "A", "refId": "A",
"instant": true "instant": true
@ -123,20 +202,36 @@
] ]
}, },
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"color": { "mode": "palette-classic" }, "color": {
"custom": { "displayMode": "gradient", "showValue": "auto" } "mode": "palette-classic"
},
"custom": {
"displayMode": "gradient",
"showValue": "auto"
}
} }
}, },
"gridPos": { "h": 6, "w": 12, "x": 12, "y": 7 }, "gridPos": {
"h": 6,
"w": 12,
"x": 12,
"y": 7
},
"id": 6, "id": 6,
"title": "Top 10 Noisiest Services", "title": "Top 10 Noisiest Services",
"type": "barchart", "type": "barchart",
"targets": [ "targets": [
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"expr": "topk(10, sum by (service) (count_over_time({tier=~\".+\"} [1h])))", "expr": "topk(10, sum by (service) (count_over_time({tier=~\".+\"} [1h])))",
"refId": "A", "refId": "A",
"instant": true "instant": true
@ -145,15 +240,28 @@
}, },
{ {
"collapsed": false, "collapsed": false,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 13 }, "gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 13
},
"id": 10, "id": 10,
"panels": [], "panels": [],
"title": "Error Logs", "title": "Error Logs",
"type": "row" "type": "row"
}, },
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"gridPos": { "h": 10, "w": 24, "x": 0, "y": 14 }, "type": "loki",
"uid": "loki"
},
"gridPos": {
"h": 10,
"w": 24,
"x": 0,
"y": 14
},
"id": 11, "id": 11,
"title": "Errors across all services", "title": "Errors across all services",
"type": "logs", "type": "logs",
@ -169,7 +277,10 @@
}, },
"targets": [ "targets": [
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"expr": "{tier=~\".+\"} |~ \"(?i)(error|fatal|panic)\"", "expr": "{tier=~\".+\"} |~ \"(?i)(error|fatal|panic)\"",
"refId": "A" "refId": "A"
} }
@ -177,12 +288,25 @@
}, },
{ {
"collapsed": true, "collapsed": true,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 24 }, "gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 24
},
"id": 20, "id": 20,
"panels": [ "panels": [
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"gridPos": { "h": 12, "w": 24, "x": 0, "y": 25 }, "type": "loki",
"uid": "loki"
},
"gridPos": {
"h": 12,
"w": 24,
"x": 0,
"y": 25
},
"id": 21, "id": 21,
"title": "Auth Service Logs", "title": "Auth Service Logs",
"type": "logs", "type": "logs",
@ -195,7 +319,10 @@
}, },
"targets": [ "targets": [
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"expr": "{tier=\"auth\"}", "expr": "{tier=\"auth\"}",
"refId": "A" "refId": "A"
} }
@ -207,12 +334,25 @@
}, },
{ {
"collapsed": true, "collapsed": true,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 25 }, "gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 25
},
"id": 30, "id": 30,
"panels": [ "panels": [
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"gridPos": { "h": 12, "w": 24, "x": 0, "y": 26 }, "type": "loki",
"uid": "loki"
},
"gridPos": {
"h": 12,
"w": 24,
"x": 0,
"y": 26
},
"id": 31, "id": 31,
"title": "Core Service Logs", "title": "Core Service Logs",
"type": "logs", "type": "logs",
@ -225,7 +365,10 @@
}, },
"targets": [ "targets": [
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"expr": "{tier=\"core\"}", "expr": "{tier=\"core\"}",
"refId": "A" "refId": "A"
} }
@ -237,12 +380,25 @@
}, },
{ {
"collapsed": true, "collapsed": true,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 26 }, "gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 26
},
"id": 40, "id": 40,
"panels": [ "panels": [
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"gridPos": { "h": 12, "w": 24, "x": 0, "y": 27 }, "type": "loki",
"uid": "loki"
},
"gridPos": {
"h": 12,
"w": 24,
"x": 0,
"y": 27
},
"id": 41, "id": 41,
"title": "Web App Logs", "title": "Web App Logs",
"type": "logs", "type": "logs",
@ -255,7 +411,10 @@
}, },
"targets": [ "targets": [
{ {
"datasource": { "type": "loki", "uid": "loki" }, "datasource": {
"type": "loki",
"uid": "loki"
},
"expr": "{tier=\"app\"} | service =~ \"$service\"", "expr": "{tier=\"app\"} | service =~ \"$service\"",
"refId": "A" "refId": "A"
} }
@ -264,36 +423,6 @@
], ],
"title": "Web Apps", "title": "Web Apps",
"type": "row" "type": "row"
},
{
"collapsed": true,
"gridPos": { "h": 1, "w": 24, "x": 0, "y": 27 },
"id": 50,
"panels": [
{
"datasource": { "type": "loki", "uid": "loki" },
"gridPos": { "h": 12, "w": 24, "x": 0, "y": 28 },
"id": 51,
"title": "Matrix Stack Logs",
"type": "logs",
"options": {
"showTime": true,
"showLabels": true,
"wrapLogMessage": true,
"enableLogDetails": true,
"sortOrder": "Descending"
},
"targets": [
{
"datasource": { "type": "loki", "uid": "loki" },
"expr": "{tier=\"matrix\"}",
"refId": "A"
}
]
}
],
"title": "Matrix Stack",
"type": "row"
} }
], ],
"refresh": "30s", "refresh": "30s",
@ -302,8 +431,15 @@
"templating": { "templating": {
"list": [ "list": [
{ {
"current": { "selected": false, "text": "All", "value": "$__all" }, "current": {
"datasource": { "type": "loki", "uid": "loki" }, "selected": false,
"text": "All",
"value": "$__all"
},
"datasource": {
"type": "loki",
"uid": "loki"
},
"definition": "label_values(service)", "definition": "label_values(service)",
"includeAll": true, "includeAll": true,
"multi": true, "multi": true,
@ -313,8 +449,15 @@
"type": "query" "type": "query"
}, },
{ {
"current": { "selected": false, "text": "All", "value": "$__all" }, "current": {
"datasource": { "type": "loki", "uid": "loki" }, "selected": false,
"text": "All",
"value": "$__all"
},
"datasource": {
"type": "loki",
"uid": "loki"
},
"definition": "label_values(tier)", "definition": "label_values(tier)",
"includeAll": true, "includeAll": true,
"multi": true, "multi": true,
@ -325,7 +468,10 @@
} }
] ]
}, },
"time": { "from": "now-1h", "to": "now" }, "time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {}, "timepicker": {},
"timezone": "browser", "timezone": "browser",
"title": "Logs Explorer", "title": "Logs Explorer",

File diff suppressed because it is too large Load diff

View file

@ -125,7 +125,6 @@ new NotifyClient({
##### Other Channels ##### Other Channels
- `sendMatrix(options)` - Send a Matrix message
- `sendWebhook(options)` - Send a webhook - `sendWebhook(options)` - Send a webhook
##### Batch & Management ##### Batch & Management

View file

@ -17,7 +17,7 @@ mana-llm acts as a central gateway for all LLM requests in the monorepo, providi
``` ```
┌─────────────────────────────────────────────────────────────────────┐ ┌─────────────────────────────────────────────────────────────────────┐
│ Consumer Apps │ │ Consumer Apps │
matrix-ollama-bot │ telegram-ollama-bot │ chat-backend │ etc. chat-backend │ mana web │ todo (LLM enrich) │ etc.
└────────────────────────────────┬────────────────────────────────────┘ └────────────────────────────────┬────────────────────────────────────┘
│ HTTP/SSE │ HTTP/SSE
@ -288,5 +288,3 @@ while (true) {
| mana-tts | 3022 | Text-to-speech service | | mana-tts | 3022 | Text-to-speech service |
| mana-stt | 3023 | Speech-to-text service | | mana-stt | 3023 | Speech-to-text service |
| mana-search | 3021 | Web search & extraction | | mana-search | 3021 | Web search & extraction |
| matrix-ollama-bot | - | Matrix bot (consumer) |
| telegram-ollama-bot | - | Telegram bot (consumer) |

View file

@ -151,7 +151,6 @@ The GPU server runs multiple AI services. LTX-Video uses ~10 GB VRAM:
Used by: Used by:
- **Picture App** — video generation alongside images - **Picture App** — video generation alongside images
- **Chat App** — inline video generation - **Chat App** — inline video generation
- **Matrix Bots** — video generation via chat commands
### Example (TypeScript) ### Example (TypeScript)